@tuki-io/tuki-widgets 0.0.129 → 0.0.131
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.
- package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +1 -1
- package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +1 -1
- package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +3 -3
- package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +2 -2
- package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +2 -2
- package/esm2020/user-device-manage/src/app.constants.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
- package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +3 -3
- package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
- package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +1 -1
- package/esm2020/user-device-manage/src/services/user.service.mjs +3 -4
- package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +1 -1
- package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +3 -3
- package/esm2020/user-manage/src/app.constants.mjs +1 -1
- package/esm2020/user-manage/src/classes/line-association-interface.mjs +1 -1
- package/esm2020/user-manage/src/classes/line-directory.mjs +1 -1
- package/esm2020/user-manage/src/classes/line.mjs +1 -1
- package/esm2020/user-manage/src/classes/pagination.mjs +1 -1
- package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
- package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +3 -3
- package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
- package/esm2020/user-manage/src/services/user.service.mjs +1 -1
- package/esm2020/user-manage/src/user-info/user-info.component.mjs +3 -3
- package/esm2020/user-manage/src/user-manage-widget.component.mjs +4 -4
- package/esm2020/user-manage/src/user-manage.module.mjs +1 -1
- package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +3 -3
- package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +3 -3
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +2 -2
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +6 -6
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +9 -11
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +14 -14
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +2 -2
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +2 -2
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +6 -6
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +8 -9
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +13 -13
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +2 -2
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -351,10 +351,10 @@ export class UserUpgradeDataTableComponent {
|
|
|
351
351
|
}
|
|
352
352
|
}
|
|
353
353
|
UserUpgradeDataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
354
|
-
UserUpgradeDataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserUpgradeDataTableComponent, selector: "tk-user-upgrade-data-table", inputs: { token: "token", customerId: "customerId" }, ngImport: i0, template: "<div *ngIf=\"dataPending\" class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"70\"\r\n strokeWidth=\"3\"\r\n ></mat-progress-spinner>\r\n</div>\r\n\r\n<div id=\"userUpgradeDataTable\" class=\"wrapper\">\r\n <div class=\"user-upgrade-status-wrapper\">\r\n <tk-summary-card [description]=\"'Users are ready to upgrade'\" [value]=\"statusCounts['Ready']\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users are not ready'\" [value]=\"statusCounts['Not Ready']\" [status]=\"'Not Ready'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users failed to upgrade'\" [value]=\"statusCounts['Failed']\" [status]=\"'Failed'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Successfully upgraded'\" [value]=\"statusCounts['Completed']\" [status]=\"'Completed'\"></tk-summary-card>\r\n </div>\r\n <div class=\"table-action-panel\">\r\n <tk-table-filters *ngIf=\"filters.length > 0\" [filters]=\"filters\" (filter)=\"onFilter($event)\"></tk-table-filters>\r\n <div class=\"action-wrapper\">\r\n <span>{{filteredDataCount}} Users</span>\r\n <button\r\n mat-button\r\n class=\"upgrade-bulk-button\"\r\n color=\"primary\"\r\n [disabled]=\"selection.selected.length === 0\"\r\n (click)=\"upgradeSelectedUsers()\">\r\n Upgrade {{ selection.selected.length === 0 ? '' : '(' + selection.selected.length + ')' }}\r\n </button>\r\n </div>\r\n </div>\r\n <table mat-table [dataSource]=\"data\" class=\"user-upgrade-table\">\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox\r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n [disabled]=\"STATUS_ENTRIES[row.upgradeStatus] !== 'Ready' || row.pending\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Column -->\r\n <ng-container matColumnDef=\"user\">\r\n <th mat-header-cell *matHeaderCellDef>User</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"user-info\">\r\n <div class=\"user-name\">{{element.userName}}</div>\r\n <div class=\"user-email\">{{element.userName}}</div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Site Column -->\r\n <ng-container matColumnDef=\"site\">\r\n <th mat-header-cell *matHeaderCellDef>Site</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"site-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getSiteUpgradeStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{element.siteName}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Device Column -->\r\n <ng-container matColumnDef=\"device\">\r\n <th class=\"device-td\" mat-header-cell *matHeaderCellDef>Device</th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"multi-dev-box\">\r\n <div *ngIf=\"element.showDevices\" class=\"device-list show-dev-list\">\r\n <div *ngFor=\"let device of element.devicesWithExtensions; let last = last\"\r\n class=\"device-item\"\r\n [class.no-border]=\"last\">\r\n <span class=\"device-indicator\" [ngClass]=\"{'device-indicator-ready': element.deviceStatus === 'READY'}\"></span>\r\n <span class=\"device-name\">{{ device.deviceName || device }}</span>\r\n <span class=\"device-model\">\r\n {{ device.extensions?.length ? 'Ext: ' + device.extensions.join(\", \") : 'No Extension' }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"device-info\">\r\n <div class=\"multiple-dev-link\" *ngIf=\"element.devicesWithExtensions?.length > 1; else oneDevice\">\r\n <div class=\"device-name-wrapper clickable\"\r\n (mouseenter)=\"onMultipleDevices(element)\"\r\n (mouseleave)=\"onMultipleDevices(element)\">\r\n\r\n <span class=\"device-name\">Multiple devices ></span>\r\n </div>\r\n </div>\r\n <ng-template #oneDevice>\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">{{element.devicesWithExtensions[0].deviceName}}</span>\r\n </div>\r\n <div class=\"device-model one-dev-extensions\">\r\n {{ element.devicesWithExtensions[0].extensions?.length ?\r\n 'Ext: ' + element.devicesWithExtensions[0].extensions?.join(\", \") : 'No Extension' }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dial Plan Status Column -->\r\n <ng-container matColumnDef=\"dialPlanStatus\">\r\n <th mat-header-cell *matHeaderCellDef>Dial Plan Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.dialPlanStatus)\"></span>\r\n <span [ngClass]=\"{'status-ready': element.dialPlanStatus === 'READY'}\">{{STATUS_ENTRIES[element.dialPlanStatus]}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dependencies Column -->\r\n <ng-container matColumnDef=\"dependencies\">\r\n <th mat-header-cell *matHeaderCellDef>Dependencies</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'Dependencies found'\" class=\"dependencies-text\">{{DEPENDENCIES_STATUS[element.dependenciesStatus]}}</span>\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'No dependencies'\">\u2014</span>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Upgrade Status Column -->\r\n <ng-container matColumnDef=\"userUpgradeStatus\">\r\n <th mat-header-cell *matHeaderCellDef>User Upgrade Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"upgrade-status-cell\">\r\n <ng-container *ngIf=\"STATUS_ENTRIES[element.upgradeStatus] === 'Ready'; else statusBlock\">\r\n <button mat-button color=\"primary\" class=\"upgrade-button\" (click)=\"upgradeUser(element)\">Upgrade</button>\r\n </ng-container>\r\n <ng-template #statusBlock>\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.upgradeStatus]}}</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"userUpgradeLoader\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"mat-progress-spinner-td\" mat-cell *matCellDef=\"let element\">\r\n\r\n <mat-progress-spinner\r\n *ngIf=\"element.pending\"\r\n class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\">\r\n </mat-progress-spinner>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\r\n [class.selected-row]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n</div>\r\n\r\n<div class=\"app-pagination\">\r\n <mat-paginator\r\n [length]=\"pagination.total\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n (page)=\"pageEvent($event)\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n\r\n <!--<div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n </div>\r\n\r\n <div class=\"per-page-block\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>-->\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\";.app-pagination{display:flex;flex-direction:column;align-items:stretch}.app-pagination .page-indexes-box,.app-pagination .per-page-block{justify-self:center}.app-pagination mat-select{width:100px}.overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff6;z-index:200}.mat-progress-spinner{position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-25px;width:50px;height:40px;text-align:center;font-size:10px}.mat-progress-spinner-td{position:relative}#userUpgradeDataTable .flex-container{padding:0!important}.multiple-dev-link{margin:0 0 0 13px}::ng-deep .mat-cell{border-bottom:1px solid #d6d6d6;font-family:Inter,sans-serif!important}::ng-deep .mat-header-cell{border-bottom:1px solid #afafaf;font-family:Inter,sans-serif!important}::ng-deep .progress-spinner-td{position:relative}::ng-deep #userUpgradeDataTable .mat-progress-spinner-td .mat-progress-spinner{top:28%;left:0;margin:0}.wrapper{display:flex;flex-direction:column;gap:1rem}.user-upgrade-status-wrapper{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;align-items:stretch}.user-upgrade-table{width:100%;background:white;border-radius:8px;overflow:hidden;font-size:14px}.user-upgrade-table .mat-header-row{font-size:12px;height:35px}.user-upgrade-table .mat-cell{border-bottom:1px solid #d6d6d6}.user-upgrade-table .mat-header-cell{border-bottom:1px solid #afafaf}.user-upgrade-table .mat-row{transition:background-color .2s ease}.user-upgrade-table .mat-row:hover{background-color:#f8f9fa}.user-upgrade-table .mat-row.selected-row{background-color:#08599c1a}.user-upgrade-table .user-info .user-name{font-weight:500;color:#212121}.user-upgrade-table .user-info .user-email{font-size:12px;color:#757575}.user-upgrade-table .site-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .site-info .site-indicator{width:8px;height:8px;border-radius:50%;background-color:#737480}.user-upgrade-table .device-info .device-name-wrapper{display:flex;align-items:center;gap:5px}.user-upgrade-table .device-info .device-name-wrapper .device-name{font-weight:500;color:#212121}.user-upgrade-table .device-model{font-size:12px;color:#757575;display:block}.user-upgrade-table .one-dev-extensions{margin:0 0 0 13px}.user-upgrade-table .device-indicator{width:8px;height:8px;border-radius:50%;background-color:#f8cd00}.user-upgrade-table .device-indicator-ready{background-color:#1d805f}.user-upgrade-table .device-td{padding:0 0 0 13px}.user-upgrade-table .status-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .status-info .status-indicator{width:8px;height:8px;border-radius:50%}.user-upgrade-table .status-info .status-indicator.ready{background-color:#1170cf}.user-upgrade-table .status-info .status-indicator.partial-ready{background-color:#f8cd00}.user-upgrade-table .status-info .status-indicator.not-ready{background-color:#9e9e9e}.user-upgrade-table .status-info .status-indicator.completed{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.failed{background-color:#f23933}.user-upgrade-table .dependencies-text{font-size:12px;background-color:#ffe9e9;padding:.25rem .5rem;border-radius:3px;color:#000}.user-upgrade-table .upgrade-status-cell{display:flex;align-items:center;justify-content:flex-start}.user-upgrade-table .upgrade-button{border-radius:20px!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;background-color:#0000001c!important;color:#00000080!important}.user-upgrade-table .upgrade-button:hover{background-color:#0000000a!important}.user-upgrade-table .custom-checkbox .mdc-checkbox{padding:8px}.mat-checkbox-disabled{opacity:.5}.multi-dev-box{position:relative}.device-list{position:absolute;top:65%;left:0;min-width:200px;background:white;box-shadow:0 2px 8px #0000001a;padding:8px 0;margin-top:4px;border-radius:2px;opacity:0;transform:translateY(-10px);visibility:hidden;transition:all .3s ease;z-index:1000}.device-list.show-dev-list{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto}.clickable{cursor:pointer}.device-item{padding:12px 16px;border-bottom:1px solid #f5f5f5;cursor:pointer;transition:background-color .2s ease}.device-item:hover{background-color:#f9f9f9}.device-item.no-border{border-bottom:none}.device-item .device-name{font-size:14px;color:#333}.table-action-panel{width:100%;display:flex;justify-content:flex-start;gap:1rem}::ng-deep .action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem;color:#555}::ng-deep .action-wrapper .mat-button .mat-button-wrapper{margin:0}.upgrade-bulk-button{border:1px solid #000!important;color:#fff!important;background:#000!important;border-radius:20px!important;padding:0 1rem!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}.upgrade-bulk-button:hover{background-color:#212121!important}.upgrade-bulk-button:disabled{background-color:#888!important;color:#fff!important;cursor:not-allowed!important;border-color:#888!important;opacity:.25!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-checked .mat-checkbox-background{background-color:#1170cf!important;border-color:#00000080!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled):hover:not(.mat-checkbox-checked) .mat-checkbox-background{background-color:#0000004d!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background{background-color:#1170cf!important;border-color:#00000080!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background .mat-checkbox-mixedmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox .mat-checkbox-background{border-color:#00000080!important;transition:background-color .2s,border-color .2s,box-shadow .2s}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled) .mat-checkbox-ripple .mat-ripple-element{background-color:#1170cf40}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).cdk-focused .mat-checkbox-ripple .mat-ripple-element{background-color:#1170cf59}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background{border-color:#00000080!important;transition:background-color .2s,border-color .2s,box-shadow .2s;background-color:#1170cf!important}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}.user-upgrade-table .mat-checkbox.mat-accent .mat-ripple-element{background-color:#08599c1a!important}.user-upgrade-table .mat-checkbox.mat-accent:focus .mat-checkbox-background{background-color:#08599c1a!important}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#00000080!important}.user-upgrade-table .mat-checkbox-checkmark{color:#fff!important;transform:scale(.75)}.user-upgrade-table .mat-checkbox-checkmark-path{stroke:#fff!important}.user-upgrade-table .mat-checkbox-mixedmark{border-color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.SummaryCardComponent, selector: "tk-summary-card", inputs: ["value", "status", "description"] }, { kind: "component", type: i6.TableFiltersComponent, selector: "tk-table-filters", inputs: ["filters"], outputs: ["filter"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }] });
|
|
354
|
+
UserUpgradeDataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserUpgradeDataTableComponent, selector: "tk-user-upgrade-data-table", inputs: { token: "token", customerId: "customerId" }, ngImport: i0, template: "<div *ngIf=\"dataPending\" class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"70\"\r\n strokeWidth=\"3\"\r\n ></mat-progress-spinner>\r\n</div>\r\n\r\n<div id=\"userUpgradeDataTable\" class=\"wrapper\">\r\n <div class=\"user-upgrade-status-wrapper\">\r\n <tk-summary-card [description]=\"'Users are ready to upgrade'\" [value]=\"statusCounts['Ready']\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users are not ready'\" [value]=\"statusCounts['Not Ready']\" [status]=\"'Not Ready'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users failed to upgrade'\" [value]=\"statusCounts['Failed']\" [status]=\"'Failed'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Successfully upgraded'\" [value]=\"statusCounts['Completed']\" [status]=\"'Completed'\"></tk-summary-card>\r\n </div>\r\n <div class=\"table-action-panel\">\r\n <tk-table-filters *ngIf=\"filters.length > 0\" [filters]=\"filters\" (filter)=\"onFilter($event)\"></tk-table-filters>\r\n <div class=\"action-wrapper\">\r\n <span>{{filteredDataCount}} Users</span>\r\n <button\r\n mat-button\r\n class=\"upgrade-bulk-button\"\r\n color=\"primary\"\r\n [disabled]=\"selection.selected.length === 0\"\r\n (click)=\"upgradeSelectedUsers()\">\r\n Upgrade {{ selection.selected.length === 0 ? '' : '(' + selection.selected.length + ')' }}\r\n </button>\r\n </div>\r\n </div>\r\n <table mat-table [dataSource]=\"data\" class=\"user-upgrade-table\">\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox\r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n [disabled]=\"STATUS_ENTRIES[row.upgradeStatus] !== 'Ready' || row.pending\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Column -->\r\n <ng-container matColumnDef=\"user\">\r\n <th mat-header-cell *matHeaderCellDef>User</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"user-info\">\r\n <div class=\"user-name\">{{element.userName}}</div>\r\n <div class=\"user-email\">{{element.userName}}</div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Site Column -->\r\n <ng-container matColumnDef=\"site\">\r\n <th mat-header-cell *matHeaderCellDef>Site</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"site-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getSiteUpgradeStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{element.siteName}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Device Column -->\r\n <ng-container matColumnDef=\"device\">\r\n <th class=\"device-td\" mat-header-cell *matHeaderCellDef>Device</th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"multi-dev-box\">\r\n <div *ngIf=\"element.showDevices\" class=\"device-list show-dev-list\">\r\n <div *ngFor=\"let device of element.devicesWithExtensions; let last = last\"\r\n class=\"device-item\"\r\n [class.no-border]=\"last\">\r\n <span class=\"device-indicator\" [ngClass]=\"{'device-indicator-ready': element.deviceStatus === 'READY'}\"></span>\r\n <span class=\"device-name\">{{ device.deviceName || device }}</span>\r\n <span class=\"device-model\">\r\n {{ device.extensions?.length ? 'Ext: ' + device.extensions.join(\", \") : 'No Extension' }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"device-info\">\r\n <div class=\"multiple-dev-link\" *ngIf=\"element.devicesWithExtensions?.length > 1; else oneDevice\">\r\n <div class=\"device-name-wrapper clickable\"\r\n (mouseenter)=\"onMultipleDevices(element)\"\r\n (mouseleave)=\"onMultipleDevices(element)\">\r\n\r\n <span class=\"device-name\">Multiple devices ></span>\r\n </div>\r\n </div>\r\n <ng-template #oneDevice>\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">{{element.devicesWithExtensions[0].deviceName}}</span>\r\n </div>\r\n <div class=\"device-model one-dev-extensions\">\r\n {{ element.devicesWithExtensions[0].extensions?.length ?\r\n 'Ext: ' + element.devicesWithExtensions[0].extensions?.join(\", \") : 'No Extension' }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dial Plan Status Column -->\r\n <ng-container matColumnDef=\"dialPlanStatus\">\r\n <th mat-header-cell *matHeaderCellDef>Dial Plan Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.dialPlanStatus)\"></span>\r\n <span [ngClass]=\"{'status-ready': element.dialPlanStatus === 'READY'}\">{{STATUS_ENTRIES[element.dialPlanStatus]}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dependencies Column -->\r\n <ng-container matColumnDef=\"dependencies\">\r\n <th mat-header-cell *matHeaderCellDef>Dependencies</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'Dependencies found'\" class=\"dependencies-text\">{{DEPENDENCIES_STATUS[element.dependenciesStatus]}}</span>\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'No dependencies'\">\u2014</span>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Upgrade Status Column -->\r\n <ng-container matColumnDef=\"userUpgradeStatus\">\r\n <th mat-header-cell *matHeaderCellDef>User Upgrade Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"upgrade-status-cell\">\r\n <ng-container *ngIf=\"STATUS_ENTRIES[element.upgradeStatus] === 'Ready'; else statusBlock\">\r\n <button mat-button color=\"primary\" class=\"upgrade-button\" (click)=\"upgradeUser(element)\">Upgrade</button>\r\n </ng-container>\r\n <ng-template #statusBlock>\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.upgradeStatus]}}</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"userUpgradeLoader\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"mat-progress-spinner-td\" mat-cell *matCellDef=\"let element\">\r\n\r\n <mat-progress-spinner\r\n *ngIf=\"element.pending\"\r\n class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\">\r\n </mat-progress-spinner>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\r\n [class.selected-row]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n</div>\r\n\r\n<div class=\"app-pagination\">\r\n <mat-paginator\r\n [length]=\"pagination.total\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n (page)=\"pageEvent($event)\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n\r\n <!--<div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n </div>\r\n\r\n <div class=\"per-page-block\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>-->\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\";.app-pagination{display:flex;flex-direction:column;align-items:stretch}.app-pagination .page-indexes-box,.app-pagination .per-page-block{justify-self:center}.app-pagination mat-select{width:100px}.overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff6;z-index:200}.mat-progress-spinner{position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-25px;width:50px;height:40px;text-align:center;font-size:10px}.mat-progress-spinner-td{position:relative}#userUpgradeDataTable .flex-container{padding:0!important}.multiple-dev-link{margin:0 0 0 13px}::ng-deep .mat-cell{border-bottom:1px solid #d6d6d6;font-family:Inter,sans-serif!important}::ng-deep .mat-header-cell{border-bottom:1px solid #afafaf;font-family:Inter,sans-serif!important}::ng-deep .progress-spinner-td{position:relative}::ng-deep #userUpgradeDataTable .mat-progress-spinner-td .mat-progress-spinner{top:28%;left:0;margin:0}.wrapper{display:flex;flex-direction:column;gap:1rem}.user-upgrade-status-wrapper{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;align-items:stretch}.user-upgrade-table{width:100%;background:white;border-radius:8px;overflow:hidden;font-size:14px}.user-upgrade-table .mat-header-row{font-size:12px;height:35px}.user-upgrade-table .mat-cell{border-bottom:1px solid #d6d6d6}.user-upgrade-table .mat-header-cell{border-bottom:1px solid #afafaf}.user-upgrade-table .mat-row{transition:background-color .2s ease}.user-upgrade-table .mat-row:hover{background-color:#f8f9fa}.user-upgrade-table .mat-row.selected-row{background-color:#08599c1a}.user-upgrade-table .user-info .user-name{font-weight:500;color:#212121}.user-upgrade-table .user-info .user-email{font-size:12px;color:#757575}.user-upgrade-table .site-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .site-info .site-indicator{width:8px;height:8px;border-radius:50%;background-color:#737480}.user-upgrade-table .device-info .device-name-wrapper{display:flex;align-items:center;gap:5px}.user-upgrade-table .device-info .device-name-wrapper .device-name{font-weight:500;color:#212121}.user-upgrade-table .device-model{font-size:12px;color:#757575;display:block}.user-upgrade-table .one-dev-extensions{margin:0 0 0 13px}.user-upgrade-table .device-indicator{width:8px;height:8px;border-radius:50%;background-color:#f8cd00}.user-upgrade-table .device-indicator-ready{background-color:#1d805f}.user-upgrade-table .device-td{padding:0 0 0 13px}.user-upgrade-table .status-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .status-info .status-indicator{width:8px;height:8px;border-radius:50%}.user-upgrade-table .status-info .status-indicator.ready{background-color:#1170cf}.user-upgrade-table .status-info .status-indicator.partial-ready{background-color:#f8cd00}.user-upgrade-table .status-info .status-indicator.not-ready{background-color:#9e9e9e}.user-upgrade-table .status-info .status-indicator.completed{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.failed{background-color:#f23933}.user-upgrade-table .dependencies-text{font-size:12px;background-color:#ffe9e9;padding:.25rem .5rem;border-radius:3px;color:#000}.user-upgrade-table .upgrade-status-cell{display:flex;align-items:center;justify-content:flex-start}.user-upgrade-table .upgrade-button{border-radius:20px!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;background-color:#000!important;color:#fffffff5!important}.user-upgrade-table .upgrade-button:hover{background-color:#000000ce!important}.user-upgrade-table .custom-checkbox .mdc-checkbox{padding:8px}.mat-checkbox-disabled{opacity:.5}.multi-dev-box{position:relative}.device-list{position:absolute;top:65%;left:0;min-width:200px;background:white;box-shadow:0 2px 8px #0000001a;padding:8px 0;margin-top:4px;border-radius:2px;opacity:0;transform:translateY(-10px);visibility:hidden;transition:all .3s ease;z-index:1000}.device-list.show-dev-list{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto}.clickable{cursor:pointer}.device-item{padding:12px 16px;border-bottom:1px solid #f5f5f5;cursor:pointer;transition:background-color .2s ease}.device-item:hover{background-color:#f9f9f9}.device-item.no-border{border-bottom:none}.device-item .device-name{font-size:14px;color:#333}.table-action-panel{width:100%;display:flex;justify-content:flex-start;gap:1rem}::ng-deep .action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem;color:#555}::ng-deep .action-wrapper .mat-button .mat-button-wrapper{margin:0}.upgrade-bulk-button{border:1px solid #000!important;color:#fff!important;background:#000!important;border-radius:20px!important;padding:0 1rem!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}.upgrade-bulk-button:hover{background-color:#212121!important}.upgrade-bulk-button:disabled{background-color:#888!important;color:#fff!important;cursor:not-allowed!important;border-color:#888!important;opacity:.25!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-checked .mat-checkbox-background{background-color:#1170cf!important;border-color:#00000080!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled):hover:not(.mat-checkbox-checked) .mat-checkbox-background{background-color:#0000004d!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background{background-color:#1170cf!important;border-color:#00000080!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background .mat-checkbox-mixedmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox .mat-checkbox-background{border-color:#00000080!important;transition:background-color .2s,border-color .2s,box-shadow .2s}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled) .mat-checkbox-ripple .mat-ripple-element{background-color:#1170cf40}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).cdk-focused .mat-checkbox-ripple .mat-ripple-element{background-color:#1170cf59}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background{border-color:#00000080!important;transition:background-color .2s,border-color .2s,box-shadow .2s;background-color:#1170cf!important}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}.user-upgrade-table .mat-checkbox.mat-accent .mat-ripple-element{background-color:#08599c1a!important}.user-upgrade-table .mat-checkbox.mat-accent:focus .mat-checkbox-background{background-color:#08599c1a!important}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#00000080!important}.user-upgrade-table .mat-checkbox-checkmark{color:#fff!important;transform:scale(.75)}.user-upgrade-table .mat-checkbox-checkmark-path{stroke:#fff!important}.user-upgrade-table .mat-checkbox-mixedmark{border-color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.SummaryCardComponent, selector: "tk-summary-card", inputs: ["value", "status", "description"] }, { kind: "component", type: i6.TableFiltersComponent, selector: "tk-table-filters", inputs: ["filters"], outputs: ["filter"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }] });
|
|
355
355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeDataTableComponent, decorators: [{
|
|
356
356
|
type: Component,
|
|
357
|
-
args: [{ selector: 'tk-user-upgrade-data-table', template: "<div *ngIf=\"dataPending\" class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"70\"\r\n strokeWidth=\"3\"\r\n ></mat-progress-spinner>\r\n</div>\r\n\r\n<div id=\"userUpgradeDataTable\" class=\"wrapper\">\r\n <div class=\"user-upgrade-status-wrapper\">\r\n <tk-summary-card [description]=\"'Users are ready to upgrade'\" [value]=\"statusCounts['Ready']\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users are not ready'\" [value]=\"statusCounts['Not Ready']\" [status]=\"'Not Ready'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users failed to upgrade'\" [value]=\"statusCounts['Failed']\" [status]=\"'Failed'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Successfully upgraded'\" [value]=\"statusCounts['Completed']\" [status]=\"'Completed'\"></tk-summary-card>\r\n </div>\r\n <div class=\"table-action-panel\">\r\n <tk-table-filters *ngIf=\"filters.length > 0\" [filters]=\"filters\" (filter)=\"onFilter($event)\"></tk-table-filters>\r\n <div class=\"action-wrapper\">\r\n <span>{{filteredDataCount}} Users</span>\r\n <button\r\n mat-button\r\n class=\"upgrade-bulk-button\"\r\n color=\"primary\"\r\n [disabled]=\"selection.selected.length === 0\"\r\n (click)=\"upgradeSelectedUsers()\">\r\n Upgrade {{ selection.selected.length === 0 ? '' : '(' + selection.selected.length + ')' }}\r\n </button>\r\n </div>\r\n </div>\r\n <table mat-table [dataSource]=\"data\" class=\"user-upgrade-table\">\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox\r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n [disabled]=\"STATUS_ENTRIES[row.upgradeStatus] !== 'Ready' || row.pending\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Column -->\r\n <ng-container matColumnDef=\"user\">\r\n <th mat-header-cell *matHeaderCellDef>User</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"user-info\">\r\n <div class=\"user-name\">{{element.userName}}</div>\r\n <div class=\"user-email\">{{element.userName}}</div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Site Column -->\r\n <ng-container matColumnDef=\"site\">\r\n <th mat-header-cell *matHeaderCellDef>Site</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"site-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getSiteUpgradeStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{element.siteName}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Device Column -->\r\n <ng-container matColumnDef=\"device\">\r\n <th class=\"device-td\" mat-header-cell *matHeaderCellDef>Device</th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"multi-dev-box\">\r\n <div *ngIf=\"element.showDevices\" class=\"device-list show-dev-list\">\r\n <div *ngFor=\"let device of element.devicesWithExtensions; let last = last\"\r\n class=\"device-item\"\r\n [class.no-border]=\"last\">\r\n <span class=\"device-indicator\" [ngClass]=\"{'device-indicator-ready': element.deviceStatus === 'READY'}\"></span>\r\n <span class=\"device-name\">{{ device.deviceName || device }}</span>\r\n <span class=\"device-model\">\r\n {{ device.extensions?.length ? 'Ext: ' + device.extensions.join(\", \") : 'No Extension' }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"device-info\">\r\n <div class=\"multiple-dev-link\" *ngIf=\"element.devicesWithExtensions?.length > 1; else oneDevice\">\r\n <div class=\"device-name-wrapper clickable\"\r\n (mouseenter)=\"onMultipleDevices(element)\"\r\n (mouseleave)=\"onMultipleDevices(element)\">\r\n\r\n <span class=\"device-name\">Multiple devices ></span>\r\n </div>\r\n </div>\r\n <ng-template #oneDevice>\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">{{element.devicesWithExtensions[0].deviceName}}</span>\r\n </div>\r\n <div class=\"device-model one-dev-extensions\">\r\n {{ element.devicesWithExtensions[0].extensions?.length ?\r\n 'Ext: ' + element.devicesWithExtensions[0].extensions?.join(\", \") : 'No Extension' }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dial Plan Status Column -->\r\n <ng-container matColumnDef=\"dialPlanStatus\">\r\n <th mat-header-cell *matHeaderCellDef>Dial Plan Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.dialPlanStatus)\"></span>\r\n <span [ngClass]=\"{'status-ready': element.dialPlanStatus === 'READY'}\">{{STATUS_ENTRIES[element.dialPlanStatus]}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dependencies Column -->\r\n <ng-container matColumnDef=\"dependencies\">\r\n <th mat-header-cell *matHeaderCellDef>Dependencies</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'Dependencies found'\" class=\"dependencies-text\">{{DEPENDENCIES_STATUS[element.dependenciesStatus]}}</span>\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'No dependencies'\">\u2014</span>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Upgrade Status Column -->\r\n <ng-container matColumnDef=\"userUpgradeStatus\">\r\n <th mat-header-cell *matHeaderCellDef>User Upgrade Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"upgrade-status-cell\">\r\n <ng-container *ngIf=\"STATUS_ENTRIES[element.upgradeStatus] === 'Ready'; else statusBlock\">\r\n <button mat-button color=\"primary\" class=\"upgrade-button\" (click)=\"upgradeUser(element)\">Upgrade</button>\r\n </ng-container>\r\n <ng-template #statusBlock>\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.upgradeStatus]}}</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"userUpgradeLoader\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"mat-progress-spinner-td\" mat-cell *matCellDef=\"let element\">\r\n\r\n <mat-progress-spinner\r\n *ngIf=\"element.pending\"\r\n class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\">\r\n </mat-progress-spinner>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\r\n [class.selected-row]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n</div>\r\n\r\n<div class=\"app-pagination\">\r\n <mat-paginator\r\n [length]=\"pagination.total\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n (page)=\"pageEvent($event)\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n\r\n <!--<div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n </div>\r\n\r\n <div class=\"per-page-block\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>-->\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\";.app-pagination{display:flex;flex-direction:column;align-items:stretch}.app-pagination .page-indexes-box,.app-pagination .per-page-block{justify-self:center}.app-pagination mat-select{width:100px}.overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff6;z-index:200}.mat-progress-spinner{position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-25px;width:50px;height:40px;text-align:center;font-size:10px}.mat-progress-spinner-td{position:relative}#userUpgradeDataTable .flex-container{padding:0!important}.multiple-dev-link{margin:0 0 0 13px}::ng-deep .mat-cell{border-bottom:1px solid #d6d6d6;font-family:Inter,sans-serif!important}::ng-deep .mat-header-cell{border-bottom:1px solid #afafaf;font-family:Inter,sans-serif!important}::ng-deep .progress-spinner-td{position:relative}::ng-deep #userUpgradeDataTable .mat-progress-spinner-td .mat-progress-spinner{top:28%;left:0;margin:0}.wrapper{display:flex;flex-direction:column;gap:1rem}.user-upgrade-status-wrapper{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;align-items:stretch}.user-upgrade-table{width:100%;background:white;border-radius:8px;overflow:hidden;font-size:14px}.user-upgrade-table .mat-header-row{font-size:12px;height:35px}.user-upgrade-table .mat-cell{border-bottom:1px solid #d6d6d6}.user-upgrade-table .mat-header-cell{border-bottom:1px solid #afafaf}.user-upgrade-table .mat-row{transition:background-color .2s ease}.user-upgrade-table .mat-row:hover{background-color:#f8f9fa}.user-upgrade-table .mat-row.selected-row{background-color:#08599c1a}.user-upgrade-table .user-info .user-name{font-weight:500;color:#212121}.user-upgrade-table .user-info .user-email{font-size:12px;color:#757575}.user-upgrade-table .site-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .site-info .site-indicator{width:8px;height:8px;border-radius:50%;background-color:#737480}.user-upgrade-table .device-info .device-name-wrapper{display:flex;align-items:center;gap:5px}.user-upgrade-table .device-info .device-name-wrapper .device-name{font-weight:500;color:#212121}.user-upgrade-table .device-model{font-size:12px;color:#757575;display:block}.user-upgrade-table .one-dev-extensions{margin:0 0 0 13px}.user-upgrade-table .device-indicator{width:8px;height:8px;border-radius:50%;background-color:#f8cd00}.user-upgrade-table .device-indicator-ready{background-color:#1d805f}.user-upgrade-table .device-td{padding:0 0 0 13px}.user-upgrade-table .status-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .status-info .status-indicator{width:8px;height:8px;border-radius:50%}.user-upgrade-table .status-info .status-indicator.ready{background-color:#1170cf}.user-upgrade-table .status-info .status-indicator.partial-ready{background-color:#f8cd00}.user-upgrade-table .status-info .status-indicator.not-ready{background-color:#9e9e9e}.user-upgrade-table .status-info .status-indicator.completed{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.failed{background-color:#f23933}.user-upgrade-table .dependencies-text{font-size:12px;background-color:#ffe9e9;padding:.25rem .5rem;border-radius:3px;color:#000}.user-upgrade-table .upgrade-status-cell{display:flex;align-items:center;justify-content:flex-start}.user-upgrade-table .upgrade-button{border-radius:20px!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;background-color:#0000001c!important;color:#00000080!important}.user-upgrade-table .upgrade-button:hover{background-color:#0000000a!important}.user-upgrade-table .custom-checkbox .mdc-checkbox{padding:8px}.mat-checkbox-disabled{opacity:.5}.multi-dev-box{position:relative}.device-list{position:absolute;top:65%;left:0;min-width:200px;background:white;box-shadow:0 2px 8px #0000001a;padding:8px 0;margin-top:4px;border-radius:2px;opacity:0;transform:translateY(-10px);visibility:hidden;transition:all .3s ease;z-index:1000}.device-list.show-dev-list{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto}.clickable{cursor:pointer}.device-item{padding:12px 16px;border-bottom:1px solid #f5f5f5;cursor:pointer;transition:background-color .2s ease}.device-item:hover{background-color:#f9f9f9}.device-item.no-border{border-bottom:none}.device-item .device-name{font-size:14px;color:#333}.table-action-panel{width:100%;display:flex;justify-content:flex-start;gap:1rem}::ng-deep .action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem;color:#555}::ng-deep .action-wrapper .mat-button .mat-button-wrapper{margin:0}.upgrade-bulk-button{border:1px solid #000!important;color:#fff!important;background:#000!important;border-radius:20px!important;padding:0 1rem!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}.upgrade-bulk-button:hover{background-color:#212121!important}.upgrade-bulk-button:disabled{background-color:#888!important;color:#fff!important;cursor:not-allowed!important;border-color:#888!important;opacity:.25!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-checked .mat-checkbox-background{background-color:#1170cf!important;border-color:#00000080!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled):hover:not(.mat-checkbox-checked) .mat-checkbox-background{background-color:#0000004d!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background{background-color:#1170cf!important;border-color:#00000080!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background .mat-checkbox-mixedmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox .mat-checkbox-background{border-color:#00000080!important;transition:background-color .2s,border-color .2s,box-shadow .2s}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled) .mat-checkbox-ripple .mat-ripple-element{background-color:#1170cf40}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).cdk-focused .mat-checkbox-ripple .mat-ripple-element{background-color:#1170cf59}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background{border-color:#00000080!important;transition:background-color .2s,border-color .2s,box-shadow .2s;background-color:#1170cf!important}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}.user-upgrade-table .mat-checkbox.mat-accent .mat-ripple-element{background-color:#08599c1a!important}.user-upgrade-table .mat-checkbox.mat-accent:focus .mat-checkbox-background{background-color:#08599c1a!important}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#00000080!important}.user-upgrade-table .mat-checkbox-checkmark{color:#fff!important;transform:scale(.75)}.user-upgrade-table .mat-checkbox-checkmark-path{stroke:#fff!important}.user-upgrade-table .mat-checkbox-mixedmark{border-color:#fff!important}\n"] }]
|
|
357
|
+
args: [{ selector: 'tk-user-upgrade-data-table', template: "<div *ngIf=\"dataPending\" class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"70\"\r\n strokeWidth=\"3\"\r\n ></mat-progress-spinner>\r\n</div>\r\n\r\n<div id=\"userUpgradeDataTable\" class=\"wrapper\">\r\n <div class=\"user-upgrade-status-wrapper\">\r\n <tk-summary-card [description]=\"'Users are ready to upgrade'\" [value]=\"statusCounts['Ready']\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users are not ready'\" [value]=\"statusCounts['Not Ready']\" [status]=\"'Not Ready'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users failed to upgrade'\" [value]=\"statusCounts['Failed']\" [status]=\"'Failed'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Successfully upgraded'\" [value]=\"statusCounts['Completed']\" [status]=\"'Completed'\"></tk-summary-card>\r\n </div>\r\n <div class=\"table-action-panel\">\r\n <tk-table-filters *ngIf=\"filters.length > 0\" [filters]=\"filters\" (filter)=\"onFilter($event)\"></tk-table-filters>\r\n <div class=\"action-wrapper\">\r\n <span>{{filteredDataCount}} Users</span>\r\n <button\r\n mat-button\r\n class=\"upgrade-bulk-button\"\r\n color=\"primary\"\r\n [disabled]=\"selection.selected.length === 0\"\r\n (click)=\"upgradeSelectedUsers()\">\r\n Upgrade {{ selection.selected.length === 0 ? '' : '(' + selection.selected.length + ')' }}\r\n </button>\r\n </div>\r\n </div>\r\n <table mat-table [dataSource]=\"data\" class=\"user-upgrade-table\">\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox\r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n [disabled]=\"STATUS_ENTRIES[row.upgradeStatus] !== 'Ready' || row.pending\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Column -->\r\n <ng-container matColumnDef=\"user\">\r\n <th mat-header-cell *matHeaderCellDef>User</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"user-info\">\r\n <div class=\"user-name\">{{element.userName}}</div>\r\n <div class=\"user-email\">{{element.userName}}</div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Site Column -->\r\n <ng-container matColumnDef=\"site\">\r\n <th mat-header-cell *matHeaderCellDef>Site</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"site-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getSiteUpgradeStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{element.siteName}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Device Column -->\r\n <ng-container matColumnDef=\"device\">\r\n <th class=\"device-td\" mat-header-cell *matHeaderCellDef>Device</th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"multi-dev-box\">\r\n <div *ngIf=\"element.showDevices\" class=\"device-list show-dev-list\">\r\n <div *ngFor=\"let device of element.devicesWithExtensions; let last = last\"\r\n class=\"device-item\"\r\n [class.no-border]=\"last\">\r\n <span class=\"device-indicator\" [ngClass]=\"{'device-indicator-ready': element.deviceStatus === 'READY'}\"></span>\r\n <span class=\"device-name\">{{ device.deviceName || device }}</span>\r\n <span class=\"device-model\">\r\n {{ device.extensions?.length ? 'Ext: ' + device.extensions.join(\", \") : 'No Extension' }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"device-info\">\r\n <div class=\"multiple-dev-link\" *ngIf=\"element.devicesWithExtensions?.length > 1; else oneDevice\">\r\n <div class=\"device-name-wrapper clickable\"\r\n (mouseenter)=\"onMultipleDevices(element)\"\r\n (mouseleave)=\"onMultipleDevices(element)\">\r\n\r\n <span class=\"device-name\">Multiple devices ></span>\r\n </div>\r\n </div>\r\n <ng-template #oneDevice>\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">{{element.devicesWithExtensions[0].deviceName}}</span>\r\n </div>\r\n <div class=\"device-model one-dev-extensions\">\r\n {{ element.devicesWithExtensions[0].extensions?.length ?\r\n 'Ext: ' + element.devicesWithExtensions[0].extensions?.join(\", \") : 'No Extension' }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dial Plan Status Column -->\r\n <ng-container matColumnDef=\"dialPlanStatus\">\r\n <th mat-header-cell *matHeaderCellDef>Dial Plan Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.dialPlanStatus)\"></span>\r\n <span [ngClass]=\"{'status-ready': element.dialPlanStatus === 'READY'}\">{{STATUS_ENTRIES[element.dialPlanStatus]}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dependencies Column -->\r\n <ng-container matColumnDef=\"dependencies\">\r\n <th mat-header-cell *matHeaderCellDef>Dependencies</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'Dependencies found'\" class=\"dependencies-text\">{{DEPENDENCIES_STATUS[element.dependenciesStatus]}}</span>\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'No dependencies'\">\u2014</span>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Upgrade Status Column -->\r\n <ng-container matColumnDef=\"userUpgradeStatus\">\r\n <th mat-header-cell *matHeaderCellDef>User Upgrade Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"upgrade-status-cell\">\r\n <ng-container *ngIf=\"STATUS_ENTRIES[element.upgradeStatus] === 'Ready'; else statusBlock\">\r\n <button mat-button color=\"primary\" class=\"upgrade-button\" (click)=\"upgradeUser(element)\">Upgrade</button>\r\n </ng-container>\r\n <ng-template #statusBlock>\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.upgradeStatus]}}</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"userUpgradeLoader\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"mat-progress-spinner-td\" mat-cell *matCellDef=\"let element\">\r\n\r\n <mat-progress-spinner\r\n *ngIf=\"element.pending\"\r\n class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\">\r\n </mat-progress-spinner>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\r\n [class.selected-row]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n</div>\r\n\r\n<div class=\"app-pagination\">\r\n <mat-paginator\r\n [length]=\"pagination.total\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n (page)=\"pageEvent($event)\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n\r\n <!--<div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n </div>\r\n\r\n <div class=\"per-page-block\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>-->\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\";.app-pagination{display:flex;flex-direction:column;align-items:stretch}.app-pagination .page-indexes-box,.app-pagination .per-page-block{justify-self:center}.app-pagination mat-select{width:100px}.overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff6;z-index:200}.mat-progress-spinner{position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-25px;width:50px;height:40px;text-align:center;font-size:10px}.mat-progress-spinner-td{position:relative}#userUpgradeDataTable .flex-container{padding:0!important}.multiple-dev-link{margin:0 0 0 13px}::ng-deep .mat-cell{border-bottom:1px solid #d6d6d6;font-family:Inter,sans-serif!important}::ng-deep .mat-header-cell{border-bottom:1px solid #afafaf;font-family:Inter,sans-serif!important}::ng-deep .progress-spinner-td{position:relative}::ng-deep #userUpgradeDataTable .mat-progress-spinner-td .mat-progress-spinner{top:28%;left:0;margin:0}.wrapper{display:flex;flex-direction:column;gap:1rem}.user-upgrade-status-wrapper{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;align-items:stretch}.user-upgrade-table{width:100%;background:white;border-radius:8px;overflow:hidden;font-size:14px}.user-upgrade-table .mat-header-row{font-size:12px;height:35px}.user-upgrade-table .mat-cell{border-bottom:1px solid #d6d6d6}.user-upgrade-table .mat-header-cell{border-bottom:1px solid #afafaf}.user-upgrade-table .mat-row{transition:background-color .2s ease}.user-upgrade-table .mat-row:hover{background-color:#f8f9fa}.user-upgrade-table .mat-row.selected-row{background-color:#08599c1a}.user-upgrade-table .user-info .user-name{font-weight:500;color:#212121}.user-upgrade-table .user-info .user-email{font-size:12px;color:#757575}.user-upgrade-table .site-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .site-info .site-indicator{width:8px;height:8px;border-radius:50%;background-color:#737480}.user-upgrade-table .device-info .device-name-wrapper{display:flex;align-items:center;gap:5px}.user-upgrade-table .device-info .device-name-wrapper .device-name{font-weight:500;color:#212121}.user-upgrade-table .device-model{font-size:12px;color:#757575;display:block}.user-upgrade-table .one-dev-extensions{margin:0 0 0 13px}.user-upgrade-table .device-indicator{width:8px;height:8px;border-radius:50%;background-color:#f8cd00}.user-upgrade-table .device-indicator-ready{background-color:#1d805f}.user-upgrade-table .device-td{padding:0 0 0 13px}.user-upgrade-table .status-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .status-info .status-indicator{width:8px;height:8px;border-radius:50%}.user-upgrade-table .status-info .status-indicator.ready{background-color:#1170cf}.user-upgrade-table .status-info .status-indicator.partial-ready{background-color:#f8cd00}.user-upgrade-table .status-info .status-indicator.not-ready{background-color:#9e9e9e}.user-upgrade-table .status-info .status-indicator.completed{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.failed{background-color:#f23933}.user-upgrade-table .dependencies-text{font-size:12px;background-color:#ffe9e9;padding:.25rem .5rem;border-radius:3px;color:#000}.user-upgrade-table .upgrade-status-cell{display:flex;align-items:center;justify-content:flex-start}.user-upgrade-table .upgrade-button{border-radius:20px!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;background-color:#000!important;color:#fffffff5!important}.user-upgrade-table .upgrade-button:hover{background-color:#000000ce!important}.user-upgrade-table .custom-checkbox .mdc-checkbox{padding:8px}.mat-checkbox-disabled{opacity:.5}.multi-dev-box{position:relative}.device-list{position:absolute;top:65%;left:0;min-width:200px;background:white;box-shadow:0 2px 8px #0000001a;padding:8px 0;margin-top:4px;border-radius:2px;opacity:0;transform:translateY(-10px);visibility:hidden;transition:all .3s ease;z-index:1000}.device-list.show-dev-list{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto}.clickable{cursor:pointer}.device-item{padding:12px 16px;border-bottom:1px solid #f5f5f5;cursor:pointer;transition:background-color .2s ease}.device-item:hover{background-color:#f9f9f9}.device-item.no-border{border-bottom:none}.device-item .device-name{font-size:14px;color:#333}.table-action-panel{width:100%;display:flex;justify-content:flex-start;gap:1rem}::ng-deep .action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem;color:#555}::ng-deep .action-wrapper .mat-button .mat-button-wrapper{margin:0}.upgrade-bulk-button{border:1px solid #000!important;color:#fff!important;background:#000!important;border-radius:20px!important;padding:0 1rem!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}.upgrade-bulk-button:hover{background-color:#212121!important}.upgrade-bulk-button:disabled{background-color:#888!important;color:#fff!important;cursor:not-allowed!important;border-color:#888!important;opacity:.25!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-checked .mat-checkbox-background{background-color:#1170cf!important;border-color:#00000080!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled):hover:not(.mat-checkbox-checked) .mat-checkbox-background{background-color:#0000004d!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background{background-color:#1170cf!important;border-color:#00000080!important}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox-indeterminate .mat-checkbox-background .mat-checkbox-mixedmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox .mat-checkbox-background{border-color:#00000080!important;transition:background-color .2s,border-color .2s,box-shadow .2s}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).mat-checkbox .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled) .mat-checkbox-ripple .mat-ripple-element{background-color:#1170cf40}:host ::ng-deep .user-upgrade-table .mat-accent:not(.mat-checkbox-disabled).cdk-focused .mat-checkbox-ripple .mat-ripple-element{background-color:#1170cf59}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background{border-color:#00000080!important;transition:background-color .2s,border-color .2s,box-shadow .2s;background-color:#1170cf!important}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background .mat-checkbox-checkmark{transform:scale(.75)}.user-upgrade-table .mat-checkbox.mat-accent .mat-ripple-element{background-color:#08599c1a!important}.user-upgrade-table .mat-checkbox.mat-accent:focus .mat-checkbox-background{background-color:#08599c1a!important}.user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#00000080!important}.user-upgrade-table .mat-checkbox-checkmark{color:#fff!important;transform:scale(.75)}.user-upgrade-table .mat-checkbox-checkmark-path{stroke:#fff!important}.user-upgrade-table .mat-checkbox-mixedmark{border-color:#fff!important}\n"] }]
|
|
358
358
|
}], propDecorators: { token: [{
|
|
359
359
|
type: Input
|
|
360
360
|
}], customerId: [{
|
|
@@ -94,4 +94,4 @@ export const TOGGLE_TYPES = {
|
|
|
94
94
|
TABS: 'TABS',
|
|
95
95
|
ASSOCIATED_LINE_ONLY: 'ASSOCIATED_LINE_ONLY'
|
|
96
96
|
};
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWRldmljZS1tYW5hZ2Uvc3JjL2FwcC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHO0lBQ2pCLFVBQVUsRUFBRSw0Q0FBNEM7SUFDeEQsa0JBQWtCLEVBQUUsMENBQTBDO0lBQzlELGtCQUFrQixFQUFFLHdDQUF3QztJQUM1RCxVQUFVLEVBQUUsc0NBQXNDO0lBQ2xELGtCQUFrQixFQUFFLHdCQUF3QjtJQUM1QyxRQUFRLEVBQUUsMENBQTBDO0lBQ3BELFlBQVksRUFBRSw0Q0FBNEM7SUFDMUQsYUFBYSxFQUFFLDZDQUE2QztJQUM1RCxpQkFBaUIsRUFBRSxrREFBa0Q7SUFDckUsc0JBQXNCLEVBQUUsMkNBQTJDO0lBQ25FLFdBQVcsRUFBRSxnREFBZ0Q7SUFDN0QsaUJBQWlCLEVBQUUsMkVBQTJFO0lBQzlGLGlCQUFpQixFQUFFLDBDQUEwQztJQUM3RCxjQUFjLEVBQUUsaUVBQWlFO0lBQ2pGLHdCQUF3QixFQUFFLGlDQUFpQztJQUMzRCxrQkFBa0IsRUFBRSxnREFBZ0Q7SUFDcEUsb0JBQW9CLEVBQUUsd0RBQXdEO0lBQzlFLGlCQUFpQixFQUFFLGlEQUFpRDtJQUNwRSxhQUFhLEVBQUUsNkJBQTZCO0lBQzVDLFVBQVUsRUFBRSx1Q0FBdUM7SUFDbkQsNEJBQTRCLEVBQUUsK0RBQStEO0lBQzdGLG9DQUFvQyxFQUFFLCtEQUErRDtJQUNyRyxrQ0FBa0MsRUFBRSxtRkFBbUY7SUFDdkgsZ0NBQWdDLEVBQUUsMkRBQTJEO0lBQzdGLHVCQUF1QixFQUFFLG1EQUFtRDtJQUM1RSxnQkFBZ0IsRUFBRSxxRUFBcUU7SUFDdkYsa0JBQWtCLEVBQUUsNkVBQTZFO0NBQ2xHLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7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eEYsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO0lBQzlDLGNBQWMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDO0lBQzNELHVCQUF1QixFQUFFLENBQUMsMkJBQTJCLEVBQUUsb0NBQW9DLEVBQUUscUJBQXFCLENBQUM7SUFDbkgsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLG1DQUFtQyxFQUFFLGNBQWMsQ0FBQztJQUNsRyxrQkFBa0IsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7SUFDOUQscUJBQXFCLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFFO0lBQzdGLG1CQUFtQixFQUFFLENBQUMsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsNkNBQTZDLEVBQUUsNkNBQTZDLENBQUM7SUFDakssU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQztJQUM5RCxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNyQyw0QkFBNEIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7Q0FDdEUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixJQUFJLEVBQUUsTUFBTTtJQUNaLG9CQUFvQixFQUFFLHNCQUFzQjtDQUM3QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFQSSA9IHtcbiAgVVNFUl9UT0tFTjogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlcnMvOnVzZXJJZC90b2tlbicsXG4gIFVQREFURV9VU0VSX0ZJRUxEUzogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlckZpZWxkcy86dG9rZW4nLFxuICBQRVJTSVNUX1VTRVJfQ0FDSEU6ICcvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL3NhdmVVc2VyLzp0b2tlbicsXG4gIFVTRVJfQllfSUQ6ICcvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL3VzZXJzLzp1c2VySWQnLFxuICBRVUlDS19VU0VSU19TRUFSQ0g6IFwiL2FwaS9zZWFyY2gvcXVpY2t1c2Vyc1wiLFxuICBMT0NBVElPTjogXCIvYXBpL3Byb3Zpc2lvbi9vcHRpb25zLzpzaXRlSWQvbG9jYXRpb25zXCIsXG4gIFVTRVJfTE9DQUxFUzogXCIvYXBpL3Byb3Zpc2lvbi9vcHRpb25zLzpzaXRlSWQvdXNlcmxvY2FsZXNcIixcbiAgVVNFUl9QUk9GSUxFUzogXCIvYXBpL3Byb3Zpc2lvbi9vcHRpb25zLzpzaXRlSWQvdXNlcnByb2ZpbGVzXCIsXG4gIFJFQ09SRElOR19QUk9GSUxFOiBcIi9hcGkvcHJvdmlzaW9uL29wdGlvbnMvOnNpdGVJZC9yZWNvcmRpbmdwcm9maWxlc1wiLFxuICBBVkFJTEFCTEVfRE5fSU5fUkFOR0VTOiBcIi9hcGkvc2l0ZXMvOnNpdGVJZC9hdmFpbGFibGUtZG4taW4tcmFuZ2VzXCIsXG4gIERFTEVURV9MSU5FOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvZGVsZXRlTGluZS86cGtpZC86dG9rZW5cIixcbiAgRElTQVNTT0NJQVRFX0xJTkU6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC86ZGV2aWNlTmFtZS9kZWxldGVMaW5lQXNzb2NpYXRpb24vOmxpbmVQa2lkLzp0b2tlblwiLFxuICBDSEVDS19ERUxFVEVfTElORTogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2NoZWNrbGluZWRlbGV0aW9uXCIsXG4gIEFTU09DSUFURV9MSU5FOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvOmRldmljZU5hbWUvY3JlYXRlTGluZUFzc29jaWF0aW9uLzp0b2tlblwiLFxuICBDSEVDS19ERVNUSU5BVElPTl9OVU1CRVI6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9jaGVjay1kblwiLFxuICBVUERBVEVfTElORV9GSUVMRFM6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9saW5lRmllbGRzLzpwa2lkLzp0b2tlblwiLFxuICBVUERBVEVfREVWSUNFX0ZJRUxEUzogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2RldmljZUZpZWxkcy86ZGV2aWNlTmFtZS86dG9rZW5cIixcbiAgU09GVEtFWV9URU1QTEFURVM6IFwiL2FwaS9wcm92aXNpb24vb3B0aW9ucy86c2l0ZUlkL3NvZnRrZXl0ZW1wbGF0ZXNcIixcbiAgU0lURV9TRVRUSU5HUzogXCIvYXBpL3NpdGVzLzpzaXRlSWQvc2V0dGluZ3NcIixcbiAgTElORV9TTE9UUzogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2J1dHRvbnRlbXBsYXRlXCIsXG4gIExFQU5fVVNFUl9DT05WRVJTQVRJT05fU1RBUlQ6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9sZWFuVXNlcnMvOnVzZXJJZC9sZWFuVXNlckRldGFpbHNUb2tlblwiLFxuICBMRUFOX1VTRVJfREVWSUNFU19DT05WRVJTQVRJT05fU1RBUlQ6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9sZWFuVXNlcnMvOnVzZXJJZC9sZWFuVXNlckRldmljZXNUb2tlblwiLFxuICBMRUFOX1VTRVJfTElORVNfQ09OVkVSU0FUSU9OX1NUQVJUOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvbGVhblVzZXJzLzp1c2VySWQvOmxlYW5Vc2VyRGV2aWNlc1Rva2VuL2xlYW5Vc2VyTGluZXNUb2tlblwiLFxuICBMRUFOX1VTRVJfU05SX0NPTlZFUlNBVElPTl9TVEFSVDogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2xlYW5Vc2Vycy86dXNlcklkL2xlYW5Vc2VyU05SVG9rZW5cIixcbiAgREVWSUNFX0xJTkVfTU9OSVRPUl9DU1M6IFwiL2FwaS9wcm92aXNpb24vb3B0aW9ucy86c2l0ZUlkL2NhbGxpbmdTZWFyY2hTcGFjZVwiLFxuICBXRUJFWF9VU0VSX1RPS0VOOiAnL3dlYmV4L2FwaS93ZWJleC9wcm92aXNpb25pbmcvY3VzdG9tZXJzLzpjdXN0b21lcklkL3BlcnNvbnMvOnVzZXJJZCcsXG4gIFdFQkVYX1VTRVJfREVWSUNFUzogXCIvd2ViZXgvYXBpL3dlYmV4L3Byb3Zpc2lvbmluZy9jdXN0b21lcnMvOmN1c3RvbWVySWQvcGVyc29ucy86dXNlcklkL2RldmljZXNcIixcbn07XG5leHBvcnQgY29uc3QgUkVHRVhfUEFUVEVSTiA9IHtcbiAgRU1BSUw6ICdeKChbXjw+KClcXFxcW1xcXFxdXFxcXFxcXFwuLDs6XFxcXHNAXCJdKyhcXFxcLltePD4oKVxcXFxbXFxcXF1cXFxcXFxcXC4sOzpcXFxcc0BcIl0rKSopfChcIi4rXCIpKScgK1xuICAgICdAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2Mn1bYS16QS1aMC05XSknICtcbiAgICAnPyg/OlxcXFwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2Mn1bYS16QS1aMC05XSk/KSokJ1xufTtcblxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fREVGQVVMVFMgPSB7XG4gIFNJWkU6IDEwLFxuICBJTkRFWDogMFxufVxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fU0laRV9PUFRJT05TID0gW1xuICAxMCxcbiAgNTAsXG4gIDEwMCxcbiAgNTAwXG5dO1xuZXhwb3J0IGNvbnN0IENVQ1NfVE9fSUdOT1JFID0gW1xuICAxODksXG4gIDE5NCxcbiAgMTkxLFxuICAxOTBcbl07XG5leHBvcnQgY29uc3QgQ1VDTVNfVE9fSUdOT1JFID0gW1xuICAyNDksXG4gIDI1NSxcbiAgMjUxLFxuICAyNTBcbl07XG5leHBvcnQgY29uc3QgUkVDT1JESU5HX01FRElBX1NPVVJDRSA9IFtcbiAgXCJHYXRld2F5IFByZWZlcnJlZFwiLFxuICBcIlBob25lIFByZWZlcnJlZFwiXG5dO1xuZXhwb3J0IGNvbnN0IFNUQVRJQ19PUFRJT05TID0ge1xuICBDQUxMX1BJQ0tVUF9HUk9VUF9BVURJT19TRVRUSU5HX1BIT05FX0FDVElWRTogWydVc2UgU3lzdGVtIERlZmF1bHQnLCAnRGlzYWJsZScsICdCZWVwIE9ubHknXSxcbiAgQ0FMTF9QSUNLVVBfR1JPVVBfQVVESU9fU0VUVElOR19QSE9ORV9JRExFOiBbJ1VzZSBTeXN0ZW0gRGVmYXVsdCcsICdEaXNhYmxlJywgJ1JpbmcgT25jZSddLFxuICBDT05GX0FDQ0VTU19NT0RFOiBbJ0ZpeGVkJywgJ1ZhcmlhYmxlJ10sXG4gIERFRkFVTFRfT05fT0ZGOiBbJ0RlZmF1bHQnLCAnT24nLCAnT2ZmJ10sXG4gIERFRkFVTFRfRU5fRElTOiBbJ0RlZmF1bHQnLCAnRW5hYmxlZCcsICdEaXNhYmxlZCddLFxuICBETkQ6IFsnVXNlIENvbW1vbiBQaG9uZSBQcm9maWxlIFNldHRpbmcnLCAnQ2FsbCBSZWplY3QnLCAnUmluZ2VyIE9mZiddLFxuICBETkRfSU5DT01JTkdfQ0FMTF9BTExFUlQ6IFsnRGlzYWJsZScsICdGbGFzaCBPbmx5JywgJ0JlZXAgT25seSddLFxuICBMQVRFTlRfQ0FQQUJJTElUWTogWydHYXRld2F5IENvbnRyb2xsZWQnLCAnTW9kZW0gUmVsYXknLCAnTW9kZW0gUGFzc3Rocm91Z2gnLCAnTW9kZW0gUmVsYXkgYW5kIFBhc3N0aHJvdWdoJywgJ05vbmUnXSxcbiAgTElORV9NT0RFOiBbJ1Nlc3Npb24gTGluZSBtb2RlJywgJ0VuaGFuY2VkIExpbmUgbW9kZSddLFxuICBBQ1RJT05BQkxFX0FMRVJUOiBbJ0Rpc2FibGVkJywgJ1Nob3cgZm9yIGFsbCBJbmNvbWluZyBDYWxsJywgJ1Nob3cgZm9yIEludmlzaWJsZSBJbmNvbWluZyBDYWxsJ10sXG4gIE1MUFBfUFJFRU1QVElPTjogWydEZWZhdWx0JywgJ0ZvcmNlZnVsJywgJ0Rpc2FibGVkJ10sXG4gIFBBQ0tFVF9DQVBUVVJFX01PREU6IFsnTm9uZScsICdCYXRjaCBQcm9jZXNzaW5nIE1vZGUnXSxcbiAgUklOR19WT0xVTUU6IFsnMC1TaWxlbnQnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLCAnMTAnLCAnMTEnLCAnMTInLCAnMTMnLCAnMTQnLCAnMTUnXSxcbiAgUE9SVF9ESVJFQ1RJT046IFsnQm90aHdheXMnLCAnSW5ib3VuZCcsICdPdXRib3VuZCddLFxuICBSSU5HX1NFVFRJTkdfSURMRTogWydVc2UgU3lzdGVtIERlZmF1bHQnLCAnRGlzYWJsZScgLCAnRmxhc2ggT25seScgLCAnUmluZyBPbmNlJyAsICdSaW5nJ10sXG4gIFJJTkdfU0VUVElOR19BQ1RJVkU6IFsnVXNlIFN5c3RlbSBEZWZhdWx0JywgJ0Rpc2FibGUnICwgJ0ZsYXNoIE9ubHknICwgJ1JpbmcgT25jZScgLCAnUmluZycsICdCZWVwIE9ubHknXSxcbiAgU0VSVklDRV9QUk9WSVNJT05JTkc6IFsnRGVmYXVsdCcsICdJbnRlcm5hbCcsICdFeHRlcm5hbCBVUkwnLCAnQm90aCddLFxuICBTRVRUSU5HU19BQ0NFUzogWydFbmFibGVkJywgJ0Rpc2FibGVkJywgJ1Jlc3RyaWN0ZWQnXSxcbiAgVklTVUFMX01XSTogWydVc2UgU3lzdGVtIFBvbGljeScsICdMaWdodCBhbmQgUHJvbXB0JyAsICdQcm9tcHQgT25seScgLCAnTGlnaHQgT25seScgLCAnTm9uZSddLFxuICBXRUVLREFZUzogWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddLFxuICBCVUlMRF9CUklER0U6IFsnTm9uZScsICdPbicsICdPZmYnLCAnRGVmYXVsdCddLFxuICBUUkFOU0ZFUl9UWVBFUzogWydSZWxlYXNlIHRvIFN3aXRjaCcsICdTdXBlcnZpc2UgVHJhbnNmZXInXSxcbiAgRVhURU5TSU9OX0lTX0JVU1lfVFlQRVM6IFsnU2VuZCBDYWxsZXJzIHRvIFZvaWNlbWFpbCcsICdQdXQgQ2FsbGVycyBvbiBIb2xkIFdpdGhvdXQgQXNraW5nJywgJ0FzayBDYWxsZXJzIHRvIEhvbGQnXSxcbiAgQ0FMTF9BQ1RJT05TOiBbJ0hhbmcgVXAnLCAnUmVzdGFydCBHcmVldGluZycsICdSb3V0ZSBGcm9tIE5leHQgQ2FsbCBSb3V0aW5nIFJ1bGUnLCAnVGFrZSBNZXNzYWdlJ10sXG4gIEFVVEhFTlRJQ0FUSU9OXzgwMjogWydVc2VyIGNvbnRyb2xsZWQnLCAnRGlzYWJsZWQnLCAnRW5hYmxlZCddLFxuICBDRVJUSUZJQ0FURV9PUEVSQVRJT046IFsnTm8gUGVuZGluZyBPcGVyYXRpb24nLCAnSW5zdGFsbC9VcGdyYWRlJywgJ0RlbGV0ZScsICdUcm91Ymxlc2hvb3QnIF0sXG4gIEFVVEhFTlRJQ0FUSU9OX01PREU6IFsnQnkgQXV0aGVudGljYXRpb24gU3RyaW5nJywgJ0J5IE51bGwgU3RyaW5nJywgJ0J5IEV4aXN0aW5nIENlcnRpZmljYXRlIChwcmVjZWRlbmNlIHRvIExTQyknLCAnQnkgRXhpc3RpbmcgQ2VydGlmaWNhdGUgKHByZWNlZGVuY2UgdG8gTUlDKSddLFxuICBLRVlfT1JERVI6IFsnUlNBIE9ubHknLCAnRUMgT25seScsICdFQyBQcmVmZXJyZWQsIFJTQSBCYWNrdXAnXSxcbiAgUlNBX0tFWV9TSVpFOiBbJzUxMicsICcxMDI0JywgJzIwNDgnXSxcbiAgUlNBX0tFWV9TSVpFX1NQRUNJRklDX0RFVklDRTogWyc1MTInLCAnMTAyNCcsICcyMDQ4JywgJzMwNzInLCAnNDA5NiddXG59O1xuXG5leHBvcnQgY29uc3QgVE9HR0xFX1RZUEVTID0ge1xuICBUQUJTOiAnVEFCUycsXG4gIEFTU09DSUFURURfTElORV9PTkxZOiAnQVNTT0NJQVRFRF9MSU5FX09OTFknXG59XG4iXX0=
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWRldmljZS1tYW5hZ2Uvc3JjL2FwcC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHO0lBQ2pCLFVBQVUsRUFBRSw0Q0FBNEM7SUFDeEQsa0JBQWtCLEVBQUUsMENBQTBDO0lBQzlELGtCQUFrQixFQUFFLHdDQUF3QztJQUM1RCxVQUFVLEVBQUUsc0NBQXNDO0lBQ2xELGtCQUFrQixFQUFFLHdCQUF3QjtJQUM1QyxRQUFRLEVBQUUsMENBQTBDO0lBQ3BELFlBQVksRUFBRSw0Q0FBNEM7SUFDMUQsYUFBYSxFQUFFLDZDQUE2QztJQUM1RCxpQkFBaUIsRUFBRSxrREFBa0Q7SUFDckUsc0JBQXNCLEVBQUUsMkNBQTJDO0lBQ25FLFdBQVcsRUFBRSxnREFBZ0Q7SUFDN0QsaUJBQWlCLEVBQUUsMkVBQTJFO0lBQzlGLGlCQUFpQixFQUFFLDBDQUEwQztJQUM3RCxjQUFjLEVBQUUsaUVBQWlFO0lBQ2pGLHdCQUF3QixFQUFFLGlDQUFpQztJQUMzRCxrQkFBa0IsRUFBRSxnREFBZ0Q7SUFDcEUsb0JBQW9CLEVBQUUsd0RBQXdEO0lBQzlFLGlCQUFpQixFQUFFLGlEQUFpRDtJQUNwRSxhQUFhLEVBQUUsNkJBQTZCO0lBQzVDLFVBQVUsRUFBRSx1Q0FBdUM7SUFDbkQsNEJBQTRCLEVBQUUsK0RBQStEO0lBQzdGLG9DQUFvQyxFQUFFLCtEQUErRDtJQUNyRyxrQ0FBa0MsRUFBRSxtRkFBbUY7SUFDdkgsZ0NBQWdDLEVBQUUsMkRBQTJEO0lBQzdGLHVCQUF1QixFQUFFLG1EQUFtRDtJQUM1RSxnQkFBZ0IsRUFBRSxxRUFBcUU7SUFDdkYsa0JBQWtCLEVBQUUsNkVBQTZFO0NBQ2xHLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7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eEYsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO0lBQzlDLGNBQWMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDO0lBQzNELHVCQUF1QixFQUFFLENBQUMsMkJBQTJCLEVBQUUsb0NBQW9DLEVBQUUscUJBQXFCLENBQUM7SUFDbkgsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLG1DQUFtQyxFQUFFLGNBQWMsQ0FBQztJQUNsRyxrQkFBa0IsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7SUFDOUQscUJBQXFCLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFFO0lBQzdGLG1CQUFtQixFQUFFLENBQUMsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsNkNBQTZDLEVBQUUsNkNBQTZDLENBQUM7SUFDakssU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQztJQUM5RCxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNyQyw0QkFBNEIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7Q0FDdEUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixJQUFJLEVBQUUsTUFBTTtJQUNaLG9CQUFvQixFQUFFLHNCQUFzQjtDQUM3QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFQSSA9IHtcclxuICBVU0VSX1RPS0VOOiAnL2FwaS9wcm92aXNpb24vOnNpdGVJZC91c2Vycy86dXNlcklkL3Rva2VuJyxcclxuICBVUERBVEVfVVNFUl9GSUVMRFM6ICcvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL3VzZXJGaWVsZHMvOnRva2VuJyxcclxuICBQRVJTSVNUX1VTRVJfQ0FDSEU6ICcvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL3NhdmVVc2VyLzp0b2tlbicsXHJcbiAgVVNFUl9CWV9JRDogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlcnMvOnVzZXJJZCcsXHJcbiAgUVVJQ0tfVVNFUlNfU0VBUkNIOiBcIi9hcGkvc2VhcmNoL3F1aWNrdXNlcnNcIixcclxuICBMT0NBVElPTjogXCIvYXBpL3Byb3Zpc2lvbi9vcHRpb25zLzpzaXRlSWQvbG9jYXRpb25zXCIsXHJcbiAgVVNFUl9MT0NBTEVTOiBcIi9hcGkvcHJvdmlzaW9uL29wdGlvbnMvOnNpdGVJZC91c2VybG9jYWxlc1wiLFxyXG4gIFVTRVJfUFJPRklMRVM6IFwiL2FwaS9wcm92aXNpb24vb3B0aW9ucy86c2l0ZUlkL3VzZXJwcm9maWxlc1wiLFxyXG4gIFJFQ09SRElOR19QUk9GSUxFOiBcIi9hcGkvcHJvdmlzaW9uL29wdGlvbnMvOnNpdGVJZC9yZWNvcmRpbmdwcm9maWxlc1wiLFxyXG4gIEFWQUlMQUJMRV9ETl9JTl9SQU5HRVM6IFwiL2FwaS9zaXRlcy86c2l0ZUlkL2F2YWlsYWJsZS1kbi1pbi1yYW5nZXNcIixcclxuICBERUxFVEVfTElORTogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2RlbGV0ZUxpbmUvOnBraWQvOnRva2VuXCIsXHJcbiAgRElTQVNTT0NJQVRFX0xJTkU6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC86ZGV2aWNlTmFtZS9kZWxldGVMaW5lQXNzb2NpYXRpb24vOmxpbmVQa2lkLzp0b2tlblwiLFxyXG4gIENIRUNLX0RFTEVURV9MSU5FOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvY2hlY2tsaW5lZGVsZXRpb25cIixcclxuICBBU1NPQ0lBVEVfTElORTogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkLzpkZXZpY2VOYW1lL2NyZWF0ZUxpbmVBc3NvY2lhdGlvbi86dG9rZW5cIixcclxuICBDSEVDS19ERVNUSU5BVElPTl9OVU1CRVI6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9jaGVjay1kblwiLFxyXG4gIFVQREFURV9MSU5FX0ZJRUxEUzogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2xpbmVGaWVsZHMvOnBraWQvOnRva2VuXCIsXHJcbiAgVVBEQVRFX0RFVklDRV9GSUVMRFM6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9kZXZpY2VGaWVsZHMvOmRldmljZU5hbWUvOnRva2VuXCIsXHJcbiAgU09GVEtFWV9URU1QTEFURVM6IFwiL2FwaS9wcm92aXNpb24vb3B0aW9ucy86c2l0ZUlkL3NvZnRrZXl0ZW1wbGF0ZXNcIixcclxuICBTSVRFX1NFVFRJTkdTOiBcIi9hcGkvc2l0ZXMvOnNpdGVJZC9zZXR0aW5nc1wiLFxyXG4gIExJTkVfU0xPVFM6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9idXR0b250ZW1wbGF0ZVwiLFxyXG4gIExFQU5fVVNFUl9DT05WRVJTQVRJT05fU1RBUlQ6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9sZWFuVXNlcnMvOnVzZXJJZC9sZWFuVXNlckRldGFpbHNUb2tlblwiLFxyXG4gIExFQU5fVVNFUl9ERVZJQ0VTX0NPTlZFUlNBVElPTl9TVEFSVDogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2xlYW5Vc2Vycy86dXNlcklkL2xlYW5Vc2VyRGV2aWNlc1Rva2VuXCIsXHJcbiAgTEVBTl9VU0VSX0xJTkVTX0NPTlZFUlNBVElPTl9TVEFSVDogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2xlYW5Vc2Vycy86dXNlcklkLzpsZWFuVXNlckRldmljZXNUb2tlbi9sZWFuVXNlckxpbmVzVG9rZW5cIixcclxuICBMRUFOX1VTRVJfU05SX0NPTlZFUlNBVElPTl9TVEFSVDogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2xlYW5Vc2Vycy86dXNlcklkL2xlYW5Vc2VyU05SVG9rZW5cIixcclxuICBERVZJQ0VfTElORV9NT05JVE9SX0NTUzogXCIvYXBpL3Byb3Zpc2lvbi9vcHRpb25zLzpzaXRlSWQvY2FsbGluZ1NlYXJjaFNwYWNlXCIsXHJcbiAgV0VCRVhfVVNFUl9UT0tFTjogJy93ZWJleC9hcGkvd2ViZXgvcHJvdmlzaW9uaW5nL2N1c3RvbWVycy86Y3VzdG9tZXJJZC9wZXJzb25zLzp1c2VySWQnLFxyXG4gIFdFQkVYX1VTRVJfREVWSUNFUzogXCIvd2ViZXgvYXBpL3dlYmV4L3Byb3Zpc2lvbmluZy9jdXN0b21lcnMvOmN1c3RvbWVySWQvcGVyc29ucy86dXNlcklkL2RldmljZXNcIixcclxufTtcclxuZXhwb3J0IGNvbnN0IFJFR0VYX1BBVFRFUk4gPSB7XHJcbiAgRU1BSUw6ICdeKChbXjw+KClcXFxcW1xcXFxdXFxcXFxcXFwuLDs6XFxcXHNAXCJdKyhcXFxcLltePD4oKVxcXFxbXFxcXF1cXFxcXFxcXC4sOzpcXFxcc0BcIl0rKSopfChcIi4rXCIpKScgK1xyXG4gICAgJ0BbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYyfVthLXpBLVowLTldKScgK1xyXG4gICAgJz8oPzpcXFxcLlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjJ9W2EtekEtWjAtOV0pPykqJCdcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBQQUdJTkFUSU9OX0RFRkFVTFRTID0ge1xyXG4gIFNJWkU6IDEwLFxyXG4gIElOREVYOiAwXHJcbn1cclxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fU0laRV9PUFRJT05TID0gW1xyXG4gIDEwLFxyXG4gIDUwLFxyXG4gIDEwMCxcclxuICA1MDBcclxuXTtcclxuZXhwb3J0IGNvbnN0IENVQ1NfVE9fSUdOT1JFID0gW1xyXG4gIDE4OSxcclxuICAxOTQsXHJcbiAgMTkxLFxyXG4gIDE5MFxyXG5dO1xyXG5leHBvcnQgY29uc3QgQ1VDTVNfVE9fSUdOT1JFID0gW1xyXG4gIDI0OSxcclxuICAyNTUsXHJcbiAgMjUxLFxyXG4gIDI1MFxyXG5dO1xyXG5leHBvcnQgY29uc3QgUkVDT1JESU5HX01FRElBX1NPVVJDRSA9IFtcclxuICBcIkdhdGV3YXkgUHJlZmVycmVkXCIsXHJcbiAgXCJQaG9uZSBQcmVmZXJyZWRcIlxyXG5dO1xyXG5leHBvcnQgY29uc3QgU1RBVElDX09QVElPTlMgPSB7XHJcbiAgQ0FMTF9QSUNLVVBfR1JPVVBfQVVESU9fU0VUVElOR19QSE9ORV9BQ1RJVkU6IFsnVXNlIFN5c3RlbSBEZWZhdWx0JywgJ0Rpc2FibGUnLCAnQmVlcCBPbmx5J10sXHJcbiAgQ0FMTF9QSUNLVVBfR1JPVVBfQVVESU9fU0VUVElOR19QSE9ORV9JRExFOiBbJ1VzZSBTeXN0ZW0gRGVmYXVsdCcsICdEaXNhYmxlJywgJ1JpbmcgT25jZSddLFxyXG4gIENPTkZfQUNDRVNTX01PREU6IFsnRml4ZWQnLCAnVmFyaWFibGUnXSxcclxuICBERUZBVUxUX09OX09GRjogWydEZWZhdWx0JywgJ09uJywgJ09mZiddLFxyXG4gIERFRkFVTFRfRU5fRElTOiBbJ0RlZmF1bHQnLCAnRW5hYmxlZCcsICdEaXNhYmxlZCddLFxyXG4gIERORDogWydVc2UgQ29tbW9uIFBob25lIFByb2ZpbGUgU2V0dGluZycsICdDYWxsIFJlamVjdCcsICdSaW5nZXIgT2ZmJ10sXHJcbiAgRE5EX0lOQ09NSU5HX0NBTExfQUxMRVJUOiBbJ0Rpc2FibGUnLCAnRmxhc2ggT25seScsICdCZWVwIE9ubHknXSxcclxuICBMQVRFTlRfQ0FQQUJJTElUWTogWydHYXRld2F5IENvbnRyb2xsZWQnLCAnTW9kZW0gUmVsYXknLCAnTW9kZW0gUGFzc3Rocm91Z2gnLCAnTW9kZW0gUmVsYXkgYW5kIFBhc3N0aHJvdWdoJywgJ05vbmUnXSxcclxuICBMSU5FX01PREU6IFsnU2Vzc2lvbiBMaW5lIG1vZGUnLCAnRW5oYW5jZWQgTGluZSBtb2RlJ10sXHJcbiAgQUNUSU9OQUJMRV9BTEVSVDogWydEaXNhYmxlZCcsICdTaG93IGZvciBhbGwgSW5jb21pbmcgQ2FsbCcsICdTaG93IGZvciBJbnZpc2libGUgSW5jb21pbmcgQ2FsbCddLFxyXG4gIE1MUFBfUFJFRU1QVElPTjogWydEZWZhdWx0JywgJ0ZvcmNlZnVsJywgJ0Rpc2FibGVkJ10sXHJcbiAgUEFDS0VUX0NBUFRVUkVfTU9ERTogWydOb25lJywgJ0JhdGNoIFByb2Nlc3NpbmcgTW9kZSddLFxyXG4gIFJJTkdfVk9MVU1FOiBbJzAtU2lsZW50JywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywgJzEwJywgJzExJywgJzEyJywgJzEzJywgJzE0JywgJzE1J10sXHJcbiAgUE9SVF9ESVJFQ1RJT046IFsnQm90aHdheXMnLCAnSW5ib3VuZCcsICdPdXRib3VuZCddLFxyXG4gIFJJTkdfU0VUVElOR19JRExFOiBbJ1VzZSBTeXN0ZW0gRGVmYXVsdCcsICdEaXNhYmxlJyAsICdGbGFzaCBPbmx5JyAsICdSaW5nIE9uY2UnICwgJ1JpbmcnXSxcclxuICBSSU5HX1NFVFRJTkdfQUNUSVZFOiBbJ1VzZSBTeXN0ZW0gRGVmYXVsdCcsICdEaXNhYmxlJyAsICdGbGFzaCBPbmx5JyAsICdSaW5nIE9uY2UnICwgJ1JpbmcnLCAnQmVlcCBPbmx5J10sXHJcbiAgU0VSVklDRV9QUk9WSVNJT05JTkc6IFsnRGVmYXVsdCcsICdJbnRlcm5hbCcsICdFeHRlcm5hbCBVUkwnLCAnQm90aCddLFxyXG4gIFNFVFRJTkdTX0FDQ0VTOiBbJ0VuYWJsZWQnLCAnRGlzYWJsZWQnLCAnUmVzdHJpY3RlZCddLFxyXG4gIFZJU1VBTF9NV0k6IFsnVXNlIFN5c3RlbSBQb2xpY3knLCAnTGlnaHQgYW5kIFByb21wdCcgLCAnUHJvbXB0IE9ubHknICwgJ0xpZ2h0IE9ubHknICwgJ05vbmUnXSxcclxuICBXRUVLREFZUzogWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddLFxyXG4gIEJVSUxEX0JSSURHRTogWydOb25lJywgJ09uJywgJ09mZicsICdEZWZhdWx0J10sXHJcbiAgVFJBTlNGRVJfVFlQRVM6IFsnUmVsZWFzZSB0byBTd2l0Y2gnLCAnU3VwZXJ2aXNlIFRyYW5zZmVyJ10sXHJcbiAgRVhURU5TSU9OX0lTX0JVU1lfVFlQRVM6IFsnU2VuZCBDYWxsZXJzIHRvIFZvaWNlbWFpbCcsICdQdXQgQ2FsbGVycyBvbiBIb2xkIFdpdGhvdXQgQXNraW5nJywgJ0FzayBDYWxsZXJzIHRvIEhvbGQnXSxcclxuICBDQUxMX0FDVElPTlM6IFsnSGFuZyBVcCcsICdSZXN0YXJ0IEdyZWV0aW5nJywgJ1JvdXRlIEZyb20gTmV4dCBDYWxsIFJvdXRpbmcgUnVsZScsICdUYWtlIE1lc3NhZ2UnXSxcclxuICBBVVRIRU5USUNBVElPTl84MDI6IFsnVXNlciBjb250cm9sbGVkJywgJ0Rpc2FibGVkJywgJ0VuYWJsZWQnXSxcclxuICBDRVJUSUZJQ0FURV9PUEVSQVRJT046IFsnTm8gUGVuZGluZyBPcGVyYXRpb24nLCAnSW5zdGFsbC9VcGdyYWRlJywgJ0RlbGV0ZScsICdUcm91Ymxlc2hvb3QnIF0sXHJcbiAgQVVUSEVOVElDQVRJT05fTU9ERTogWydCeSBBdXRoZW50aWNhdGlvbiBTdHJpbmcnLCAnQnkgTnVsbCBTdHJpbmcnLCAnQnkgRXhpc3RpbmcgQ2VydGlmaWNhdGUgKHByZWNlZGVuY2UgdG8gTFNDKScsICdCeSBFeGlzdGluZyBDZXJ0aWZpY2F0ZSAocHJlY2VkZW5jZSB0byBNSUMpJ10sXHJcbiAgS0VZX09SREVSOiBbJ1JTQSBPbmx5JywgJ0VDIE9ubHknLCAnRUMgUHJlZmVycmVkLCBSU0EgQmFja3VwJ10sXHJcbiAgUlNBX0tFWV9TSVpFOiBbJzUxMicsICcxMDI0JywgJzIwNDgnXSxcclxuICBSU0FfS0VZX1NJWkVfU1BFQ0lGSUNfREVWSUNFOiBbJzUxMicsICcxMDI0JywgJzIwNDgnLCAnMzA3MicsICc0MDk2J11cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBUT0dHTEVfVFlQRVMgPSB7XHJcbiAgVEFCUzogJ1RBQlMnLFxyXG4gIEFTU09DSUFURURfTElORV9PTkxZOiAnQVNTT0NJQVRFRF9MSU5FX09OTFknXHJcbn1cclxuIl19
|
|
@@ -31,4 +31,4 @@ export class DeviceProfile {
|
|
|
31
31
|
this.form = formBuilder.group(formSettings);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlUHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWRldmljZS1tYW5hZ2Uvc3JjL2NsYXNzZXMvZGV2aWNlUHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEYsTUFBTSxPQUFPLGFBQWE7SUFzQnRCLFlBQVksTUFBcUI7UUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQXFCO1FBQzFCLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUc7WUFDakIsVUFBVSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztZQUNwRixRQUFRLEVBQUUsSUFBSSxTQUFTLENBQUM7Z0JBQ3BCLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUM7Z0JBQzVELGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsSUFBSSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO2dCQUNqRyxlQUFlLEVBQUUsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxlQUFlLElBQUksU0FBUyxDQUFDO2FBQ25GLENBQUM7WUFDRixZQUFZLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksSUFBSSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO1lBQ3hGLEtBQUssRUFBRSxJQUFJLFNBQVMsQ0FDaEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4QixPQUFPLElBQUksU0FBUyxDQUFDO29CQUNqQixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO29CQUN2RSxTQUFTLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsSUFBSSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO2lCQUNwRixDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDWjtZQUNELGVBQWUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDMUYsS0FBSyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztZQUMxRSxTQUFTLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO1lBQ2xGLGVBQWUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDOUYsZUFBZSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztZQUM5RixlQUFlLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLGVBQWUsSUFBSSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO1lBQzlGLElBQUksRUFBRSxJQUFJLFNBQVMsQ0FDZixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUMzRDtTQUNKLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIERldmljZVByb2ZpbGUge1xyXG4gICAgbWFjQWRkcmVzcz86IHN0cmluZztcclxuICAgIGhvdGVsaW5nPzoge1xyXG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuLCBcclxuICAgICAgICBsaW1pdEd1ZXN0VXNlPzogYm9vbGVhbiwgXHJcbiAgICAgICAgZ3Vlc3RIb3Vyc0xpbWl0PzogbnVtYmVyLFxyXG4gICAgfTtcclxuICAgIG1heExpbmVDb3VudD86IG51bWJlcjtcclxuICAgIGxpbmVzPzogQXJyYXk8e1xyXG4gICAgICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICAgICAgZXh0ZW5zaW9uPzogc3RyaW5nO1xyXG4gICAgfT47XHJcbiAgICBhY3RpdmF0aW9uU3RhdGU/OiBib29sZWFuO1xyXG4gICAgbW9kZWw/OiBzdHJpbmc7XHJcbiAgICBpcEFkZHJlc3M/OiBzdHJpbmc7XHJcbiAgICByZW1vdGVJcEFkZHJlc3M/OiBzdHJpbmc7XHJcbiAgICBzb2Z0d2FyZVZlcnNpb24/OiBzdHJpbmc7XHJcbiAgICBzb2Z0d2FyZUNoYW5uZWw/OiBzdHJpbmc7XHJcbiAgICB0YWdzPzogc3RyaW5nW107XHJcblxyXG4gICAgZm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihjb25maWc6IERldmljZVByb2ZpbGUpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5pbml0Rm9ybShjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRGb3JtKGNvbmZpZzogRGV2aWNlUHJvZmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGZvcm1CdWlsZGVyID0gbmV3IEZvcm1CdWlsZGVyKCk7XHJcbiAgICAgICAgY29uc3QgZm9ybVNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICBtYWNBZGRyZXNzOiBuZXcgRm9ybUNvbnRyb2woe3ZhbHVlOiBjb25maWcubWFjQWRkcmVzcyB8fCB1bmRlZmluZWQsIGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAgICAgICAgIGhvdGVsaW5nOiBuZXcgRm9ybUdyb3VwKHtcclxuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IG5ldyBGb3JtQ29udHJvbChjb25maWc/LmhvdGVsaW5nPy5lbmFibGVkIHx8IGZhbHNlKSxcclxuICAgICAgICAgICAgICAgIGxpbWl0R3Vlc3RVc2U6IG5ldyBGb3JtQ29udHJvbCh7dmFsdWU6IGNvbmZpZz8uaG90ZWxpbmc/LmxpbWl0R3Vlc3RVc2UgfHwgZmFsc2UsIGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAgICAgICAgICAgICBndWVzdEhvdXJzTGltaXQ6IG5ldyBGb3JtQ29udHJvbChjb25maWc/LmhvdGVsaW5nPy5ndWVzdEhvdXJzTGltaXQgfHwgdW5kZWZpbmVkKSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG1heExpbmVDb3VudDogbmV3IEZvcm1Db250cm9sKHt2YWx1ZTogY29uZmlnLm1heExpbmVDb3VudCB8fCB1bmRlZmluZWQsIGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAgICAgICAgIGxpbmVzOiBuZXcgRm9ybUFycmF5KFxyXG4gICAgICAgICAgICAgICAgKGNvbmZpZy5saW5lcz8ubWFwKChsaW5lKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2woe3ZhbHVlOiBsaW5lPy5uYW1lIHx8IHVuZGVmaW5lZCwgZGlzYWJsZWQ6IHRydWV9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiBuZXcgRm9ybUNvbnRyb2woe3ZhbHVlOiBsaW5lPy5leHRlbnNpb24gfHwgdW5kZWZpbmVkLCBkaXNhYmxlZDogdHJ1ZX0pLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSkgPz8gW10pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIGFjdGl2YXRpb25TdGF0ZTogbmV3IEZvcm1Db250cm9sKHt2YWx1ZTogY29uZmlnLmFjdGl2YXRpb25TdGF0ZSB8fCBmYWxzZSwgZGlzYWJsZWQ6IHRydWV9KSxcclxuICAgICAgICAgICAgbW9kZWw6IG5ldyBGb3JtQ29udHJvbCh7dmFsdWU6IGNvbmZpZy5tb2RlbCB8fCB1bmRlZmluZWQsIGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAgICAgICAgIGlwQWRkcmVzczogbmV3IEZvcm1Db250cm9sKHt2YWx1ZTogY29uZmlnLmlwQWRkcmVzcyB8fCB1bmRlZmluZWQsIGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAgICAgICAgIHJlbW90ZUlwQWRkcmVzczogbmV3IEZvcm1Db250cm9sKHt2YWx1ZTogY29uZmlnLnJlbW90ZUlwQWRkcmVzcyB8fCB1bmRlZmluZWQsIGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAgICAgICAgIHNvZnR3YXJlVmVyc2lvbjogbmV3IEZvcm1Db250cm9sKHt2YWx1ZTogY29uZmlnLnNvZnR3YXJlVmVyc2lvbiB8fCB1bmRlZmluZWQsIGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAgICAgICAgIHNvZnR3YXJlQ2hhbm5lbDogbmV3IEZvcm1Db250cm9sKHt2YWx1ZTogY29uZmlnLnNvZnR3YXJlQ2hhbm5lbCB8fCB1bmRlZmluZWQsIGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAgICAgICAgIHRhZ3M6IG5ldyBGb3JtQXJyYXkoXHJcbiAgICAgICAgICAgICAgICAoY29uZmlnPy50YWdzPy5tYXAoKHRhZykgPT4gbmV3IEZvcm1Db250cm9sKHRhZykpID8/IFtdKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmZvcm0gPSBmb3JtQnVpbGRlci5ncm91cChmb3JtU2V0dGluZ3MpO1xyXG4gICAgICB9XHJcbn1cclxuIl19
|