ps-toolkit-ui 1.20.28 → 1.20.31

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.
@@ -55,7 +55,7 @@ FormButtonComponent.decorators = [
55
55
  { type: Component, args: [{
56
56
  selector: 'lib-form-button',
57
57
  template: "<div #inputDiv [id]=\"inp.id + 'ButtonInput'\" [className]=\"'form-input-con button w-100' + (inp.name == null ? ' only-icon' : (inp.icon == null ? ' without-icon' : '')) + (inp.disabled || inp.loading ? ' disabled' : '') + ' ' + inp.class\" [style]=\"inp.style\">\r\n <div *ngIf=\"inp.url == null || inp.disabled\" class=\"form-input\" (click)=\"!inp.disabled && onClick($event)\">\r\n <input #inputBase type=\"button\" [disabled]=\"inp.disabled || inp.loading\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </div>\r\n <a *ngIf=\"inp.url != null && inp.url.startsWith('/') && !inp.disabled\" [target]=\"inp.urlNewTab ? '_blank' : ''\" [routerLink]=\"inp.url\" [queryParams]=\"inp.queryParams != null ? inp.queryParams : null\" class=\"form-input\" (click)=\"onClick($event)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </a>\r\n <a *ngIf=\"inp.url != null && !inp.url.startsWith('/') && !inp.disabled\" [target]=\"inp.urlNewTab ? '_blank' : ''\" [href]=\"inp.url\" class=\"form-input\" (click)=\"onClick($event)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </a>\r\n</div>\r\n",
58
- styles: [".form-input-con.button{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;padding:0 15px;position:relative}.form-input-con.button .form-input{cursor:pointer;float:right;position:relative;width:100%}.form-input-con.button .form-input .input-base{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input-con.button .form-input .control{background-color:var(--base);background-image:none;border:none;border-radius:var(--border-radius-base);color:#fff;display:block;float:left;height:35px;line-height:35px;overflow:hidden;padding:0 35px 0 20px;position:relative;text-align:center;white-space:nowrap;width:100%;z-index:2}.form-input-con.button.disabled .form-input{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.button .form-input i.icon{color:#fff;cursor:pointer;float:right;font-size:12px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;top:0;width:30px}.form-input-con.button.disabled .form-input .input-base,.form-input-con.button.disabled .form-input i.icon{cursor:default}.form-input-con.button:not(.disabled) .form-input .control:hover,.form-input-con.button:not(.disabled) .form-input .input-base:focus+.control{background-color:var(--base-dark)}.form-input-con.button.red .form-input .control{background-color:var(--red)}.form-input-con.button.red:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.red:not(.disabled) .form-input:hover .control{background-color:var(--red-dark)}.form-input-con.button.grey .form-input .control{background-color:var(--black-44);color:var(--black)}.form-input-con.button.grey .form-input i.icon{color:var(--black)}.form-input-con.button.grey:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.grey:not(.disabled) .form-input:hover .control{background-color:var(--black-light);color:var(--white)}.form-input-con.button.grey .form-input:hover i.icon{color:var(--white)}.form-input-con.button.blue .form-input .control{background-color:var(--blue)}.form-input-con.button.blue:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.blue:not(.disabled) .form-input:hover .control{background-color:var(--blue-dark)}.form-input-con.button.green .form-input .control{background-color:var(--green)}.form-input-con.button.green:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.green:not(.disabled) .form-input:hover .control{background-color:var(--green-dark)}.form-input-con.button.primary .form-input .control{background-color:var(--primary)}.form-input-con.button.primary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.primary:not(.disabled) .form-input:hover .control{background-color:var(--primary-dark)}.form-input-con.button.secondary .form-input .control{background-color:var(--secondary)}.form-input-con.button.secondary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.secondary:not(.disabled) .form-input:hover .control{background-color:var(--secondary-dark)}.form-input-con.button.yellow .form-input .control{background-color:var(--yellow)}.form-input-con.button.yellow:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.yellow:not(.disabled) .form-input:hover .control{background-color:var(--yellow-dark)}.form-input-con.button.white .form-input .control{background-color:var(--white);border:var(--border-input);color:var(--black)}.form-input-con.button.white:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.white:not(.disabled) .form-input:hover .control{background-color:var(--white)}.form-input-con.button.white .form-input i.icon{color:var(--black)}.form-input-con.button.transparent .form-input .control{background-color:unset;border:1px solid var(--base);color:var(--base);line-height:33px}.form-input-con.button.transparent .form-input i.icon{color:var(--base);line-height:33px}.form-input-con.button.transparent:not(.disabled) .form-input .control:hover,.form-input-con.button.transparent:not(.disabled) .form-input .input-base:focus+.control{background-color:unset}.form-input-con.button.transparent.white .form-input .control{background-color:unset;border:1px solid var(--white);color:var(--white)}.form-input-con.button.without-border .form-input .control{border:none!important}.form-input-con.button.transparent .form-input i.icon{color:var(--white)}.form-input-con.button.left-icon .form-input .control{float:right;padding:0 20px 0 35px}.form-input-con.button.left-icon .form-input i.icon{left:0;right:unset}.form-input-con.button.h-45{font-size:13px;height:45px}.form-input-con.button.h-45 .form-input .control,.form-input-con.button.h-45 .form-input i.icon{height:45px;line-height:45px}.form-input-con.button.h-45 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-55{font-size:14px;height:55px}.form-input-con.button.h-55 .form-input .control,.form-input-con.button.h-55 .form-input i.icon{height:55px;line-height:55px}.form-input-con.button.h-55 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-50{font-size:14px;height:50px}.form-input-con.button.h-50 .form-input .control,.form-input-con.button.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.button.h-50 .form-input i.icon{font-size:16px;width:35px}.form-input-con.button.h-40{font-size:13px;height:40px}.form-input-con.button.h-40 .form-input .control,.form-input-con.button.h-40 .form-input i.icon{height:40px;line-height:40px}.form-input-con.button.h-40 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-30{font-size:12px;height:30px}.form-input-con.button.h-30 .form-input .control,.form-input-con.button.h-30 .form-input i.icon{height:30px;line-height:30px}.form-input-con.button.h-30 .form-input i.icon{width:30px}.form-input-con.button.h-25{font-size:12px;height:25px}.form-input-con.button.h-25 .form-input .control,.form-input-con.button.h-25 .form-input i.icon{height:25px;line-height:25px}.form-input-con.button.white.h-25 .form-input .control,.form-input-con.button.white.h-25 .form-input i.icon{line-height:23px}.form-input-con.button.h-25 .form-input i.icon{width:25px}.form-input-con.button.h-20{font-size:11px;height:20px}.form-input-con.button.h-20 .form-input .control,.form-input-con.button.h-20 .form-input i.icon{height:20px;line-height:20px}.form-input-con.button.h-20 .form-input i.icon{width:20px}.form-input-con.button.without-icon .form-input .control{min-width:25px;padding:0 8px;width:100%}::ng-deep .form-input-con.button.h-25 .form-input .dot-spinner>div{height:3px;margin-right:2px;width:3px}.form-input-con.button.h-25.only-icon{min-width:55px}.form-input-con.button.h-25.only-icon .form-input .control{min-width:25px;padding:0}.form-input-con.button.h-30.only-icon{min-width:60px}.form-input-con.button.h-30.only-icon .form-input .control{min-width:30px;padding:0}.form-input-con.button.only-icon{min-width:65px}.form-input-con.button.only-icon .form-input .control{min-width:35px;padding:0}.form-input-con.button.only-icon .form-input i.icon{width:100%}.form-input-con.button.only-icon .form-input .text{display:none}.save-form-btn{float:left!important;width:40%!important}@media (max-width:499.98px){.save-form-btn{width:60%!important}}@media (min-width:500px) and (max-width:599.98px){.save-form-btn{width:50%!important}}::ng-deep .modal .sm .save-form-btn{width:70%!important}"]
58
+ styles: [".form-input-con.button{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;padding:0 15px;position:relative}.form-input-con.button .form-input{cursor:pointer;float:right;position:relative;width:100%}.form-input-con.button .form-input .input-base{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input-con.button .form-input .control{background-color:var(--base);background-image:none;border:none;border-radius:var(--border-radius-base);color:#fff;display:block;float:left;height:35px;line-height:35px;overflow:hidden;padding:0 35px 0 20px;position:relative;text-align:center;white-space:nowrap;width:100%;z-index:2}.form-input-con.button.disabled .form-input{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.button .form-input i.icon{color:#fff;cursor:pointer;float:right;font-size:12px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;top:0;width:30px}.form-input-con.button.disabled .form-input .input-base,.form-input-con.button.disabled .form-input i.icon{cursor:default}.form-input-con.button:not(.disabled) .form-input .control:hover,.form-input-con.button:not(.disabled) .form-input .input-base:focus+.control{background-color:var(--base-dark)}.form-input-con.button.red .form-input .control{background-color:var(--red)}.form-input-con.button.red:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.red:not(.disabled) .form-input:hover .control{background-color:var(--red-dark)}.form-input-con.button.grey .form-input .control{background-color:var(--black-44);color:var(--black)}.form-input-con.button.grey .form-input i.icon{color:var(--black)}.form-input-con.button.grey:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.grey:not(.disabled) .form-input:hover .control{background-color:var(--black-light);color:var(--white)}.form-input-con.button.grey .form-input:hover i.icon{color:var(--white)}.form-input-con.button.blue .form-input .control{background-color:var(--blue)}.form-input-con.button.blue:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.blue:not(.disabled) .form-input:hover .control{background-color:var(--blue-dark)}.form-input-con.button.green .form-input .control{background-color:var(--green)}.form-input-con.button.green:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.green:not(.disabled) .form-input:hover .control{background-color:var(--green-dark)}.form-input-con.button.primary .form-input .control{background-color:var(--primary)}.form-input-con.button.primary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.primary:not(.disabled) .form-input:hover .control{background-color:var(--primary-dark)}.form-input-con.button.secondary .form-input .control{background-color:var(--secondary)}.form-input-con.button.secondary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.secondary:not(.disabled) .form-input:hover .control{background-color:var(--secondary-dark)}.form-input-con.button.yellow .form-input .control{background-color:var(--yellow)}.form-input-con.button.yellow:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.yellow:not(.disabled) .form-input:hover .control{background-color:var(--yellow-dark)}.form-input-con.button.white .form-input .control{background-color:var(--white);border:var(--border-input);color:var(--black)}.form-input-con.button.white:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.white:not(.disabled) .form-input:hover .control{background-color:var(--white-light)}.form-input-con.button.white .form-input i.icon{color:var(--black)}.form-input-con.button.transparent .form-input .control{background-color:unset;border:1px solid var(--base);color:var(--base);line-height:33px}.form-input-con.button.transparent .form-input i.icon{color:var(--base);line-height:33px}.form-input-con.button.transparent:not(.disabled) .form-input .control:hover,.form-input-con.button.transparent:not(.disabled) .form-input .input-base:focus+.control{background-color:unset}.form-input-con.button.transparent.white .form-input .control{background-color:unset;border:1px solid var(--white);color:var(--white)}.form-input-con.button.without-border .form-input .control{border:none!important}.form-input-con.button.transparent .form-input i.icon{color:var(--white)}.form-input-con.button.left-icon .form-input .control{float:right;padding:0 20px 0 35px}.form-input-con.button.left-icon .form-input i.icon{left:0;right:unset}.form-input-con.button.h-45{font-size:13px;height:45px}.form-input-con.button.h-45 .form-input .control,.form-input-con.button.h-45 .form-input i.icon{height:45px;line-height:45px}.form-input-con.button.h-45 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-55{font-size:14px;height:55px}.form-input-con.button.h-55 .form-input .control,.form-input-con.button.h-55 .form-input i.icon{height:55px;line-height:55px}.form-input-con.button.h-55 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-50{font-size:14px;height:50px}.form-input-con.button.h-50 .form-input .control,.form-input-con.button.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.button.h-50 .form-input i.icon{font-size:16px;width:35px}.form-input-con.button.h-40{font-size:13px;height:40px}.form-input-con.button.h-40 .form-input .control,.form-input-con.button.h-40 .form-input i.icon{height:40px;line-height:40px}.form-input-con.button.h-40 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-30{font-size:12px;height:30px}.form-input-con.button.h-30 .form-input .control,.form-input-con.button.h-30 .form-input i.icon{height:30px;line-height:30px}.form-input-con.button.h-30 .form-input i.icon{width:30px}.form-input-con.button.h-25{font-size:12px;height:25px}.form-input-con.button.h-25 .form-input .control,.form-input-con.button.h-25 .form-input i.icon{height:25px;line-height:25px}.form-input-con.button.white.h-25 .form-input .control,.form-input-con.button.white.h-25 .form-input i.icon{line-height:23px}.form-input-con.button.h-25 .form-input i.icon{width:25px}.form-input-con.button.h-20{font-size:11px;height:20px}.form-input-con.button.h-20 .form-input .control,.form-input-con.button.h-20 .form-input i.icon{height:20px;line-height:20px}.form-input-con.button.h-20 .form-input i.icon{width:20px}.form-input-con.button.without-icon .form-input .control{min-width:25px;padding:0 8px;width:100%}::ng-deep .form-input-con.button.h-25 .form-input .dot-spinner>div{height:3px;margin-right:2px;width:3px}.form-input-con.button.h-25.only-icon{min-width:55px}.form-input-con.button.h-25.only-icon .form-input .control{min-width:25px;padding:0}.form-input-con.button.h-30.only-icon{min-width:60px}.form-input-con.button.h-30.only-icon .form-input .control{min-width:30px;padding:0}.form-input-con.button.only-icon{min-width:65px}.form-input-con.button.only-icon .form-input .control{min-width:35px;padding:0}.form-input-con.button.only-icon .form-input i.icon{width:100%}.form-input-con.button.only-icon .form-input .text{display:none}.save-form-btn{float:left!important;width:40%!important}@media (max-width:499.98px){.save-form-btn{width:60%!important}}@media (min-width:500px) and (max-width:599.98px){.save-form-btn{width:50%!important}}::ng-deep .modal .sm .save-form-btn{width:70%!important}"]
59
59
  },] }
60
60
  ];
61
61
  FormButtonComponent.ctorParameters = () => [];
@@ -1,6 +1,6 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
- import { InputType, Method, TableCollType, TableOptionType } from '../../classes/enum.class';
3
+ import { InputType, Method, PermissionAccessTypeEnum, TableCollType, TableOptionType } from '../../classes/enum.class';
4
4
  import { InputClass } from '../../classes/form.class';
5
5
  import * as $ from 'jquery';
6
6
  import { ModalClass } from '../../classes/modal.class';
@@ -79,6 +79,22 @@ export class TableComponent {
79
79
  this.export.onClick = () => {
80
80
  $(this.exportDropDown.nativeElement).slideToggle();
81
81
  };
82
+ this.print.onClick = () => {
83
+ const url = this.table.permissions.getAccess(PermissionAccessTypeEnum.List).Url.replace('/list', '/report').replace('-list', '-report');
84
+ const data = this.table.searchData();
85
+ data.Page = 1;
86
+ data.PerPage = -1;
87
+ new RequestClass(this.table.environment, this.table.l).send(url, Method.Post, data, this.print, (result) => {
88
+ window.open('/report' + url + '/' + result, '_blank');
89
+ }, () => { });
90
+ };
91
+ $(document).mouseup((e) => {
92
+ const container = $(this.exportDropDown.nativeElement);
93
+ // @ts-ignore
94
+ if (!container.is(e.target) && container.has(e.target).length === 0) {
95
+ container.slideUp(100);
96
+ }
97
+ });
82
98
  this.maximum.onClick = () => {
83
99
  $(this.tableDiv.nativeElement).toggleClass('maximum');
84
100
  this.maximum.icon = this.maximum.name === 'Minimum' ? 'fad fa-arrows-maximize' : 'fad fa-arrows-minimize';
@@ -190,4 +206,4 @@ TableComponent.propDecorators = {
190
206
  exportDropDown: [{ type: ViewChild, args: ['exportDropDown',] }],
191
207
  confirm: [{ type: ViewChild, args: ['confirm',] }]
192
208
  };
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxFQUFZLFNBQVMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RHLE9BQU8sRUFBQyxVQUFVLEVBQWMsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTywwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBTy9ELE1BQU0sT0FBTyxjQUFjO0lBbUJ6QixZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWZqQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWN4QyxXQUFNLEdBQWUsSUFBSSxDQUFDO0lBRTFCLENBQUM7SUFmRCxJQUFJLElBQUksS0FBc0IsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pELElBQUksZUFBZSxLQUE0QixPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxPQUFPLEtBQTBCLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQztJQWU1RCxRQUFRO1FBQ04sSUFB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LENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLFVBQVUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQ2xFO1lBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDOzs7WUFyTEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixzL0tBQXFDOzthQUV0Qzs7O1lBZk8sTUFBTTs7O29CQWlCWCxLQUFLO3lCQUVMLE1BQU07bUJBS04sU0FBUyxTQUFDLE1BQU07dUJBQ2hCLFNBQVMsU0FBQyxVQUFVOzZCQUNwQixTQUFTLFNBQUMsZ0JBQWdCO3NCQUMxQixTQUFTLFNBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7VGFibGVDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS5jbGFzcyc7XHJcbmltcG9ydCB7RW51bVV0aWxzLCBJbnB1dFR5cGUsIE1ldGhvZCwgVGFibGVDb2xsVHlwZSwgVGFibGVPcHRpb25UeXBlfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3MsIE9wdGlvbkNsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7Q29uZmlybUNvbXBvbmVudH0gZnJvbSAnLi4vY29uZmlybS9jb25maXJtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TW9kYWxDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCAnanF1ZXJ5LXVpLWRpc3QvanF1ZXJ5LXVpJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7UGVybWlzc2lvbkNsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL3Blcm1pc3Npb24uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKVxyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZVJvd3MgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBleyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgZ2V0IHRhYmxlT3B0aW9uVHlwZSgpOiB0eXBlb2YgVGFibGVPcHRpb25UeXBleyByZXR1cm4gVGFibGVPcHRpb25UeXBlOyB9XHJcbiAgZ2V0IGNvbFR5cGUoKTogdHlwZW9mIFRhYmxlQ29sbFR5cGV7IHJldHVybiBUYWJsZUNvbGxUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgncm93cycpIHJvd3M6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgndGFibGVEaXYnKSB0YWJsZURpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdleHBvcnREcm9wRG93bicpIGV4cG9ydERyb3BEb3duOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm0nKSBjb25maXJtOiBDb25maXJtQ29tcG9uZW50O1xyXG4gIHJlbG9hZDogSW5wdXRDbGFzcztcclxuICBleGNlbDogSW5wdXRDbGFzcztcclxuICBwZGY6IElucHV0Q2xhc3M7XHJcbiAgcHJpbnQ6IElucHV0Q2xhc3M7XHJcbiAgbWF4aW11bTogSW5wdXRDbGFzcztcclxuICBleHBlcnRTZWFyY2g6IElucHV0Q2xhc3M7XHJcbiAgZXhwb3J0OiBJbnB1dENsYXNzID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHtcclxuICB9XHJcbiAgb3B0aW9uczogSW5wdXRDbGFzc1tdO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWxvYWQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdSZWxvYWQnLCAnZmFkIGZhLXN5bmMtYWx0JywgSW5wdXRUeXBlLkljb24sICdtLXItMTAtcCcpO1xyXG4gICAgdGhpcy5leHBvcnQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdFeHBvcnQnLCAnZmFkIGZhLWRvd25sb2FkIGYtcy0yMScsIElucHV0VHlwZS5JY29uLCAnbS1yLTEwLXAnKTtcclxuICAgIHRoaXMuZXhjZWwgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdFeHBvcnRFeGNlbCcsICdmYWQgZmEtZmlsZS1leGNlbCBmLXMtMjEnLCBJbnB1dFR5cGUuQnV0dG9uLCAnd2hpdGUgZi1zLTExIGgtMzUgcC0wJyk7XHJcbiAgICB0aGlzLnBkZiA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ0V4cG9ydFBkZicsICdmYWQgZmEtZmlsZS1wZGYgZi1zLTIxJywgSW5wdXRUeXBlLkJ1dHRvbiwgJ3doaXRlIGYtcy0xMSBoLTM1IHAtMCcpO1xyXG4gICAgdGhpcy5wcmludCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ0V4cG9ydFByaW50JywgJ2ZhZCBmYS1maWxlLWxpbmVzIGYtcy0yMScsIElucHV0VHlwZS5CdXR0b24sICd3aGl0ZSBmLXMtMTEgaC0zNSBwLTAnKTtcclxuICAgIHRoaXMubWF4aW11bSA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ01heGltdW0nLCAnZmFkIGZhLWFycm93cy1tYXhpbWl6ZScsIElucHV0VHlwZS5JY29uLCAnbS1yLTEwLXAnKTtcclxuICAgIHRoaXMuZXhwZXJ0U2VhcmNoID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCAnRXhwZXJ0U2VhcmNoJywgJ2ZhZCBmYS1tYWduaWZ5aW5nLWdsYXNzJywgSW5wdXRUeXBlLkljb24sICdtLXItMTAtcCcpO1xyXG4gICAgdGhpcy50YWJsZS5zZXRDb2xzKCk7XHJcbiAgICBpZiAodGhpcy50YWJsZS5zb3J0YWJsZSl7XHJcbiAgICAgIHRoaXMudGFibGUucGVyUGFnZSA9IC0xO1xyXG4gICAgICB0aGlzLnRhYmxlLm9uTG9hZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldFNvcnRhYmxlKCk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlLnNldCh0aGlzLmNoYW5nZVJvd3MpO1xyXG4gICAgaWYgKHRoaXMudGFibGUuc2VhcmNoRm9ybSl7XHJcbiAgICAgIHRoaXMudGFibGUuc2VhcmNoRm9ybS5kaXNwbGF5TGFiZWwgPSB0aGlzLnRhYmxlLmV4cGVydFNlYXJjaDtcclxuICAgICAgdGhpcy50YWJsZS5zZWFyY2hGb3JtLmNsYXNzID0gKHRoaXMudGFibGUuc2VhcmNoRm9ybS5jbGFzcyA/IHRoaXMudGFibGUuc2VhcmNoRm9ybS5jbGFzcyA6ICcnKSArICh0aGlzLnRhYmxlLmV4cGVydFNlYXJjaCA/ICcnIDogJyBwLTAnKTtcclxuICAgICAgaWYgKHRoaXMudGFibGUuZXhwZXJ0U2VhcmNoKXtcclxuICAgICAgICBjb25zdCBzID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCAnU2VhcmNoJywgJ2ZhZCBmYS1tYWduaWZ5aW5nLWdsYXNzJywgSW5wdXRUeXBlLlN1Ym1pdCwgJ2JsdWUgaC0zMCcpO1xyXG4gICAgICAgIHMuc3R5bGUgPSB7dG9wOiAnMjBweCcsIGxlZnQ6ICc1cHgnLCBwb3NpdGlvbjogJ2Fic29sdXRlJywgd2lkdGg6ICc1MCUnfTtcclxuICAgICAgICB0aGlzLnRhYmxlLnNlYXJjaEZvcm0uaW5wdXRzLnB1c2gocyk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5zZWFyY2hGb3JtLm5hbWUgPSAnRXhwZXJ0U2VhcmNoJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlLnNlYXJjaEZvcm0uaW5wdXRzLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgY29uc3QgaGFzU3VibWl0ID0gdGhpcy50YWJsZS5zZWFyY2hGb3JtLmlucHV0cy5zb21lKHMgPT4gcy50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KTtcclxuICAgICAgICB4LnJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgeC5kaXNwbGF5TGFiZWwgPSB0aGlzLnRhYmxlLmV4cGVydFNlYXJjaDtcclxuICAgICAgICB4LmNsYXNzID0geC5jbGFzcyArICcgc2VhcmNoLWZvcm0taW5wJyArICh0aGlzLnRhYmxlLmV4cGVydFNlYXJjaCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5TdWJtaXQgPyAnIHAtMCcgOiAnJyk7XHJcbiAgICAgICAgeC53aXRoQ2xlYXIgPSAhaGFzU3VibWl0IHx8IHRoaXMudGFibGUuZXhwZXJ0U2VhcmNoO1xyXG4gICAgICAgIGlmICghaGFzU3VibWl0KXtcclxuICAgICAgICAgIGlmICh4Lm9uQ2hhbmdlID09IG51bGwpe1xyXG4gICAgICAgICAgICB4Lm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoeC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KXtcclxuICAgICAgICAgIHgub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuc2VhcmNoRm9ybS5vbkJlZm9yZVN1Ym1pdCAmJiAhdGhpcy50YWJsZS5zZWFyY2hGb3JtLm9uQmVmb3JlU3VibWl0KCkpe1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoeCk7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgLy8gdGhpcy50YWJsZS5zZWFyY2hGb3JtLnN1Ym1pdCA9ICgpID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coJ3RoaXMudGFibGUuc2VhcmNoRm9ybS5zdWJtaXQnKTtcclxuICAgICAgICAgIC8vICAgaWYgKHRoaXMudGFibGUuc2VhcmNoRm9ybS5vbkJlZm9yZVN1Ym1pdCAmJiAhdGhpcy50YWJsZS5zZWFyY2hGb3JtLm9uQmVmb3JlU3VibWl0KCkpe1xyXG4gICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgLy8gICB0aGlzLnRhYmxlLmxvYWQoeCk7XHJcbiAgICAgICAgICAvLyAgICQodGhpcy50YWJsZURpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygnc2hvdy1leHBlcnQtc2VhcmNoJyk7XHJcbiAgICAgICAgICAvLyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKTtcclxuICAgIHRoaXMucmVsb2FkLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMudGFibGUubG9hZCh0aGlzLnJlbG9hZCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5leHBvcnQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgJCh0aGlzLmV4cG9ydERyb3BEb3duLm5hdGl2ZUVsZW1lbnQpLnNsaWRlVG9nZ2xlKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5tYXhpbXVtLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICQodGhpcy50YWJsZURpdi5uYXRpdmVFbGVtZW50KS50b2dnbGVDbGFzcygnbWF4aW11bScpO1xyXG4gICAgICB0aGlzLm1heGltdW0uaWNvbiA9IHRoaXMubWF4aW11bS5uYW1lID09PSAnTWluaW11bScgPyAnZmFkIGZhLWFycm93cy1tYXhpbWl6ZScgOiAnZmFkIGZhLWFycm93cy1taW5pbWl6ZSc7XHJcbiAgICAgIHRoaXMubWF4aW11bS5uYW1lID0gdGhpcy5tYXhpbXVtLm5hbWUgPT09ICdNaW5pbXVtJyA/ICdNYXhpbXVtJyA6ICdNaW5pbXVtJztcclxuICAgIH07XHJcbiAgICB0aGlzLmV4cGVydFNlYXJjaC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMudGFibGVEaXYubmF0aXZlRWxlbWVudCkuYWRkQ2xhc3MoJ3Nob3ctZXhwZXJ0LXNlYXJjaCcpO1xyXG4gICAgfTtcclxuICAgIHRoaXMudGFibGUuc2hvd0NvbmZpcm0gPSAobDogc3RyaW5nLCB1cmw6IHN0cmluZywgZGF0YSwgYWNjZXB0OiAocmVzdWx0OiBhbnkpID0+IHZvaWQpID0+IHtcclxuICAgICAgdGhpcy5jb25maXJtLnNob3cobCwgdXJsLCBkYXRhLCBhY2NlcHQpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgYWxsQ2hlY2tlZCgpOiBib29sZWFue1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiAheC5jaGVja2VkKS5sZW5ndGggPT09IDA7XHJcbiAgfVxyXG4gIGlzQ2hlY2tlZCgpOiBib29sZWFue1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiB4LmNoZWNrZWQpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG4gIGNoZWNrQWxsKCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+ICF4LmNoZWNrZWQpLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgIHRoaXMudGFibGUucm93cy5mb3JFYWNoKHggPT4geC5jaGVja2VkID0gZmFsc2UpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudGFibGUucm93cy5mb3JFYWNoKHggPT4geC5jaGVja2VkID0gdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldE9wdGlvbnMoKTogSW5wdXRDbGFzc1tde1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICBzZXRTb3J0YWJsZSgpOiB2b2lke1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgJCh0aGlzLnJvd3MubmF0aXZlRWxlbWVudCkuc29ydGFibGUoe1xyXG4gICAgICAgIGF4aXM6ICd5JyxcclxuICAgICAgICBpdGVtczogJy5yb3cnLFxyXG4gICAgICAgIGhhbmRsZTogJz4gLmhhbmRsZS1jb24gPiAuaGFuZGxlLmhhbmRsZS1zb3J0YWJsZScsXHJcbiAgICAgICAgdXBkYXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gW107XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAkKHRoaXMucm93cy5uYXRpdmVFbGVtZW50KS5zb3J0YWJsZSgndG9BcnJheScsIHthdHRyaWJ1dGU6ICdkYXRhLWlkJ30pLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgIGRhdGEucHVzaChwYXJzZUludCh4LCAxMCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgcC5Db250cm9sbGVyID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5Db250cm9sbGVyO1xyXG4gICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICAgIHAuQWN0aW9uID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BY3Rpb24gPyB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFjdGlvbiArICctc29ydCcgOiAnc29ydCc7XHJcbiAgICAgICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZChwLmdldFVybCgpLnRvTG93ZXJDYXNlKCksIE1ldGhvZC5Qb3N0LCB7SWRzOiBkYXRhfSwgbnVsbCwgKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5vblNvcnQpe1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUub25Tb3J0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sICgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLmRpc2FibGVTZWxlY3Rpb24oKTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG4gIGdldFJvd3MoKTogYW55W117XHJcbiAgICBjb25zdCBjID0gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+ICF4LkRhdGEuUGFyZW50SWQpO1xyXG4gICAgYy5mb3JFYWNoKCh4LCBpKSA9PiB4LlJvd051bSA9IGMubGVuZ3RoIC0gaSArIDEpO1xyXG4gICAgcmV0dXJuIGM7XHJcbiAgfVxyXG4gIC8vIGdldE9wdGlvbk1vZGFscygpOiBJbnB1dENsYXNzW117XHJcbiAgLy8gICBjb25zdCBtb2RhbHMgPSBbXTtcclxuICAvLyAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMudGFibGUub3B0aW9uQWN0aW9ucykpIHtcclxuICAvLyAgICAgaWYgKHRoaXMudGFibGUub3B0aW9uQWN0aW9uc1trZXldLm1vZGFsKXtcclxuICAvLyAgICAgICBtb2RhbHMucHVzaCh0aGlzLnRhYmxlLm9wdGlvbkFjdGlvbnNba2V5XS5tb2RhbCk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBtb2RhbHM7XHJcbiAgLy8gfVxyXG4gIG9uQ2hhbmdlUm93cyhlKTogdm9pZHtcclxuICAgIHJldHVybiB0aGlzLmNoYW5nZVJvd3MuZW1pdChlKTtcclxuICB9XHJcbiAgb25Db25maXJtU2hvdyhlKTogdm9pZHtcclxuICAgIHRoaXMuY29uZmlybS5zaG93KHRoaXMudGFibGUubChlLmFjdGlvbiArICdDb25maXJtJyksIGUudXJsLCBlLmRhdGEsIGUuYWNjZXB0KTtcclxuICB9XHJcbiAgY2hhbmdlU29ydChlLCBzOiBzdHJpbmcpOiB2b2lke1xyXG4gICAgaWYgKCQoZS50YXJnZXQpLmNsb3Nlc3QoJy5oZWFkZXItc2VhcmNoJykuaGFzQ2xhc3MoJ2hlYWRlci1zZWFyY2gnKSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGUuc29ydFR5cGUgPSB0aGlzLnRhYmxlLnNvcnQgPT09IHMgPyB0aGlzLnRhYmxlLnNvcnRUeXBlID09PSAnQVNDJyA/ICdERVNDJyA6IG51bGwgOiAnQVNDJztcclxuICAgIHRoaXMudGFibGUuc29ydCA9IHRoaXMudGFibGUuc29ydFR5cGUgPT0gbnVsbCA/IG51bGwgOiBzO1xyXG4gICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgfVxyXG4gIGdldE1vZGFscygpOiBNb2RhbENsYXNzW117XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5vcHRpb25zQWN0aW9ucy5maWx0ZXIoeCA9PiB4IGluc3RhbmNlb2YgTW9kYWxDbGFzcyk7XHJcbiAgfVxyXG4gIGhpZGVFeHBlcnRTZWFyY2goZSk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy50YWJsZS5leHBlcnRTZWFyY2ggJiYgJChlLnRhcmdldCkuaGFzQ2xhc3MoJ3NlYXJjaC1mb3JtJykpXHJcbiAgICB7XHJcbiAgICAgICQodGhpcy50YWJsZURpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygnc2hvdy1leHBlcnQtc2VhcmNoJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTywwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBTy9ELE1BQU0sT0FBTyxjQUFjO0lBbUJ6QixZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWZqQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWN4QyxXQUFNLEdBQWUsSUFBSSxDQUFDO0lBRTFCLENBQUM7SUFmRCxJQUFJLElBQUksS0FBc0IsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pELElBQUksZUFBZSxLQUE0QixPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxPQUFPLEtBQTBCLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQztJQWU1RCxR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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge1RhYmxlQ2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUuY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0VHlwZSwgTWV0aG9kLCBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0sIFRhYmxlQ29sbFR5cGUsIFRhYmxlT3B0aW9uVHlwZX0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7Q29uZmlybUNvbXBvbmVudH0gZnJvbSAnLi4vY29uZmlybS9jb25maXJtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TW9kYWxDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCAnanF1ZXJ5LXVpLWRpc3QvanF1ZXJ5LXVpJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7UGVybWlzc2lvbkNsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL3Blcm1pc3Npb24uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKVxyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZVJvd3MgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBleyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgZ2V0IHRhYmxlT3B0aW9uVHlwZSgpOiB0eXBlb2YgVGFibGVPcHRpb25UeXBleyByZXR1cm4gVGFibGVPcHRpb25UeXBlOyB9XHJcbiAgZ2V0IGNvbFR5cGUoKTogdHlwZW9mIFRhYmxlQ29sbFR5cGV7IHJldHVybiBUYWJsZUNvbGxUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgncm93cycpIHJvd3M6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgndGFibGVEaXYnKSB0YWJsZURpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdleHBvcnREcm9wRG93bicpIGV4cG9ydERyb3BEb3duOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm0nKSBjb25maXJtOiBDb25maXJtQ29tcG9uZW50O1xyXG4gIHJlbG9hZDogSW5wdXRDbGFzcztcclxuICBleGNlbDogSW5wdXRDbGFzcztcclxuICBwZGY6IElucHV0Q2xhc3M7XHJcbiAgcHJpbnQ6IElucHV0Q2xhc3M7XHJcbiAgbWF4aW11bTogSW5wdXRDbGFzcztcclxuICBleHBlcnRTZWFyY2g6IElucHV0Q2xhc3M7XHJcbiAgZXhwb3J0OiBJbnB1dENsYXNzID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHtcclxuICB9XHJcbiAgb3B0aW9uczogSW5wdXRDbGFzc1tdO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWxvYWQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdSZWxvYWQnLCAnZmFkIGZhLXN5bmMtYWx0JywgSW5wdXRUeXBlLkljb24sICdtLXItMTAtcCcpO1xyXG4gICAgdGhpcy5leHBvcnQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdFeHBvcnQnLCAnZmFkIGZhLWRvd25sb2FkIGYtcy0yMScsIElucHV0VHlwZS5JY29uLCAnbS1yLTEwLXAnKTtcclxuICAgIHRoaXMuZXhjZWwgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdFeHBvcnRFeGNlbCcsICdmYWQgZmEtZmlsZS1leGNlbCBmLXMtMjEnLCBJbnB1dFR5cGUuQnV0dG9uLCAnd2hpdGUgZi1zLTExIGgtMzUgcC0wJyk7XHJcbiAgICB0aGlzLnBkZiA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ0V4cG9ydFBkZicsICdmYWQgZmEtZmlsZS1wZGYgZi1zLTIxJywgSW5wdXRUeXBlLkJ1dHRvbiwgJ3doaXRlIGYtcy0xMSBoLTM1IHAtMCcpO1xyXG4gICAgdGhpcy5wcmludCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ0V4cG9ydFByaW50JywgJ2ZhZCBmYS1maWxlLWxpbmVzIGYtcy0yMScsIElucHV0VHlwZS5CdXR0b24sICd3aGl0ZSBmLXMtMTEgaC0zNSBwLTAnKTtcclxuICAgIHRoaXMubWF4aW11bSA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ01heGltdW0nLCAnZmFkIGZhLWFycm93cy1tYXhpbWl6ZScsIElucHV0VHlwZS5JY29uLCAnbS1yLTEwLXAnKTtcclxuICAgIHRoaXMuZXhwZXJ0U2VhcmNoID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCAnRXhwZXJ0U2VhcmNoJywgJ2ZhZCBmYS1tYWduaWZ5aW5nLWdsYXNzJywgSW5wdXRUeXBlLkljb24sICdtLXItMTAtcCcpO1xyXG4gICAgdGhpcy50YWJsZS5zZXRDb2xzKCk7XHJcbiAgICBpZiAodGhpcy50YWJsZS5zb3J0YWJsZSl7XHJcbiAgICAgIHRoaXMudGFibGUucGVyUGFnZSA9IC0xO1xyXG4gICAgICB0aGlzLnRhYmxlLm9uTG9hZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldFNvcnRhYmxlKCk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlLnNldCh0aGlzLmNoYW5nZVJvd3MpO1xyXG4gICAgaWYgKHRoaXMudGFibGUuc2VhcmNoRm9ybSl7XHJcbiAgICAgIHRoaXMudGFibGUuc2VhcmNoRm9ybS5kaXNwbGF5TGFiZWwgPSB0aGlzLnRhYmxlLmV4cGVydFNlYXJjaDtcclxuICAgICAgdGhpcy50YWJsZS5zZWFyY2hGb3JtLmNsYXNzID0gKHRoaXMudGFibGUuc2VhcmNoRm9ybS5jbGFzcyA/IHRoaXMudGFibGUuc2VhcmNoRm9ybS5jbGFzcyA6ICcnKSArICh0aGlzLnRhYmxlLmV4cGVydFNlYXJjaCA/ICcnIDogJyBwLTAnKTtcclxuICAgICAgaWYgKHRoaXMudGFibGUuZXhwZXJ0U2VhcmNoKXtcclxuICAgICAgICBjb25zdCBzID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCAnU2VhcmNoJywgJ2ZhZCBmYS1tYWduaWZ5aW5nLWdsYXNzJywgSW5wdXRUeXBlLlN1Ym1pdCwgJ2JsdWUgaC0zMCcpO1xyXG4gICAgICAgIHMuc3R5bGUgPSB7dG9wOiAnMjBweCcsIGxlZnQ6ICc1cHgnLCBwb3NpdGlvbjogJ2Fic29sdXRlJywgd2lkdGg6ICc1MCUnfTtcclxuICAgICAgICB0aGlzLnRhYmxlLnNlYXJjaEZvcm0uaW5wdXRzLnB1c2gocyk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5zZWFyY2hGb3JtLm5hbWUgPSAnRXhwZXJ0U2VhcmNoJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlLnNlYXJjaEZvcm0uaW5wdXRzLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgY29uc3QgaGFzU3VibWl0ID0gdGhpcy50YWJsZS5zZWFyY2hGb3JtLmlucHV0cy5zb21lKHMgPT4gcy50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KTtcclxuICAgICAgICB4LnJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgeC5kaXNwbGF5TGFiZWwgPSB0aGlzLnRhYmxlLmV4cGVydFNlYXJjaDtcclxuICAgICAgICB4LmNsYXNzID0geC5jbGFzcyArICcgc2VhcmNoLWZvcm0taW5wJyArICh0aGlzLnRhYmxlLmV4cGVydFNlYXJjaCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5TdWJtaXQgPyAnIHAtMCcgOiAnJyk7XHJcbiAgICAgICAgeC53aXRoQ2xlYXIgPSAhaGFzU3VibWl0IHx8IHRoaXMudGFibGUuZXhwZXJ0U2VhcmNoO1xyXG4gICAgICAgIGlmICghaGFzU3VibWl0KXtcclxuICAgICAgICAgIGlmICh4Lm9uQ2hhbmdlID09IG51bGwpe1xyXG4gICAgICAgICAgICB4Lm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoeC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KXtcclxuICAgICAgICAgIHgub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuc2VhcmNoRm9ybS5vbkJlZm9yZVN1Ym1pdCAmJiAhdGhpcy50YWJsZS5zZWFyY2hGb3JtLm9uQmVmb3JlU3VibWl0KCkpe1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoeCk7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgLy8gdGhpcy50YWJsZS5zZWFyY2hGb3JtLnN1Ym1pdCA9ICgpID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coJ3RoaXMudGFibGUuc2VhcmNoRm9ybS5zdWJtaXQnKTtcclxuICAgICAgICAgIC8vICAgaWYgKHRoaXMudGFibGUuc2VhcmNoRm9ybS5vbkJlZm9yZVN1Ym1pdCAmJiAhdGhpcy50YWJsZS5zZWFyY2hGb3JtLm9uQmVmb3JlU3VibWl0KCkpe1xyXG4gICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgLy8gICB0aGlzLnRhYmxlLmxvYWQoeCk7XHJcbiAgICAgICAgICAvLyAgICQodGhpcy50YWJsZURpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygnc2hvdy1leHBlcnQtc2VhcmNoJyk7XHJcbiAgICAgICAgICAvLyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKTtcclxuICAgIHRoaXMucmVsb2FkLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMudGFibGUubG9hZCh0aGlzLnJlbG9hZCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5leHBvcnQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgJCh0aGlzLmV4cG9ydERyb3BEb3duLm5hdGl2ZUVsZW1lbnQpLnNsaWRlVG9nZ2xlKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5wcmludC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLmdldEFjY2VzcyhQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uTGlzdCkuVXJsLnJlcGxhY2UoJy9saXN0JywgJy9yZXBvcnQnKS5yZXBsYWNlKCctbGlzdCcsICctcmVwb3J0Jyk7XHJcbiAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHRoaXMudGFibGUuc2VhcmNoRGF0YSgpO1xyXG4gICAgICBkYXRhLlBhZ2UgPSAxO1xyXG4gICAgICBkYXRhLlBlclBhZ2UgPSAtMTtcclxuICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwpLnNlbmQodXJsLCBNZXRob2QuUG9zdCwgZGF0YSwgdGhpcy5wcmludCwgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKCcvcmVwb3J0JyArIHVybCArICcvJyArIHJlc3VsdCwgJ19ibGFuaycpO1xyXG4gICAgICB9LCAoKSA9PiB7fSk7XHJcbiAgICB9O1xyXG5cclxuICAgICQoZG9jdW1lbnQpLm1vdXNldXAoKGUpID0+IHtcclxuICAgICAgY29uc3QgY29udGFpbmVyID0gJCh0aGlzLmV4cG9ydERyb3BEb3duLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIGlmICghY29udGFpbmVyLmlzKGUudGFyZ2V0KSAmJiBjb250YWluZXIuaGFzKGUudGFyZ2V0KS5sZW5ndGggPT09IDApXHJcbiAgICAgIHtcclxuICAgICAgICBjb250YWluZXIuc2xpZGVVcCgxMDApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubWF4aW11bS5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMudGFibGVEaXYubmF0aXZlRWxlbWVudCkudG9nZ2xlQ2xhc3MoJ21heGltdW0nKTtcclxuICAgICAgdGhpcy5tYXhpbXVtLmljb24gPSB0aGlzLm1heGltdW0ubmFtZSA9PT0gJ01pbmltdW0nID8gJ2ZhZCBmYS1hcnJvd3MtbWF4aW1pemUnIDogJ2ZhZCBmYS1hcnJvd3MtbWluaW1pemUnO1xyXG4gICAgICB0aGlzLm1heGltdW0ubmFtZSA9IHRoaXMubWF4aW11bS5uYW1lID09PSAnTWluaW11bScgPyAnTWF4aW11bScgOiAnTWluaW11bSc7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5leHBlcnRTZWFyY2gub25DbGljayA9ICgpID0+IHtcclxuICAgICAgJCh0aGlzLnRhYmxlRGl2Lm5hdGl2ZUVsZW1lbnQpLmFkZENsYXNzKCdzaG93LWV4cGVydC1zZWFyY2gnKTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRhYmxlLnNob3dDb25maXJtID0gKGw6IHN0cmluZywgdXJsOiBzdHJpbmcsIGRhdGEsIGFjY2VwdDogKHJlc3VsdDogYW55KSA9PiB2b2lkKSA9PiB7XHJcbiAgICAgIHRoaXMuY29uZmlybS5zaG93KGwsIHVybCwgZGF0YSwgYWNjZXB0KTtcclxuICAgIH07XHJcbiAgfVxyXG4gIGFsbENoZWNrZWQoKTogYm9vbGVhbntcclxuICAgIHJldHVybiB0aGlzLnRhYmxlLnJvd3MuZmlsdGVyKHggPT4gIXguY2hlY2tlZCkubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuICBpc0NoZWNrZWQoKTogYm9vbGVhbntcclxuICAgIHJldHVybiB0aGlzLnRhYmxlLnJvd3MuZmlsdGVyKHggPT4geC5jaGVja2VkKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuICBjaGVja0FsbCgpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiAheC5jaGVja2VkKS5sZW5ndGggPT09IDApe1xyXG4gICAgICB0aGlzLnRhYmxlLnJvd3MuZm9yRWFjaCh4ID0+IHguY2hlY2tlZCA9IGZhbHNlKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnRhYmxlLnJvd3MuZm9yRWFjaCh4ID0+IHguY2hlY2tlZCA9IHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRPcHRpb25zKCk6IElucHV0Q2xhc3NbXXtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgc2V0U29ydGFibGUoKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICQodGhpcy5yb3dzLm5hdGl2ZUVsZW1lbnQpLnNvcnRhYmxlKHtcclxuICAgICAgICBheGlzOiAneScsXHJcbiAgICAgICAgaXRlbXM6ICcucm93JyxcclxuICAgICAgICBoYW5kbGU6ICc+IC5oYW5kbGUtY29uID4gLmhhbmRsZS5oYW5kbGUtc29ydGFibGUnLFxyXG4gICAgICAgIHVwZGF0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IFtdO1xyXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgJCh0aGlzLnJvd3MubmF0aXZlRWxlbWVudCkuc29ydGFibGUoJ3RvQXJyYXknLCB7YXR0cmlidXRlOiAnZGF0YS1pZCd9KS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICBkYXRhLnB1c2gocGFyc2VJbnQoeCwgMTApKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQ7XHJcbiAgICAgICAgICBwLkFjdGlvbiA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQWN0aW9uID8gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BY3Rpb24gKyAnLXNvcnQnIDogJ3NvcnQnO1xyXG4gICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwpLnNlbmQocC5nZXRVcmwoKS50b0xvd2VyQ2FzZSgpLCBNZXRob2QuUG9zdCwge0lkczogZGF0YX0sIG51bGwsICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Tb3J0KXtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLm9uU29ydCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LCAoKSA9PiB7fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KS5kaXNhYmxlU2VsZWN0aW9uKCk7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxuICBnZXRSb3dzKCk6IGFueVtde1xyXG4gICAgY29uc3QgYyA9IHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiAheC5EYXRhLlBhcmVudElkKTtcclxuICAgIGMuZm9yRWFjaCgoeCwgaSkgPT4geC5Sb3dOdW0gPSBjLmxlbmd0aCAtIGkgKyAxKTtcclxuICAgIHJldHVybiBjO1xyXG4gIH1cclxuICAvLyBnZXRPcHRpb25Nb2RhbHMoKTogSW5wdXRDbGFzc1tde1xyXG4gIC8vICAgY29uc3QgbW9kYWxzID0gW107XHJcbiAgLy8gICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnRhYmxlLm9wdGlvbkFjdGlvbnMpKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLnRhYmxlLm9wdGlvbkFjdGlvbnNba2V5XS5tb2RhbCl7XHJcbiAgLy8gICAgICAgbW9kYWxzLnB1c2godGhpcy50YWJsZS5vcHRpb25BY3Rpb25zW2tleV0ubW9kYWwpO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gbW9kYWxzO1xyXG4gIC8vIH1cclxuICBvbkNoYW5nZVJvd3MoZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VSb3dzLmVtaXQoZSk7XHJcbiAgfVxyXG4gIG9uQ29uZmlybVNob3coZSk6IHZvaWR7XHJcbiAgICB0aGlzLmNvbmZpcm0uc2hvdyh0aGlzLnRhYmxlLmwoZS5hY3Rpb24gKyAnQ29uZmlybScpLCBlLnVybCwgZS5kYXRhLCBlLmFjY2VwdCk7XHJcbiAgfVxyXG4gIGNoYW5nZVNvcnQoZSwgczogc3RyaW5nKTogdm9pZHtcclxuICAgIGlmICgkKGUudGFyZ2V0KS5jbG9zZXN0KCcuaGVhZGVyLXNlYXJjaCcpLmhhc0NsYXNzKCdoZWFkZXItc2VhcmNoJykpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlLnNvcnRUeXBlID0gdGhpcy50YWJsZS5zb3J0ID09PSBzID8gdGhpcy50YWJsZS5zb3J0VHlwZSA9PT0gJ0FTQycgPyAnREVTQycgOiBudWxsIDogJ0FTQyc7XHJcbiAgICB0aGlzLnRhYmxlLnNvcnQgPSB0aGlzLnRhYmxlLnNvcnRUeXBlID09IG51bGwgPyBudWxsIDogcztcclxuICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gIH1cclxuICBnZXRNb2RhbHMoKTogTW9kYWxDbGFzc1tde1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGUub3B0aW9uc0FjdGlvbnMuZmlsdGVyKHggPT4geCBpbnN0YW5jZW9mIE1vZGFsQ2xhc3MpO1xyXG4gIH1cclxuICBoaWRlRXhwZXJ0U2VhcmNoKGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMudGFibGUuZXhwZXJ0U2VhcmNoICYmICQoZS50YXJnZXQpLmhhc0NsYXNzKCdzZWFyY2gtZm9ybScpKVxyXG4gICAge1xyXG4gICAgICAkKHRoaXMudGFibGVEaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3Nob3ctZXhwZXJ0LXNlYXJjaCcpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -3094,6 +3094,22 @@ class TableComponent {
3094
3094
  this.export.onClick = () => {
3095
3095
  $$1(this.exportDropDown.nativeElement).slideToggle();
3096
3096
  };
3097
+ this.print.onClick = () => {
3098
+ const url = this.table.permissions.getAccess(PermissionAccessTypeEnum.List).Url.replace('/list', '/report').replace('-list', '-report');
3099
+ const data = this.table.searchData();
3100
+ data.Page = 1;
3101
+ data.PerPage = -1;
3102
+ new RequestClass(this.table.environment, this.table.l).send(url, Method.Post, data, this.print, (result) => {
3103
+ window.open('/report' + url + '/' + result, '_blank');
3104
+ }, () => { });
3105
+ };
3106
+ $$1(document).mouseup((e) => {
3107
+ const container = $$1(this.exportDropDown.nativeElement);
3108
+ // @ts-ignore
3109
+ if (!container.is(e.target) && container.has(e.target).length === 0) {
3110
+ container.slideUp(100);
3111
+ }
3112
+ });
3097
3113
  this.maximum.onClick = () => {
3098
3114
  $$1(this.tableDiv.nativeElement).toggleClass('maximum');
3099
3115
  this.maximum.icon = this.maximum.name === 'Minimum' ? 'fad fa-arrows-maximize' : 'fad fa-arrows-minimize';
@@ -3474,7 +3490,7 @@ FormButtonComponent.decorators = [
3474
3490
  { type: Component, args: [{
3475
3491
  selector: 'lib-form-button',
3476
3492
  template: "<div #inputDiv [id]=\"inp.id + 'ButtonInput'\" [className]=\"'form-input-con button w-100' + (inp.name == null ? ' only-icon' : (inp.icon == null ? ' without-icon' : '')) + (inp.disabled || inp.loading ? ' disabled' : '') + ' ' + inp.class\" [style]=\"inp.style\">\r\n <div *ngIf=\"inp.url == null || inp.disabled\" class=\"form-input\" (click)=\"!inp.disabled && onClick($event)\">\r\n <input #inputBase type=\"button\" [disabled]=\"inp.disabled || inp.loading\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </div>\r\n <a *ngIf=\"inp.url != null && inp.url.startsWith('/') && !inp.disabled\" [target]=\"inp.urlNewTab ? '_blank' : ''\" [routerLink]=\"inp.url\" [queryParams]=\"inp.queryParams != null ? inp.queryParams : null\" class=\"form-input\" (click)=\"onClick($event)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </a>\r\n <a *ngIf=\"inp.url != null && !inp.url.startsWith('/') && !inp.disabled\" [target]=\"inp.urlNewTab ? '_blank' : ''\" [href]=\"inp.url\" class=\"form-input\" (click)=\"onClick($event)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </a>\r\n</div>\r\n",
3477
- styles: [".form-input-con.button{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;padding:0 15px;position:relative}.form-input-con.button .form-input{cursor:pointer;float:right;position:relative;width:100%}.form-input-con.button .form-input .input-base{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input-con.button .form-input .control{background-color:var(--base);background-image:none;border:none;border-radius:var(--border-radius-base);color:#fff;display:block;float:left;height:35px;line-height:35px;overflow:hidden;padding:0 35px 0 20px;position:relative;text-align:center;white-space:nowrap;width:100%;z-index:2}.form-input-con.button.disabled .form-input{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.button .form-input i.icon{color:#fff;cursor:pointer;float:right;font-size:12px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;top:0;width:30px}.form-input-con.button.disabled .form-input .input-base,.form-input-con.button.disabled .form-input i.icon{cursor:default}.form-input-con.button:not(.disabled) .form-input .control:hover,.form-input-con.button:not(.disabled) .form-input .input-base:focus+.control{background-color:var(--base-dark)}.form-input-con.button.red .form-input .control{background-color:var(--red)}.form-input-con.button.red:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.red:not(.disabled) .form-input:hover .control{background-color:var(--red-dark)}.form-input-con.button.grey .form-input .control{background-color:var(--black-44);color:var(--black)}.form-input-con.button.grey .form-input i.icon{color:var(--black)}.form-input-con.button.grey:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.grey:not(.disabled) .form-input:hover .control{background-color:var(--black-light);color:var(--white)}.form-input-con.button.grey .form-input:hover i.icon{color:var(--white)}.form-input-con.button.blue .form-input .control{background-color:var(--blue)}.form-input-con.button.blue:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.blue:not(.disabled) .form-input:hover .control{background-color:var(--blue-dark)}.form-input-con.button.green .form-input .control{background-color:var(--green)}.form-input-con.button.green:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.green:not(.disabled) .form-input:hover .control{background-color:var(--green-dark)}.form-input-con.button.primary .form-input .control{background-color:var(--primary)}.form-input-con.button.primary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.primary:not(.disabled) .form-input:hover .control{background-color:var(--primary-dark)}.form-input-con.button.secondary .form-input .control{background-color:var(--secondary)}.form-input-con.button.secondary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.secondary:not(.disabled) .form-input:hover .control{background-color:var(--secondary-dark)}.form-input-con.button.yellow .form-input .control{background-color:var(--yellow)}.form-input-con.button.yellow:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.yellow:not(.disabled) .form-input:hover .control{background-color:var(--yellow-dark)}.form-input-con.button.white .form-input .control{background-color:var(--white);border:var(--border-input);color:var(--black)}.form-input-con.button.white:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.white:not(.disabled) .form-input:hover .control{background-color:var(--white)}.form-input-con.button.white .form-input i.icon{color:var(--black)}.form-input-con.button.transparent .form-input .control{background-color:unset;border:1px solid var(--base);color:var(--base);line-height:33px}.form-input-con.button.transparent .form-input i.icon{color:var(--base);line-height:33px}.form-input-con.button.transparent:not(.disabled) .form-input .control:hover,.form-input-con.button.transparent:not(.disabled) .form-input .input-base:focus+.control{background-color:unset}.form-input-con.button.transparent.white .form-input .control{background-color:unset;border:1px solid var(--white);color:var(--white)}.form-input-con.button.without-border .form-input .control{border:none!important}.form-input-con.button.transparent .form-input i.icon{color:var(--white)}.form-input-con.button.left-icon .form-input .control{float:right;padding:0 20px 0 35px}.form-input-con.button.left-icon .form-input i.icon{left:0;right:unset}.form-input-con.button.h-45{font-size:13px;height:45px}.form-input-con.button.h-45 .form-input .control,.form-input-con.button.h-45 .form-input i.icon{height:45px;line-height:45px}.form-input-con.button.h-45 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-55{font-size:14px;height:55px}.form-input-con.button.h-55 .form-input .control,.form-input-con.button.h-55 .form-input i.icon{height:55px;line-height:55px}.form-input-con.button.h-55 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-50{font-size:14px;height:50px}.form-input-con.button.h-50 .form-input .control,.form-input-con.button.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.button.h-50 .form-input i.icon{font-size:16px;width:35px}.form-input-con.button.h-40{font-size:13px;height:40px}.form-input-con.button.h-40 .form-input .control,.form-input-con.button.h-40 .form-input i.icon{height:40px;line-height:40px}.form-input-con.button.h-40 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-30{font-size:12px;height:30px}.form-input-con.button.h-30 .form-input .control,.form-input-con.button.h-30 .form-input i.icon{height:30px;line-height:30px}.form-input-con.button.h-30 .form-input i.icon{width:30px}.form-input-con.button.h-25{font-size:12px;height:25px}.form-input-con.button.h-25 .form-input .control,.form-input-con.button.h-25 .form-input i.icon{height:25px;line-height:25px}.form-input-con.button.white.h-25 .form-input .control,.form-input-con.button.white.h-25 .form-input i.icon{line-height:23px}.form-input-con.button.h-25 .form-input i.icon{width:25px}.form-input-con.button.h-20{font-size:11px;height:20px}.form-input-con.button.h-20 .form-input .control,.form-input-con.button.h-20 .form-input i.icon{height:20px;line-height:20px}.form-input-con.button.h-20 .form-input i.icon{width:20px}.form-input-con.button.without-icon .form-input .control{min-width:25px;padding:0 8px;width:100%}::ng-deep .form-input-con.button.h-25 .form-input .dot-spinner>div{height:3px;margin-right:2px;width:3px}.form-input-con.button.h-25.only-icon{min-width:55px}.form-input-con.button.h-25.only-icon .form-input .control{min-width:25px;padding:0}.form-input-con.button.h-30.only-icon{min-width:60px}.form-input-con.button.h-30.only-icon .form-input .control{min-width:30px;padding:0}.form-input-con.button.only-icon{min-width:65px}.form-input-con.button.only-icon .form-input .control{min-width:35px;padding:0}.form-input-con.button.only-icon .form-input i.icon{width:100%}.form-input-con.button.only-icon .form-input .text{display:none}.save-form-btn{float:left!important;width:40%!important}@media (max-width:499.98px){.save-form-btn{width:60%!important}}@media (min-width:500px) and (max-width:599.98px){.save-form-btn{width:50%!important}}::ng-deep .modal .sm .save-form-btn{width:70%!important}"]
3493
+ styles: [".form-input-con.button{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;padding:0 15px;position:relative}.form-input-con.button .form-input{cursor:pointer;float:right;position:relative;width:100%}.form-input-con.button .form-input .input-base{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input-con.button .form-input .control{background-color:var(--base);background-image:none;border:none;border-radius:var(--border-radius-base);color:#fff;display:block;float:left;height:35px;line-height:35px;overflow:hidden;padding:0 35px 0 20px;position:relative;text-align:center;white-space:nowrap;width:100%;z-index:2}.form-input-con.button.disabled .form-input{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.button .form-input i.icon{color:#fff;cursor:pointer;float:right;font-size:12px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;top:0;width:30px}.form-input-con.button.disabled .form-input .input-base,.form-input-con.button.disabled .form-input i.icon{cursor:default}.form-input-con.button:not(.disabled) .form-input .control:hover,.form-input-con.button:not(.disabled) .form-input .input-base:focus+.control{background-color:var(--base-dark)}.form-input-con.button.red .form-input .control{background-color:var(--red)}.form-input-con.button.red:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.red:not(.disabled) .form-input:hover .control{background-color:var(--red-dark)}.form-input-con.button.grey .form-input .control{background-color:var(--black-44);color:var(--black)}.form-input-con.button.grey .form-input i.icon{color:var(--black)}.form-input-con.button.grey:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.grey:not(.disabled) .form-input:hover .control{background-color:var(--black-light);color:var(--white)}.form-input-con.button.grey .form-input:hover i.icon{color:var(--white)}.form-input-con.button.blue .form-input .control{background-color:var(--blue)}.form-input-con.button.blue:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.blue:not(.disabled) .form-input:hover .control{background-color:var(--blue-dark)}.form-input-con.button.green .form-input .control{background-color:var(--green)}.form-input-con.button.green:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.green:not(.disabled) .form-input:hover .control{background-color:var(--green-dark)}.form-input-con.button.primary .form-input .control{background-color:var(--primary)}.form-input-con.button.primary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.primary:not(.disabled) .form-input:hover .control{background-color:var(--primary-dark)}.form-input-con.button.secondary .form-input .control{background-color:var(--secondary)}.form-input-con.button.secondary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.secondary:not(.disabled) .form-input:hover .control{background-color:var(--secondary-dark)}.form-input-con.button.yellow .form-input .control{background-color:var(--yellow)}.form-input-con.button.yellow:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.yellow:not(.disabled) .form-input:hover .control{background-color:var(--yellow-dark)}.form-input-con.button.white .form-input .control{background-color:var(--white);border:var(--border-input);color:var(--black)}.form-input-con.button.white:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.white:not(.disabled) .form-input:hover .control{background-color:var(--white-light)}.form-input-con.button.white .form-input i.icon{color:var(--black)}.form-input-con.button.transparent .form-input .control{background-color:unset;border:1px solid var(--base);color:var(--base);line-height:33px}.form-input-con.button.transparent .form-input i.icon{color:var(--base);line-height:33px}.form-input-con.button.transparent:not(.disabled) .form-input .control:hover,.form-input-con.button.transparent:not(.disabled) .form-input .input-base:focus+.control{background-color:unset}.form-input-con.button.transparent.white .form-input .control{background-color:unset;border:1px solid var(--white);color:var(--white)}.form-input-con.button.without-border .form-input .control{border:none!important}.form-input-con.button.transparent .form-input i.icon{color:var(--white)}.form-input-con.button.left-icon .form-input .control{float:right;padding:0 20px 0 35px}.form-input-con.button.left-icon .form-input i.icon{left:0;right:unset}.form-input-con.button.h-45{font-size:13px;height:45px}.form-input-con.button.h-45 .form-input .control,.form-input-con.button.h-45 .form-input i.icon{height:45px;line-height:45px}.form-input-con.button.h-45 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-55{font-size:14px;height:55px}.form-input-con.button.h-55 .form-input .control,.form-input-con.button.h-55 .form-input i.icon{height:55px;line-height:55px}.form-input-con.button.h-55 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-50{font-size:14px;height:50px}.form-input-con.button.h-50 .form-input .control,.form-input-con.button.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.button.h-50 .form-input i.icon{font-size:16px;width:35px}.form-input-con.button.h-40{font-size:13px;height:40px}.form-input-con.button.h-40 .form-input .control,.form-input-con.button.h-40 .form-input i.icon{height:40px;line-height:40px}.form-input-con.button.h-40 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-30{font-size:12px;height:30px}.form-input-con.button.h-30 .form-input .control,.form-input-con.button.h-30 .form-input i.icon{height:30px;line-height:30px}.form-input-con.button.h-30 .form-input i.icon{width:30px}.form-input-con.button.h-25{font-size:12px;height:25px}.form-input-con.button.h-25 .form-input .control,.form-input-con.button.h-25 .form-input i.icon{height:25px;line-height:25px}.form-input-con.button.white.h-25 .form-input .control,.form-input-con.button.white.h-25 .form-input i.icon{line-height:23px}.form-input-con.button.h-25 .form-input i.icon{width:25px}.form-input-con.button.h-20{font-size:11px;height:20px}.form-input-con.button.h-20 .form-input .control,.form-input-con.button.h-20 .form-input i.icon{height:20px;line-height:20px}.form-input-con.button.h-20 .form-input i.icon{width:20px}.form-input-con.button.without-icon .form-input .control{min-width:25px;padding:0 8px;width:100%}::ng-deep .form-input-con.button.h-25 .form-input .dot-spinner>div{height:3px;margin-right:2px;width:3px}.form-input-con.button.h-25.only-icon{min-width:55px}.form-input-con.button.h-25.only-icon .form-input .control{min-width:25px;padding:0}.form-input-con.button.h-30.only-icon{min-width:60px}.form-input-con.button.h-30.only-icon .form-input .control{min-width:30px;padding:0}.form-input-con.button.only-icon{min-width:65px}.form-input-con.button.only-icon .form-input .control{min-width:35px;padding:0}.form-input-con.button.only-icon .form-input i.icon{width:100%}.form-input-con.button.only-icon .form-input .text{display:none}.save-form-btn{float:left!important;width:40%!important}@media (max-width:499.98px){.save-form-btn{width:60%!important}}@media (min-width:500px) and (max-width:599.98px){.save-form-btn{width:50%!important}}::ng-deep .modal .sm .save-form-btn{width:70%!important}"]
3478
3494
  },] }
3479
3495
  ];
3480
3496
  FormButtonComponent.ctorParameters = () => [];