@tuki-io/tuki-widgets 0.0.210 → 0.0.211

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.
@@ -3,6 +3,8 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/forms";
4
4
  export class TableToolbarComponent {
5
5
  constructor() {
6
+ this.searchValue = '';
7
+ this.selectedUserType = null;
6
8
  this.searchChange = new EventEmitter();
7
9
  this.searchByType = new EventEmitter();
8
10
  this.addUser = new EventEmitter();
@@ -22,12 +24,16 @@ export class TableToolbarComponent {
22
24
  }
23
25
  }
24
26
  TableToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- TableToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableToolbarComponent, selector: "tk-users-table-toolbar", inputs: { totalUsersCount: "totalUsersCount" }, outputs: { searchChange: "searchChange", searchByType: "searchByType", addUser: "addUser" }, ngImport: i0, template: "<header style=\"margin-bottom: 1rem;\">\r\n <div style=\"display: flex; align-items: center; justify-content: space-between;\">\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px;\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px;\">\r\n <input (input)=\"onSearchInputChange($event)\" type=\"text\" placeholder=\"Search by display name, email\" style=\"width: 100%; height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 12px 6px 44px; border: 1px solid #00000080; background: #fff; color: #222; outline: none; box-sizing: border-box; min-width: 280px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">search</i>\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Filter Select -->\r\n <div style=\"display: flex; align-items: center; position: relative; width: fit-content; min-width: 200px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">filter_list</i>\r\n </span>\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 44px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Location Select -->\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\"\r\n (change)=\"onTypeChange($event)\">\r\n <option value=\"null\" disabled selected hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Webex Calling DI</option>\r\n <option value=\"WEBEX\">Webex Calling</option>\r\n <option value=\"ONPREM\">UCM</option>\r\n </select>\r\n <span style=\"margin-left: 8px; color: #757575; font-size: 1rem; white-space: nowrap;\">{{ totalUsersCount }} users</span>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem;\">\r\n <button class=\"btn mu\" (click)=\"onAddUser()\">\r\n Add user\r\n </button>\r\n </div>\r\n </div>\r\n</header>", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
27
+ TableToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableToolbarComponent, selector: "tk-users-table-toolbar", inputs: { totalUsersCount: "totalUsersCount", searchValue: "searchValue", selectedUserType: "selectedUserType" }, outputs: { searchChange: "searchChange", searchByType: "searchByType", addUser: "addUser" }, ngImport: i0, template: "<header style=\"margin-bottom: 1rem\">\r\n <div\r\n style=\"display: flex; align-items: center; justify-content: space-between\"\r\n >\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px\">\r\n <input\r\n [value]=\"searchValue\"\r\n (input)=\"onSearchInputChange($event)\"\r\n type=\"text\"\r\n placeholder=\"Search by display name, email\"\r\n style=\"\r\n width: 100%;\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 12px 6px 44px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n color: #222;\r\n outline: none;\r\n box-sizing: border-box;\r\n min-width: 280px;\r\n \"\r\n />\r\n <span\r\n style=\"\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #757575;\r\n font-size: 18px;\r\n font-weight: normal;\r\n pointer-events: none;\r\n \"\r\n >\r\n <i\r\n class=\"material-icons\"\r\n style=\"font-size: 18px; font-weight: normal\"\r\n >search</i\r\n >\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem\">or</span>\r\n <!-- Filter Select -->\r\n <div\r\n style=\"\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n width: fit-content;\r\n min-width: 200px;\r\n \"\r\n >\r\n <span\r\n style=\"\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #757575;\r\n font-size: 18px;\r\n font-weight: normal;\r\n pointer-events: none;\r\n \"\r\n >\r\n <i\r\n class=\"material-icons\"\r\n style=\"font-size: 18px; font-weight: normal\"\r\n >filter_list</i\r\n >\r\n </span>\r\n <select\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 44px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n >\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem\">or</span>\r\n <!-- Location Select -->\r\n <select\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 12px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n >\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select\r\n [value]=\"selectedUserType || ''\"\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 12px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n (change)=\"onTypeChange($event)\"\r\n >\r\n <option value=\"null\" disabled hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Webex Calling DI</option>\r\n <option value=\"WEBEX\">Webex Calling</option>\r\n <option value=\"ONPREM\">UCM</option>\r\n </select>\r\n <span\r\n style=\"\r\n margin-left: 8px;\r\n color: #757575;\r\n font-size: 1rem;\r\n white-space: nowrap;\r\n \"\r\n >{{ totalUsersCount }} users</span\r\n >\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem\">\r\n <button class=\"btn mu\" (click)=\"onAddUser()\">Add user</button>\r\n </div>\r\n </div>\r\n</header>\r\n", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
26
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableToolbarComponent, decorators: [{
27
29
  type: Component,
28
- args: [{ selector: 'tk-users-table-toolbar', template: "<header style=\"margin-bottom: 1rem;\">\r\n <div style=\"display: flex; align-items: center; justify-content: space-between;\">\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px;\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px;\">\r\n <input (input)=\"onSearchInputChange($event)\" type=\"text\" placeholder=\"Search by display name, email\" style=\"width: 100%; height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 12px 6px 44px; border: 1px solid #00000080; background: #fff; color: #222; outline: none; box-sizing: border-box; min-width: 280px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">search</i>\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Filter Select -->\r\n <div style=\"display: flex; align-items: center; position: relative; width: fit-content; min-width: 200px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">filter_list</i>\r\n </span>\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 44px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Location Select -->\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\"\r\n (change)=\"onTypeChange($event)\">\r\n <option value=\"null\" disabled selected hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Webex Calling DI</option>\r\n <option value=\"WEBEX\">Webex Calling</option>\r\n <option value=\"ONPREM\">UCM</option>\r\n </select>\r\n <span style=\"margin-left: 8px; color: #757575; font-size: 1rem; white-space: nowrap;\">{{ totalUsersCount }} users</span>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem;\">\r\n <button class=\"btn mu\" (click)=\"onAddUser()\">\r\n Add user\r\n </button>\r\n </div>\r\n </div>\r\n</header>", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"] }]
30
+ args: [{ selector: 'tk-users-table-toolbar', template: "<header style=\"margin-bottom: 1rem\">\r\n <div\r\n style=\"display: flex; align-items: center; justify-content: space-between\"\r\n >\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px\">\r\n <input\r\n [value]=\"searchValue\"\r\n (input)=\"onSearchInputChange($event)\"\r\n type=\"text\"\r\n placeholder=\"Search by display name, email\"\r\n style=\"\r\n width: 100%;\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 12px 6px 44px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n color: #222;\r\n outline: none;\r\n box-sizing: border-box;\r\n min-width: 280px;\r\n \"\r\n />\r\n <span\r\n style=\"\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #757575;\r\n font-size: 18px;\r\n font-weight: normal;\r\n pointer-events: none;\r\n \"\r\n >\r\n <i\r\n class=\"material-icons\"\r\n style=\"font-size: 18px; font-weight: normal\"\r\n >search</i\r\n >\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem\">or</span>\r\n <!-- Filter Select -->\r\n <div\r\n style=\"\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n width: fit-content;\r\n min-width: 200px;\r\n \"\r\n >\r\n <span\r\n style=\"\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #757575;\r\n font-size: 18px;\r\n font-weight: normal;\r\n pointer-events: none;\r\n \"\r\n >\r\n <i\r\n class=\"material-icons\"\r\n style=\"font-size: 18px; font-weight: normal\"\r\n >filter_list</i\r\n >\r\n </span>\r\n <select\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 44px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n >\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem\">or</span>\r\n <!-- Location Select -->\r\n <select\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 12px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n >\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select\r\n [value]=\"selectedUserType || ''\"\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 12px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n (change)=\"onTypeChange($event)\"\r\n >\r\n <option value=\"null\" disabled hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Webex Calling DI</option>\r\n <option value=\"WEBEX\">Webex Calling</option>\r\n <option value=\"ONPREM\">UCM</option>\r\n </select>\r\n <span\r\n style=\"\r\n margin-left: 8px;\r\n color: #757575;\r\n font-size: 1rem;\r\n white-space: nowrap;\r\n \"\r\n >{{ totalUsersCount }} users</span\r\n >\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem\">\r\n <button class=\"btn mu\" (click)=\"onAddUser()\">Add user</button>\r\n </div>\r\n </div>\r\n</header>\r\n", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"] }]
29
31
  }], propDecorators: { totalUsersCount: [{
30
32
  type: Input
33
+ }], searchValue: [{
34
+ type: Input
35
+ }], selectedUserType: [{
36
+ type: Input
31
37
  }], searchChange: [{
32
38
  type: Output
33
39
  }], searchByType: [{
@@ -35,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
35
41
  }], addUser: [{
36
42
  type: Output
37
43
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvY29tcG9uZW50cy90YWJsZS10b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL2NvbXBvbmVudHMvdGFibGUtdG9vbGJhci90YWJsZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVMvRSxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBT3VCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ25ELFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBcUJ6RDtJQWpCRyxtQkFBbUIsQ0FBQyxLQUFZO1FBQzVCLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFbEYsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQVk7UUFDNUIsTUFBTSxLQUFLLEdBQUksS0FBSyxDQUFDLE1BQTRCLENBQUMsS0FBd0IsQ0FBQztRQUUzRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7bUhBeEJRLHFCQUFxQjt1R0FBckIscUJBQXFCLDJNQ1RsQyx3eUlBNENTOzRGRG5DSSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksd0JBQXdCOzhCQUt6QixlQUFlO3NCQUF2QixLQUFLO2dCQUNhLFlBQVk7c0JBQTlCLE1BQU07Z0JBQ1ksWUFBWTtzQkFBOUIsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVU0VSX1RZUEVTX1RZUEUgfSBmcm9tIFwiLi4vLi4vYXBwLmNvbnN0YW50c1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RrLXVzZXJzLXRhYmxlLXRvb2xiYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtdG9vbGJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVRvb2xiYXJDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgdG90YWxVc2Vyc0NvdW50ITogbnVtYmVyO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlYXJjaEJ5VHlwZSA9IG5ldyBFdmVudEVtaXR0ZXI8VVNFUl9UWVBFU19UWVBFPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGFkZFVzZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSB0aW1lcklkITogbnVtYmVyOyBcclxuXHJcbiAgICBvblNlYXJjaElucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSB8fCAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudGltZXJJZCkgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQpO1xyXG5cclxuICAgICAgICB0aGlzLnRpbWVySWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHZhbHVlKSwgMTUwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uVHlwZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlIGFzIFVTRVJfVFlQRVNfVFlQRTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWFyY2hCeVR5cGUuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25BZGRVc2VyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRkVXNlci5lbWl0KCk7XHJcbiAgICB9XHJcbn0iLCI8aGVhZGVyIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMXJlbTtcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWhlYWRlci1sZWZ0XCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDtcIj5cclxuICAgICAgICAgIDwhLS0gU2VhcmNoIElucHV0IC0tPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IGZpdC1jb250ZW50OyBtaW4td2lkdGg6IDIwMHB4O1wiPlxyXG4gICAgICAgICAgICA8aW5wdXQgKGlucHV0KT1cIm9uU2VhcmNoSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZGlzcGxheSBuYW1lLCBlbWFpbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMzRweDsgYm9yZGVyLXJhZGl1czogLjVyZW07IGZvbnQtc2l6ZTogMTZweDsgcGFkZGluZzogNnB4IDEycHggNnB4IDQ0cHg7IGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA4MDsgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICMyMjI7IG91dGxpbmU6IG5vbmU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IG1pbi13aWR0aDogMjgwcHg7XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMnB4OyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBjb2xvcjogIzc1NzU3NTsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogbm9ybWFsOyBwb2ludGVyLWV2ZW50czogbm9uZTtcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7XCI+c2VhcmNoPC9pPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luOiAwIDRweDsgY29sb3I6ICM3NTc1NzU7IGZvbnQtc2l6ZTogMXJlbTtcIj5vcjwvc3Bhbj5cclxuICAgICAgICAgIDwhLS0gRmlsdGVyIFNlbGVjdCAtLT5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiBmaXQtY29udGVudDsgbWluLXdpZHRoOiAyMDBweDtcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEycHg7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IGNvbG9yOiAjNzU3NTc1OyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHBvaW50ZXItZXZlbnRzOiBub25lO1wiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDtcIj5maWx0ZXJfbGlzdDwvaT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c2VsZWN0IHN0eWxlPVwiaGVpZ2h0OiAzNHB4OyBib3JkZXItcmFkaXVzOiAuNXJlbTsgZm9udC1zaXplOiAxNnB4OyBwYWRkaW5nOiA2cHggMzJweCA2cHggNDRweDsgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDgwOyBiYWNrZ3JvdW5kOiAjZmZmOyBtaW4td2lkdGg6IDIwMHB4OyB3aWR0aDogZml0LWNvbnRlbnQ7IGNvbG9yOiAjMjIyOyBhcHBlYXJhbmNlOiBub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC1tb3otYXBwZWFyYW5jZTogbm9uZTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIGZpbGw9XFwnJTIzNzU3NTc1XFwnIGhlaWdodD1cXCcyMFxcJyB2aWV3Qm94PVxcJzAgMCAyNCAyNFxcJyB3aWR0aD1cXCcyMFxcJyB4bWxucz1cXCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcJz48cGF0aCBkPVxcJ003IDEwbDUgNSA1LTV6XFwnLz48L3N2Zz4nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTJweCBjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4O1wiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24+RmlsdGVyPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbjogMCA0cHg7IGNvbG9yOiAjNzU3NTc1OyBmb250LXNpemU6IDFyZW07XCI+b3I8L3NwYW4+XHJcbiAgICAgICAgICA8IS0tIExvY2F0aW9uIFNlbGVjdCAtLT5cclxuICAgICAgICAgIDxzZWxlY3Qgc3R5bGU9XCJoZWlnaHQ6IDM0cHg7IGJvcmRlci1yYWRpdXM6IC41cmVtOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDZweCAzMnB4IDZweCAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7IGJhY2tncm91bmQ6ICNmZmY7IG1pbi13aWR0aDogMjAwcHg7IHdpZHRoOiBmaXQtY29udGVudDsgY29sb3I6ICMyMjI7IGFwcGVhcmFuY2U6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLW1vei1hcHBlYXJhbmNlOiBub25lOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgZmlsbD1cXCclMjM3NTc1NzVcXCcgaGVpZ2h0PVxcJzIwXFwnIHZpZXdCb3g9XFwnMCAwIDI0IDI0XFwnIHdpZHRoPVxcJzIwXFwnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnPjxwYXRoIGQ9XFwnTTcgMTBsNSA1IDUtNXpcXCcvPjwvc3ZnPicpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMnB4IGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24+U2VsZWN0IGEgTG9jYXRpb248L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDxzZWxlY3Qgc3R5bGU9XCJoZWlnaHQ6IDM0cHg7IGJvcmRlci1yYWRpdXM6IC41cmVtOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDZweCAzMnB4IDZweCAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7IGJhY2tncm91bmQ6ICNmZmY7IG1pbi13aWR0aDogMjAwcHg7IHdpZHRoOiBmaXQtY29udGVudDsgY29sb3I6ICMyMjI7IGFwcGVhcmFuY2U6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLW1vei1hcHBlYXJhbmNlOiBub25lOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgZmlsbD1cXCclMjM3NTc1NzVcXCcgaGVpZ2h0PVxcJzIwXFwnIHZpZXdCb3g9XFwnMCAwIDI0IDI0XFwnIHdpZHRoPVxcJzIwXFwnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnPjxwYXRoIGQ9XFwnTTcgMTBsNSA1IDUtNXpcXCcvPjwvc3ZnPicpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMnB4IGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvblR5cGVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibnVsbFwiIGRpc2FibGVkIHNlbGVjdGVkIGhpZGRlbj5TZWxlY3QgdHlwZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+QWxsPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJDVUNNXCI+V2ViZXggQ2FsbGluZyBESTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiV0VCRVhcIj5XZWJleCBDYWxsaW5nPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJPTlBSRU1cIj5VQ008L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPHNwYW4gc3R5bGU9XCJtYXJnaW4tbGVmdDogOHB4OyBjb2xvcjogIzc1NzU3NTsgZm9udC1zaXplOiAxcmVtOyB3aGl0ZS1zcGFjZTogbm93cmFwO1wiPnt7IHRvdGFsVXNlcnNDb3VudCB9fSB1c2Vyczwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDFyZW07XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtdVwiIChjbGljayk9XCJvbkFkZFVzZXIoKVwiPlxyXG4gICAgICAgICAgQWRkIHVzZXJcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9oZWFkZXI+Il19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvY29tcG9uZW50cy90YWJsZS10b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL2NvbXBvbmVudHMvdGFibGUtdG9vbGJhci90YWJsZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVMvRSxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBT2EsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIscUJBQWdCLEdBQW9CLElBQUksQ0FBQztRQUMvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUNuRCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQXFCekQ7SUFqQkcsbUJBQW1CLENBQUMsS0FBWTtRQUM1QixNQUFNLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1FBRWxGLElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFZO1FBQzVCLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUE0QixDQUFDLEtBQXdCLENBQUM7UUFFM0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7O21IQTFCUSxxQkFBcUI7dUdBQXJCLHFCQUFxQiw2UUNUbEMsNGtNQXVLQTs0RkQ5SmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLHdCQUF3Qjs4QkFLekIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDYSxZQUFZO3NCQUE5QixNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU07Z0JBQ1ksT0FBTztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVVNFUl9UWVBFU19UWVBFIH0gZnJvbSBcIi4uLy4uL2FwcC5jb25zdGFudHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0ay11c2Vycy10YWJsZS10b29sYmFyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVUb29sYmFyQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIHRvdGFsVXNlcnNDb3VudCE6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHNlYXJjaFZhbHVlID0gJyc7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZFVzZXJUeXBlOiBVU0VSX1RZUEVTX1RZUEUgPSBudWxsO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlYXJjaEJ5VHlwZSA9IG5ldyBFdmVudEVtaXR0ZXI8VVNFUl9UWVBFU19UWVBFPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGFkZFVzZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSB0aW1lcklkITogbnVtYmVyO1xyXG5cclxuICAgIG9uU2VhcmNoSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpIHx8ICcnO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50aW1lcklkKSB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudGltZXJJZCk7XHJcblxyXG4gICAgICAgIHRoaXMudGltZXJJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQodmFsdWUpLCAxNTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25UeXBlQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWUgYXMgVVNFUl9UWVBFU19UWVBFO1xyXG5cclxuICAgICAgICB0aGlzLnNlYXJjaEJ5VHlwZS5lbWl0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkFkZFVzZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hZGRVc2VyLmVtaXQoKTtcclxuICAgIH1cclxufSIsIjxoZWFkZXIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxcmVtXCI+XHJcbiAgPGRpdlxyXG4gICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWhlYWRlci1sZWZ0XCI+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHhcIj5cclxuICAgICAgICA8IS0tIFNlYXJjaCBJbnB1dCAtLT5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogZml0LWNvbnRlbnQ7IG1pbi13aWR0aDogMjAwcHhcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwic2VhcmNoVmFsdWVcIlxyXG4gICAgICAgICAgICAoaW5wdXQpPVwib25TZWFyY2hJbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBieSBkaXNwbGF5IG5hbWUsIGVtYWlsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggMTJweCA2cHggNDRweDtcclxuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICAgICAgICBjb2xvcjogIzIyMjtcclxuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgICAgbWluLXdpZHRoOiAyODBweDtcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICBsZWZ0OiAxMnB4O1xyXG4gICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICBjb2xvcjogIzc1NzU3NTtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IG5vcm1hbFwiXHJcbiAgICAgICAgICAgICAgPnNlYXJjaDwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gc3R5bGU9XCJtYXJnaW46IDAgNHB4OyBjb2xvcjogIzc1NzU3NTsgZm9udC1zaXplOiAxcmVtXCI+b3I8L3NwYW4+XHJcbiAgICAgICAgPCEtLSBGaWx0ZXIgU2VsZWN0IC0tPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIHN0eWxlPVwiXHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICBsZWZ0OiAxMnB4O1xyXG4gICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICBjb2xvcjogIzc1NzU3NTtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IG5vcm1hbFwiXHJcbiAgICAgICAgICAgICAgPmZpbHRlcl9saXN0PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgc3R5bGU9XCJcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggMzJweCA2cHggNDRweDtcclxuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG4gICAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcclxuICAgICAgICAgICAgICBjb2xvcjogIzIyMjtcclxuICAgICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCZxdW90O2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgZmlsbD0nJTIzNzU3NTc1JyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjQgMjQnIHdpZHRoPScyMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48cGF0aCBkPSdNNyAxMGw1IDUgNS01eicvPjwvc3ZnPiZxdW90Oyk7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMnB4IGNlbnRlcjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDtcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG9wdGlvbj5GaWx0ZXI8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luOiAwIDRweDsgY29sb3I6ICM3NTc1NzU7IGZvbnQtc2l6ZTogMXJlbVwiPm9yPC9zcGFuPlxyXG4gICAgICAgIDwhLS0gTG9jYXRpb24gU2VsZWN0IC0tPlxyXG4gICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgIHN0eWxlPVwiXHJcbiAgICAgICAgICAgIGhlaWdodDogMzRweDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAzMnB4IDZweCAxMnB4O1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcclxuICAgICAgICAgICAgY29sb3I6ICMyMjI7XHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJnF1b3Q7ZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyBmaWxsPSclMjM3NTc1NzUnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyNCAyNCcgd2lkdGg9JzIwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J003IDEwbDUgNSA1LTV6Jy8+PC9zdmc+JnF1b3Q7KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTJweCBjZW50ZXI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4O1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8b3B0aW9uPlNlbGVjdCBhIExvY2F0aW9uPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZFVzZXJUeXBlIHx8ICcnXCJcclxuICAgICAgICAgIHN0eWxlPVwiXHJcbiAgICAgICAgICAgIGhlaWdodDogMzRweDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAzMnB4IDZweCAxMnB4O1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcclxuICAgICAgICAgICAgY29sb3I6ICMyMjI7XHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJnF1b3Q7ZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyBmaWxsPSclMjM3NTc1NzUnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyNCAyNCcgd2lkdGg9JzIwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J003IDEwbDUgNSA1LTV6Jy8+PC9zdmc+JnF1b3Q7KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTJweCBjZW50ZXI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4O1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwib25UeXBlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJudWxsXCIgZGlzYWJsZWQgaGlkZGVuPlNlbGVjdCB0eXBlPC9vcHRpb24+XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+QWxsPC9vcHRpb24+XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ1VDTVwiPldlYmV4IENhbGxpbmcgREk8L29wdGlvbj5cclxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJXRUJFWFwiPldlYmV4IENhbGxpbmc8L29wdGlvbj5cclxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJPTlBSRU1cIj5VQ008L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgc3R5bGU9XCJcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcclxuICAgICAgICAgICAgY29sb3I6ICM3NTc1NzU7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+e3sgdG90YWxVc2Vyc0NvdW50IH19IHVzZXJzPC9zcGFuXHJcbiAgICAgICAgPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbVwiPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG11XCIgKGNsaWNrKT1cIm9uQWRkVXNlcigpXCI+QWRkIHVzZXI8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2hlYWRlcj5cclxuIl19