@dev-tcloud/tcloud-ui 0.1.18 → 0.1.20

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.
@@ -14,7 +14,13 @@ export class TCloudUiElCopyDirective {
14
14
  const btn_copy = this.renderer.createElement('i');
15
15
  var copyText = () => {
16
16
  const elementWithCopyAttribute = document.querySelector(`[data-el-copy="${id}"]`);
17
- const copyText = elementWithCopyAttribute?.textContent;
17
+ let copyText = '';
18
+ if (elementWithCopyAttribute && elementWithCopyAttribute.tagName && (elementWithCopyAttribute.tagName).toUpperCase() === 'INPUT') {
19
+ copyText = elementWithCopyAttribute?.value;
20
+ }
21
+ else {
22
+ copyText = elementWithCopyAttribute?.textContent;
23
+ }
18
24
  navigator.clipboard.writeText(copyText);
19
25
  this.renderer.removeClass(btn_copy, 'fa-copy');
20
26
  this.renderer.addClass(btn_copy, 'fa-check');
@@ -33,7 +39,19 @@ export class TCloudUiElCopyDirective {
33
39
  this.renderer.setAttribute(btn_copy, 'id', id);
34
40
  this.renderer.setAttribute(btn_copy, 'title', 'Copy');
35
41
  this.renderer.listen(btn_copy, 'click', () => { copyText(); });
36
- this.renderer.appendChild(this.el.nativeElement, btn_copy);
42
+ if (((this.el.nativeElement).tagName).toUpperCase() === 'INPUT') {
43
+ let classList = this.el.nativeElement?.classList;
44
+ if (classList && (classList).length > 0 && ('tc-form-control').indexOf(classList) > -1) {
45
+ this.renderer.addClass(btn_copy, 'tcloud-ui-el-input-copy-tc-form-control');
46
+ }
47
+ else {
48
+ this.renderer.addClass(btn_copy, 'tcloud-ui-el-input-copy');
49
+ }
50
+ this.renderer.appendChild(this.el.nativeElement.parentNode, btn_copy);
51
+ }
52
+ else {
53
+ this.renderer.appendChild(this.el.nativeElement, btn_copy);
54
+ }
37
55
  }
38
56
  generateID(target) {
39
57
  const ref = (target) ? `-${target}` : '';
@@ -48,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
48
66
  selector: '[TCCopy]'
49
67
  }]
50
68
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWwtY29weS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy9lbC1jb3B5L2VsLWNvcHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFDOztBQU0vRSxNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSnJCLFlBQU8sR0FBWSxLQUFLLENBQUM7SUFLNUIsQ0FBQztJQUVOLFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZTtRQUViLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxELElBQUksUUFBUSxHQUFHLEdBQUUsRUFBRTtZQUVmLE1BQU0sd0JBQXdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRixNQUFNLFFBQVEsR0FBRyx3QkFBd0IsRUFBRSxXQUFZLENBQUM7WUFDeEQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUU3QyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2hELENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUViLENBQUMsQ0FBQTtRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBSTNFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFHL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFHN0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFlO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPLGNBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNsRyxDQUFDOztxSEEzRFUsdUJBQXVCO3lHQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uSW5pdCwgUmVuZGVyZXIyLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbVENDb3B5XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRWxDb3B5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuICBwcml2YXRlIF9pc0NvcHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICAgICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnZWwnLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgIHRoaXMuc2V0SXRlbUZ1bmNDb3B5KCk7XHJcbiAgfVxyXG5cclxuICBzZXRJdGVtRnVuY0NvcHkoKXtcclxuXHJcbiAgICBjb25zdCBidG5fY29weSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaScpO1xyXG5cclxuICAgIHZhciBjb3B5VGV4dCA9ICgpPT57XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgZWxlbWVudFdpdGhDb3B5QXR0cmlidXRlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtZWwtY29weT1cIiR7aWR9XCJdYCk7XHJcbiAgICAgICAgY29uc3QgY29weVRleHQgPSBlbGVtZW50V2l0aENvcHlBdHRyaWJ1dGU/LnRleHRDb250ZW50ITtcclxuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjb3B5VGV4dCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoYnRuX2NvcHksICdmYS1jb3B5Jyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidG5fY29weSwgJ2ZhLWNoZWNrJyk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ0bl9jb3B5LCAnZmEtY2hlY2snKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidG5fY29weSwgJ2ZhLWNvcHknKTtcclxuICAgICAgICB9LCAzMDAwKTtcclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGF0YS1lbC1jb3B5JywgYCR7aWR9YCk7XHJcblxyXG4gICAgXHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShidG5fY29weSwgJ2N1cnNvcicsICdwb2ludGVyJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGJ0bl9jb3B5LCAnbWFyZ2luLWxlZnQnLCAnM3B4Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ0bl9jb3B5LCAnZmFzJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ0bl9jb3B5LCAnZmEtY29weScpO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnRuX2NvcHksICd0Y2xvdWQtdWktZWwtY29weScpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnRuX2NvcHksICdpZCcsIGlkKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGJ0bl9jb3B5LCAndGl0bGUnLCAnQ29weScpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oYnRuX2NvcHksICdjbGljaycsICgpID0+IHsgY29weVRleHQoKTsgfSk7XHJcblxyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBidG5fY29weSk7IFxyXG5cclxuICAgIFxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVJRCh0YXJnZXQ/OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICBjb25zdCByZWYgPSAodGFyZ2V0KSA/IGAtJHt0YXJnZXR9YCA6ICcnO1xyXG4gICAgcmV0dXJuIGB0Yy1lbC1jb3B5LSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfSR7cmVmfWA7XHJcbiAgfVxyXG5cclxufSJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWwtY29weS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy9lbC1jb3B5L2VsLWNvcHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFDOztBQU0vRSxNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSnJCLFlBQU8sR0FBWSxLQUFLLENBQUM7SUFLNUIsQ0FBQztJQUVOLFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZTtRQUViLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxELElBQUksUUFBUSxHQUFHLEdBQUUsRUFBRTtZQUNmLE1BQU0sd0JBQXdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQVEsQ0FBQztZQUN6RixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUE7WUFDakIsSUFBSSx3QkFBd0IsSUFBSSx3QkFBd0IsQ0FBQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLEVBQUU7Z0JBQ2hJLFFBQVEsR0FBRyx3QkFBd0IsRUFBRSxLQUFNLENBQUM7YUFDN0M7aUJBQUk7Z0JBQ0gsUUFBUSxHQUFHLHdCQUF3QixFQUFFLFdBQVksQ0FBQzthQUNuRDtZQUNELFNBQVMsQ0FB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QUUsQ0FBQztRQUN6QyxPQUFPLGNBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNsRyxDQUFDOztxSEF2RVUsdUJBQXVCO3lHQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uSW5pdCwgUmVuZGVyZXIyLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbVENDb3B5XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRWxDb3B5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuICBwcml2YXRlIF9pc0NvcHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICAgICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnZWwnLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgIHRoaXMuc2V0SXRlbUZ1bmNDb3B5KCk7XHJcbiAgfVxyXG5cclxuICBzZXRJdGVtRnVuY0NvcHkoKXtcclxuXHJcbiAgICBjb25zdCBidG5fY29weSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaScpO1xyXG5cclxuICAgIHZhciBjb3B5VGV4dCA9ICgpPT57ICAgICAgICBcclxuICAgICAgICBjb25zdCBlbGVtZW50V2l0aENvcHlBdHRyaWJ1dGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1lbC1jb3B5PVwiJHtpZH1cIl1gKSBhcyBhbnk7XHJcbiAgICAgICAgbGV0IGNvcHlUZXh0ID0gJydcclxuICAgICAgICBpZiggZWxlbWVudFdpdGhDb3B5QXR0cmlidXRlICYmIGVsZW1lbnRXaXRoQ29weUF0dHJpYnV0ZS50YWdOYW1lICYmIChlbGVtZW50V2l0aENvcHlBdHRyaWJ1dGUudGFnTmFtZSkudG9VcHBlckNhc2UoKSA9PT0gJ0lOUFVUJyApe1xyXG4gICAgICAgICAgY29weVRleHQgPSBlbGVtZW50V2l0aENvcHlBdHRyaWJ1dGU/LnZhbHVlITtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGNvcHlUZXh0ID0gZWxlbWVudFdpdGhDb3B5QXR0cmlidXRlPy50ZXh0Q29udGVudCE7XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoY29weVRleHQpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoYnRuX2NvcHksICdmYS1jb3B5Jyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidG5fY29weSwgJ2ZhLWNoZWNrJyk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoYnRuX2NvcHksICdmYS1jaGVjaycpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ0bl9jb3B5LCAnZmEtY29weScpO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlkID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdkYXRhLWVsLWNvcHknLCBgJHtpZH1gKTtcclxuXHJcbiAgICBcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoYnRuX2NvcHksICdjdXJzb3InLCAncG9pbnRlcicpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShidG5fY29weSwgJ21hcmdpbi1sZWZ0JywgJzNweCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidG5fY29weSwgJ2ZhcycpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidG5fY29weSwgJ2ZhLWNvcHknKTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ0bl9jb3B5LCAndGNsb3VkLXVpLWVsLWNvcHknKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGJ0bl9jb3B5LCAnaWQnLCBpZCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShidG5fY29weSwgJ3RpdGxlJywgJ0NvcHknKTtcclxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGJ0bl9jb3B5LCAnY2xpY2snLCAoKSA9PiB7IGNvcHlUZXh0KCk7IH0pO1xyXG5cclxuICAgIGlmKCAoKHRoaXMuZWwubmF0aXZlRWxlbWVudCkudGFnTmFtZSkudG9VcHBlckNhc2UoKSA9PT0gJ0lOUFVUJyApe1xyXG4gICAgICBsZXQgY2xhc3NMaXN0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QhXHJcbiAgICAgIGlmKCBjbGFzc0xpc3QgJiYgKGNsYXNzTGlzdCkubGVuZ3RoID4gMCAmJiAoJ3RjLWZvcm0tY29udHJvbCcpLmluZGV4T2YoY2xhc3NMaXN0KSA+IC0xICl7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidG5fY29weSwgJ3RjbG91ZC11aS1lbC1pbnB1dC1jb3B5LXRjLWZvcm0tY29udHJvbCcpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ0bl9jb3B5LCAndGNsb3VkLXVpLWVsLWlucHV0LWNvcHknKTtcclxuICAgICAgfSAgICAgIFxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLCBidG5fY29weSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGJ0bl9jb3B5KTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuXHJcbiAgICBcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQodGFyZ2V0Pzogc3RyaW5nKTogc3RyaW5ne1xyXG4gICAgY29uc3QgcmVmID0gKHRhcmdldCkgPyBgLSR7dGFyZ2V0fWAgOiAnJztcclxuICAgIHJldHVybiBgdGMtZWwtY29weS0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX0ke3JlZn1gO1xyXG4gIH1cclxuXHJcbn0iXX0=
@@ -20,38 +20,41 @@ export class TCloudUiTooltipDirective {
20
20
  }
21
21
  };
22
22
  hoverOutCallback;
23
- const scrollTop = window.scrollY || window.pageYOffset;
24
- const tooltip = this.renderer.createElement('div');
25
- const rect = this.el.nativeElement?.getBoundingClientRect();
26
- const direction = this.el.nativeElement?.attributes['ng-reflect--t-cdirection']?.value || 'top';
27
- const el_position_x = (rect?.left) ? parseInt(rect?.left) : 0;
28
- const el_position_y = (rect?.top) ? parseInt(rect?.top + scrollTop) : 0;
29
- let width = 0;
30
- let height = 0;
31
- if (event && event.target) {
32
- const _event = event.target;
33
- height = _event.offsetHeight;
34
- width = _event.offsetWidth;
35
- }
36
- const top = `${(el_position_y - ((height / 2) + 10))}px`;
37
- const left = `${el_position_x + (width / 2)}px`;
38
- this.renderer.setStyle(tooltip, 'top', '0px');
39
- this.renderer.setStyle(tooltip, 'left', '0px');
40
- this.renderer.setStyle(tooltip, 'opacity', '0');
41
- this.renderer.addClass(tooltip, 'tc-directive-tooltip');
42
- this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
43
- const id = this.generateID();
44
- this.renderer.setAttribute(tooltip, 'id', id);
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);
23
+ setTimeout(() => {
24
+ const scrollTop = window.scrollY || window.pageYOffset;
25
+ const tooltip = this.renderer.createElement('div');
26
+ const rect = this.el.nativeElement?.getBoundingClientRect();
27
+ // const direction = this.el.nativeElement?.attributes['ng-reflect--t-cdirection']?.value || 'top';
28
+ const direction = this._direction || 'top';
29
+ const el_position_x = (rect?.left) ? parseInt(rect?.left) : 0;
30
+ const el_position_y = (rect?.top) ? parseInt(rect?.top + scrollTop) : 0;
31
+ let width = 0;
32
+ let height = 0;
33
+ if (event && event.target) {
34
+ const _event = event.target;
35
+ height = _event.offsetHeight;
36
+ width = _event.offsetWidth;
53
37
  }
54
- }
38
+ const top = `${(el_position_y - ((height / 2) + 10))}px`;
39
+ const left = `${el_position_x + (width / 2)}px`;
40
+ this.renderer.setStyle(tooltip, 'top', '0px');
41
+ this.renderer.setStyle(tooltip, 'left', '0px');
42
+ this.renderer.setStyle(tooltip, 'opacity', '0');
43
+ this.renderer.addClass(tooltip, 'tc-directive-tooltip');
44
+ this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
45
+ const id = this.generateID();
46
+ this.renderer.setAttribute(tooltip, 'id', id);
47
+ const textNode = this.info_text;
48
+ if (textNode !== undefined && textNode !== null && textNode !== '') {
49
+ tooltip.innerHTML = textNode;
50
+ this.renderer.appendChild(document.body, tooltip);
51
+ this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
52
+ if (tooltip) {
53
+ tooltip.addEventListener('mouseenter', hoverInCallback);
54
+ tooltip.addEventListener('mouseleave', hoverOutCallback);
55
+ }
56
+ }
57
+ });
55
58
  }
56
59
  onMouseOut(event) {
57
60
  this.remove = true;
@@ -139,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
139
142
  }], TCdirection: [{
140
143
  type: Input
141
144
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXJGLE1BQU0sT0FBTyx3QkFBd0I7SUE0Rm5DLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBNUY3QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBRXhCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFpRmYsZUFBVSxHQUF3QyxLQUFLLENBQUM7SUFVN0QsQ0FBQztJQXpGbUMsV0FBVyxDQUFDLEtBQWlCO1FBRWxFLElBQUksZUFBZSxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLENBQUE7UUFFRCxJQUFJLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixNQUFNLFNBQVMsR0FBUyxRQUFRLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDeEUsSUFBSSxTQUFTLEVBQUU7Z0JBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQUU7UUFDeEMsQ0FBQyxDQUFBO1FBRUQsZ0JBQWdCLENBQUM7UUFFakIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDN0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUNoRyxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDekIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQWEsQ0FBQztZQUNuQyxNQUFNLEdBQUksTUFBTSxDQUFDLFlBQVksQ0FBQztZQUM5QixLQUFLLEdBQUssTUFBTSxDQUFDLFdBQVcsQ0FBQztTQUM5QjtRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBRSxJQUFJLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxhQUFhLEdBQUcsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsd0JBQXdCLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDckUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVoQyxJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFO1lBRWxFLE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRS9FLElBQUksT0FBTyxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7Z0JBQ3hELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUMxRDtTQUNGO0lBRUgsQ0FBQztJQUVxQyxVQUFVLENBQUMsS0FBaUI7UUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBRSxRQUFRLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQWM7UUFDM0IsSUFBSSxTQUFTLEVBQUU7WUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDZixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7SUFDSCxDQUFDO0lBR0QsSUFBYSxTQUFTLENBQUUsT0FBWTtRQUNsQyxJQUFJLE9BQU8sRUFBQztZQUNWLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO2FBQ2hDO2lCQUFJO2dCQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO2FBQzFCO1NBQ0Y7SUFDSCxDQUFDO0lBR0QsSUFBYSxXQUFXLENBQUUsU0FBYztRQUN0QyxJQUFJLFNBQVMsRUFBQztZQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQVFELFVBQVUsQ0FBQyxNQUFlO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPLGNBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNsRyxDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVUsRUFBRSxNQUFjLEVBQUUsS0FBYSxFQUFFLGFBQXFCLEVBQUUsYUFBcUIsRUFBRSxTQUFpQjtRQUN0SCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxPQUFPLEdBQVEsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQzVDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFFMUM7Ozs7OztjQU1FO1lBRUYsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ1osSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ1osTUFBTSxlQUFlLEdBQUcsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4RSxJQUFJLFNBQVMsS0FBSyxLQUFLLEVBQUU7Z0JBQ3ZCLEdBQUcsR0FBRyxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzVDLEdBQUcsR0FBRyxlQUFlLENBQUM7YUFDdkI7WUFFRCxJQUFJLFNBQVMsS0FBSyxRQUFRLEVBQUU7Z0JBQzFCLEdBQUcsR0FBRyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3BDLEdBQUcsR0FBRyxlQUFlLENBQUM7YUFDdkI7WUFFRCxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7Z0JBQ3hCLEdBQUcsR0FBRyxhQUFhLEdBQUcsQ0FBQyxjQUFjLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELEdBQUcsR0FBRyxlQUFlLEdBQUcsYUFBYSxHQUFDLENBQUMsR0FBRyxLQUFLLEdBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUN4RDtZQUVELElBQUksU0FBUyxLQUFLLE9BQU8sRUFBRTtnQkFDekIsR0FBRyxHQUFHLGFBQWEsR0FBRyxDQUFDLGNBQWMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsR0FBRyxHQUFHLGVBQWUsR0FBRyxhQUFhLEdBQUMsQ0FBQyxHQUFHLEtBQUssR0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3hEO1lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztzSEFsSlUsd0JBQXdCOzBHQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7eUhBT3dDLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXNEQyxVQUFVO3NCQUEvQyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQnZCLFNBQVM7c0JBQXJCLEtBQUs7Z0JBVU8sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBJbnB1dCwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tUQ3Rvb2x0aXBdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlUb29sdGlwRGlyZWN0aXZlIHtcclxuXHJcbiAgcmVtb3ZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGluZm9fdGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicsIFsnJGV2ZW50J10pIG9uTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcblxyXG4gICAgbGV0IGhvdmVySW5DYWxsYmFjayA9ICgpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaG92ZXJPdXRDYWxsYmFjayA9ICgpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmUgPSB0cnVlO1xyXG4gICAgICBjb25zdCBjdXN0b21EaXYgPSA8YW55PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudGMtZGlyZWN0aXZlLXRvb2x0aXAnKTtcclxuICAgICAgaWYoIGN1c3RvbURpdiApeyBjdXN0b21EaXYucmVtb3ZlKCk7IH0gICAgICBcclxuICAgIH1cclxuXHJcbiAgICBob3Zlck91dENhbGxiYWNrO1xyXG5cclxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdy5zY3JvbGxZIHx8IHdpbmRvdy5wYWdlWU9mZnNldDtcclxuICAgIGNvbnN0IHRvb2x0aXAgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgY29uc3QgcmVjdCAgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Py5hdHRyaWJ1dGVzWyduZy1yZWZsZWN0LS10LWNkaXJlY3Rpb24nXT8udmFsdWUgfHwgJ3RvcCc7XHJcbiAgICBjb25zdCBlbF9wb3NpdGlvbl94ID0gKHJlY3Q/LmxlZnQpID8gcGFyc2VJbnQocmVjdD8ubGVmdCkgOiAwO1xyXG4gICAgY29uc3QgZWxfcG9zaXRpb25feSA9IChyZWN0Py50b3AgKSA/IHBhcnNlSW50KHJlY3Q/LnRvcCAgKyBzY3JvbGxUb3ApIDogMDtcclxuXHJcbiAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgbGV0IGhlaWdodCA9IDA7XHJcbiAgICBpZiggZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICl7XHJcbiAgICAgIGNvbnN0IF9ldmVudCA9IGV2ZW50LnRhcmdldCBhcyBhbnk7XHJcbiAgICAgIGhlaWdodCAgPSBfZXZlbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICB3aWR0aCAgID0gX2V2ZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRvcCA9IGAkeyhlbF9wb3NpdGlvbl95IC0gKChoZWlnaHQvMikgKyAxMCkgKX1weGA7XHJcbiAgICBjb25zdCBsZWZ0ID0gYCR7ZWxfcG9zaXRpb25feCArICh3aWR0aC8yKSB9cHhgO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAndG9wJywgJzBweCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnbGVmdCcsICcwcHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ29wYWNpdHknLCAnMCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0b29sdGlwLCAndGMtZGlyZWN0aXZlLXRvb2x0aXAnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgYHRjLWRpcmVjdGl2ZS10b29sdGlwLSR7ZGlyZWN0aW9ufWApO1xyXG4gICAgY29uc3QgaWQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRvb2x0aXAsICdpZCcsIGlkKTtcclxuICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5pbmZvX3RleHQ7XHJcblxyXG4gICAgaWYoIHRleHROb2RlICE9PSB1bmRlZmluZWQgJiYgdGV4dE5vZGUgIT09IG51bGwgJiYgdGV4dE5vZGUgIT09ICcnICl7XHJcblxyXG4gICAgICB0b29sdGlwLmlubmVySFRNTCA9IHRleHROb2RlO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRvb2x0aXApOyAgICBcclxuICAgICAgdGhpcy5zdGFydF90b29sdGlwKGlkLCBoZWlnaHQsIHdpZHRoLCBlbF9wb3NpdGlvbl94LCBlbF9wb3NpdGlvbl95LCBkaXJlY3Rpb24pO1xyXG5cclxuICAgICAgaWYgKHRvb2x0aXApIHtcclxuICAgICAgICB0b29sdGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBob3ZlckluQ2FsbGJhY2spO1xyXG4gICAgICAgIHRvb2x0aXAuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGhvdmVyT3V0Q2FsbGJhY2spO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH0gIFxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcsIFsnJGV2ZW50J10pIG9uTW91c2VPdXQoZXZlbnQ6IE1vdXNlRXZlbnQpIHsgICBcclxuICAgIHRoaXMucmVtb3ZlID0gdHJ1ZTtcclxuICAgIHRoaXMucmVtb3ZlX3Rvb2x0aXAoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50Yy1kaXJlY3RpdmUtdG9vbHRpcCcpICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVfdG9vbHRpcChjdXN0b21EaXY6IGFueSl7ICAgXHJcbiAgICBpZiAoY3VzdG9tRGl2KSB7ICAgICAgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmKCB0aGlzLnJlbW92ZSApe1xyXG4gICAgICAgICAgY3VzdG9tRGl2LnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMzApOyAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHNldCBUQ3Rvb2x0aXAgKHRvb2x0aXA6IGFueSl7XHJcbiAgICBpZiAodG9vbHRpcCl7XHJcbiAgICAgIGlmKCB0eXBlb2YgdG9vbHRpcCA9PT0gJ29iamVjdCcgKXtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbmZvX3RleHQgPSB0b29sdGlwO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaXJlY3Rpb246ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ3RvcCc7XHJcbiAgQElucHV0KCkgc2V0IFRDZGlyZWN0aW9uIChkaXJlY3Rpb246IGFueSl7XHJcbiAgICBpZiAoZGlyZWN0aW9uKXtcclxuICAgICAgdGhpcy5fZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICApIHt9XHJcblxyXG5cclxuICBnZW5lcmF0ZUlEKHRhcmdldD86IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IHJlZiA9ICh0YXJnZXQpID8gYC0ke3RhcmdldH1gIDogJyc7XHJcbiAgICByZXR1cm4gYHRjLXRvb2x0aXAtJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9JHtyZWZ9YDtcclxuICB9XHJcblxyXG4gIHN0YXJ0X3Rvb2x0aXAoaWQ6IHN0cmluZywgaGVpZ2h0OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGVsX3Bvc2l0aW9uX3g6IG51bWJlciwgZWxfcG9zaXRpb25feTogbnVtYmVyLCBkaXJlY3Rpb246IHN0cmluZyl7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgY29uc3QgdG9vbHRpcDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgICBjb25zdCB0b29sdGlwX2hlaWdodCA9IHRvb2x0aXAuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBjb25zdCB0b29sdGlwX3dpZHRoID0gdG9vbHRpcC5jbGllbnRXaWR0aDtcclxuXHJcbiAgICAgIC8qXHJcbiAgICAgIGNvbnNvbGUubG9nKCdhbHR1cmEgZG8gdGFyZ2V0OiAnLCBoZWlnaHQpO1xyXG4gICAgICBjb25zb2xlLmxvZygnbGFyZ3VyYSBkbyB0YXJnZXQ6ICcsIHdpZHRoKTtcclxuICAgICAgY29uc29sZS5sb2coJ2VsX3Bvc2l0aW9uX3ggZG8gdGFyZ2V0OiAnLCBlbF9wb3NpdGlvbl94KTtcclxuICAgICAgY29uc29sZS5sb2coJ2VsX3Bvc2l0aW9uX3kgZG8gdGFyZ2V0OiAnLCBlbF9wb3NpdGlvbl95KTtcclxuICAgICAgY29uc29sZS5sb2coJ2RpcmVjdGlvbiBkbyB0b29sdGlwOiAnLCBkaXJlY3Rpb24pO1xyXG4gICAgICAqL1xyXG5cclxuICAgICAgbGV0IHBfeSA9IDA7XHJcbiAgICAgIGxldCBwX3ggPSAwO1xyXG4gICAgICBjb25zdCBjZW50ZXJfcG9zaXRpb24gPSAoZWxfcG9zaXRpb25feCArICh3aWR0aC8yKSkgLSAodG9vbHRpcF93aWR0aC8yKTtcclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICd0b3AnICl7XHJcbiAgICAgICAgcF95ID0gKGVsX3Bvc2l0aW9uX3kgLSB0b29sdGlwX2hlaWdodCkgLSAxNTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICdib3R0b20nICl7XHJcbiAgICAgICAgcF95ID0gKGVsX3Bvc2l0aW9uX3kgKyBoZWlnaHQpICsgMTU7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAnbGVmdCcgKXtcclxuICAgICAgICBwX3kgPSBlbF9wb3NpdGlvbl95IC0gKHRvb2x0aXBfaGVpZ2h0LzIpICsgKGhlaWdodC8yKTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb24gLSB0b29sdGlwX3dpZHRoLzIgLSB3aWR0aC8yIC0gMTU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICdyaWdodCcgKXtcclxuICAgICAgICBwX3kgPSBlbF9wb3NpdGlvbl95IC0gKHRvb2x0aXBfaGVpZ2h0LzIpICsgKGhlaWdodC8yKTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb24gKyB0b29sdGlwX3dpZHRoLzIgKyB3aWR0aC8yICsgMTU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ3RvcCcsIGAke3BfeX1weGApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXAsICdsZWZ0JywgYCR7cF94fXB4YCk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgJ3RjLXRvb2x0aXAtZmFkZS1pbicpO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn0iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXJGLE1BQU0sT0FBTyx3QkFBd0I7SUFnR25DLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBaEc3QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBRXhCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFxRmYsZUFBVSxHQUF3QyxLQUFLLENBQUM7SUFVN0QsQ0FBQztJQTdGbUMsV0FBVyxDQUFDLEtBQWlCO1FBRWxFLElBQUksZUFBZSxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLENBQUE7UUFFRCxJQUFJLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixNQUFNLFNBQVMsR0FBUyxRQUFRLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDeEUsSUFBSSxTQUFTLEVBQUU7Z0JBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQUU7UUFDeEMsQ0FBQyxDQUFBO1FBRUQsZ0JBQWdCLENBQUM7UUFFakIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFL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Q0FBQyxHQUFHLEVBQUUsQ0FBQzthQUN4RDtZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBRXhELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0hBdEpVLHdCQUF3QjswR0FBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCO3lIQU93QyxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEwREMsVUFBVTtzQkFBL0MsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0J2QixTQUFTO3NCQUFyQixLQUFLO2dCQVVPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgSW5wdXQsIEhvc3RMaXN0ZW5lcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbVEN0b29sdGlwXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpVG9vbHRpcERpcmVjdGl2ZSB7XHJcblxyXG4gIHJlbW92ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBpbmZvX3RleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZW92ZXInLCBbJyRldmVudCddKSBvbk1vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCkge1xyXG5cclxuICAgIGxldCBob3ZlckluQ2FsbGJhY2sgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVtb3ZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGhvdmVyT3V0Q2FsbGJhY2sgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVtb3ZlID0gdHJ1ZTtcclxuICAgICAgY29uc3QgY3VzdG9tRGl2ID0gPGFueT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRjLWRpcmVjdGl2ZS10b29sdGlwJyk7XHJcbiAgICAgIGlmKCBjdXN0b21EaXYgKXsgY3VzdG9tRGl2LnJlbW92ZSgpOyB9ICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgaG92ZXJPdXRDYWxsYmFjaztcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gd2luZG93LnNjcm9sbFkgfHwgd2luZG93LnBhZ2VZT2Zmc2V0O1xyXG4gICAgICBjb25zdCB0b29sdGlwID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgY29uc3QgcmVjdCAgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAvLyBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LmF0dHJpYnV0ZXNbJ25nLXJlZmxlY3QtLXQtY2RpcmVjdGlvbiddPy52YWx1ZSB8fCAndG9wJztcclxuICAgICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5fZGlyZWN0aW9uIHx8ICd0b3AnO1xyXG4gICAgICBjb25zdCBlbF9wb3NpdGlvbl94ID0gKHJlY3Q/LmxlZnQpID8gcGFyc2VJbnQocmVjdD8ubGVmdCkgOiAwO1xyXG4gICAgICBjb25zdCBlbF9wb3NpdGlvbl95ID0gKHJlY3Q/LnRvcCApID8gcGFyc2VJbnQocmVjdD8udG9wICArIHNjcm9sbFRvcCkgOiAwO1xyXG5cclxuICAgICAgbGV0IHdpZHRoID0gMDtcclxuICAgICAgbGV0IGhlaWdodCA9IDA7XHJcbiAgICAgIGlmKCBldmVudCAmJiBldmVudC50YXJnZXQgKXtcclxuICAgICAgICBjb25zdCBfZXZlbnQgPSBldmVudC50YXJnZXQgYXMgYW55O1xyXG4gICAgICAgIGhlaWdodCAgPSBfZXZlbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgIHdpZHRoICAgPSBfZXZlbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHRvcCA9IGAkeyhlbF9wb3NpdGlvbl95IC0gKChoZWlnaHQvMikgKyAxMCkgKX1weGA7XHJcbiAgICAgIGNvbnN0IGxlZnQgPSBgJHtlbF9wb3NpdGlvbl94ICsgKHdpZHRoLzIpIH1weGA7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ3RvcCcsICcwcHgnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnbGVmdCcsICcwcHgnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnb3BhY2l0eScsICcwJyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgJ3RjLWRpcmVjdGl2ZS10b29sdGlwJyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgYHRjLWRpcmVjdGl2ZS10b29sdGlwLSR7ZGlyZWN0aW9ufWApO1xyXG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0b29sdGlwLCAnaWQnLCBpZCk7XHJcbiAgICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5pbmZvX3RleHQ7XHJcblxyXG4gICAgICBpZiggdGV4dE5vZGUgIT09IHVuZGVmaW5lZCAmJiB0ZXh0Tm9kZSAhPT0gbnVsbCAmJiB0ZXh0Tm9kZSAhPT0gJycgKXtcclxuXHJcbiAgICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSB0ZXh0Tm9kZTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRvb2x0aXApOyAgICBcclxuICAgICAgICB0aGlzLnN0YXJ0X3Rvb2x0aXAoaWQsIGhlaWdodCwgd2lkdGgsIGVsX3Bvc2l0aW9uX3gsIGVsX3Bvc2l0aW9uX3ksIGRpcmVjdGlvbik7XHJcblxyXG4gICAgICAgIGlmICh0b29sdGlwKSB7XHJcbiAgICAgICAgICB0b29sdGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBob3ZlckluQ2FsbGJhY2spO1xyXG4gICAgICAgICAgdG9vbHRpcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgaG92ZXJPdXRDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH0gIFxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcsIFsnJGV2ZW50J10pIG9uTW91c2VPdXQoZXZlbnQ6IE1vdXNlRXZlbnQpIHsgICBcclxuICAgIHRoaXMucmVtb3ZlID0gdHJ1ZTtcclxuICAgIHRoaXMucmVtb3ZlX3Rvb2x0aXAoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50Yy1kaXJlY3RpdmUtdG9vbHRpcCcpICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVfdG9vbHRpcChjdXN0b21EaXY6IGFueSl7ICAgXHJcbiAgICBpZiAoY3VzdG9tRGl2KSB7ICAgICAgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmKCB0aGlzLnJlbW92ZSApe1xyXG4gICAgICAgICAgY3VzdG9tRGl2LnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMzApOyAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHNldCBUQ3Rvb2x0aXAgKHRvb2x0aXA6IGFueSl7XHJcbiAgICBpZiAodG9vbHRpcCl7XHJcbiAgICAgIGlmKCB0eXBlb2YgdG9vbHRpcCA9PT0gJ29iamVjdCcgKXtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbmZvX3RleHQgPSB0b29sdGlwO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaXJlY3Rpb246ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ3RvcCc7XHJcbiAgQElucHV0KCkgc2V0IFRDZGlyZWN0aW9uIChkaXJlY3Rpb246IGFueSl7XHJcbiAgICBpZiAoZGlyZWN0aW9uKXtcclxuICAgICAgdGhpcy5fZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICApIHt9XHJcblxyXG5cclxuICBnZW5lcmF0ZUlEKHRhcmdldD86IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IHJlZiA9ICh0YXJnZXQpID8gYC0ke3RhcmdldH1gIDogJyc7XHJcbiAgICByZXR1cm4gYHRjLXRvb2x0aXAtJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9JHtyZWZ9YDtcclxuICB9XHJcblxyXG4gIHN0YXJ0X3Rvb2x0aXAoaWQ6IHN0cmluZywgaGVpZ2h0OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGVsX3Bvc2l0aW9uX3g6IG51bWJlciwgZWxfcG9zaXRpb25feTogbnVtYmVyLCBkaXJlY3Rpb246IHN0cmluZyl7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgY29uc3QgdG9vbHRpcDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgICBjb25zdCB0b29sdGlwX2hlaWdodCA9IHRvb2x0aXAuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBjb25zdCB0b29sdGlwX3dpZHRoID0gdG9vbHRpcC5jbGllbnRXaWR0aDtcclxuXHJcbiAgICAgIC8qXHJcbiAgICAgIGNvbnNvbGUubG9nKCdhbHR1cmEgZG8gdGFyZ2V0OiAnLCBoZWlnaHQpO1xyXG4gICAgICBjb25zb2xlLmxvZygnbGFyZ3VyYSBkbyB0YXJnZXQ6ICcsIHdpZHRoKTtcclxuICAgICAgY29uc29sZS5sb2coJ2VsX3Bvc2l0aW9uX3ggZG8gdGFyZ2V0OiAnLCBlbF9wb3NpdGlvbl94KTtcclxuICAgICAgY29uc29sZS5sb2coJ2VsX3Bvc2l0aW9uX3kgZG8gdGFyZ2V0OiAnLCBlbF9wb3NpdGlvbl95KTtcclxuICAgICAgY29uc29sZS5sb2coJ2RpcmVjdGlvbiBkbyB0b29sdGlwOiAnLCBkaXJlY3Rpb24pO1xyXG4gICAgICAqL1xyXG5cclxuICAgICAgbGV0IHBfeSA9IDA7XHJcbiAgICAgIGxldCBwX3ggPSAwO1xyXG4gICAgICBjb25zdCBjZW50ZXJfcG9zaXRpb24gPSAoZWxfcG9zaXRpb25feCArICh3aWR0aC8yKSkgLSAodG9vbHRpcF93aWR0aC8yKTtcclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICd0b3AnICl7XHJcbiAgICAgICAgcF95ID0gKGVsX3Bvc2l0aW9uX3kgLSB0b29sdGlwX2hlaWdodCkgLSAxNTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICdib3R0b20nICl7XHJcbiAgICAgICAgcF95ID0gKGVsX3Bvc2l0aW9uX3kgKyBoZWlnaHQpICsgMTU7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAnbGVmdCcgKXtcclxuICAgICAgICBwX3kgPSBlbF9wb3NpdGlvbl95IC0gKHRvb2x0aXBfaGVpZ2h0LzIpICsgKGhlaWdodC8yKTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb24gLSB0b29sdGlwX3dpZHRoLzIgLSB3aWR0aC8yIC0gMTU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBkaXJlY3Rpb24gPT09ICdyaWdodCcgKXtcclxuICAgICAgICBwX3kgPSBlbF9wb3NpdGlvbl95IC0gKHRvb2x0aXBfaGVpZ2h0LzIpICsgKGhlaWdodC8yKTtcclxuICAgICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb24gKyB0b29sdGlwX3dpZHRoLzIgKyB3aWR0aC8yICsgMTU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ3RvcCcsIGAke3BfeX1weGApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXAsICdsZWZ0JywgYCR7cF94fXB4YCk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgJ3RjLXRvb2x0aXAtZmFkZS1pbicpO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn0iXX0=
@@ -12,6 +12,9 @@ const noop = () => {
12
12
  };
13
13
  export class TCloudUiInputPasswordComponent {
14
14
  constructor() {
15
+ this.actionView = true;
16
+ this.actionCopy = true;
17
+ this.actionGeneratePassword = true;
15
18
  this.numberOfCharacter = 14;
16
19
  this.atLeastOneUppercaseLetter = true;
17
20
  this.atLeastOneLowercaseLetter = true;
@@ -113,11 +116,17 @@ export class TCloudUiInputPasswordComponent {
113
116
  }
114
117
  }
115
118
  TCloudUiInputPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiInputPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
116
- TCloudUiInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiInputPasswordComponent, selector: "tcloud-ui-input-password", inputs: { numberOfCharacter: "numberOfCharacter", atLeastOneUppercaseLetter: "atLeastOneUppercaseLetter", atLeastOneLowercaseLetter: "atLeastOneLowercaseLetter", atLeastOneSpecialCharacter: "atLeastOneSpecialCharacter", ngModel: "ngModel" }, outputs: { ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"tcloud-ui-input-password\">\r\n <table>\r\n <tr>\r\n <!-- input password -->\r\n <td>\r\n <form #_form=\"ngForm\">\r\n <ng-container *ngIf=\"passwordRegex\">\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\r\n </ng-container>\r\n </form>\r\n </td>\r\n\r\n <!-- action show hide -->\r\n <td>\r\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\r\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\r\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \r\n </button>\r\n </td>\r\n\r\n <!-- action generate pass -->\r\n <td>\r\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\r\n <i class=\"fa-solid fa-key\"></i>\r\n </button>\r\n </td>\r\n\r\n <!-- action copy pass -->\r\n <td>\r\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\r\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\r\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".tcloud-ui-input-password{border:1px solid var(--tc-gray-300);border-radius:3px}.tcloud-ui-input-password table{width:100%}.tcloud-ui-input-password table td:first-child{width:100%!important}.tcloud-ui-input-password table td:first-child input{width:100%;border:none;height:38px;padding-left:8px}.tcloud-ui-input-password table td{width:50px;height:40px;background-color:#fff}.tcloud-ui-input-password table td button{background:transparent;border:none;margin-right:3px;cursor:pointer;color:var(--tc-gray-500)}.tcloud-ui-input-password table td button:hover{color:var(--tc-primary2)}.tcloud-ui-input-password .ng-invalid.ng-touched{border:1px solid var(--red)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
119
+ TCloudUiInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiInputPasswordComponent, selector: "tcloud-ui-input-password", inputs: { actionView: "actionView", actionCopy: "actionCopy", actionGeneratePassword: "actionGeneratePassword", numberOfCharacter: "numberOfCharacter", atLeastOneUppercaseLetter: "atLeastOneUppercaseLetter", atLeastOneLowercaseLetter: "atLeastOneLowercaseLetter", atLeastOneSpecialCharacter: "atLeastOneSpecialCharacter", ngModel: "ngModel" }, outputs: { ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"tcloud-ui-input-password\">\r\n <table>\r\n <tr>\r\n <!-- input password -->\r\n <td>\r\n <form #_form=\"ngForm\">\r\n <ng-container *ngIf=\"passwordRegex\">\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\r\n </ng-container>\r\n </form>\r\n </td>\r\n\r\n <!-- action show hide -->\r\n <td *ngIf=\"actionView\">\r\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\r\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\r\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \r\n </button>\r\n </td>\r\n\r\n <!-- action generate pass -->\r\n <td *ngIf=\"actionGeneratePassword\">\r\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\r\n <i class=\"fa-solid fa-key\"></i>\r\n </button>\r\n </td>\r\n\r\n <!-- action copy pass -->\r\n <td *ngIf=\"actionCopy\">\r\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\r\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\r\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".tcloud-ui-input-password{border:1px solid var(--tc-gray-300);border-radius:3px}.tcloud-ui-input-password table{width:100%}.tcloud-ui-input-password table td:first-child{width:100%!important}.tcloud-ui-input-password table td:first-child input{width:100%;border:none;height:38px;padding-left:8px}.tcloud-ui-input-password table td{width:50px;height:40px;background-color:#fff}.tcloud-ui-input-password table td button{background:transparent;border:none;margin-right:3px;cursor:pointer;color:var(--tc-gray-500)}.tcloud-ui-input-password table td button:hover{color:var(--tc-primary2)}.tcloud-ui-input-password .ng-invalid.ng-touched{border:1px solid var(--red)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
117
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiInputPasswordComponent, decorators: [{
118
121
  type: Component,
119
- args: [{ selector: 'tcloud-ui-input-password', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-input-password\">\r\n <table>\r\n <tr>\r\n <!-- input password -->\r\n <td>\r\n <form #_form=\"ngForm\">\r\n <ng-container *ngIf=\"passwordRegex\">\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\r\n </ng-container>\r\n </form>\r\n </td>\r\n\r\n <!-- action show hide -->\r\n <td>\r\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\r\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\r\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \r\n </button>\r\n </td>\r\n\r\n <!-- action generate pass -->\r\n <td>\r\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\r\n <i class=\"fa-solid fa-key\"></i>\r\n </button>\r\n </td>\r\n\r\n <!-- action copy pass -->\r\n <td>\r\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\r\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\r\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".tcloud-ui-input-password{border:1px solid var(--tc-gray-300);border-radius:3px}.tcloud-ui-input-password table{width:100%}.tcloud-ui-input-password table td:first-child{width:100%!important}.tcloud-ui-input-password table td:first-child input{width:100%;border:none;height:38px;padding-left:8px}.tcloud-ui-input-password table td{width:50px;height:40px;background-color:#fff}.tcloud-ui-input-password table td button{background:transparent;border:none;margin-right:3px;cursor:pointer;color:var(--tc-gray-500)}.tcloud-ui-input-password table td button:hover{color:var(--tc-primary2)}.tcloud-ui-input-password .ng-invalid.ng-touched{border:1px solid var(--red)!important}\n"] }]
120
- }], ctorParameters: function () { return []; }, propDecorators: { numberOfCharacter: [{
122
+ args: [{ selector: 'tcloud-ui-input-password', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-input-password\">\r\n <table>\r\n <tr>\r\n <!-- input password -->\r\n <td>\r\n <form #_form=\"ngForm\">\r\n <ng-container *ngIf=\"passwordRegex\">\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\r\n </ng-container>\r\n </form>\r\n </td>\r\n\r\n <!-- action show hide -->\r\n <td *ngIf=\"actionView\">\r\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\r\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\r\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \r\n </button>\r\n </td>\r\n\r\n <!-- action generate pass -->\r\n <td *ngIf=\"actionGeneratePassword\">\r\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\r\n <i class=\"fa-solid fa-key\"></i>\r\n </button>\r\n </td>\r\n\r\n <!-- action copy pass -->\r\n <td *ngIf=\"actionCopy\">\r\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\r\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\r\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".tcloud-ui-input-password{border:1px solid var(--tc-gray-300);border-radius:3px}.tcloud-ui-input-password table{width:100%}.tcloud-ui-input-password table td:first-child{width:100%!important}.tcloud-ui-input-password table td:first-child input{width:100%;border:none;height:38px;padding-left:8px}.tcloud-ui-input-password table td{width:50px;height:40px;background-color:#fff}.tcloud-ui-input-password table td button{background:transparent;border:none;margin-right:3px;cursor:pointer;color:var(--tc-gray-500)}.tcloud-ui-input-password table td button:hover{color:var(--tc-primary2)}.tcloud-ui-input-password .ng-invalid.ng-touched{border:1px solid var(--red)!important}\n"] }]
123
+ }], ctorParameters: function () { return []; }, propDecorators: { actionView: [{
124
+ type: Input
125
+ }], actionCopy: [{
126
+ type: Input
127
+ }], actionGeneratePassword: [{
128
+ type: Input
129
+ }], numberOfCharacter: [{
121
130
  type: Input
122
131
  }], atLeastOneUppercaseLetter: [{
123
132
  type: Input
@@ -130,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
130
139
  }], ngModelChange: [{
131
140
  type: Output
132
141
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1pbnB1dC1wYXNzd29yZC90Y2xvdWQtdWktaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWlucHV0LXBhc3N3b3JkL3RjbG91ZC11aS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUVuRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBUTtJQUN0RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUM7SUFDN0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0sT0FBTyw4QkFBOEI7SUFxQnZDO1FBbkJTLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUUvQiw4QkFBeUIsR0FBWSxJQUFJLENBQUM7UUFDMUMsOEJBQXlCLEdBQVksSUFBSSxDQUFDO1FBQzFDLCtCQUEwQixHQUFZLElBQUksQ0FBQztRQUdwRCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBTWQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWxELFNBQUksR0FBVyxVQUFVLENBQUM7UUFDMUIs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QUFTOytCQUNFLDBCQUEwQixhQUd6QixDQUFFLG1DQUFtQyxDQUFFOzBFQUl2QyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBTU8sT0FBTztzQkFBbkIsS0FBSztnQkFHSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBjb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpSW5wdXRQYXNzd29yZENvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1pbnB1dC1wYXNzd29yZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGNsb3VkLXVpLWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbIENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaUlucHV0UGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIG51bWJlck9mQ2hhcmFjdGVyOiBudW1iZXIgPSAxNDtcclxuXHJcbiAgICBASW5wdXQoKSBhdExlYXN0T25lVXBwZXJjYXNlTGV0dGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGF0TGVhc3RPbmVMb3dlcmNhc2VMZXR0ZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgYXRMZWFzdE9uZVNwZWNpYWxDaGFyYWN0ZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBcclxuICAgIGlubmVyVmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgICAgICBcclxuICAgIH1cclxuICAgIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgbW9kZTogc3RyaW5nID0gJ3Bhc3N3b3JkJztcclxuICAgIGlzQ29weTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcGFzc3dvcmRSZWdleDogYW55IHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZFJlZ2V4ID0gdGhpcy5nZXRSZWdleFZhbGlkYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVNb2RlKCl7XHJcbiAgICAgICAgaWYoIHRoaXMubW9kZSA9PT0gJ3Bhc3N3b3JkJyApe1xyXG4gICAgICAgICAgICB0aGlzLm1vZGUgPSAndGV4dCc7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZSA9ICdwYXNzd29yZCc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvcHlUZXh0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNDb3B5ID0gdHJ1ZTtcclxuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmlzQ29weSA9IGZhbHNlOyB9LCAzMDAwKTtcclxuICAgIH1cclxuXHJcbiAgICBnZW5lcmF0ZVBhc3N3b3JkKCl7XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdGhpcy5jcmVhdGVOZXdQYXNzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVOZXdQYXNzKCkge1xyXG4gICAgICAgIGNvbnN0IHVwcGVyY2FzZUxldHRlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonO1xyXG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZUxldHRlcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonO1xyXG4gICAgICAgIGNvbnN0IG51bWJlcnMgPSAnMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgY29uc3Qgc3BlY2lhbENoYXJhY3RlcnMgPSAnIUAjJCVeJiooKV8re31bXTo7PD4sLj8vfic7XHJcbiAgICBcclxuICAgICAgICBjb25zdCBhbGxDaGFyYWN0ZXJzID0gdXBwZXJjYXNlTGV0dGVycyArIGxvd2VyY2FzZUxldHRlcnMgKyBudW1iZXJzICsgc3BlY2lhbENoYXJhY3RlcnM7XHJcbiAgICBcclxuICAgICAgICBjb25zdCBnZXRSYW5kb21DaGFyYWN0ZXIgPSAoY2hhcmFjdGVyczogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgcmV0dXJuIGNoYXJhY3RlcnNbcmFuZG9tSW5kZXhdO1xyXG4gICAgICAgIH07XHJcbiAgICBcclxuICAgICAgICBsZXQgcGFzc3dvcmQgPSAnJztcclxuICAgICAgICBwYXNzd29yZCArPSBnZXRSYW5kb21DaGFyYWN0ZXIodXBwZXJjYXNlTGV0dGVycyk7XHJcbiAgICAgICAgcGFzc3dvcmQgKz0gZ2V0UmFuZG9tQ2hhcmFjdGVyKG51bWJlcnMpO1xyXG4gICAgICAgIHBhc3N3b3JkICs9IGdldFJhbmRvbUNoYXJhY3RlcihzcGVjaWFsQ2hhcmFjdGVycyk7XHJcbiAgICBcclxuICAgICAgICBjb25zdCByZW1haW5pbmdMZW5ndGggPSB0aGlzLm51bWJlck9mQ2hhcmFjdGVyIC0gcGFzc3dvcmQubGVuZ3RoOyAgXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZW1haW5pbmdMZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHBhc3N3b3JkICs9IGdldFJhbmRvbUNoYXJhY3RlcihhbGxDaGFyYWN0ZXJzKTtcclxuICAgICAgICB9ICBcclxuICAgICAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KCgpID0+IE1hdGgucmFuZG9tKCkgLSAwLjUpLmpvaW4oJycpOyAgXHJcbiAgICAgICAgcmV0dXJuIHBhc3N3b3JkO1xyXG4gICAgfVxyXG4gIFxyXG5cclxuICAgIGdldFJlZ2V4VmFsaWRhdGlvbigpIHtcclxuICAgICAgICAvKlxyXG4gICAgICAgICg/PS4qW0EtWl0pOiBQZWxvIG1lbm9zIHVtYSBsZXRyYSBtYWnDunNjdWxhLlxyXG4gICAgICAgICg/PS4qWzAtOV0pOiBQZWxvIG1lbm9zIHVtIG7Dum1lcm8uXHJcbiAgICAgICAgKD89LipbIUAjJCVeJiooKV8re31bXFxdOjs8PiwuP1xcL35dKTogUGVsbyBtZW5vcyB1bSBjYXJhY3RlcmUgZXNwZWNpYWwuXHJcbiAgICAgICAgKD8hLipcXHMpOiBOw6NvIGNvbnTDqW0gZXNwYcOnb3MgZW0gYnJhbmNvLlxyXG4gICAgICAgIC57MTQsfTogUGVsbyBtZW5vcyAxNCBjYXJhY3RlcmVzIG5vIHRvdGFsLlxyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIGNvbnN0IG1haXVzY3VsYXMgPSAodGhpcy5hdExlYXN0T25lVXBwZXJjYXNlTGV0dGVyKSA/IGAoPz0uKltBLVpdKWAgOiAnJztcclxuICAgICAgICBjb25zdCBtaW51c2N1bGFzID0gKHRoaXMuYXRMZWFzdE9uZUxvd2VyY2FzZUxldHRlcikgPyBgKD89LipbYS16XSlgIDogJyc7XHJcbiAgICAgICAgY29uc3QgZXNwZWNpYWlzICA9ICh0aGlzLmF0TGVhc3RPbmVTcGVjaWFsQ2hhcmFjdGVyKSA/IGAoPz0uKlshQCMkJV4mKlxcXFwoXFxcXClfK1xcXFx7XFxcXH1cXFxcW1xcXFxdOjs8PiwuP1xcXFwvfl0pKD8hLipcXFxccylgOiAnJztcclxuXHJcbiAgICAgICAgcmV0dXJuIGBeJHttYWl1c2N1bGFzfSR7bWludXNjdWxhc30ke2VzcGVjaWFpc30ueyR7dGhpcy5udW1iZXJPZkNoYXJhY3Rlcn0sfSRgO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgXHJcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxyXG4gICAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG5cclxuICAgIC8vZ2V0IGFjY2Vzc29yXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xyXG4gICAgfTtcclxuXHJcbiAgICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcclxuICAgIHNldCB2YWx1ZSh2OiBhbnkpIHtcclxuICAgICAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgICBvbkJsdXIoKSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0Y2xvdWQtdWktaW5wdXQtcGFzc3dvcmRcIj5cclxuICAgIDx0YWJsZT5cclxuICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDwhLS0gaW5wdXQgcGFzc3dvcmQgLS0+XHJcbiAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxmb3JtICNfZm9ybT1cIm5nRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXNzd29yZFJlZ2V4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiICpuZ0lmPVwibW9kZSA9PSAncGFzc3dvcmQnXCIgdHlwZT1cInBhc3N3b3JkXCIgbmFtZT1cInRjX3Bhc3N3b3JkXCIgW3BhdHRlcm5dPVwicGFzc3dvcmRSZWdleFwiIGF1dG9Db21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiIFsobmdNb2RlbCldPVwiaW5uZXJWYWx1ZVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0Yy1mb3JtLWNvbnRyb2xcIiAqbmdJZj1cIm1vZGUgPT0gJ3RleHQnXCIgdHlwZT1cInRleHRcIiBuYW1lPVwidGNfdGV4dFwiIFtwYXR0ZXJuXT1cInBhc3N3b3JkUmVnZXhcIiBbKG5nTW9kZWwpXT1cImlubmVyVmFsdWVcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gYWN0aW9uIHNob3cgaGlkZSAtLT5cclxuICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZU1vZGUoKVwiIFt0aXRsZV09XCIobW9kZSA9PSAncGFzc3dvcmQnKSA/ICdWaXN1YWxpemFyIFNlbmhhJyA6ICdFc2NvbmRlciBTZW5oYSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm1vZGUgPT0gJ3Bhc3N3b3JkJ1wiIGNsYXNzPVwiZmFyIGZhLWV5ZS1zbGFzaFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm1vZGUgPT0gJ3RleHQnXCIgY2xhc3M9XCJmYXIgZmEtZXllXCI+PC9pPiBcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBhY3Rpb24gZ2VuZXJhdGUgcGFzcyAtLT5cclxuICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3RpdGxlXT1cIidHZXJhciBTZW5oYSdcIiAoY2xpY2spPVwiZ2VuZXJhdGVQYXNzd29yZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1rZXlcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gYWN0aW9uIGNvcHkgcGFzcyAtLT5cclxuICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3RpdGxlXT1cIidDb3BpYXIgU2VuaGEnXCIgKGNsaWNrKT1cImNvcHlUZXh0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFpc0NvcHlcIiBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtY29weVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImlzQ29weVwiIGNsYXNzPVwiZmEtc29saWQgZmEtY2hlY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuPC9kaXY+Il19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1pbnB1dC1wYXNzd29yZC90Y2xvdWQtdWktaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWlucHV0LXBhc3N3b3JkL3RjbG91ZC11aS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUVuRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBUTtJQUN0RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUM7SUFDN0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0sT0FBTyw4QkFBOEI7SUF5QnZDO1FBdkJTLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQiwyQkFBc0IsR0FBWSxJQUFJLENBQUM7UUFFdkMsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBRS9CLDhCQUF5QixHQUFZLElBQUksQ0FBQztRQUMxQyw4QkFBeUIsR0FBWSxJQUFJLENBQUM7UUFDMUMsK0JBQTBCLEdBQVksSUFBSSxDQUFDO1FBR3BELGVBQVUsR0FB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QThCO2dIQUE5Qiw4QkFBOEIsd2JBRjlCLENBQUUsbUNBQW1DLENBQUUsMEJDaEJwRCxxM0RBcUNNOzRGRG5CTyw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UsMEJBQTBCLGFBR3pCLENBQUUsbUNBQW1DLENBQUU7MEVBSXZDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQU1PLE9BQU87c0JBQW5CLEtBQUs7Z0JBR0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaUlucHV0UGFzc3dvcmRDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktaW5wdXQtcGFzc3dvcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogWyBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlJbnB1dFBhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBASW5wdXQoKSBhY3Rpb25WaWV3OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGFjdGlvbkNvcHk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgYWN0aW9uR2VuZXJhdGVQYXNzd29yZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KCkgbnVtYmVyT2ZDaGFyYWN0ZXI6IG51bWJlciA9IDE0O1xyXG5cclxuICAgIEBJbnB1dCgpIGF0TGVhc3RPbmVVcHBlcmNhc2VMZXR0ZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgYXRMZWFzdE9uZUxvd2VyY2FzZUxldHRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBhdExlYXN0T25lU3BlY2lhbENoYXJhY3RlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIFxyXG4gICAgaW5uZXJWYWx1ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgc2V0IG5nTW9kZWwodjogYW55KXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAgICAgIFxyXG4gICAgfVxyXG4gICAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBtb2RlOiBzdHJpbmcgPSAncGFzc3dvcmQnO1xyXG4gICAgaXNDb3B5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwYXNzd29yZFJlZ2V4OiBhbnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBhc3N3b3JkUmVnZXggPSB0aGlzLmdldFJlZ2V4VmFsaWRhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZU1vZGUoKXtcclxuICAgICAgICBpZiggdGhpcy5tb2RlID09PSAncGFzc3dvcmQnICl7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZSA9ICd0ZXh0JztcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5tb2RlID0gJ3Bhc3N3b3JkJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29weVRleHQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0NvcHkgPSB0cnVlO1xyXG4gICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuaXNDb3B5ID0gZmFsc2U7IH0sIDMwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIGdlbmVyYXRlUGFzc3dvcmQoKXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB0aGlzLmNyZWF0ZU5ld1Bhc3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZU5ld1Bhc3MoKSB7XHJcbiAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7XHJcbiAgICAgICAgY29uc3QgbG93ZXJjYXNlTGV0dGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XHJcbiAgICAgICAgY29uc3QgbnVtYmVycyA9ICcwMTIzNDU2Nzg5JztcclxuICAgICAgICBjb25zdCBzcGVjaWFsQ2hhcmFjdGVycyA9ICchQCMkJV4mKigpXyt7fVtdOjs8PiwuPy9+JztcclxuICAgIFxyXG4gICAgICAgIGNvbnN0IGFsbENoYXJhY3RlcnMgPSB1cHBlcmNhc2VMZXR0ZXJzICsgbG93ZXJjYXNlTGV0dGVycyArIG51bWJlcnMgKyBzcGVjaWFsQ2hhcmFjdGVycztcclxuICAgIFxyXG4gICAgICAgIGNvbnN0IGdldFJhbmRvbUNoYXJhY3RlciA9IChjaGFyYWN0ZXJzOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnMubGVuZ3RoKTtcclxuICAgICAgICByZXR1cm4gY2hhcmFjdGVyc1tyYW5kb21JbmRleF07XHJcbiAgICAgICAgfTtcclxuICAgIFxyXG4gICAgICAgIGxldCBwYXNzd29yZCA9ICcnO1xyXG4gICAgICAgIHBhc3N3b3JkICs9IGdldFJhbmRvbUNoYXJhY3Rlcih1cHBlcmNhc2VMZXR0ZXJzKTtcclxuICAgICAgICBwYXNzd29yZCArPSBnZXRSYW5kb21DaGFyYWN0ZXIobnVtYmVycyk7XHJcbiAgICAgICAgcGFzc3dvcmQgKz0gZ2V0UmFuZG9tQ2hhcmFjdGVyKHNwZWNpYWxDaGFyYWN0ZXJzKTtcclxuICAgIFxyXG4gICAgICAgIGNvbnN0IHJlbWFpbmluZ0xlbmd0aCA9IHRoaXMubnVtYmVyT2ZDaGFyYWN0ZXIgLSBwYXNzd29yZC5sZW5ndGg7ICBcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlbWFpbmluZ0xlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgcGFzc3dvcmQgKz0gZ2V0UmFuZG9tQ2hhcmFjdGVyKGFsbENoYXJhY3RlcnMpO1xyXG4gICAgICAgIH0gIFxyXG4gICAgICAgIHBhc3N3b3JkID0gcGFzc3dvcmQuc3BsaXQoJycpLnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSkuam9pbignJyk7ICBcclxuICAgICAgICByZXR1cm4gcGFzc3dvcmQ7XHJcbiAgICB9XHJcbiAgXHJcblxyXG4gICAgZ2V0UmVnZXhWYWxpZGF0aW9uKCkge1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgKD89LipbQS1aXSk6IFBlbG8gbWVub3MgdW1hIGxldHJhIG1hacO6c2N1bGEuXHJcbiAgICAgICAgKD89LipbMC05XSk6IFBlbG8gbWVub3MgdW0gbsO6bWVyby5cclxuICAgICAgICAoPz0uKlshQCMkJV4mKigpXyt7fVtcXF06Ozw+LC4/XFwvfl0pOiBQZWxvIG1lbm9zIHVtIGNhcmFjdGVyZSBlc3BlY2lhbC5cclxuICAgICAgICAoPyEuKlxccyk6IE7Do28gY29udMOpbSBlc3Bhw6dvcyBlbSBicmFuY28uXHJcbiAgICAgICAgLnsxNCx9OiBQZWxvIG1lbm9zIDE0IGNhcmFjdGVyZXMgbm8gdG90YWwuXHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgY29uc3QgbWFpdXNjdWxhcyA9ICh0aGlzLmF0TGVhc3RPbmVVcHBlcmNhc2VMZXR0ZXIpID8gYCg/PS4qW0EtWl0pYCA6ICcnO1xyXG4gICAgICAgIGNvbnN0IG1pbnVzY3VsYXMgPSAodGhpcy5hdExlYXN0T25lTG93ZXJjYXNlTGV0dGVyKSA/IGAoPz0uKlthLXpdKWAgOiAnJztcclxuICAgICAgICBjb25zdCBlc3BlY2lhaXMgID0gKHRoaXMuYXRMZWFzdE9uZVNwZWNpYWxDaGFyYWN0ZXIpID8gYCg/PS4qWyFAIyQlXiYqXFxcXChcXFxcKV8rXFxcXHtcXFxcfVxcXFxbXFxcXF06Ozw+LC4/XFxcXC9+XSkoPyEuKlxcXFxzKWA6ICcnO1xyXG5cclxuICAgICAgICByZXR1cm4gYF4ke21haXVzY3VsYXN9JHttaW51c2N1bGFzfSR7ZXNwZWNpYWlzfS57JHt0aGlzLm51bWJlck9mQ2hhcmFjdGVyfSx9JGA7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXHJcbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gICAgLy9nZXQgYWNjZXNzb3JcclxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xyXG4gICAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICAgIG9uQmx1cigpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRjbG91ZC11aS1pbnB1dC1wYXNzd29yZFwiPlxyXG4gICAgPHRhYmxlPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgICAgPCEtLSBpbnB1dCBwYXNzd29yZCAtLT5cclxuICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0gI19mb3JtPVwibmdGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhc3N3b3JkUmVnZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwidGMtZm9ybS1jb250cm9sXCIgKm5nSWY9XCJtb2RlID09ICdwYXNzd29yZCdcIiB0eXBlPVwicGFzc3dvcmRcIiBuYW1lPVwidGNfcGFzc3dvcmRcIiBbcGF0dGVybl09XCJwYXNzd29yZFJlZ2V4XCIgYXV0b0NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCIgWyhuZ01vZGVsKV09XCJpbm5lclZhbHVlXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiICpuZ0lmPVwibW9kZSA9PSAndGV4dCdcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJ0Y190ZXh0XCIgW3BhdHRlcm5dPVwicGFzc3dvcmRSZWdleFwiIFsobmdNb2RlbCldPVwiaW5uZXJWYWx1ZVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBhY3Rpb24gc2hvdyBoaWRlIC0tPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJhY3Rpb25WaWV3XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidG9nZ2xlTW9kZSgpXCIgW3RpdGxlXT1cIihtb2RlID09ICdwYXNzd29yZCcpID8gJ1Zpc3VhbGl6YXIgU2VuaGEnIDogJ0VzY29uZGVyIFNlbmhhJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwibW9kZSA9PSAncGFzc3dvcmQnXCIgY2xhc3M9XCJmYXIgZmEtZXllLXNsYXNoXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwibW9kZSA9PSAndGV4dCdcIiBjbGFzcz1cImZhciBmYS1leWVcIj48L2k+IFxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgICA8IS0tIGFjdGlvbiBnZW5lcmF0ZSBwYXNzIC0tPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJhY3Rpb25HZW5lcmF0ZVBhc3N3b3JkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbdGl0bGVdPVwiJ0dlcmFyIFNlbmhhJ1wiIChjbGljayk9XCJnZW5lcmF0ZVBhc3N3b3JkKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWtleVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBhY3Rpb24gY29weSBwYXNzIC0tPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJhY3Rpb25Db3B5XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbdGl0bGVdPVwiJ0NvcGlhciBTZW5oYSdcIiAoY2xpY2spPVwiY29weVRleHQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWlzQ29weVwiIGNsYXNzPVwiZmEtcmVndWxhciBmYS1jb3B5XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiaXNDb3B5XCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGVja1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG48L2Rpdj4iXX0=
@@ -9,7 +9,15 @@ export class BytesPipe {
9
9
  const c = 0 > b ? 0 : b, d = Math.floor(Math.log(a) / Math.log(1024));
10
10
  return parseFloat((a / Math.pow(1024, d)).toFixed(c)) + ' ' + ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"][d];
11
11
  }
12
- transform(value) {
12
+ transform(value, typeValue) {
13
+ if (typeValue !== undefined && typeValue !== null && typeValue !== '') {
14
+ if ((typeValue).toLowerCase() === 'kb') {
15
+ value = value * 1024;
16
+ }
17
+ if ((typeValue).toLowerCase() === 'mb') {
18
+ value = (value * 1024) * 1024;
19
+ }
20
+ }
13
21
  const b = +value;
14
22
  return this.formatBytes(b);
15
23
  }
@@ -20,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
20
28
  type: Pipe,
21
29
  args: [{ name: 'bytes' }]
22
30
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fcGlwZXMvYnl0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxTQUFTO0lBRXBCLFdBQVcsQ0FBQyxDQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDMUIsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNsQixNQUFNLENBQUMsR0FBVyxDQUFDLEtBQUssQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7dUdBWlUsU0FBUztxR0FBVCxTQUFTOzRGQUFULFNBQVM7a0JBRHJCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoeyBuYW1lOiAnYnl0ZXMnfSlcclxuZXhwb3J0IGNsYXNzIEJ5dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBmb3JtYXRCeXRlcyhhOiBudW1iZXIsIGIgPSAyKTogc3RyaW5nIHtcclxuICAgIGlmICghYSkgcmV0dXJuICctLS0nO1xyXG4gICAgaWYgKDAgPT09IGEpIHJldHVybiAnMCBCeXRlcyc7XHJcbiAgICBjb25zdCBjID0gMCA+IGIgPyAwIDogYiwgZCA9IE1hdGguZmxvb3IoTWF0aC5sb2coYSkgLyBNYXRoLmxvZygxMDI0KSk7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYSAvIE1hdGgucG93KDEwMjQsIGQpKS50b0ZpeGVkKGMpKSArICcgJyArIFtcIkJ5dGVzXCIsIFwiS0JcIiwgXCJNQlwiLCBcIkdCXCIsIFwiVEJcIiwgXCJQQlwiLCBcIkVCXCIsIFwiWkJcIiwgXCJZQlwiXVtkXTtcclxuICB9XHJcbiAgXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnkpOiBzdHJpbmd7ICAgICAgIFxyXG4gICAgY29uc3QgYjogbnVtYmVyID0gK3ZhbHVlOyAgICAgIFxyXG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXRCeXRlcyhiKTtcclxuICB9XHJcbn0iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fcGlwZXMvYnl0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxTQUFTO0lBRXBCLFdBQVcsQ0FBQyxDQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDMUIsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVSxFQUFFLFNBQWtCO1FBRXRDLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxTQUFTLEtBQUssSUFBSSxJQUFJLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFFckUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDdEMsS0FBSyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUE7YUFDckI7WUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUN0QyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO2FBQzlCO1NBQ0Y7UUFFRCxNQUFNLENBQUMsR0FBVyxDQUFDLEtBQUssQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7dUdBeEJVLFNBQVM7cUdBQVQsU0FBUzs0RkFBVCxTQUFTO2tCQURyQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHsgbmFtZTogJ2J5dGVzJ30pXHJcbmV4cG9ydCBjbGFzcyBCeXRlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgZm9ybWF0Qnl0ZXMoYTogbnVtYmVyLCBiID0gMik6IHN0cmluZyB7XHJcbiAgICBpZiAoIWEpIHJldHVybiAnLS0tJztcclxuICAgIGlmICgwID09PSBhKSByZXR1cm4gJzAgQnl0ZXMnO1xyXG4gICAgY29uc3QgYyA9IDAgPiBiID8gMCA6IGIsIGQgPSBNYXRoLmZsb29yKE1hdGgubG9nKGEpIC8gTWF0aC5sb2coMTAyNCkpO1xyXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGEgLyBNYXRoLnBvdygxMDI0LCBkKSkudG9GaXhlZChjKSkgKyAnICcgKyBbXCJCeXRlc1wiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiLCBcIlRCXCIsIFwiUEJcIiwgXCJFQlwiLCBcIlpCXCIsIFwiWUJcIl1bZF07XHJcbiAgfVxyXG4gIFxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCB0eXBlVmFsdWU/OiBzdHJpbmcpOiBzdHJpbmd7ICAgXHJcbiAgICBcclxuICAgIGlmKCB0eXBlVmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0eXBlVmFsdWUgIT09IG51bGwgJiYgdHlwZVZhbHVlICE9PSAnJyApe1xyXG4gICAgICBcclxuICAgICAgaWYoICh0eXBlVmFsdWUpLnRvTG93ZXJDYXNlKCkgPT09ICdrYicgKXtcclxuICAgICAgICB2YWx1ZSA9IHZhbHVlICogMTAyNFxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggKHR5cGVWYWx1ZSkudG9Mb3dlckNhc2UoKSA9PT0gJ21iJyApe1xyXG4gICAgICAgIHZhbHVlID0gKHZhbHVlICogMTAyNCkgKiAxMDI0XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgY29uc3QgYjogbnVtYmVyID0gK3ZhbHVlOyAgICAgIFxyXG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXRCeXRlcyhiKTtcclxuICB9XHJcbn0iXX0=
@@ -2118,7 +2118,15 @@ class BytesPipe {
2118
2118
  const c = 0 > b ? 0 : b, d = Math.floor(Math.log(a) / Math.log(1024));
2119
2119
  return parseFloat((a / Math.pow(1024, d)).toFixed(c)) + ' ' + ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"][d];
2120
2120
  }
2121
- transform(value) {
2121
+ transform(value, typeValue) {
2122
+ if (typeValue !== undefined && typeValue !== null && typeValue !== '') {
2123
+ if ((typeValue).toLowerCase() === 'kb') {
2124
+ value = value * 1024;
2125
+ }
2126
+ if ((typeValue).toLowerCase() === 'mb') {
2127
+ value = (value * 1024) * 1024;
2128
+ }
2129
+ }
2122
2130
  const b = +value;
2123
2131
  return this.formatBytes(b);
2124
2132
  }
@@ -4413,7 +4421,6 @@ class TCloudUiTooltipDirective {
4413
4421
  this._direction = 'top';
4414
4422
  }
4415
4423
  onMouseOver(event) {
4416
- var _a, _b, _c;
4417
4424
  let hoverInCallback = () => {
4418
4425
  this.remove = false;
4419
4426
  };
@@ -4425,38 +4432,42 @@ class TCloudUiTooltipDirective {
4425
4432
  }
4426
4433
  };
4427
4434
  hoverOutCallback;
4428
- const scrollTop = window.scrollY || window.pageYOffset;
4429
- const tooltip = this.renderer.createElement('div');
4430
- const rect = (_a = this.el.nativeElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
4431
- const direction = ((_c = (_b = this.el.nativeElement) === null || _b === void 0 ? void 0 : _b.attributes['ng-reflect--t-cdirection']) === null || _c === void 0 ? void 0 : _c.value) || 'top';
4432
- const el_position_x = (rect === null || rect === void 0 ? void 0 : rect.left) ? parseInt(rect === null || rect === void 0 ? void 0 : rect.left) : 0;
4433
- const el_position_y = (rect === null || rect === void 0 ? void 0 : rect.top) ? parseInt((rect === null || rect === void 0 ? void 0 : rect.top) + scrollTop) : 0;
4434
- let width = 0;
4435
- let height = 0;
4436
- if (event && event.target) {
4437
- const _event = event.target;
4438
- height = _event.offsetHeight;
4439
- width = _event.offsetWidth;
4440
- }
4441
- const top = `${(el_position_y - ((height / 2) + 10))}px`;
4442
- const left = `${el_position_x + (width / 2)}px`;
4443
- this.renderer.setStyle(tooltip, 'top', '0px');
4444
- this.renderer.setStyle(tooltip, 'left', '0px');
4445
- this.renderer.setStyle(tooltip, 'opacity', '0');
4446
- this.renderer.addClass(tooltip, 'tc-directive-tooltip');
4447
- this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
4448
- const id = this.generateID();
4449
- this.renderer.setAttribute(tooltip, 'id', id);
4450
- const textNode = this.info_text;
4451
- if (textNode !== undefined && textNode !== null && textNode !== '') {
4452
- tooltip.innerHTML = textNode;
4453
- this.renderer.appendChild(document.body, tooltip);
4454
- this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
4455
- if (tooltip) {
4456
- tooltip.addEventListener('mouseenter', hoverInCallback);
4457
- tooltip.addEventListener('mouseleave', hoverOutCallback);
4435
+ setTimeout(() => {
4436
+ var _a;
4437
+ const scrollTop = window.scrollY || window.pageYOffset;
4438
+ const tooltip = this.renderer.createElement('div');
4439
+ const rect = (_a = this.el.nativeElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
4440
+ // const direction = this.el.nativeElement?.attributes['ng-reflect--t-cdirection']?.value || 'top';
4441
+ const direction = this._direction || 'top';
4442
+ const el_position_x = (rect === null || rect === void 0 ? void 0 : rect.left) ? parseInt(rect === null || rect === void 0 ? void 0 : rect.left) : 0;
4443
+ const el_position_y = (rect === null || rect === void 0 ? void 0 : rect.top) ? parseInt((rect === null || rect === void 0 ? void 0 : rect.top) + scrollTop) : 0;
4444
+ let width = 0;
4445
+ let height = 0;
4446
+ if (event && event.target) {
4447
+ const _event = event.target;
4448
+ height = _event.offsetHeight;
4449
+ width = _event.offsetWidth;
4458
4450
  }
4459
- }
4451
+ const top = `${(el_position_y - ((height / 2) + 10))}px`;
4452
+ const left = `${el_position_x + (width / 2)}px`;
4453
+ this.renderer.setStyle(tooltip, 'top', '0px');
4454
+ this.renderer.setStyle(tooltip, 'left', '0px');
4455
+ this.renderer.setStyle(tooltip, 'opacity', '0');
4456
+ this.renderer.addClass(tooltip, 'tc-directive-tooltip');
4457
+ this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
4458
+ const id = this.generateID();
4459
+ this.renderer.setAttribute(tooltip, 'id', id);
4460
+ const textNode = this.info_text;
4461
+ if (textNode !== undefined && textNode !== null && textNode !== '') {
4462
+ tooltip.innerHTML = textNode;
4463
+ this.renderer.appendChild(document.body, tooltip);
4464
+ this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
4465
+ if (tooltip) {
4466
+ tooltip.addEventListener('mouseenter', hoverInCallback);
4467
+ tooltip.addEventListener('mouseleave', hoverOutCallback);
4468
+ }
4469
+ }
4470
+ });
4460
4471
  }
4461
4472
  onMouseOut(event) {
4462
4473
  this.remove = true;
@@ -4556,10 +4567,17 @@ class TCloudUiElCopyDirective {
4556
4567
  this.setItemFuncCopy();
4557
4568
  }
4558
4569
  setItemFuncCopy() {
4570
+ var _a;
4559
4571
  const btn_copy = this.renderer.createElement('i');
4560
4572
  var copyText = () => {
4561
4573
  const elementWithCopyAttribute = document.querySelector(`[data-el-copy="${id}"]`);
4562
- const copyText = elementWithCopyAttribute === null || elementWithCopyAttribute === void 0 ? void 0 : elementWithCopyAttribute.textContent;
4574
+ let copyText = '';
4575
+ if (elementWithCopyAttribute && elementWithCopyAttribute.tagName && (elementWithCopyAttribute.tagName).toUpperCase() === 'INPUT') {
4576
+ copyText = elementWithCopyAttribute === null || elementWithCopyAttribute === void 0 ? void 0 : elementWithCopyAttribute.value;
4577
+ }
4578
+ else {
4579
+ copyText = elementWithCopyAttribute === null || elementWithCopyAttribute === void 0 ? void 0 : elementWithCopyAttribute.textContent;
4580
+ }
4563
4581
  navigator.clipboard.writeText(copyText);
4564
4582
  this.renderer.removeClass(btn_copy, 'fa-copy');
4565
4583
  this.renderer.addClass(btn_copy, 'fa-check');
@@ -4578,7 +4596,19 @@ class TCloudUiElCopyDirective {
4578
4596
  this.renderer.setAttribute(btn_copy, 'id', id);
4579
4597
  this.renderer.setAttribute(btn_copy, 'title', 'Copy');
4580
4598
  this.renderer.listen(btn_copy, 'click', () => { copyText(); });
4581
- this.renderer.appendChild(this.el.nativeElement, btn_copy);
4599
+ if (((this.el.nativeElement).tagName).toUpperCase() === 'INPUT') {
4600
+ let classList = (_a = this.el.nativeElement) === null || _a === void 0 ? void 0 : _a.classList;
4601
+ if (classList && (classList).length > 0 && ('tc-form-control').indexOf(classList) > -1) {
4602
+ this.renderer.addClass(btn_copy, 'tcloud-ui-el-input-copy-tc-form-control');
4603
+ }
4604
+ else {
4605
+ this.renderer.addClass(btn_copy, 'tcloud-ui-el-input-copy');
4606
+ }
4607
+ this.renderer.appendChild(this.el.nativeElement.parentNode, btn_copy);
4608
+ }
4609
+ else {
4610
+ this.renderer.appendChild(this.el.nativeElement, btn_copy);
4611
+ }
4582
4612
  }
4583
4613
  generateID(target) {
4584
4614
  const ref = (target) ? `-${target}` : '';
@@ -5138,6 +5168,9 @@ const noop = () => {
5138
5168
  };
5139
5169
  class TCloudUiInputPasswordComponent {
5140
5170
  constructor() {
5171
+ this.actionView = true;
5172
+ this.actionCopy = true;
5173
+ this.actionGeneratePassword = true;
5141
5174
  this.numberOfCharacter = 14;
5142
5175
  this.atLeastOneUppercaseLetter = true;
5143
5176
  this.atLeastOneLowercaseLetter = true;
@@ -5239,11 +5272,17 @@ class TCloudUiInputPasswordComponent {
5239
5272
  }
5240
5273
  }
5241
5274
  TCloudUiInputPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiInputPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5242
- TCloudUiInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiInputPasswordComponent, selector: "tcloud-ui-input-password", inputs: { numberOfCharacter: "numberOfCharacter", atLeastOneUppercaseLetter: "atLeastOneUppercaseLetter", atLeastOneLowercaseLetter: "atLeastOneLowercaseLetter", atLeastOneSpecialCharacter: "atLeastOneSpecialCharacter", ngModel: "ngModel" }, outputs: { ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"tcloud-ui-input-password\">\r\n <table>\r\n <tr>\r\n <!-- input password -->\r\n <td>\r\n <form #_form=\"ngForm\">\r\n <ng-container *ngIf=\"passwordRegex\">\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\r\n </ng-container>\r\n </form>\r\n </td>\r\n\r\n <!-- action show hide -->\r\n <td>\r\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\r\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\r\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \r\n </button>\r\n </td>\r\n\r\n <!-- action generate pass -->\r\n <td>\r\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\r\n <i class=\"fa-solid fa-key\"></i>\r\n </button>\r\n </td>\r\n\r\n <!-- action copy pass -->\r\n <td>\r\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\r\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\r\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".tcloud-ui-input-password{border:1px solid var(--tc-gray-300);border-radius:3px}.tcloud-ui-input-password table{width:100%}.tcloud-ui-input-password table td:first-child{width:100%!important}.tcloud-ui-input-password table td:first-child input{width:100%;border:none;height:38px;padding-left:8px}.tcloud-ui-input-password table td{width:50px;height:40px;background-color:#fff}.tcloud-ui-input-password table td button{background:transparent;border:none;margin-right:3px;cursor:pointer;color:var(--tc-gray-500)}.tcloud-ui-input-password table td button:hover{color:var(--tc-primary2)}.tcloud-ui-input-password .ng-invalid.ng-touched{border:1px solid var(--red)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
5275
+ TCloudUiInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiInputPasswordComponent, selector: "tcloud-ui-input-password", inputs: { actionView: "actionView", actionCopy: "actionCopy", actionGeneratePassword: "actionGeneratePassword", numberOfCharacter: "numberOfCharacter", atLeastOneUppercaseLetter: "atLeastOneUppercaseLetter", atLeastOneLowercaseLetter: "atLeastOneLowercaseLetter", atLeastOneSpecialCharacter: "atLeastOneSpecialCharacter", ngModel: "ngModel" }, outputs: { ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"tcloud-ui-input-password\">\r\n <table>\r\n <tr>\r\n <!-- input password -->\r\n <td>\r\n <form #_form=\"ngForm\">\r\n <ng-container *ngIf=\"passwordRegex\">\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\r\n </ng-container>\r\n </form>\r\n </td>\r\n\r\n <!-- action show hide -->\r\n <td *ngIf=\"actionView\">\r\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\r\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\r\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \r\n </button>\r\n </td>\r\n\r\n <!-- action generate pass -->\r\n <td *ngIf=\"actionGeneratePassword\">\r\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\r\n <i class=\"fa-solid fa-key\"></i>\r\n </button>\r\n </td>\r\n\r\n <!-- action copy pass -->\r\n <td *ngIf=\"actionCopy\">\r\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\r\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\r\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".tcloud-ui-input-password{border:1px solid var(--tc-gray-300);border-radius:3px}.tcloud-ui-input-password table{width:100%}.tcloud-ui-input-password table td:first-child{width:100%!important}.tcloud-ui-input-password table td:first-child input{width:100%;border:none;height:38px;padding-left:8px}.tcloud-ui-input-password table td{width:50px;height:40px;background-color:#fff}.tcloud-ui-input-password table td button{background:transparent;border:none;margin-right:3px;cursor:pointer;color:var(--tc-gray-500)}.tcloud-ui-input-password table td button:hover{color:var(--tc-primary2)}.tcloud-ui-input-password .ng-invalid.ng-touched{border:1px solid var(--red)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
5243
5276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiInputPasswordComponent, decorators: [{
5244
5277
  type: Component,
5245
- args: [{ selector: 'tcloud-ui-input-password', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-input-password\">\r\n <table>\r\n <tr>\r\n <!-- input password -->\r\n <td>\r\n <form #_form=\"ngForm\">\r\n <ng-container *ngIf=\"passwordRegex\">\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\r\n </ng-container>\r\n </form>\r\n </td>\r\n\r\n <!-- action show hide -->\r\n <td>\r\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\r\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\r\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \r\n </button>\r\n </td>\r\n\r\n <!-- action generate pass -->\r\n <td>\r\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\r\n <i class=\"fa-solid fa-key\"></i>\r\n </button>\r\n </td>\r\n\r\n <!-- action copy pass -->\r\n <td>\r\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\r\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\r\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".tcloud-ui-input-password{border:1px solid var(--tc-gray-300);border-radius:3px}.tcloud-ui-input-password table{width:100%}.tcloud-ui-input-password table td:first-child{width:100%!important}.tcloud-ui-input-password table td:first-child input{width:100%;border:none;height:38px;padding-left:8px}.tcloud-ui-input-password table td{width:50px;height:40px;background-color:#fff}.tcloud-ui-input-password table td button{background:transparent;border:none;margin-right:3px;cursor:pointer;color:var(--tc-gray-500)}.tcloud-ui-input-password table td button:hover{color:var(--tc-primary2)}.tcloud-ui-input-password .ng-invalid.ng-touched{border:1px solid var(--red)!important}\n"] }]
5246
- }], ctorParameters: function () { return []; }, propDecorators: { numberOfCharacter: [{
5278
+ args: [{ selector: 'tcloud-ui-input-password', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-input-password\">\r\n <table>\r\n <tr>\r\n <!-- input password -->\r\n <td>\r\n <form #_form=\"ngForm\">\r\n <ng-container *ngIf=\"passwordRegex\">\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\r\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\r\n </ng-container>\r\n </form>\r\n </td>\r\n\r\n <!-- action show hide -->\r\n <td *ngIf=\"actionView\">\r\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\r\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\r\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \r\n </button>\r\n </td>\r\n\r\n <!-- action generate pass -->\r\n <td *ngIf=\"actionGeneratePassword\">\r\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\r\n <i class=\"fa-solid fa-key\"></i>\r\n </button>\r\n </td>\r\n\r\n <!-- action copy pass -->\r\n <td *ngIf=\"actionCopy\">\r\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\r\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\r\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".tcloud-ui-input-password{border:1px solid var(--tc-gray-300);border-radius:3px}.tcloud-ui-input-password table{width:100%}.tcloud-ui-input-password table td:first-child{width:100%!important}.tcloud-ui-input-password table td:first-child input{width:100%;border:none;height:38px;padding-left:8px}.tcloud-ui-input-password table td{width:50px;height:40px;background-color:#fff}.tcloud-ui-input-password table td button{background:transparent;border:none;margin-right:3px;cursor:pointer;color:var(--tc-gray-500)}.tcloud-ui-input-password table td button:hover{color:var(--tc-primary2)}.tcloud-ui-input-password .ng-invalid.ng-touched{border:1px solid var(--red)!important}\n"] }]
5279
+ }], ctorParameters: function () { return []; }, propDecorators: { actionView: [{
5280
+ type: Input
5281
+ }], actionCopy: [{
5282
+ type: Input
5283
+ }], actionGeneratePassword: [{
5284
+ type: Input
5285
+ }], numberOfCharacter: [{
5247
5286
  type: Input
5248
5287
  }], atLeastOneUppercaseLetter: [{
5249
5288
  type: Input