@dev-tcloud/tcloud-ui 0.1.7 → 0.1.9

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.
@@ -4,10 +4,22 @@ export class TCloudUiTooltipDirective {
4
4
  constructor(el, renderer) {
5
5
  this.el = el;
6
6
  this.renderer = renderer;
7
+ this.remove = false;
7
8
  this.info_text = '';
8
9
  this._direction = 'top';
9
10
  }
10
11
  onMouseOver(event) {
12
+ let hoverInCallback = () => {
13
+ this.remove = false;
14
+ };
15
+ let hoverOutCallback = () => {
16
+ this.remove = true;
17
+ const customDiv = document.querySelector('.tc-directive-tooltip');
18
+ if (customDiv) {
19
+ customDiv.remove();
20
+ }
21
+ };
22
+ hoverOutCallback;
11
23
  const scrollTop = window.scrollY || window.pageYOffset;
12
24
  const tooltip = this.renderer.createElement('div');
13
25
  const rect = this.el.nativeElement?.getBoundingClientRect();
@@ -30,20 +42,37 @@ export class TCloudUiTooltipDirective {
30
42
  this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
31
43
  const id = this.generateID();
32
44
  this.renderer.setAttribute(tooltip, 'id', id);
33
- const textNode = this.renderer.createText(`${this.info_text}`);
34
- this.renderer.appendChild(tooltip, textNode);
35
- this.renderer.appendChild(document.body, tooltip);
36
- this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
45
+ const textNode = this.info_text;
46
+ if (textNode !== undefined && textNode !== null && textNode !== '') {
47
+ tooltip.innerHTML = textNode;
48
+ this.renderer.appendChild(document.body, tooltip);
49
+ this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
50
+ if (tooltip) {
51
+ tooltip.addEventListener('mouseenter', hoverInCallback);
52
+ tooltip.addEventListener('mouseleave', hoverOutCallback);
53
+ }
54
+ }
37
55
  }
38
56
  onMouseOut(event) {
39
- const customDiv = document.querySelector('.tc-directive-tooltip');
57
+ this.remove = true;
58
+ this.remove_tooltip(document.querySelector('.tc-directive-tooltip'));
59
+ }
60
+ remove_tooltip(customDiv) {
40
61
  if (customDiv) {
41
- customDiv.remove();
62
+ setTimeout(() => {
63
+ if (this.remove) {
64
+ customDiv.remove();
65
+ }
66
+ }, 30);
42
67
  }
43
68
  }
44
69
  set TCtooltip(tooltip) {
45
70
  if (tooltip) {
46
- this.info_text = tooltip;
71
+ if (typeof tooltip === 'object') {
72
+ }
73
+ else {
74
+ this.info_text = tooltip;
75
+ }
47
76
  }
48
77
  }
49
78
  set TCdirection(direction) {
@@ -110,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
110
139
  }], TCdirection: [{
111
140
  type: Input
112
141
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXJGLE1BQU0sT0FBTyx3QkFBd0I7SUF5RG5DLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBekQ3QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBZ0RmLGVBQVUsR0FBd0MsS0FBSyxDQUFDO0lBVTdELENBQUM7SUF4RG1DLFdBQVcsQ0FBQyxLQUFpQjtRQUVsRSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztRQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsMEJBQTBCLENBQUMsRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDO1FBQ2hHLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFFLENBQUMsQ0FBQyxD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RyxFQUFFLENBQUM7YUFDeEQ7WUFFRCxJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUU7Z0JBQ3pCLEdBQUcsR0FBRyxhQUFhLEdBQUcsQ0FBQyxjQUFjLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELEdBQUcsR0FBRyxlQUFlLEdBQUcsYUFBYSxHQUFDLENBQUMsR0FBRyxLQUFLLEdBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUN4RDtZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBRXhELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0hBL0dVLHdCQUF3QjswR0FBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCO3lIQUt3QyxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQ0MsVUFBVTtzQkFBL0MsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUXZCLFNBQVM7c0JBQXJCLEtBQUs7Z0JBT08sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBJbnB1dCwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tUQ3Rvb2x0aXBdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlUb29sdGlwRGlyZWN0aXZlIHtcclxuXHJcbiAgaW5mb190ZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJywgWyckZXZlbnQnXSkgb25Nb3VzZU92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuXHJcbiAgICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cuc2Nyb2xsWSB8fCB3aW5kb3cucGFnZVlPZmZzZXQ7XHJcbiAgICBjb25zdCB0b29sdGlwID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGNvbnN0IHJlY3QgID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuZWwubmF0aXZlRWxlbWVudD8uYXR0cmlidXRlc1snbmctcmVmbGVjdC0tdC1jZGlyZWN0aW9uJ10/LnZhbHVlIHx8ICd0b3AnO1xyXG4gICAgY29uc3QgZWxfcG9zaXRpb25feCA9IChyZWN0Py5sZWZ0KSA/IHBhcnNlSW50KHJlY3Q/LmxlZnQpIDogMDtcclxuICAgIGNvbnN0IGVsX3Bvc2l0aW9uX3kgPSAocmVjdD8udG9wICkgPyBwYXJzZUludChyZWN0Py50b3AgICsgc2Nyb2xsVG9wKSA6IDA7XHJcblxyXG4gICAgbGV0IHdpZHRoID0gMDtcclxuICAgIGxldCBoZWlnaHQgPSAwO1xyXG4gICAgaWYoIGV2ZW50ICYmIGV2ZW50LnRhcmdldCApe1xyXG4gICAgICBjb25zdCBfZXZlbnQgPSBldmVudC50YXJnZXQgYXMgYW55O1xyXG4gICAgICBoZWlnaHQgID0gX2V2ZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgd2lkdGggICA9IF9ldmVudC5vZmZzZXRXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0b3AgPSBgJHsoZWxfcG9zaXRpb25feSAtICgoaGVpZ2h0LzIpICsgMTApICl9cHhgO1xyXG4gICAgY29uc3QgbGVmdCA9IGAke2VsX3Bvc2l0aW9uX3ggKyAod2lkdGgvMikgfXB4YDtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ3RvcCcsICcwcHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ2xlZnQnLCAnMHB4Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXAsICdvcGFjaXR5JywgJzAnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgJ3RjLWRpcmVjdGl2ZS10b29sdGlwJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRvb2x0aXAsIGB0Yy1kaXJlY3RpdmUtdG9vbHRpcC0ke2RpcmVjdGlvbn1gKTtcclxuICAgIGNvbnN0IGlkID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0b29sdGlwLCAnaWQnLCBpZCk7XHJcbiAgICBjb25zdCB0ZXh0Tm9kZSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChgJHt0aGlzLmluZm9fdGV4dH1gKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodG9vbHRpcCwgdGV4dE5vZGUpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCB0b29sdGlwKTsgICAgXHJcbiAgICB0aGlzLnN0YXJ0X3Rvb2x0aXAoaWQsIGhlaWdodCwgd2lkdGgsIGVsX3Bvc2l0aW9uX3gsIGVsX3Bvc2l0aW9uX3ksIGRpcmVjdGlvbik7XHJcbiAgfSAgXHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3V0JywgWyckZXZlbnQnXSkgb25Nb3VzZU91dChldmVudDogTW91c2VFdmVudCkgeyAgICBcclxuICAgIGNvbnN0IGN1c3RvbURpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50Yy1kaXJlY3RpdmUtdG9vbHRpcCcpO1xyXG4gICAgaWYgKGN1c3RvbURpdikge1xyXG4gICAgICBjdXN0b21EaXYucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgc2V0IFRDdG9vbHRpcCAodG9vbHRpcDogYW55KXtcclxuICAgIGlmICh0b29sdGlwKXtcclxuICAgICAgdGhpcy5pbmZvX3RleHQgPSB0b29sdGlwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGlyZWN0aW9uOiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyA9ICd0b3AnO1xyXG4gIEBJbnB1dCgpIHNldCBUQ2RpcmVjdGlvbiAoZGlyZWN0aW9uOiBhbnkpe1xyXG4gICAgaWYgKGRpcmVjdGlvbil7XHJcbiAgICAgIHRoaXMuX2RpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7fVxyXG5cclxuXHJcbiAgZ2VuZXJhdGVJRCh0YXJnZXQ/OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICBjb25zdCByZWYgPSAodGFyZ2V0KSA/IGAtJHt0YXJnZXR9YCA6ICcnO1xyXG4gICAgcmV0dXJuIGB0Yy10b29sdGlwLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfSR7cmVmfWA7XHJcbiAgfVxyXG5cclxuICBzdGFydF90b29sdGlwKGlkOiBzdHJpbmcsIGhlaWdodDogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBlbF9wb3NpdGlvbl94OiBudW1iZXIsIGVsX3Bvc2l0aW9uX3k6IG51bWJlciwgZGlyZWN0aW9uOiBzdHJpbmcpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICAgXHJcbiAgICAgIGNvbnN0IHRvb2x0aXA6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgICAgY29uc3QgdG9vbHRpcF9oZWlnaHQgPSB0b29sdGlwLmNsaWVudEhlaWdodDtcclxuICAgICAgY29uc3QgdG9vbHRpcF93aWR0aCA9IHRvb2x0aXAuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgICAvKlxyXG4gICAgICBjb25zb2xlLmxvZygnYWx0dXJhIGRvIHRhcmdldDogJywgaGVpZ2h0KTtcclxuICAgICAgY29uc29sZS5sb2coJ2xhcmd1cmEgZG8gdGFyZ2V0OiAnLCB3aWR0aCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdlbF9wb3NpdGlvbl94IGRvIHRhcmdldDogJywgZWxfcG9zaXRpb25feCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdlbF9wb3NpdGlvbl95IGRvIHRhcmdldDogJywgZWxfcG9zaXRpb25feSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdkaXJlY3Rpb24gZG8gdG9vbHRpcDogJywgZGlyZWN0aW9uKTtcclxuICAgICAgKi9cclxuXHJcbiAgICAgIGxldCBwX3kgPSAwO1xyXG4gICAgICBsZXQgcF94ID0gMDtcclxuICAgICAgY29uc3QgY2VudGVyX3Bvc2l0aW9uID0gKGVsX3Bvc2l0aW9uX3ggKyAod2lkdGgvMikpIC0gKHRvb2x0aXBfd2lkdGgvMik7XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAndG9wJyApe1xyXG4gICAgICAgIHBfeSA9IChlbF9wb3NpdGlvbl95IC0gdG9vbHRpcF9oZWlnaHQpIC0gMTU7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAnYm90dG9tJyApe1xyXG4gICAgICAgIHBfeSA9IChlbF9wb3NpdGlvbl95ICsgaGVpZ2h0KSArIDE1O1xyXG4gICAgICAgIHBfeCA9IGNlbnRlcl9wb3NpdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYoIGRpcmVjdGlvbiA9PT0gJ2xlZnQnICl7XHJcbiAgICAgICAgcF95ID0gZWxfcG9zaXRpb25feSAtICh0b29sdGlwX2hlaWdodC8yKSArIChoZWlnaHQvMik7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uIC0gdG9vbHRpcF93aWR0aC8yIC0gd2lkdGgvMiAtIDE1O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAncmlnaHQnICl7XHJcbiAgICAgICAgcF95ID0gZWxfcG9zaXRpb25feSAtICh0b29sdGlwX2hlaWdodC8yKSArIChoZWlnaHQvMik7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uICsgdG9vbHRpcF93aWR0aC8yICsgd2lkdGgvMiArIDE1O1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXAsICd0b3AnLCBgJHtwX3l9cHhgKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnbGVmdCcsIGAke3BfeH1weGApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRvb2x0aXAsICd0Yy10b29sdGlwLWZhZGUtaW4nKTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59Il19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXJGLE1BQU0sT0FBTyx3QkFBd0I7SUE0Rm5DLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBNUY3QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBRXhCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFpRmYsZUFBVSxHQUF3QyxLQUFLLENBQUM7SUFVN0QsQ0FBQztJQXpGbUMsV0FBVyxDQUFDLEtBQWlCO1FBRWxFLElBQUksZUFBZSxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLENBQUE7UUFFRCxJQUFJLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixNQUFNLFNBQVMsR0FBUyxRQUFRLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDeEUsSUFBSSxTQUFTLEVBQUU7Z0JBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQUU7UUFDeEMsQ0FBQyxDQUFBO1FBRUQsZ0JBQWdCLENBQUM7UUFFakIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sSUFB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O2FBQ3hEO1lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztzSEFsSlUsd0JBQXdCOzBHQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7eUhBT3dDLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXNEQyxVQUFVO3NCQUEvQyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQnZCLFNBQVM7c0JBQXJCLEtBQUs7Z0JBVU8sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBJbnB1dCwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tUQ3Rvb2x0aXBdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlUb29sdGlwRGlyZWN0aXZlIHtcclxuXHJcbiAgcmVtb3ZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGluZm9fdGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicsIFsnJGV2ZW50J10pIG9uTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcblxyXG4gICAgbGV0IGhvdmVySW5DYWxsYmFjayA9ICgpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaG92ZXJPdXRDYWxsYmFjayA9ICgpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmUgPSB0cnVlO1xyXG4gICAgICBjb25zdCBjdXN0b21EaXYgPSA8YW55PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudGMtZGlyZWN0aXZlLXRvb2x0aXAnKTtcclxuICAgICAgaWYoIGN1c3RvbURpdiApeyBjdXN0b21EaXYucmVtb3ZlKCk7IH0gICAgICBcclxuICAgIH1cclxuXHJcbiAgICBob3Zlck91dENhbGxiYWNrO1xyXG5cclxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdy5zY3JvbGxZIHx8IHdpbmRvdy5wYWdlWU9mZnNldDtcclxuICAgIGNvbnN0IHRvb2x0aXAgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgY29uc3QgcmVjdCAgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Py5hdHRyaWJ1dGVzWyduZy1yZWZsZWN0LS10LWNkaXJlY3Rpb24nXT8udmFsdWUgfHwgJ3RvcCc7XHJcbiAgICBjb25zdCBlbF9wb3NpdGlvbl94ID0gKHJlY3Q/LmxlZnQpID8gcGFyc2VJbnQocmVjdD8ubGVmdCkgOiAwO1xyXG4gICAgY29uc3QgZWxfcG9zaXRpb25feSA9IChyZWN0Py50b3AgKSA/IHBhcnNlSW50KHJlY3Q/LnRvcCAgKyBzY3JvbGxUb3ApIDogMDtcclxuXHJcbiAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgbGV0IGhlaWdodCA9IDA7XHJcbiAgICBpZiggZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICl7XHJcbiAgICAgIGNvbnN0IF9ldmVudCA9IGV2ZW50LnRhcmdldCBhcyBhbnk7XHJcbiAgICAgIGhlaWdodCAgPSBfZXZlbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICB3aWR0aCAgID0gX2V2ZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRvcCA9IGAkeyhlbF9wb3NpdGlvbl95IC0gKChoZWlnaHQvMikgKyAxMCkgKX1weGA7XHJcbiAgICBjb25zdCBsZWZ0ID0gYCR7ZWxfcG9zaXRpb25feCArICh3aWR0aC8yKSB9cHhgO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAndG9wJywgJzBweCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnbGVmdCcsICcwcHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ29wYWNpdHknLCAnMCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0b29sdGlwLCAndGMtZGlyZWN0aXZlLXRvb2x0aXAnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgYHRjLWRpcmVjdGl2ZS10b29sdGlwLSR7ZGlyZWN0aW9ufWApO1xyXG4gICAgY29uc3QgaWQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRvb2x0aXAsICdpZCcsIGlkKTtcclxuICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5pbmZvX3RleHQ7XHJcblxyXG4gICAgaWYoIHRleHROb2RlICE9PSB1bmRlZmluZWQgJiYgdGV4dE5vZGUgIT09IG51bGwgJiYgdGV4dE5vZGUgIT09ICcnICl7XHJcblxyXG4gICAgICB0b29sdGlwLmlubmVySFRNTCA9IHRleHROb2RlO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRvb2x0aXApOyAgICBcclxuICAgICAgdGhpcy5zdGFydF90b29sdGlwKGlkLCBoZWlnaHQsIHdpZHRoLCBlbF9wb3NpdGlvbl94LCBlbF9wb3NpdGlvbl95LCBkaXJlY3Rpb24pO1xyXG5cclxuICAgICAgaWYgKHRvb2x0aXApIHtcclxuICAgICAgICB0b29sdGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBob3ZlckluQ2FsbGJhY2spO1xyXG4gICAgICAgIHRvb2x0aXAuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGhvdmVyT3V0Q2FsbGJhY2spO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH0gIFxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcsIFsnJGV2ZW50J10pIG9uTW91c2VPdXQoZXZlbnQ6IE1vdXNlRXZlbnQpIHsgICBcclxuICAgIHRoaXMucmVtb3ZlID0gdHJ1ZTtcclxuICAgIHRoaXMucmVtb3ZlX3Rvb2x0aXAoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50Yy1kaXJlY3RpdmUtdG9vbHRpcCcpICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVfdG9vbHRpcChjdXN0b21EaXY6IGFueSl7ICAgXHJcbiAgICBpZiAoY3VzdG9tRGl2KSB7ICAgICAgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmKCB0aGlzLnJlbW92ZSApe1xyXG4gICAgICAgICAgY3VzdG9tRGl2LnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMzApOyAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHNldCBUQ3Rvb2x0aXAgKHRvb2x0aXA6IGFueSl7XHJcbiAgICBpZiAodG9vbHRpcCl7XHJcbiAgICAgIGlmKCB0eXBlb2YgdG9vbHRpcCA9PT0gJ29iamVjdCcgKXtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbmZvX3RleHQgPSB0b29sdGlwO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaXJlY3Rpb246ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ3RvcCc7XHJcbiAgQElucHV0KCkgc2V0IFRDZGlyZWN0aW9uIChkaXJlY3Rpb246IGFueSl7XHJcbiAgICBpZiAoZGlyZWN0aW9uKXtcclxuICAgICAgdGhpcy5fZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICApIHt9XHJcblxyXG5cclxuICBnZW5lcmF0ZUlEKHRhcmdldD86IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IHJlZiA9ICh0YXJnZXQpID8gYC0ke3RhcmdldH1gIDogJyc7XHJcbiAgICByZXR1cm4gYHRjLXRvb2x0aXAtJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9JHtyZWZ9YDtcclxuICB9XHJcblxyXG4gIHN0YXJ0X3Rvb2x0aXAoaWQ6IHN0cmluZywgaGVpZ2h0OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGVsX3Bvc2l0aW9uX3g6IG51bWJlciwgZWxfcG9zaXRpb25feTogbnVtYmVyLCBkaXJlY3Rpb246IHN0cmluZyl7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgY29uc3QgdG9vbHRpcDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgICBjb25zdCB0b29sdGlwX2hlaWdodCA9IHRvb2x0aXAuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBjb25zdCB0b29sdGlwX3dpZHRoID0gdG9vbHRpcC5jbGllbnRXaWR0aDtcclxuXHJcbiAgICAgIC8qXHJcbiAgICAgIGNvbnNvbGUubG9nKCdhbHR1cmEgZG8gdGFyZ2V0OiAnLCBoZWlnaHQpO1xyXG4gICAgICBjb25zb2xlLmxvZygnbGFyZ3VyYSBkbyB0YXJnZXQ6ICcsIHdpZHRoKTtcclxuICAgICAgY29uc29sZS5sb2coJ2VsX3Bvc2l0aW9uX3ggZG8gdGFyZ2V0OiAnLCBlbF9wb3NpdGlvbl94KTtcclxuICAgICAgY29uc29sZS5sb2coJ2VsX3Bvc2l0aW9uX3kgZG8gdGFyZ2V0OiAnLCBlbF9wb3NpdGlvbl95KTtcclxuICAgICAgY29uc29sZS5sb2coJ2RpcmVjdGlvbiBkbyB0b29sdGlwOiAnLCBkaXJlY3Rpb24pO1xyXG4gICAgICAqL1xyXG5cclxuICAgICAgbGV0IHBfeSA9IDA7XHJcbiAgICAgIGxldCBwX3ggPSAwO1xyXG4gICAgICBjb25zdCBjZW50ZXJfcG9zaXRpb24gPSAoZWxfcG9zaXRpb25feCArICh3aWR0aC8yKSkgLSAodG9vbHRpcF93aWR0aC8yKTtcclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICd0b3AnICl7XHJcbiAgICAgICAgcF95ID0gKGVsX3Bvc2l0aW9uX3kgLSB0b29sdGlwX2hlaWdodCkgLSAxNTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICdib3R0b20nICl7XHJcbiAgICAgICAgcF95ID0gKGVsX3Bvc2l0aW9uX3kgKyBoZWlnaHQpICsgMTU7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAnbGVmdCcgKXtcclxuICAgICAgICBwX3kgPSBlbF9wb3NpdGlvbl95IC0gKHRvb2x0aXBfaGVpZ2h0LzIpICsgKGhlaWdodC8yKTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb24gLSB0b29sdGlwX3dpZHRoLzIgLSB3aWR0aC8yIC0gMTU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICdyaWdodCcgKXtcclxuICAgICAgICBwX3kgPSBlbF9wb3NpdGlvbl95IC0gKHRvb2x0aXBfaGVpZ2h0LzIpICsgKGhlaWdodC8yKTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb24gKyB0b29sdGlwX3dpZHRoLzIgKyB3aWR0aC8yICsgMTU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ3RvcCcsIGAke3BfeX1weGApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXAsICdsZWZ0JywgYCR7cF94fXB4YCk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgJ3RjLXRvb2x0aXAtZmFkZS1pbicpO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn0iXX0=
@@ -73,12 +73,30 @@ export class TCloudUiDatepickerComponent {
73
73
  return this._DateBRPipe.transform(v);
74
74
  }
75
75
  get_options() {
76
+ // Função para formatar uma data no fuso horário local
77
+ const formatDateLocal = (date) => {
78
+ const year = date.getFullYear();
79
+ const month = String(date.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses são indexados a partir de 0
80
+ const day = String(date.getDate()).padStart(2, '0');
81
+ return `${year}-${month}-${day}`;
82
+ };
83
+ // Função para analisar uma data no fuso horário local
84
+ const parseDateLocal = (dateString) => {
85
+ const [year, month, day] = dateString.split('-');
86
+ return new Date(year, month - 1, day); // Subtrai 1 porque os meses são indexados a partir de 0
87
+ };
76
88
  let options = {
77
89
  nextArrow: `<i class="fas fa-caret-right"></i>`,
78
90
  prevArrow: `<i class="fas fa-caret-left"></i>`,
79
91
  format: 'dd/mm/yyyy',
80
92
  daysOfWeekHighlighted: [0, 6],
81
- language: 'ptBR'
93
+ language: 'ptBR',
94
+ formatter: {
95
+ date: formatDateLocal,
96
+ },
97
+ parser: {
98
+ date: parseDateLocal,
99
+ },
82
100
  };
83
101
  if ((this.daysOfWeekDisabled).length > 0) {
84
102
  options['daysOfWeekDisabled'] = this.daysOfWeekDisabled;
@@ -264,10 +282,10 @@ export class TCloudUiDatepickerComponent {
264
282
  }
265
283
  }
266
284
  TCloudUiDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerComponent, deps: [{ token: i1.DateBRPipe }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
267
- TCloudUiDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: { multiple: "multiple", maxNumberOfDates: "maxNumberOfDates", daysOfWeekDisabled: "daysOfWeekDisabled", minDate: "minDate", maxDate: "maxDate", datesDisabled: "datesDisabled", modeInput: "modeInput", useBorder: "useBorder", childInputDateTime: "childInputDateTime", ngModel: "ngModel", code: "code" }, outputs: { onChange: "onChange", ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "input_datepicker", first: true, predicate: ["input_datepicker"], descendants: true }], ngImport: i0, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
285
+ TCloudUiDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: { multiple: "multiple", maxNumberOfDates: "maxNumberOfDates", daysOfWeekDisabled: "daysOfWeekDisabled", minDate: "minDate", maxDate: "maxDate", datesDisabled: "datesDisabled", modeInput: "modeInput", useBorder: "useBorder", childInputDateTime: "childInputDateTime", ngModel: "ngModel", code: "code" }, outputs: { onChange: "onChange", ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "input_datepicker", first: true, predicate: ["input_datepicker"], descendants: true }], ngImport: i0, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\">\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
268
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerComponent, decorators: [{
269
287
  type: Component,
270
- args: [{ selector: 'tcloud-ui-datepicker', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"] }]
288
+ args: [{ selector: 'tcloud-ui-datepicker', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\">\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"] }]
271
289
  }], ctorParameters: function () { return [{ type: i1.DateBRPipe }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { multiple: [{
272
290
  type: Input
273
291
  }], maxNumberOfDates: [{
@@ -298,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
298
316
  }], code: [{
299
317
  type: Input
300
318
  }] } });
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU1uRCxJQUFJLFdBQVcsR0FBRztJQUNoQixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDNUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzVELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNuRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFB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QjtJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7O3lIQXhVVSwyQkFBMkI7NkdBQTNCLDJCQUEyQix3YUFIM0IsQ0FBQyxtQ0FBbUMsQ0FBQyxnSkN2Q2xELHM3Q0E2Q0E7NEZESGEsMkJBQTJCO2tCQVh2QyxTQUFTOytCQUNFLHNCQUFzQixhQU9yQixDQUFDLG1DQUFtQyxDQUFDLGlCQUNqQyxpQkFBaUIsQ0FBQyxJQUFJO2lJQUs1QixRQUFRO3NCQUFoQixLQUFLO2dCQUlHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFHTSxPQUFPO3NCQUFuQixLQUFLO2dCQU9JLGFBQWE7c0JBQXRCLE1BQU07Z0JBRXlDLGdCQUFnQjtzQkFBL0QsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRXJDLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlQlJQaXBlIH0gZnJvbSAnLi4vLi4vX3BpcGVzJztcclxuXHJcbi8vIGh0dHBzOi8vbXltdGguZ2l0aHViLmlvL3ZhbmlsbGFqcy1kYXRlcGlja2VyLyMvXHJcbmRlY2xhcmUgdmFyIERhdGVwaWNrZXI6IGFueTtcclxuXHJcbnZhciB0cmFuc2xhdGlvbiA9IHtcclxuICBwdEJSOiB7XHJcbiAgICBkYXlzOiBbXCJEb21pbmdvXCIsIFwiU2VndW5kYVwiLCBcIlRlcsOnYVwiLCBcIlF1YXJ0YVwiLCBcIlF1aW50YVwiLCBcIlNleHRhXCIsIFwiU8OhYmFkb1wiXSxcclxuICAgIGRheXNTaG9ydDogW1wiRG9tXCIsIFwiU2VnXCIsIFwiVGVyXCIsIFwiUXVhXCIsIFwiUXVpXCIsIFwiU2V4XCIsIFwiU8OhYlwiXSxcclxuICAgIGRheXNNaW46IFtcIkRvXCIsIFwiU2VcIiwgXCJUZVwiLCBcIlF1XCIsIFwiUXVcIiwgXCJTZVwiLCBcIlNhXCJdLFxyXG4gICAgbW9udGhzOiBbXCJKYW5laXJvXCIsIFwiRmV2ZXJlaXJvXCIsIFwiTWFyw6dvXCIsIFwiQWJyaWxcIiwgXCJNYWlvXCIsIFwiSnVuaG9cIiwgXCJKdWxob1wiLCBcIkFnb3N0b1wiLCBcIlNldGVtYnJvXCIsIFwiT3V0dWJyb1wiLCBcIk5vdmVtYnJvXCIsIFwiRGV6ZW1icm9cIl0sXHJcbiAgICBtb250aHNTaG9ydDogW1wiSmFuXCIsIFwiRmV2XCIsIFwiTWFyXCIsIFwiQWJyXCIsIFwiTWFpXCIsIFwiSnVuXCIsIFwiSnVsXCIsIFwiQWdvXCIsIFwiU2V0XCIsIFwiT3V0XCIsIFwiTm92XCIsIFwiRGV6XCJdLFxyXG4gICAgdG9kYXk6IFwiSG9qZVwiLFxyXG4gICAgY2xlYXI6IFwiTGltcGFyXCIsXHJcbiAgICB0aXRsZUZvcm1hdDogXCJNTSB5XCIsXHJcbiAgICBmb3JtYXQ6IFwiZGQvbW0veXl5eVwiLFxyXG4gICAgd2Vla1N0YXJ0OiAwXHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGVwaWNrZXJDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktZGF0ZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcclxuICAgICcuL2RhdGVwaWNrZXIvY3NzL2RhdGVwaWNrZXIubWluLmNzcycsXHJcbiAgICAnLi9kYXRlcGlja2VyL2Nzcy9zdHlsZS5jc3MnLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vIG11bHRpcGxlIHBlcm1pdGUgc2VsZWNpb25hciBtdWx0aXBsYXMgZGF0YXNcclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBtYXhOdW1iZXJPZkRhdGVzIC0gTWF4aW11bSBudW1iZXIgb2YgZGF0ZXMgdXNlcnMgY2FuIHNlbGVjdC4gTm8gbGltaXQgaXMgYXBwbGllZCBpZiAwIGlzIHNldC5cclxuICAvLyBEZXBlbmRlIGRlOiBtdWx0aXBsZSBjb21vIHRydWVcclxuICBASW5wdXQoKSBtYXhOdW1iZXJPZkRhdGVzOiBudW1iZXIgPSAwO1xyXG5cclxuICAvLyBkYXlzT2ZXZWVrRGlzYWJsZWQgLSBEaWFzIGRhIHNlbWFuYSBkZXNhYmlsaWRhdG9zID0gMCBwYXJhIHNhYmFkbyBhdMOpIDYgcGFyYSBkb21pbmdvXHJcbiAgQElucHV0KCkgZGF5c09mV2Vla0Rpc2FibGVkOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAvLyBtaW5EYXRlIC0gRGF0YSBtaW5pbWEgcGFyYSBleGliaWNhbyBkbyBjYWxlbmRhcmlvIC0gZXg6IDAxLzAxLzIwMjBcclxuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gbWF4RGF0ZSAtIERhdGEgbWF4aW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAzMS8xMi8yMDIwXHJcbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vIGRhdGVzRGlzYWJsZWQgLSBEYXRhcyBkZXNhYmlsaXRhZGFzIC0gRXg6IFsnMTIvMTAvMjAyMCcsJzI1LzEyLzIwMjAnXVxyXG4gIEBJbnB1dCgpIGRhdGVzRGlzYWJsZWQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIC8vIG1vZGVJbnB1dCAtIEV4aWJlIHVtIGlucHV0IHBhcmEgcXVhbmRvIGNsaWNhciBhYnJpciBvIGNhbGVuZGFyaW9cclxuICBASW5wdXQoKSBtb2RlSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdXNlQm9yZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgY2hpbGRJbnB1dERhdGVUaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIG9uQ2hhbmdlIC0gRGlzcGFyYSBhIGRhdGEgc2VsZWNpb25hZGFcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueXx1bmRlZmluZWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbmdNb2RlbCh2OiBhbnkpe1xyXG5cclxuICAgIGlmKCB2ICYmIHYgIT09IHRoaXMuaW5uZXJWYWx1ZSApe1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAvL3RoaXMudG9TZXRNYXNrKHYpOyBcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHYpO1xyXG4gICAgfSBcclxuICB9XHJcbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueXx1bmRlZmluZWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0X2RhdGVwaWNrZXInLCB7c3RhdGljOiBmYWxzZX0pIGlucHV0X2RhdGVwaWNrZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgZGF0ZXBpY2tlcjogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGNvZGU6IHN0cmluZyA9ICd0Y2xvdWQtdWktZGF0ZXBpY2tlcic7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfRGF0ZUJSUGlwZTogRGF0ZUJSUGlwZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIElEOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLklEID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICBEYXRlcGlja2VyLmxvY2FsZXMucHRCUiA9IHRyYW5zbGF0aW9uLnB0QlI7ICAgIFxyXG4gICAgdGhpcy5zdGFydF9kYXRlcGlja2VyKCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIHRvU2V0TWFzayh2OiBzdHJpbmcpe1xyXG4gICAgcmV0dXJuIHRoaXMuX0RhdGVCUlBpcGUudHJhbnNmb3JtKHYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0X29wdGlvbnMoKXtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBuZXh0QXJyb3c6IGA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1yaWdodFwiPjwvaT5gLFxyXG4gICAgICBwcmV2QXJyb3c6IGA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1sZWZ0XCI+PC9pPmAsXHJcbiAgICAgIGZvcm1hdDogJ2RkL21tL3l5eXknLCAgICAgIFxyXG4gICAgICBkYXlzT2ZXZWVrSGlnaGxpZ2h0ZWQ6IFswLDZdLFxyXG4gICAgICBsYW5ndWFnZTogJ3B0QlInXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBpZiggKHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIG9wdGlvbnNbJ2RheXNPZldlZWtEaXNhYmxlZCddID0gdGhpcy5kYXlzT2ZXZWVrRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoICh0aGlzLmRhdGVzRGlzYWJsZWQpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgb3B0aW9uc1snZGF0ZXNEaXNhYmxlZCddID0gdGhpcy5kYXRlc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCB0aGlzLm1pbkRhdGUgIT09ICcnICl7XHJcbiAgICAgIG9wdGlvbnNbJ21pbkRhdGUnXSA9IHRoaXMubWluRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5tYXhEYXRlICE9PSAnJyApe1xyXG4gICAgICBvcHRpb25zWydtYXhEYXRlJ10gPSB0aGlzLm1heERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMubXVsdGlwbGUgKXsgICAgICBcclxuICAgICAgb3B0aW9uc1snbWF4TnVtYmVyT2ZEYXRlcyddID0gdGhpcy5tYXhOdW1iZXJPZkRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJEYXRlKCl7XHJcbiAgICBpZiggdGhpcy5kYXRlcGlja2VyICl7XHJcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXREYXRlKHtjbGVhcjogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRfZGF0ZXBpY2tlcigpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICBcclxuICAgICAgY29uc3QgaW5wdXRfZGF0ZXBpY2tlciA9IDxhbnk+IHRoaXMuaW5wdXRfZGF0ZXBpY2tlcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYoIGlucHV0X2RhdGVwaWNrZXIgKXtcclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywnREQvTU0vWVlZWScpO1xyXG5cclxuICAgICAgICBpZiggIXRoaXMudXNlQm9yZGVyICl7XHJcbiAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCdib3JkZXI6bm9uZTsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXgtd2lkdGg6IDEwNXB4OyBwYWRkaW5nOiAwOycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyID0gbmV3IERhdGVwaWNrZXIoIGlucHV0X2RhdGVwaWNrZXIsIHRoaXMuZ2V0X29wdGlvbnMoKSApO1xyXG5cclxuICAgICAgICBpZiggdGhpcy5pbm5lclZhbHVlICYmIHRoaXMuaW5uZXJWYWx1ZSAhPT0gJycgKXtcclxuICAgICAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2ID0gKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pID8gaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSA6ICcnO1xyXG4gICAgICAgICAgaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSA9IHRoaXMudG9TZXRNYXNrKHYpO1xyXG5cclxuICAgICAgICAgIGlmKCAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkubGVuZ3RoID49IDEwICl7XHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkuc3Vic3RyaW5nKDAsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgcGFydF9kYXRlID0gKHYpLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgIGlmKCAocGFydF9kYXRlKS5sZW5ndGggPT09IDMgKXtcclxuXHJcbiAgICAgICAgICAgICAgbGV0IGRpYSA9IHBhcnRfZGF0ZVswXTtcclxuICAgICAgICAgICAgICBsZXQgbWVzID0gcGFydF9kYXRlWzFdO1xyXG4gICAgICAgICAgICAgIGxldCBhbm8gPSBwYXJ0X2RhdGVbMl07XHJcblxyXG4gICAgICAgICAgICAgIG1lcyA9ICgrKG1lcykgPCAxMCApID8gYDAkeyttZXN9YCA6IG1lczsgIFxyXG4gICAgICAgICAgICAgIGRpYSA9ICgrKGRpYSkgPCAxMCApID8gYDAkeytkaWF9YCA6IGRpYTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShhbm8rJy0nK21lcysnLScrZGlhKTtcclxuICAgICAgICAgICAgICBpZiggZHQgKXtcclxuICAgICAgICAgICAgICAgIGlucHV0X2RhdGVwaWNrZXI/LmNoYW5nZURhdGU7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLklEKT8uYmx1cigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgIGlucHV0X2RhdGVwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlRGF0ZScsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiggZXZlbnQ/LmRldGFpbD8uZGF0ZSApe1xyXG4gICAgICAgICAgICB0aGlzLnRvU2VsZWN0ZWREYXRlKCBldmVudC5kZXRhaWwgKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9ICAgICAgXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZSgpe1xyXG4gICAgLy8gRXggZGUgdXNvXHJcbiAgICBjb25zdCBkYXRlcyA9IFsnMTgvMTEvMjAyMiddO1xyXG4gICAgaWYoIHRoaXMuZGF0ZXBpY2tlciApe1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuc2V0RGF0ZShkYXRlcyk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgdG9TZXREZWZhdWx0RGF0ZShkYXRlOiBzdHJpbmcgfCBzdHJpbmdbXSl7XHJcbiAgICBcclxuICAgIGlmKCBkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCB8fCBkYXRlID09PSAnJyApe1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRhdGVzID0gW10gYXMgc3RyaW5nW107XHJcblxyXG4gICAgaWYoIGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICl7XHJcbiAgICAgIGlmKCAoZGF0ZSkuaW5jbHVkZXMoJywnKSApe1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gKGRhdGUpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgZGF0ZSA9IGRhdGVzO1xyXG4gICAgICAgIGlmKCAhdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZSA9IGRhdGVzWzBdO1xyXG4gICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCBkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyApe1xyXG4gICAgICAoZGF0ZXMpLnB1c2goIGRhdGUgKTsgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF0ZXMgPSA8QXJyYXk8c3RyaW5nPj4gZGF0ZTtcclxuICAgIH1cclxuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoZGF0ZXMpOyAgICAgIFxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIHRvU2VsZWN0ZWREYXRlKGRldGFpbDogYW55KXsgICAgXHJcbiAgICBpZiggZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMgJiYgKGRldGFpbC5kYXRlcGlja2VyLmRhdGVzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGlmKCB0aGlzLm11bHRpcGxlICl7XHJcbiAgICAgICAgbGV0IGRhdGVzID0gW107XHJcbiAgICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgICBjb25zdCB0aW1lU3RhbXAgPSA8bnVtYmVyPiBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlc1tpXTtcclxuICAgICAgICAgIChkYXRlcykucHVzaCggdGhpcy5mb3JtYXRfZGF0ZSggdGltZVN0YW1wICkgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZXM7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7ICAgICAgICBcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgdGltZVN0YW1wID0gPG51bWJlcj4gZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXNbMF07XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZm9ybWF0X2RhdGUoIHRpbWVTdGFtcCApO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdChkYXRlKTtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jbGVhckRhdGUoKTtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICB9IFxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZTtcclxuICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7IFxyXG4gIH1cclxuXHJcbiAgZm9ybWF0X2RhdGUodGltZVN0YW1wOiBudW1iZXIpe1xyXG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lU3RhbXApO1xyXG5cclxuICAgIGxldCBkaWEgPSBgJHtkYXRlLmdldERhdGUoKX1gO1xyXG4gICAgbGV0IG1lcyA9IGAke2RhdGUuZ2V0TW9udGgoKSsxfWA7XHJcbiAgICBsZXQgYW5vID0gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XHJcblxyXG4gICAgZGlhID0gKCsoZGlhKSA8IDEwICkgPyBgMCR7K2RpYX1gIDogZGlhO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyBcclxuXHJcbiAgICBjb25zdCBkYXRlRm9ybWF0ID0gYCR7ZGlhfS8ke21lc30vJHthbm99YDtcclxuICAgIHJldHVybiBkYXRlRm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSBhcyBhbnk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgZWxlbWVudD8uZGF0ZXBpY2tlcj8uc2hvdygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG5cclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgLy8gdGhpcy50b1NldE1hc2sodik7ICAgICAgXHJcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgIH1lbHNle1xyXG4gICAgIC8vIHRoaXMuaW5uZXJWYWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIElucHV0IG1vZGUgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlSW5wdXRcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyIGlucHV0LXRjLWRhdGVwaWNrZXJcIiBbY2xhc3Mubm8tYm9yZGVyXT1cIiF1c2VCb3JkZXJcIiBbY2xhc3MuY2hpbGQtaW5wdXQtZGF0ZS10aW1lXT1cImNoaWxkSW5wdXREYXRlVGltZVwiID5cclxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLWJveC1pbnB1dFwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwidGQtaWNvblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lLWljb25cIiAoY2xpY2spPVwidG9DbGlja0luKElEKVwiID48aSBjbGFzcz1cImZhcyBmYS1jYWxlbmRhci1hbHRcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJ0ZC1kYXRlXCI+XHJcbiAgICAgICAgICA8aW5wdXQgI2lucHV0X2RhdGVwaWNrZXIgdHlwZT1cInRleHRcIiBuYW1lPVwie3tJRH19XCIgaWQ9XCJ7e0lEfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiID5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L2Rpdj5cclxuXHJcbiAgXHJcbiAgXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPCEtLSBJbmxpbmUgbW9kZSAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtb2RlSW5wdXRcIj4gIFxyXG4gIDxkaXYgY2xhc3M9XCJ0Y2xvdWQtdWktZGF0ZXBpY2tlciB0Y2xvdWQtdWktZGF0ZXBpY2tlci1zZWNvbmRcIiAjaW5wdXRfZGF0ZXBpY2tlciBpZD1cInt7SUR9fVwiIHBhdHRlcm49XCIvXlxcZHsyfVxcL1xcZHsyfVxcL1xcZHs0fSQvXCI+PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjwhLS0gRVggZGUgdXNvIFxyXG4gIDx0Yy1kYXRlcGlja2VyIFxyXG4gICAgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgIFtkYXlzT2ZXZWVrRGlzYWJsZWRdPVwiWzAsNl1cIlxyXG4gICAgW21pbkRhdGVdPVwiJzE4LzExLzIwMjEnXCJcclxuICAgIFttYXhEYXRlXT1cIicxOC8xMi8yMDIzJ1wiXHJcbiAgICBbZGF0ZXNEaXNhYmxlZF09XCJbJzEyLzEwLzIwMjInLCcyNS8xMi8yMDIyJ11cIlxyXG4gICAgW21vZGVJbnB1dF09XCJmYWxzZVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiID5cclxuICA8L3RjLWRhdGVwaWNrZXI+XHJcbiAgXHJcbiAgLy8gbXVsdGlwbGUgPSBmYWxzZVxyXG4gIC8vIGRhdGVWYWx1ZSAtIHN0cmluZyAtIHBvZGUgc2VyOiAxMi8xMi8yMDIyIFxyXG5cclxuICAvLyBtdWx0aXBsZSA9IHRydWVcclxuICAvLyBkYXRlVmFsdWUgLSBzdHJpbmcgLSBwb2RlIHNlcjogMTEvMTIvMjAyMiwxMi8xMi8yMDIyIC4uLiBcclxuXHJcbiAgPHByZT5kYXRhOiB7eyBkYXRlVmFsdWUgfX08L3ByZT5cclxuLS0+XHJcbiJdfQ==
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU1uRCxJQUFJLFdBQVcsR0FBRztJQUNoQixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDNUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzVELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNuRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFB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R0FBM0IsMkJBQTJCLHdhQUgzQixDQUFDLG1DQUFtQyxDQUFDLGdKQ3ZDbEQsbStDQTZDQTs0RkRIYSwyQkFBMkI7a0JBWHZDLFNBQVM7K0JBQ0Usc0JBQXNCLGFBT3JCLENBQUMsbUNBQW1DLENBQUMsaUJBQ2pDLGlCQUFpQixDQUFDLElBQUk7aUlBSzVCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHSSxRQUFRO3NCQUFqQixNQUFNO2dCQUdNLE9BQU87c0JBQW5CLEtBQUs7Z0JBT0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFeUMsZ0JBQWdCO3NCQUEvRCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFFckMsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERhdGVCUlBpcGUgfSBmcm9tICcuLi8uLi9fcGlwZXMnO1xyXG5cclxuLy8gaHR0cHM6Ly9teW10aC5naXRodWIuaW8vdmFuaWxsYWpzLWRhdGVwaWNrZXIvIy9cclxuZGVjbGFyZSB2YXIgRGF0ZXBpY2tlcjogYW55O1xyXG5cclxudmFyIHRyYW5zbGF0aW9uID0ge1xyXG4gIHB0QlI6IHtcclxuICAgIGRheXM6IFtcIkRvbWluZ29cIiwgXCJTZWd1bmRhXCIsIFwiVGVyw6dhXCIsIFwiUXVhcnRhXCIsIFwiUXVpbnRhXCIsIFwiU2V4dGFcIiwgXCJTw6FiYWRvXCJdLFxyXG4gICAgZGF5c1Nob3J0OiBbXCJEb21cIiwgXCJTZWdcIiwgXCJUZXJcIiwgXCJRdWFcIiwgXCJRdWlcIiwgXCJTZXhcIiwgXCJTw6FiXCJdLFxyXG4gICAgZGF5c01pbjogW1wiRG9cIiwgXCJTZVwiLCBcIlRlXCIsIFwiUXVcIiwgXCJRdVwiLCBcIlNlXCIsIFwiU2FcIl0sXHJcbiAgICBtb250aHM6IFtcIkphbmVpcm9cIiwgXCJGZXZlcmVpcm9cIiwgXCJNYXLDp29cIiwgXCJBYnJpbFwiLCBcIk1haW9cIiwgXCJKdW5ob1wiLCBcIkp1bGhvXCIsIFwiQWdvc3RvXCIsIFwiU2V0ZW1icm9cIiwgXCJPdXR1YnJvXCIsIFwiTm92ZW1icm9cIiwgXCJEZXplbWJyb1wiXSxcclxuICAgIG1vbnRoc1Nob3J0OiBbXCJKYW5cIiwgXCJGZXZcIiwgXCJNYXJcIiwgXCJBYnJcIiwgXCJNYWlcIiwgXCJKdW5cIiwgXCJKdWxcIiwgXCJBZ29cIiwgXCJTZXRcIiwgXCJPdXRcIiwgXCJOb3ZcIiwgXCJEZXpcIl0sXHJcbiAgICB0b2RheTogXCJIb2plXCIsXHJcbiAgICBjbGVhcjogXCJMaW1wYXJcIixcclxuICAgIHRpdGxlRm9ybWF0OiBcIk1NIHlcIixcclxuICAgIGZvcm1hdDogXCJkZC9tbS95eXl5XCIsXHJcbiAgICB3ZWVrU3RhcnQ6IDBcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgJy4vZGF0ZXBpY2tlci9jc3MvZGF0ZXBpY2tlci5taW4uY3NzJyxcclxuICAgICcuL2RhdGVwaWNrZXIvY3NzL3N0eWxlLmNzcycsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLy8gbXVsdGlwbGUgcGVybWl0ZSBzZWxlY2lvbmFyIG11bHRpcGxhcyBkYXRhc1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIG1heE51bWJlck9mRGF0ZXMgLSBNYXhpbXVtIG51bWJlciBvZiBkYXRlcyB1c2VycyBjYW4gc2VsZWN0LiBObyBsaW1pdCBpcyBhcHBsaWVkIGlmIDAgaXMgc2V0LlxyXG4gIC8vIERlcGVuZGUgZGU6IG11bHRpcGxlIGNvbW8gdHJ1ZVxyXG4gIEBJbnB1dCgpIG1heE51bWJlck9mRGF0ZXM6IG51bWJlciA9IDA7XHJcblxyXG4gIC8vIGRheXNPZldlZWtEaXNhYmxlZCAtIERpYXMgZGEgc2VtYW5hIGRlc2FiaWxpZGF0b3MgPSAwIHBhcmEgc2FiYWRvIGF0w6kgNiBwYXJhIGRvbWluZ29cclxuICBASW5wdXQoKSBkYXlzT2ZXZWVrRGlzYWJsZWQ6IG51bWJlcltdID0gW107XHJcblxyXG4gIC8vIG1pbkRhdGUgLSBEYXRhIG1pbmltYSBwYXJhIGV4aWJpY2FvIGRvIGNhbGVuZGFyaW8gLSBleDogMDEvMDEvMjAyMFxyXG4gIEBJbnB1dCgpIG1pbkRhdGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvLyBtYXhEYXRlIC0gRGF0YSBtYXhpbWEgcGFyYSBleGliaWNhbyBkbyBjYWxlbmRhcmlvIC0gZXg6IDMxLzEyLzIwMjBcclxuICBASW5wdXQoKSBtYXhEYXRlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gZGF0ZXNEaXNhYmxlZCAtIERhdGFzIGRlc2FiaWxpdGFkYXMgLSBFeDogWycxMi8xMC8yMDIwJywnMjUvMTIvMjAyMCddXHJcbiAgQElucHV0KCkgZGF0ZXNEaXNhYmxlZDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgLy8gbW9kZUlucHV0IC0gRXhpYmUgdW0gaW5wdXQgcGFyYSBxdWFuZG8gY2xpY2FyIGFicmlyIG8gY2FsZW5kYXJpb1xyXG4gIEBJbnB1dCgpIG1vZGVJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB1c2VCb3JkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBjaGlsZElucHV0RGF0ZVRpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gb25DaGFuZ2UgLSBEaXNwYXJhIGEgZGF0YSBzZWxlY2lvbmFkYVxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55fHVuZGVmaW5lZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcblxyXG4gICAgaWYoIHYgJiYgdiAhPT0gdGhpcy5pbm5lclZhbHVlICl7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7IC8vdGhpcy50b1NldE1hc2sodik7IFxyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodik7XHJcbiAgICB9IFxyXG4gIH1cclxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55fHVuZGVmaW5lZD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRfZGF0ZXBpY2tlcicsIHtzdGF0aWM6IGZhbHNlfSkgaW5wdXRfZGF0ZXBpY2tlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBkYXRlcGlja2VyOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgY29kZTogc3RyaW5nID0gJ3RjbG91ZC11aS1kYXRlcGlja2VyJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9EYXRlQlJQaXBlOiBEYXRlQlJQaXBlLFxyXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7IH1cclxuXHJcbiAgSUQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLklEID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICBEYXRlcGlja2VyLmxvY2FsZXMucHRCUiA9IHRyYW5zbGF0aW9uLnB0QlI7ICAgIFxyXG4gICAgdGhpcy5zdGFydF9kYXRlcGlja2VyKCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIHRvU2V0TWFzayh2OiBzdHJpbmcpe1xyXG4gICAgcmV0dXJuIHRoaXMuX0RhdGVCUlBpcGUudHJhbnNmb3JtKHYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0X29wdGlvbnMoKXtcclxuXHJcbiAgICAvLyBGdW7Dp8OjbyBwYXJhIGZvcm1hdGFyIHVtYSBkYXRhIG5vIGZ1c28gaG9yw6FyaW8gbG9jYWxcclxuICAgIGNvbnN0IGZvcm1hdERhdGVMb2NhbCA9IChkYXRlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTsgLy8gQWRpY2lvbmEgMSBwb3JxdWUgb3MgbWVzZXMgc8OjbyBpbmRleGFkb3MgYSBwYXJ0aXIgZGUgMFxyXG4gICAgICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZ1bsOnw6NvIHBhcmEgYW5hbGlzYXIgdW1hIGRhdGEgbm8gZnVzbyBob3LDoXJpbyBsb2NhbFxyXG4gICAgY29uc3QgcGFyc2VEYXRlTG9jYWwgPSAoZGF0ZVN0cmluZzogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGRhdGVTdHJpbmcuc3BsaXQoJy0nKTtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTsgLy8gU3VidHJhaSAxIHBvcnF1ZSBvcyBtZXNlcyBzw6NvIGluZGV4YWRvcyBhIHBhcnRpciBkZSAwXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG5leHRBcnJvdzogYDxpIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXJpZ2h0XCI+PC9pPmAsXHJcbiAgICAgIHByZXZBcnJvdzogYDxpIGNsYXNzPVwiZmFzIGZhLWNhcmV0LWxlZnRcIj48L2k+YCxcclxuICAgICAgZm9ybWF0OiAnZGQvbW0veXl5eScsICAgICAgXHJcbiAgICAgIGRheXNPZldlZWtIaWdobGlnaHRlZDogWzAsNl0sXHJcbiAgICAgIGxhbmd1YWdlOiAncHRCUicsXHJcbiAgICAgIGZvcm1hdHRlcjoge1xyXG4gICAgICAgIGRhdGU6IGZvcm1hdERhdGVMb2NhbCxcclxuICAgICAgfSxcclxuICAgICAgcGFyc2VyOiB7XHJcbiAgICAgICAgZGF0ZTogcGFyc2VEYXRlTG9jYWwsXHJcbiAgICAgIH0sXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBpZiggKHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIG9wdGlvbnNbJ2RheXNPZldlZWtEaXNhYmxlZCddID0gdGhpcy5kYXlzT2ZXZWVrRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoICh0aGlzLmRhdGVzRGlzYWJsZWQpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgb3B0aW9uc1snZGF0ZXNEaXNhYmxlZCddID0gdGhpcy5kYXRlc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCB0aGlzLm1pbkRhdGUgIT09ICcnICl7XHJcbiAgICAgIG9wdGlvbnNbJ21pbkRhdGUnXSA9IHRoaXMubWluRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5tYXhEYXRlICE9PSAnJyApe1xyXG4gICAgICBvcHRpb25zWydtYXhEYXRlJ10gPSB0aGlzLm1heERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMubXVsdGlwbGUgKXsgICAgICBcclxuICAgICAgb3B0aW9uc1snbWF4TnVtYmVyT2ZEYXRlcyddID0gdGhpcy5tYXhOdW1iZXJPZkRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJEYXRlKCl7XHJcbiAgICBpZiggdGhpcy5kYXRlcGlja2VyICl7XHJcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXREYXRlKHtjbGVhcjogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRfZGF0ZXBpY2tlcigpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICBcclxuICAgICAgY29uc3QgaW5wdXRfZGF0ZXBpY2tlciA9IDxhbnk+IHRoaXMuaW5wdXRfZGF0ZXBpY2tlcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYoIGlucHV0X2RhdGVwaWNrZXIgKXtcclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywnREQvTU0vWVlZWScpO1xyXG5cclxuICAgICAgICBpZiggIXRoaXMudXNlQm9yZGVyICl7XHJcbiAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCdib3JkZXI6bm9uZTsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXgtd2lkdGg6IDEwNXB4OyBwYWRkaW5nOiAwOycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyID0gbmV3IERhdGVwaWNrZXIoIGlucHV0X2RhdGVwaWNrZXIsIHRoaXMuZ2V0X29wdGlvbnMoKSApO1xyXG5cclxuICAgICAgICBpZiggdGhpcy5pbm5lclZhbHVlICYmIHRoaXMuaW5uZXJWYWx1ZSAhPT0gJycgKXtcclxuICAgICAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2ID0gKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pID8gaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSA6ICcnO1xyXG4gICAgICAgICAgaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSA9IHRoaXMudG9TZXRNYXNrKHYpO1xyXG5cclxuICAgICAgICAgIGlmKCAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkubGVuZ3RoID49IDEwICl7XHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkuc3Vic3RyaW5nKDAsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgcGFydF9kYXRlID0gKHYpLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgIGlmKCAocGFydF9kYXRlKS5sZW5ndGggPT09IDMgKXtcclxuXHJcbiAgICAgICAgICAgICAgbGV0IGRpYSA9IHBhcnRfZGF0ZVswXTtcclxuICAgICAgICAgICAgICBsZXQgbWVzID0gcGFydF9kYXRlWzFdO1xyXG4gICAgICAgICAgICAgIGxldCBhbm8gPSBwYXJ0X2RhdGVbMl07XHJcblxyXG4gICAgICAgICAgICAgIG1lcyA9ICgrKG1lcykgPCAxMCApID8gYDAkeyttZXN9YCA6IG1lczsgIFxyXG4gICAgICAgICAgICAgIGRpYSA9ICgrKGRpYSkgPCAxMCApID8gYDAkeytkaWF9YCA6IGRpYTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShhbm8rJy0nK21lcysnLScrZGlhKTtcclxuICAgICAgICAgICAgICBpZiggZHQgKXtcclxuICAgICAgICAgICAgICAgIGlucHV0X2RhdGVwaWNrZXI/LmNoYW5nZURhdGU7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLklEKT8uYmx1cigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgIGlucHV0X2RhdGVwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlRGF0ZScsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiggZXZlbnQ/LmRldGFpbD8uZGF0ZSApe1xyXG4gICAgICAgICAgICB0aGlzLnRvU2VsZWN0ZWREYXRlKCBldmVudC5kZXRhaWwgKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9ICAgICAgXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZSgpe1xyXG4gICAgLy8gRXggZGUgdXNvXHJcbiAgICBjb25zdCBkYXRlcyA9IFsnMTgvMTEvMjAyMiddO1xyXG4gICAgaWYoIHRoaXMuZGF0ZXBpY2tlciApe1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuc2V0RGF0ZShkYXRlcyk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgdG9TZXREZWZhdWx0RGF0ZShkYXRlOiBzdHJpbmcgfCBzdHJpbmdbXSl7XHJcbiAgICBcclxuICAgIGlmKCBkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCB8fCBkYXRlID09PSAnJyApe1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRhdGVzID0gW10gYXMgc3RyaW5nW107XHJcblxyXG4gICAgaWYoIGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICl7XHJcbiAgICAgIGlmKCAoZGF0ZSkuaW5jbHVkZXMoJywnKSApe1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gKGRhdGUpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgZGF0ZSA9IGRhdGVzO1xyXG4gICAgICAgIGlmKCAhdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZSA9IGRhdGVzWzBdO1xyXG4gICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCBkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyApe1xyXG4gICAgICAoZGF0ZXMpLnB1c2goIGRhdGUgKTsgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF0ZXMgPSA8QXJyYXk8c3RyaW5nPj4gZGF0ZTtcclxuICAgIH1cclxuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoZGF0ZXMpOyAgICAgIFxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIHRvU2VsZWN0ZWREYXRlKGRldGFpbDogYW55KXsgICAgXHJcbiAgICBpZiggZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMgJiYgKGRldGFpbC5kYXRlcGlja2VyLmRhdGVzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGlmKCB0aGlzLm11bHRpcGxlICl7XHJcbiAgICAgICAgbGV0IGRhdGVzID0gW107XHJcbiAgICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgICBjb25zdCB0aW1lU3RhbXAgPSA8bnVtYmVyPiBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlc1tpXTtcclxuICAgICAgICAgIChkYXRlcykucHVzaCggdGhpcy5mb3JtYXRfZGF0ZSggdGltZVN0YW1wICkgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZXM7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7ICAgICAgICBcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgdGltZVN0YW1wID0gPG51bWJlcj4gZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXNbMF07XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZm9ybWF0X2RhdGUoIHRpbWVTdGFtcCApO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdChkYXRlKTtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jbGVhckRhdGUoKTtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICB9IFxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZTtcclxuICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7IFxyXG4gIH1cclxuXHJcbiAgZm9ybWF0X2RhdGUodGltZVN0YW1wOiBudW1iZXIpe1xyXG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lU3RhbXApO1xyXG5cclxuICAgIGxldCBkaWEgPSBgJHtkYXRlLmdldERhdGUoKX1gO1xyXG4gICAgbGV0IG1lcyA9IGAke2RhdGUuZ2V0TW9udGgoKSsxfWA7XHJcbiAgICBsZXQgYW5vID0gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XHJcblxyXG4gICAgZGlhID0gKCsoZGlhKSA8IDEwICkgPyBgMCR7K2RpYX1gIDogZGlhO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyBcclxuXHJcbiAgICBjb25zdCBkYXRlRm9ybWF0ID0gYCR7ZGlhfS8ke21lc30vJHthbm99YDtcclxuICAgIHJldHVybiBkYXRlRm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSBhcyBhbnk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgZWxlbWVudD8uZGF0ZXBpY2tlcj8uc2hvdygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG5cclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgLy8gdGhpcy50b1NldE1hc2sodik7ICAgICAgXHJcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgIH1lbHNle1xyXG4gICAgIC8vIHRoaXMuaW5uZXJWYWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIElucHV0IG1vZGUgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlSW5wdXRcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyIGlucHV0LXRjLWRhdGVwaWNrZXJcIiBbY2xhc3Mubm8tYm9yZGVyXT1cIiF1c2VCb3JkZXJcIiBbY2xhc3MuY2hpbGQtaW5wdXQtZGF0ZS10aW1lXT1cImNoaWxkSW5wdXREYXRlVGltZVwiID5cclxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLWJveC1pbnB1dFwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwidGQtaWNvblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lLWljb25cIiAoY2xpY2spPVwidG9DbGlja0luKElEKVwiID48aSBjbGFzcz1cImZhcyBmYS1jYWxlbmRhci1hbHRcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJ0ZC1kYXRlXCI+XHJcbiAgICAgICAgICA8aW5wdXQgI2lucHV0X2RhdGVwaWNrZXIgdHlwZT1cInRleHRcIiBuYW1lPVwie3tJRH19XCIgaWQ9XCJ7e0lEfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFt0aXRsZV09XCJpbm5lclZhbHVlXCI+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcblxyXG4gIFxyXG4gIFxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjwhLS0gSW5saW5lIG1vZGUgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9kZUlucHV0XCI+ICBcclxuICA8ZGl2IGNsYXNzPVwidGNsb3VkLXVpLWRhdGVwaWNrZXIgdGNsb3VkLXVpLWRhdGVwaWNrZXItc2Vjb25kXCIgI2lucHV0X2RhdGVwaWNrZXIgaWQ9XCJ7e0lEfX1cIiBwYXR0ZXJuPVwiL15cXGR7Mn1cXC9cXGR7Mn1cXC9cXGR7NH0kL1wiIFt0aXRsZV09XCJpbm5lclZhbHVlXCI+PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjwhLS0gRVggZGUgdXNvIFxyXG4gIDx0Yy1kYXRlcGlja2VyIFxyXG4gICAgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgIFtkYXlzT2ZXZWVrRGlzYWJsZWRdPVwiWzAsNl1cIlxyXG4gICAgW21pbkRhdGVdPVwiJzE4LzExLzIwMjEnXCJcclxuICAgIFttYXhEYXRlXT1cIicxOC8xMi8yMDIzJ1wiXHJcbiAgICBbZGF0ZXNEaXNhYmxlZF09XCJbJzEyLzEwLzIwMjInLCcyNS8xMi8yMDIyJ11cIlxyXG4gICAgW21vZGVJbnB1dF09XCJmYWxzZVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiID5cclxuICA8L3RjLWRhdGVwaWNrZXI+XHJcbiAgXHJcbiAgLy8gbXVsdGlwbGUgPSBmYWxzZVxyXG4gIC8vIGRhdGVWYWx1ZSAtIHN0cmluZyAtIHBvZGUgc2VyOiAxMi8xMi8yMDIyIFxyXG5cclxuICAvLyBtdWx0aXBsZSA9IHRydWVcclxuICAvLyBkYXRlVmFsdWUgLSBzdHJpbmcgLSBwb2RlIHNlcjogMTEvMTIvMjAyMiwxMi8xMi8yMDIyIC4uLiBcclxuXHJcbiAgPHByZT5kYXRhOiB7eyBkYXRlVmFsdWUgfX08L3ByZT5cclxuLS0+XHJcbiJdfQ==