tango-app-ui-manage-stores 3.0.49-dev → 3.0.51-dev
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/esm2022/lib/components/add-stores/add-stores.component.mjs +3 -3
- package/esm2022/lib/components/add-stores-form/add-stores-form.component.mjs +33 -6
- package/esm2022/lib/components/create-group/create-group.component.mjs +45 -5
- package/esm2022/lib/components/group-delete-popup/group-delete-popup.component.mjs +3 -3
- package/esm2022/lib/components/group-details/group-details.component.mjs +3 -3
- package/esm2022/lib/components/new-create-group/new-create-group.component.mjs +193 -0
- package/esm2022/lib/components/tango-manage-groups/tango-manage-groups.component.mjs +6 -7
- package/esm2022/lib/components/tango-manage-stores/tango-manage-stores.component.mjs +7 -5
- package/esm2022/lib/route-wrappers/edge-wrapper.module.mjs +4 -4
- package/esm2022/lib/services/excel.service.mjs +3 -3
- package/esm2022/lib/services/group.service.mjs +3 -3
- package/esm2022/lib/services/stores.service.mjs +3 -3
- package/esm2022/lib/tango-manage-stores-routing.module.mjs +4 -4
- package/esm2022/lib/tango-manage-stores.module.mjs +10 -7
- package/esm2022/lib/utils/filters/filters.component.mjs +3 -3
- package/fesm2022/{tango-app-ui-manage-stores-edge-wrapper.module-CiSUiLpi.mjs → tango-app-ui-manage-stores-edge-wrapper.module-fMqNK7aH.mjs} +5 -5
- package/fesm2022/{tango-app-ui-manage-stores-edge-wrapper.module-CiSUiLpi.mjs.map → tango-app-ui-manage-stores-edge-wrapper.module-fMqNK7aH.mjs.map} +1 -1
- package/fesm2022/tango-app-ui-manage-stores.mjs +482 -226
- package/fesm2022/tango-app-ui-manage-stores.mjs.map +1 -1
- package/lib/components/add-stores-form/add-stores-form.component.d.ts +3 -0
- package/lib/components/create-group/create-group.component.d.ts +3 -0
- package/lib/components/new-create-group/new-create-group.component.d.ts +38 -0
- package/lib/tango-manage-stores.module.d.ts +9 -8
- package/package.json +1 -1
|
@@ -411,10 +411,10 @@ export class GroupDetailsComponent {
|
|
|
411
411
|
});
|
|
412
412
|
}
|
|
413
413
|
deactivateStore(store) { }
|
|
414
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
415
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: GroupDetailsComponent, selector: "lib-group-details", outputs: { dataEvent: "dataEvent" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <div class=\"d-flex justify-content-left align-items-center\">\r\n <div class=\"backArrow d-flex justify-content-center align-items-center me-5 ml-0\">\r\n <button (click)=\"backToGroup()\"\r\n class=\"btn btn-default mx-2 btn-outline-default rounded-3 text-nowrap\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M16.3333 9.99996H4.66663M4.66663 9.99996L10.5 15.8333M4.66663 9.99996L10.5 4.16663\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n </div>\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label\">{{group?.groupName}}</span>\r\n <span class=\"text-sub mb-2\">{{ pagination.totalCount ? pagination.totalCount : '--'}} stores in this group</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" [formControl]=\"searchInput\" class=\"form-control ps-14 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" />\r\n <!-- filter Start -->\r\n <lib-filters-custom [dataObject]=\"filterOptions\"\r\n (AppliedFilters)=\"applyFilter($event)\"></lib-filters-custom>\r\n <!-- filter End -->\r\n @if ((gs.userAccess | async)?.manage_stores_isDownload) { \r\n <button type=\"button\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Export</span> </button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <ng-container *ngIf=\"!loading && !noData\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead class=\"cursor-pointer\">\r\n <tr>\r\n <!-- <th>\r\n <form class=\"form\">\r\n <div class=\"form-group\">\r\n <div class=\"checkbox-inline\">\r\n <label class=\"checkbox\">\r\n <input type=\"checkbox\" checked=\"checked\" name=\"Checkboxes1\">\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </th> -->\r\n <th (click)=\"onSort('storeId')\">Store Info\r\n <span *ngIf=\"colDirection('storeId')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('storeId')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </th>\r\n <th (click)=\"onSort('city')\">Location\r\n <span *ngIf=\"colDirection('city')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('city')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </th>\r\n <th (click)=\"onSort('spocContact')\">SPOC Contact <span>\r\n <span *ngIf=\"colDirection('spocContact')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('spocContact')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('downTime')\">Downtime <span>\r\n <span *ngIf=\"colDirection('downTime')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('downTime')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('status')\">Status <span>\r\n <span *ngIf=\"colDirection('status')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('status')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('statusDetail')\">Status Detail <span>\r\n <span *ngIf=\"colDirection('statusDetail')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('statusDetail')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let store of storeList;let i=index;\">\r\n <tr>\r\n <!-- <td>\r\n <form class=\"form\">\r\n <div class=\"form-group\">\r\n <div class=\"checkbox-inline\">\r\n <label class=\"checkbox\">\r\n <input type=\"checkbox\" checked=\"checked\" name=\"Checkboxes1\">\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </td> -->\r\n <td class=\"cursor-pointer\" (click)=\"navigateToStore(store?.storeId);\"> \r\n <div class=\"table-title\">\r\n <span class=\"txt-light-primary\"> \r\n {{store?.storeName}}\r\n </span>\r\n </div>\r\n <div class=\"table-sub storeId\">ID : {{store?.storeId}}\r\n <span class=\"my-1 mx-1\">\r\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"4\" cy=\"4\" r=\"3\" fill=\"#12B76A\" />\r\n </svg>\r\n {{store?.progress ? store?.progress : 20}}%\r\n <div class=\"h-5px w-100 bg-light mt-2\">\r\n <div class=\"bg-success rounded h-5px\" role=\"progressbar\" [ngStyle]=\"{ width: (store?.progress ? store?.progress : 20) + '%' }\"\r\n aria-valuemin=\"20\" aria-valuemax=\"100\"></div>\r\n </div>\r\n </span>\r\n </div>\r\n </td>\r\n <td class=\"w-200px\">\r\n @if (store?.city) {\r\n <div class=\"table-sub\">{{store?.city}}</div>\r\n } @else {\r\n <div class=\"table-sub\">NA</div>\r\n }\r\n @if (store?.country && store?.state) {\r\n <div class=\"table-sub\">{{store?.state}},{{store?.country}}</div>\r\n } @else {\r\n <div class=\"table-sub\">NA</div>\r\n }\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\"> \r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{store?.spocEmail.slice(0,2) | uppercase }} \r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"ms-2\">\r\n <div class=\"table-title\">{{store?.spocEmail || 'NA'}}</div>\r\n <div class=\"table-sub\">{{store?.spocContact || 'NA'}}</div>\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"fw-semibold\">{{store?.downTime}}</td>\r\n <td><span class=\"badge badge-light-primary\">{{store?.status || 'NA'}}</span></td>\r\n <td>\r\n <div class=\"table-title\">{{store?.statusDetail || 'NA'}}</div>\r\n <!-- <div class=\"table-sub\">Pending from Client</div> -->\r\n </td>\r\n <td>\r\n <button type=\"button\" (click)=\"goToEdgeApp(store)\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <span>Config</span>\r\n </button>\r\n <span class=\"dropdown\">\r\n <button class=\"options-class\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M18.0001 18.8334C18.4603 18.8334 18.8334 18.4603 18.8334 18C18.8334 17.5398 18.4603 17.1667 18.0001 17.1667C17.5398 17.1667 17.1667 17.5398 17.1667 18C17.1667 18.4603 17.5398 18.8334 18.0001 18.8334Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M18.0001 13C18.4603 13 18.8334 12.6269 18.8334 12.1667C18.8334 11.7065 18.4603 11.3334 18.0001 11.3334C17.5398 11.3334 17.1667 11.7065 17.1667 12.1667C17.1667 12.6269 17.5398 13 18.0001 13Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M18.0001 24.6667C18.4603 24.6667 18.8334 24.2936 18.8334 23.8334C18.8334 23.3731 18.4603 23 18.0001 23C17.5398 23 17.1667 23.3731 17.1667 23.8334C17.1667 24.2936 17.5398 24.6667 18.0001 24.6667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li (click)=\"navigateToStore(store?.storeId);\"><button class=\"dropdown-item\"\r\n type=\"button\">Edit Store</button></li>\r\n <li><button class=\"dropdown-item\" (click)=\"deactivateStore(store)\"\r\n type=\"button\">Deactivate</button></li>\r\n </ul>\r\n </span>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"pagination.limit\" [currentPage]=\"pagination.offset\"\r\n [totalItems]=\"pagination.totalCount\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading && !noData\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".activebtn{color:var(--Primary-700, #009BF3)!important;border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;font-size:16px!important;font-weight:500!important}.options-class{border:none;background-color:transparent}.text-sub{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:14px!important;font-weight:400!important;line-height:20px}.border-val{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}.table-title-primary{color:var(--Primary-700, #009BF3)!important;font-weight:500!important}.table-sub{line-height:30px!important;color:var(--Gray-500, #667085)!important}.form-control{color:var(--Gray-500, #667085)!important;font-size:14.56px!important;font-weight:400!important;line-height:21.84px!important;border-radius:7.28px!important;border:.91px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 .91px 1.82px #1018280d!important}.illustcontent{color:var(--Gray-900, #101828);font-size:16px;font-weight:600}.nav-item .nav-link{color:var(--Gray-500, #667085);font-size:16px;font-weight:500}.profile{color:var(--Primary-600, #00A3FF);padding:6px;font-size:14px;font-weight:500;line-height:20px;border-radius:200px;background:var(--Primary-50, #EAF8FF);width:32px;height:32px}.backArrow{width:44px;height:44px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.img-src{width:25%;height:20%}.txt-light-primary{color:#009bf3!important}.progressbar-value{color:var(--gray-500, #667085);font-size:12px!important;font-weight:400!important}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i9.FiltersComponent, selector: "lib-filters-custom", inputs: ["dataObject"], outputs: ["AppliedFilters"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }] });
|
|
414
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GroupDetailsComponent, deps: [{ token: i1.PageInfoService }, { token: i2.StoresService }, { token: i0.ChangeDetectorRef }, { token: i3.GroupService }, { token: i4.ExcelService }, { token: i1.GlobalStateService }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
415
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: GroupDetailsComponent, selector: "lib-group-details", outputs: { dataEvent: "dataEvent" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <div class=\"d-flex justify-content-left align-items-center\">\r\n <div class=\"backArrow d-flex justify-content-center align-items-center me-5 ml-0\">\r\n <button (click)=\"backToGroup()\"\r\n class=\"btn btn-default mx-2 btn-outline-default rounded-3 text-nowrap\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M16.3333 9.99996H4.66663M4.66663 9.99996L10.5 15.8333M4.66663 9.99996L10.5 4.16663\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n </div>\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label\">{{group?.groupName}}</span>\r\n <span class=\"text-sub mb-2\">{{ pagination.totalCount ? pagination.totalCount : '--'}} stores in this group</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" [formControl]=\"searchInput\" class=\"form-control ps-14 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" />\r\n <!-- filter Start -->\r\n <lib-filters-custom [dataObject]=\"filterOptions\"\r\n (AppliedFilters)=\"applyFilter($event)\"></lib-filters-custom>\r\n <!-- filter End -->\r\n @if ((gs.userAccess | async)?.manage_stores_isDownload) { \r\n <button type=\"button\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Export</span> </button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <ng-container *ngIf=\"!loading && !noData\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead class=\"cursor-pointer\">\r\n <tr>\r\n <!-- <th>\r\n <form class=\"form\">\r\n <div class=\"form-group\">\r\n <div class=\"checkbox-inline\">\r\n <label class=\"checkbox\">\r\n <input type=\"checkbox\" checked=\"checked\" name=\"Checkboxes1\">\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </th> -->\r\n <th (click)=\"onSort('storeId')\">Store Info\r\n <span *ngIf=\"colDirection('storeId')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('storeId')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </th>\r\n <th (click)=\"onSort('city')\">Location\r\n <span *ngIf=\"colDirection('city')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('city')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </th>\r\n <th (click)=\"onSort('spocContact')\">SPOC Contact <span>\r\n <span *ngIf=\"colDirection('spocContact')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('spocContact')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('downTime')\">Downtime <span>\r\n <span *ngIf=\"colDirection('downTime')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('downTime')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('status')\">Status <span>\r\n <span *ngIf=\"colDirection('status')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('status')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('statusDetail')\">Status Detail <span>\r\n <span *ngIf=\"colDirection('statusDetail')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('statusDetail')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let store of storeList;let i=index;\">\r\n <tr>\r\n <!-- <td>\r\n <form class=\"form\">\r\n <div class=\"form-group\">\r\n <div class=\"checkbox-inline\">\r\n <label class=\"checkbox\">\r\n <input type=\"checkbox\" checked=\"checked\" name=\"Checkboxes1\">\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </td> -->\r\n <td class=\"cursor-pointer\" (click)=\"navigateToStore(store?.storeId);\"> \r\n <div class=\"table-title\">\r\n <span class=\"txt-light-primary\"> \r\n {{store?.storeName}}\r\n </span>\r\n </div>\r\n <div class=\"table-sub storeId\">ID : {{store?.storeId}}\r\n <span class=\"my-1 mx-1\">\r\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"4\" cy=\"4\" r=\"3\" fill=\"#12B76A\" />\r\n </svg>\r\n {{store?.progress ? store?.progress : 20}}%\r\n <div class=\"h-5px w-100 bg-light mt-2\">\r\n <div class=\"bg-success rounded h-5px\" role=\"progressbar\" [ngStyle]=\"{ width: (store?.progress ? store?.progress : 20) + '%' }\"\r\n aria-valuemin=\"20\" aria-valuemax=\"100\"></div>\r\n </div>\r\n </span>\r\n </div>\r\n </td>\r\n <td class=\"w-200px\">\r\n @if (store?.city) {\r\n <div class=\"table-sub\">{{store?.city}}</div>\r\n } @else {\r\n <div class=\"table-sub\">NA</div>\r\n }\r\n @if (store?.country && store?.state) {\r\n <div class=\"table-sub\">{{store?.state}},{{store?.country}}</div>\r\n } @else {\r\n <div class=\"table-sub\">NA</div>\r\n }\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\"> \r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{store?.spocEmail.slice(0,2) | uppercase }} \r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"ms-2\">\r\n <div class=\"table-title\">{{store?.spocEmail || 'NA'}}</div>\r\n <div class=\"table-sub\">{{store?.spocContact || 'NA'}}</div>\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"fw-semibold\">{{store?.downTime}}</td>\r\n <td><span class=\"badge badge-light-primary\">{{store?.status || 'NA'}}</span></td>\r\n <td>\r\n <div class=\"table-title\">{{store?.statusDetail || 'NA'}}</div>\r\n <!-- <div class=\"table-sub\">Pending from Client</div> -->\r\n </td>\r\n <td>\r\n <button type=\"button\" (click)=\"goToEdgeApp(store)\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <span>Config</span>\r\n </button>\r\n <span class=\"dropdown\">\r\n <button class=\"options-class\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M18.0001 18.8334C18.4603 18.8334 18.8334 18.4603 18.8334 18C18.8334 17.5398 18.4603 17.1667 18.0001 17.1667C17.5398 17.1667 17.1667 17.5398 17.1667 18C17.1667 18.4603 17.5398 18.8334 18.0001 18.8334Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M18.0001 13C18.4603 13 18.8334 12.6269 18.8334 12.1667C18.8334 11.7065 18.4603 11.3334 18.0001 11.3334C17.5398 11.3334 17.1667 11.7065 17.1667 12.1667C17.1667 12.6269 17.5398 13 18.0001 13Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M18.0001 24.6667C18.4603 24.6667 18.8334 24.2936 18.8334 23.8334C18.8334 23.3731 18.4603 23 18.0001 23C17.5398 23 17.1667 23.3731 17.1667 23.8334C17.1667 24.2936 17.5398 24.6667 18.0001 24.6667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li (click)=\"navigateToStore(store?.storeId);\"><button class=\"dropdown-item\"\r\n type=\"button\">Edit Store</button></li>\r\n <li><button class=\"dropdown-item\" (click)=\"deactivateStore(store)\"\r\n type=\"button\">Deactivate</button></li>\r\n </ul>\r\n </span>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"pagination.limit\" [currentPage]=\"pagination.offset\"\r\n [totalItems]=\"pagination.totalCount\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading && !noData\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".activebtn{color:var(--Primary-700, #009BF3)!important;border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;font-size:16px!important;font-weight:500!important}.options-class{border:none;background-color:transparent}.text-sub{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:14px!important;font-weight:400!important;line-height:20px}.border-val{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}.table-title-primary{color:var(--Primary-700, #009BF3)!important;font-weight:500!important}.table-sub{line-height:30px!important;color:var(--Gray-500, #667085)!important}.form-control{color:var(--Gray-500, #667085)!important;font-size:14.56px!important;font-weight:400!important;line-height:21.84px!important;border-radius:7.28px!important;border:.91px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 .91px 1.82px #1018280d!important}.illustcontent{color:var(--Gray-900, #101828);font-size:16px;font-weight:600}.nav-item .nav-link{color:var(--Gray-500, #667085);font-size:16px;font-weight:500}.profile{color:var(--Primary-600, #00A3FF);padding:6px;font-size:14px;font-weight:500;line-height:20px;border-radius:200px;background:var(--Primary-50, #EAF8FF);width:32px;height:32px}.backArrow{width:44px;height:44px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.img-src{width:25%;height:20%}.txt-light-primary{color:#009bf3!important}.progressbar-value{color:var(--gray-500, #667085);font-size:12px!important;font-weight:400!important}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i9.FiltersComponent, selector: "lib-filters-custom", inputs: ["dataObject"], outputs: ["AppliedFilters"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }] });
|
|
416
416
|
}
|
|
417
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
417
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GroupDetailsComponent, decorators: [{
|
|
418
418
|
type: Component,
|
|
419
419
|
args: [{ selector: "lib-group-details", template: "<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <div class=\"d-flex justify-content-left align-items-center\">\r\n <div class=\"backArrow d-flex justify-content-center align-items-center me-5 ml-0\">\r\n <button (click)=\"backToGroup()\"\r\n class=\"btn btn-default mx-2 btn-outline-default rounded-3 text-nowrap\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M16.3333 9.99996H4.66663M4.66663 9.99996L10.5 15.8333M4.66663 9.99996L10.5 4.16663\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n </div>\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label\">{{group?.groupName}}</span>\r\n <span class=\"text-sub mb-2\">{{ pagination.totalCount ? pagination.totalCount : '--'}} stores in this group</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" [formControl]=\"searchInput\" class=\"form-control ps-14 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" />\r\n <!-- filter Start -->\r\n <lib-filters-custom [dataObject]=\"filterOptions\"\r\n (AppliedFilters)=\"applyFilter($event)\"></lib-filters-custom>\r\n <!-- filter End -->\r\n @if ((gs.userAccess | async)?.manage_stores_isDownload) { \r\n <button type=\"button\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Export</span> </button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <ng-container *ngIf=\"!loading && !noData\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead class=\"cursor-pointer\">\r\n <tr>\r\n <!-- <th>\r\n <form class=\"form\">\r\n <div class=\"form-group\">\r\n <div class=\"checkbox-inline\">\r\n <label class=\"checkbox\">\r\n <input type=\"checkbox\" checked=\"checked\" name=\"Checkboxes1\">\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </th> -->\r\n <th (click)=\"onSort('storeId')\">Store Info\r\n <span *ngIf=\"colDirection('storeId')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('storeId')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </th>\r\n <th (click)=\"onSort('city')\">Location\r\n <span *ngIf=\"colDirection('city')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('city')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </th>\r\n <th (click)=\"onSort('spocContact')\">SPOC Contact <span>\r\n <span *ngIf=\"colDirection('spocContact')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('spocContact')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('downTime')\">Downtime <span>\r\n <span *ngIf=\"colDirection('downTime')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('downTime')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('status')\">Status <span>\r\n <span *ngIf=\"colDirection('status')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('status')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th (click)=\"onSort('statusDetail')\">Status Detail <span>\r\n <span *ngIf=\"colDirection('statusDetail')===-1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"colDirection('statusDetail')===1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span> </th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let store of storeList;let i=index;\">\r\n <tr>\r\n <!-- <td>\r\n <form class=\"form\">\r\n <div class=\"form-group\">\r\n <div class=\"checkbox-inline\">\r\n <label class=\"checkbox\">\r\n <input type=\"checkbox\" checked=\"checked\" name=\"Checkboxes1\">\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </td> -->\r\n <td class=\"cursor-pointer\" (click)=\"navigateToStore(store?.storeId);\"> \r\n <div class=\"table-title\">\r\n <span class=\"txt-light-primary\"> \r\n {{store?.storeName}}\r\n </span>\r\n </div>\r\n <div class=\"table-sub storeId\">ID : {{store?.storeId}}\r\n <span class=\"my-1 mx-1\">\r\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"4\" cy=\"4\" r=\"3\" fill=\"#12B76A\" />\r\n </svg>\r\n {{store?.progress ? store?.progress : 20}}%\r\n <div class=\"h-5px w-100 bg-light mt-2\">\r\n <div class=\"bg-success rounded h-5px\" role=\"progressbar\" [ngStyle]=\"{ width: (store?.progress ? store?.progress : 20) + '%' }\"\r\n aria-valuemin=\"20\" aria-valuemax=\"100\"></div>\r\n </div>\r\n </span>\r\n </div>\r\n </td>\r\n <td class=\"w-200px\">\r\n @if (store?.city) {\r\n <div class=\"table-sub\">{{store?.city}}</div>\r\n } @else {\r\n <div class=\"table-sub\">NA</div>\r\n }\r\n @if (store?.country && store?.state) {\r\n <div class=\"table-sub\">{{store?.state}},{{store?.country}}</div>\r\n } @else {\r\n <div class=\"table-sub\">NA</div>\r\n }\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\"> \r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{store?.spocEmail.slice(0,2) | uppercase }} \r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"ms-2\">\r\n <div class=\"table-title\">{{store?.spocEmail || 'NA'}}</div>\r\n <div class=\"table-sub\">{{store?.spocContact || 'NA'}}</div>\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"fw-semibold\">{{store?.downTime}}</td>\r\n <td><span class=\"badge badge-light-primary\">{{store?.status || 'NA'}}</span></td>\r\n <td>\r\n <div class=\"table-title\">{{store?.statusDetail || 'NA'}}</div>\r\n <!-- <div class=\"table-sub\">Pending from Client</div> -->\r\n </td>\r\n <td>\r\n <button type=\"button\" (click)=\"goToEdgeApp(store)\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <span>Config</span>\r\n </button>\r\n <span class=\"dropdown\">\r\n <button class=\"options-class\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M18.0001 18.8334C18.4603 18.8334 18.8334 18.4603 18.8334 18C18.8334 17.5398 18.4603 17.1667 18.0001 17.1667C17.5398 17.1667 17.1667 17.5398 17.1667 18C17.1667 18.4603 17.5398 18.8334 18.0001 18.8334Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M18.0001 13C18.4603 13 18.8334 12.6269 18.8334 12.1667C18.8334 11.7065 18.4603 11.3334 18.0001 11.3334C17.5398 11.3334 17.1667 11.7065 17.1667 12.1667C17.1667 12.6269 17.5398 13 18.0001 13Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M18.0001 24.6667C18.4603 24.6667 18.8334 24.2936 18.8334 23.8334C18.8334 23.3731 18.4603 23 18.0001 23C17.5398 23 17.1667 23.3731 17.1667 23.8334C17.1667 24.2936 17.5398 24.6667 18.0001 24.6667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li (click)=\"navigateToStore(store?.storeId);\"><button class=\"dropdown-item\"\r\n type=\"button\">Edit Store</button></li>\r\n <li><button class=\"dropdown-item\" (click)=\"deactivateStore(store)\"\r\n type=\"button\">Deactivate</button></li>\r\n </ul>\r\n </span>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"pagination.limit\" [currentPage]=\"pagination.offset\"\r\n [totalItems]=\"pagination.totalCount\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading && !noData\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".activebtn{color:var(--Primary-700, #009BF3)!important;border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;font-size:16px!important;font-weight:500!important}.options-class{border:none;background-color:transparent}.text-sub{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:14px!important;font-weight:400!important;line-height:20px}.border-val{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}.table-title-primary{color:var(--Primary-700, #009BF3)!important;font-weight:500!important}.table-sub{line-height:30px!important;color:var(--Gray-500, #667085)!important}.form-control{color:var(--Gray-500, #667085)!important;font-size:14.56px!important;font-weight:400!important;line-height:21.84px!important;border-radius:7.28px!important;border:.91px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 .91px 1.82px #1018280d!important}.illustcontent{color:var(--Gray-900, #101828);font-size:16px;font-weight:600}.nav-item .nav-link{color:var(--Gray-500, #667085);font-size:16px;font-weight:500}.profile{color:var(--Primary-600, #00A3FF);padding:6px;font-size:14px;font-weight:500;line-height:20px;border-radius:200px;background:var(--Primary-50, #EAF8FF);width:32px;height:32px}.backArrow{width:44px;height:44px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.img-src{width:25%;height:20%}.txt-light-primary{color:#009bf3!important}.progressbar-value{color:var(--gray-500, #667085);font-size:12px!important;font-weight:400!important}\n"] }]
|
|
420
420
|
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.StoresService }, { type: i0.ChangeDetectorRef }, { type: i3.GroupService }, { type: i4.ExcelService }, { type: i1.GlobalStateService }, { type: i5.Router }], propDecorators: { dataEvent: [{
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
4
|
+
import * as i2 from "../../services/group.service";
|
|
5
|
+
import * as i3 from "tango-app-ui-shared";
|
|
6
|
+
import * as i4 from "tango-app-ui-global";
|
|
7
|
+
import * as i5 from "@angular/common";
|
|
8
|
+
import * as i6 from "@angular/forms";
|
|
9
|
+
export class NewCreateGroupComponent {
|
|
10
|
+
activeModal;
|
|
11
|
+
cd;
|
|
12
|
+
groupService;
|
|
13
|
+
ts;
|
|
14
|
+
gs;
|
|
15
|
+
type;
|
|
16
|
+
editGroup;
|
|
17
|
+
description;
|
|
18
|
+
groupName;
|
|
19
|
+
operationType;
|
|
20
|
+
$headerFilters;
|
|
21
|
+
availableStores;
|
|
22
|
+
dataObject = [];
|
|
23
|
+
dummyArray;
|
|
24
|
+
group = [];
|
|
25
|
+
csmSelectInput = [];
|
|
26
|
+
groupValue;
|
|
27
|
+
selectedValues = [];
|
|
28
|
+
constructor(activeModal, cd, groupService, ts, gs) {
|
|
29
|
+
this.activeModal = activeModal;
|
|
30
|
+
this.cd = cd;
|
|
31
|
+
this.groupService = groupService;
|
|
32
|
+
this.ts = ts;
|
|
33
|
+
this.gs = gs;
|
|
34
|
+
this.gs.dataRangeValue.subscribe({
|
|
35
|
+
next: (data) => {
|
|
36
|
+
this.$headerFilters = data;
|
|
37
|
+
this.getAvailableStores();
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
this.operationType = this.type;
|
|
43
|
+
}
|
|
44
|
+
getAvailableStores() {
|
|
45
|
+
this.groupService.getStores({ clientId: this.$headerFilters.client }).subscribe({
|
|
46
|
+
next: (res) => {
|
|
47
|
+
if (res && res.code == 200) {
|
|
48
|
+
this.availableStores = res.data.result;
|
|
49
|
+
this.dataObject = res.data.result;
|
|
50
|
+
console.log();
|
|
51
|
+
this.dummyArray = JSON.parse(JSON.stringify(this.dataObject));
|
|
52
|
+
this.cd.detectChanges();
|
|
53
|
+
if (this.editGroup) {
|
|
54
|
+
this.getGroup();
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
error: () => {
|
|
63
|
+
this.availableStores = [];
|
|
64
|
+
},
|
|
65
|
+
complete: () => { },
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// if(this.operationType=='view') {
|
|
69
|
+
// this.groupValue.disable();
|
|
70
|
+
// }
|
|
71
|
+
loadGroup() {
|
|
72
|
+
this.groupName = this.group?.groupName;
|
|
73
|
+
this.description = this.group?.description;
|
|
74
|
+
this.selectedValues = this.filterStores(this.group.storeList, this.dataObject);
|
|
75
|
+
this.csmSelectInput = this.selectedValues.map((e) => e.storeId);
|
|
76
|
+
console.log(this.csmSelectInput);
|
|
77
|
+
}
|
|
78
|
+
filterStores(storeIds, storeDetails) {
|
|
79
|
+
const storeIdSet = new Set(storeIds);
|
|
80
|
+
const filteredStores = storeDetails.filter((store) => storeIdSet.has(store.storeId));
|
|
81
|
+
return filteredStores;
|
|
82
|
+
}
|
|
83
|
+
getGroup() {
|
|
84
|
+
this.groupService
|
|
85
|
+
.getGroup({
|
|
86
|
+
clientId: this.editGroup?.clientId,
|
|
87
|
+
groupName: this.editGroup?.groupName,
|
|
88
|
+
})
|
|
89
|
+
.subscribe({
|
|
90
|
+
next: (res) => {
|
|
91
|
+
if (res && res.code == 200) {
|
|
92
|
+
this.group = res.data.result;
|
|
93
|
+
this.loadGroup();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
error: () => { },
|
|
99
|
+
complete: () => { },
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
cancel() {
|
|
103
|
+
this.activeModal.close();
|
|
104
|
+
}
|
|
105
|
+
editgroup() {
|
|
106
|
+
this.operationType = "edit";
|
|
107
|
+
}
|
|
108
|
+
onCsmSelect(selectedCsm) {
|
|
109
|
+
this.csmSelectInput = selectedCsm.map((e) => e.storeId);
|
|
110
|
+
console.log(this.csmSelectInput);
|
|
111
|
+
}
|
|
112
|
+
groupSubmit(form) {
|
|
113
|
+
if (form.valid) {
|
|
114
|
+
if (this.operationType === "add") {
|
|
115
|
+
this.groupValue = {
|
|
116
|
+
clientId: this.$headerFilters.client,
|
|
117
|
+
groupName: this.groupName,
|
|
118
|
+
description: this.description,
|
|
119
|
+
storeList: this.csmSelectInput,
|
|
120
|
+
};
|
|
121
|
+
if (!this.groupValue.description) {
|
|
122
|
+
delete this.groupValue.description;
|
|
123
|
+
}
|
|
124
|
+
this.groupService
|
|
125
|
+
.createGroup(this.groupValue)
|
|
126
|
+
.subscribe({
|
|
127
|
+
next: (res) => {
|
|
128
|
+
if (res && res.code == 200) {
|
|
129
|
+
this.ts.getSuccessToast("Group added successfully");
|
|
130
|
+
this.activeModal.close();
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this.activeModal.close();
|
|
134
|
+
this.ts.getErrorToast('Unable to add Group');
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
error: (err) => {
|
|
138
|
+
this.activeModal.close();
|
|
139
|
+
if (err)
|
|
140
|
+
this.ts.getErrorToast(err);
|
|
141
|
+
else
|
|
142
|
+
this.ts.getErrorToast('Unable to add Group');
|
|
143
|
+
},
|
|
144
|
+
complete: () => { },
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
this.groupValue = {
|
|
149
|
+
_id: this.editGroup._id,
|
|
150
|
+
groupName: this.groupName,
|
|
151
|
+
description: this.description,
|
|
152
|
+
storeList: this.csmSelectInput,
|
|
153
|
+
};
|
|
154
|
+
if (!this.groupValue.description) {
|
|
155
|
+
delete this.groupValue.description;
|
|
156
|
+
}
|
|
157
|
+
this.groupService.updateGroup(this.groupValue).subscribe({
|
|
158
|
+
next: (res) => {
|
|
159
|
+
if (res && res.code == 200) {
|
|
160
|
+
this.ts.getSuccessToast("Group updated successfully");
|
|
161
|
+
this.activeModal.close();
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
this.activeModal.close();
|
|
165
|
+
this.ts.getErrorToast('Unable to update Group');
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
error: () => {
|
|
169
|
+
this.activeModal.close();
|
|
170
|
+
this.ts.getErrorToast('Unable to update Group');
|
|
171
|
+
},
|
|
172
|
+
complete: () => { },
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// Highlight the invalid fields
|
|
178
|
+
form.controls.groupName.markAsTouched();
|
|
179
|
+
form.controls.description.markAsTouched();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NewCreateGroupComponent, deps: [{ token: i1.NgbActiveModal }, { token: i0.ChangeDetectorRef }, { token: i2.GroupService }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: NewCreateGroupComponent, selector: "lib-new-create-group", inputs: { type: "type", editGroup: "editGroup" }, ngImport: i0, template: "<div class=\"card py-0 scroll-y\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 mt-10\">\r\n <div *ngIf=\"operationType==='add'\" class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Add\r\n Group</a>\r\n <div class=\"sub-title\">Please add your group details</div>\r\n </div>\r\n <div *ngIf=\"operationType==='edit'\" class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Edit Group</a>\r\n <div class=\"sub-title\">Edit your group details</div>\r\n </div>\r\n <div *ngIf=\"operationType==='view'\" class=\"col-md-9\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">View Group</a>\r\n <div class=\"sub-title\">View your group details</div>\r\n </div>\r\n @if ((gs.userAccess | async)?.manage_stores_isEdit) {\r\n <div *ngIf=\"operationType==='view'\" class=\"col-md-3 text-end px-0\" (click)=\"editgroup()\">\r\n <button class=\"btn btn-outline\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3833_85908)\">\r\n <path\r\n d=\"M9.16602 3.3332H3.33268C2.89065 3.3332 2.46673 3.50879 2.15417 3.82135C1.84161 4.13391 1.66602 4.55784 1.66602 4.99986V16.6665C1.66602 17.1086 1.84161 17.5325 2.15417 17.845C2.46673 18.1576 2.89065 18.3332 3.33268 18.3332H14.9993C15.4414 18.3332 15.8653 18.1576 16.1779 17.845C16.4904 17.5325 16.666 17.1086 16.666 16.6665V10.8332M15.416 2.0832C15.7475 1.75168 16.1972 1.56543 16.666 1.56543C17.1349 1.56543 17.5845 1.75168 17.916 2.0832C18.2475 2.41472 18.4338 2.86436 18.4338 3.3332C18.4338 3.80204 18.2475 4.25168 17.916 4.5832L9.99935 12.4999L6.66602 13.3332L7.49935 9.99986L15.416 2.0832Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3833_85908\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <form #form=\"ngForm\" novalidate>\r\n <div class=\"row mt-5 mb-1\">\r\n <div class=\"col-md-12 col-lg-12 mb-5\">\r\n <label for=\"groupName\" class=\"form-label\">Group Name</label>\r\n <input autocomplete=\"off\" type=\"text\" class=\"form-control\" id=\"groupName\" name=\"groupName\" [(ngModel)]=\"groupName\" required minlength=\"3\">\r\n <div *ngIf=\"form.submitted || form.controls.groupName?.touched\">\r\n <div *ngIf=\"form.controls.groupName?.errors?.required\" class=\"text-danger\">\r\n Group Name is required.\r\n </div>\r\n <div *ngIf=\"form.controls.groupName?.errors?.minlength\" class=\"text-danger\">\r\n Group Name must be at least 3 characters long.\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-12 mb-5\" >\r\n <label for=\"dataObject\" class=\"form-label\">Select Stores</label>\r\n <lib-select [items]=\"dataObject\" [multi]=\"true\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"onCsmSelect($event)\" [selectedValues]=\"selectedValues\" ></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-12 mb-5\">\r\n <label for=\"description\" class=\"form-label\">Description</label>\r\n <textarea rows=\"5\" class=\"form-control\" id=\"description\" name=\"description\" [(ngModel)]=\"description\" required></textarea>\r\n <div *ngIf=\"form.submitted || form.controls.description?.touched\">\r\n <div *ngIf=\"form.controls.description?.errors?.required\" class=\"text-danger\">\r\n Description is required.\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"operationType !== 'view'\" role=\"group\" class=\"d-flex mt-3 mb-10\">\r\n <button type=\"button\" class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button type=\"submit\" id=\"alert-toast\" class=\"btn btn-primary w-100 ms-3\" [disabled]=\"form.invalid\"\r\n (click)=\"groupSubmit(form)\">Submit</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: ["input.ng-invalid.ng-touched,textarea.ng-invalid.ng-touched{border-color:red}.title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}::ng-deep .modal-content{border-radius:12px!important}.btn-outline{padding:12px!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.dropdown1 .dropdown-title{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.dropdown1 .dropdown{position:relative;display:inline-block}.dropdown1 .dropdown span{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.dropdown1 .dropdown-content{z-index:1;padding:0;min-height:auto;max-height:285px;overflow:auto;border-radius:12px;background:var(--White, #FFF);box-shadow:0 8px 8px -4px #10182808,0 20px 24px -4px #10182814;width:89%}.dropdown1 .dropdown-content label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.dropdown1 .dropdown-content a{color:#000;padding:12px 16px;text-decoration:none;display:block}.dropdown1 .dropdown button{padding:10px;font-size:16px;cursor:pointer}.dropdown1 input[type=checkbox]{width:16px!important;height:16px!important;margin:-3px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.dropdown1 input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}.dropdown1 input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:13px!important;font-weight:400!important;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.CustomSelectComponent, selector: "lib-select", inputs: ["items", "searchField", "multi", "idField", "selectedValues", "disabled", "label"], outputs: ["selected"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
184
|
+
}
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NewCreateGroupComponent, decorators: [{
|
|
186
|
+
type: Component,
|
|
187
|
+
args: [{ selector: 'lib-new-create-group', template: "<div class=\"card py-0 scroll-y\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 mt-10\">\r\n <div *ngIf=\"operationType==='add'\" class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Add\r\n Group</a>\r\n <div class=\"sub-title\">Please add your group details</div>\r\n </div>\r\n <div *ngIf=\"operationType==='edit'\" class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Edit Group</a>\r\n <div class=\"sub-title\">Edit your group details</div>\r\n </div>\r\n <div *ngIf=\"operationType==='view'\" class=\"col-md-9\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">View Group</a>\r\n <div class=\"sub-title\">View your group details</div>\r\n </div>\r\n @if ((gs.userAccess | async)?.manage_stores_isEdit) {\r\n <div *ngIf=\"operationType==='view'\" class=\"col-md-3 text-end px-0\" (click)=\"editgroup()\">\r\n <button class=\"btn btn-outline\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3833_85908)\">\r\n <path\r\n d=\"M9.16602 3.3332H3.33268C2.89065 3.3332 2.46673 3.50879 2.15417 3.82135C1.84161 4.13391 1.66602 4.55784 1.66602 4.99986V16.6665C1.66602 17.1086 1.84161 17.5325 2.15417 17.845C2.46673 18.1576 2.89065 18.3332 3.33268 18.3332H14.9993C15.4414 18.3332 15.8653 18.1576 16.1779 17.845C16.4904 17.5325 16.666 17.1086 16.666 16.6665V10.8332M15.416 2.0832C15.7475 1.75168 16.1972 1.56543 16.666 1.56543C17.1349 1.56543 17.5845 1.75168 17.916 2.0832C18.2475 2.41472 18.4338 2.86436 18.4338 3.3332C18.4338 3.80204 18.2475 4.25168 17.916 4.5832L9.99935 12.4999L6.66602 13.3332L7.49935 9.99986L15.416 2.0832Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3833_85908\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <form #form=\"ngForm\" novalidate>\r\n <div class=\"row mt-5 mb-1\">\r\n <div class=\"col-md-12 col-lg-12 mb-5\">\r\n <label for=\"groupName\" class=\"form-label\">Group Name</label>\r\n <input autocomplete=\"off\" type=\"text\" class=\"form-control\" id=\"groupName\" name=\"groupName\" [(ngModel)]=\"groupName\" required minlength=\"3\">\r\n <div *ngIf=\"form.submitted || form.controls.groupName?.touched\">\r\n <div *ngIf=\"form.controls.groupName?.errors?.required\" class=\"text-danger\">\r\n Group Name is required.\r\n </div>\r\n <div *ngIf=\"form.controls.groupName?.errors?.minlength\" class=\"text-danger\">\r\n Group Name must be at least 3 characters long.\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-12 mb-5\" >\r\n <label for=\"dataObject\" class=\"form-label\">Select Stores</label>\r\n <lib-select [items]=\"dataObject\" [multi]=\"true\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"onCsmSelect($event)\" [selectedValues]=\"selectedValues\" ></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-12 mb-5\">\r\n <label for=\"description\" class=\"form-label\">Description</label>\r\n <textarea rows=\"5\" class=\"form-control\" id=\"description\" name=\"description\" [(ngModel)]=\"description\" required></textarea>\r\n <div *ngIf=\"form.submitted || form.controls.description?.touched\">\r\n <div *ngIf=\"form.controls.description?.errors?.required\" class=\"text-danger\">\r\n Description is required.\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"operationType !== 'view'\" role=\"group\" class=\"d-flex mt-3 mb-10\">\r\n <button type=\"button\" class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button type=\"submit\" id=\"alert-toast\" class=\"btn btn-primary w-100 ms-3\" [disabled]=\"form.invalid\"\r\n (click)=\"groupSubmit(form)\">Submit</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: ["input.ng-invalid.ng-touched,textarea.ng-invalid.ng-touched{border-color:red}.title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}::ng-deep .modal-content{border-radius:12px!important}.btn-outline{padding:12px!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.dropdown1 .dropdown-title{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.dropdown1 .dropdown{position:relative;display:inline-block}.dropdown1 .dropdown span{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.dropdown1 .dropdown-content{z-index:1;padding:0;min-height:auto;max-height:285px;overflow:auto;border-radius:12px;background:var(--White, #FFF);box-shadow:0 8px 8px -4px #10182808,0 20px 24px -4px #10182814;width:89%}.dropdown1 .dropdown-content label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.dropdown1 .dropdown-content a{color:#000;padding:12px 16px;text-decoration:none;display:block}.dropdown1 .dropdown button{padding:10px;font-size:16px;cursor:pointer}.dropdown1 input[type=checkbox]{width:16px!important;height:16px!important;margin:-3px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.dropdown1 input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}.dropdown1 input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:13px!important;font-weight:400!important;line-height:20px}\n"] }]
|
|
188
|
+
}], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i0.ChangeDetectorRef }, { type: i2.GroupService }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { type: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], editGroup: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}] } });
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNyZWF0ZS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc3RvcmVzL3NyYy9saWIvY29tcG9uZW50cy9uZXctY3JlYXRlLWdyb3VwL25ldy1jcmVhdGUtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXN0b3Jlcy9zcmMvbGliL2NvbXBvbmVudHMvbmV3LWNyZWF0ZS1ncm91cC9uZXctY3JlYXRlLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFZNUUsTUFBTSxPQUFPLHVCQUF1QjtJQWV4QjtJQUNBO0lBQ0E7SUFDQTtJQUNEO0lBbEJBLElBQUksQ0FBUztJQUNiLFNBQVMsQ0FBTTtJQUN4QixXQUFXLENBQUs7SUFDaEIsU0FBUyxDQUFLO0lBQ2QsYUFBYSxDQUFTO0lBQ3RCLGNBQWMsQ0FBTTtJQUNwQixlQUFlLENBQU07SUFDckIsVUFBVSxHQUFNLEVBQUUsQ0FBQztJQUNuQixVQUFVLENBQU07SUFDaEIsS0FBSyxHQUFNLEVBQUUsQ0FBQztJQUNkLGNBQWMsR0FBTyxFQUFFLENBQUE7SUFDdkIsVUFBVSxDQUFNO0lBQ2hCLGNBQWMsR0FBSyxFQUFFLENBQUM7SUFDdEIsWUFDVSxXQUEyQixFQUMzQixFQUFxQixFQUNyQixZQUEwQixFQUMxQixFQUFnQixFQUNqQixFQUFzQjtRQUpyQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUU3QixJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDL0IsSUFBSSxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUNELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlFLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDbEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBO29CQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO29CQUM3RCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7d0JBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztxQkFDakI7eUJBQU07cUJBQ047aUJBQ0Y7cUJBQU07aUJBQ047WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNBLG1DQUFtQztJQUNsQywrQkFBK0I7SUFDL0IsSUFBSTtJQUNOLFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxHQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUM3RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUNELFlBQVksQ0FBQyxRQUFZLEVBQUUsWUFBZ0I7UUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN6RixPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZO2FBQ2QsUUFBUSxDQUFDO1lBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUTtZQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTO1NBQ3JDLENBQUM7YUFDRCxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQzdCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztpQkFDbEI7cUJBQU07aUJBQ047WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7WUFDZixRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBQ0QsV0FBVyxDQUFDLFdBQWU7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFRO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUU7b0JBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtvQkFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYztpQkFDL0IsQ0FBQTtnQkFDRCxJQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7b0JBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7aUJBQ3BDO2dCQUNELElBQUksQ0FBQyxZQUFZO3FCQUNoQixXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztxQkFDNUIsU0FBUyxDQUFDO29CQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO3dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTs0QkFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsQ0FBQzs0QkFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt5QkFDMUI7NkJBQU07NEJBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzs0QkFDekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQzt5QkFDOUM7b0JBQ0gsQ0FBQztvQkFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDYixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUN6QixJQUFHLEdBQUc7NEJBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7OzRCQUUzQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO29CQUNELFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO2lCQUNuQixDQUFDLENBQUM7YUFDTjtpQkFBSztnQkFDSixJQUFJLENBQUMsVUFBVSxHQUFFO29CQUNmLEdBQUcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7b0JBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztvQkFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWM7aUJBQy9CLENBQUE7Z0JBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFO29CQUMvQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO2lCQUNwQztnQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN2RCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTt3QkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7NEJBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLDRCQUE0QixDQUFDLENBQUM7NEJBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7eUJBQzFCOzZCQUFNOzRCQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7eUJBQ2pEO29CQUNILENBQUM7b0JBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTt3QkFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO29CQUNsRCxDQUFDO29CQUNELFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO2lCQUNuQixDQUFDLENBQUM7YUFDSjtTQUNBO2FBQU07WUFDTCwrQkFBK0I7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDM0M7SUFFRCxDQUFDO3dHQWxLUSx1QkFBdUI7NEZBQXZCLHVCQUF1Qiw4R0NacEMsdW1LQXdFTTs7NEZENURPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7ME1BS3ZCLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ3JvdXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1uZXctY3JlYXRlLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmV3LWNyZWF0ZS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL25ldy1jcmVhdGUtZ3JvdXAuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZXdDcmVhdGVHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVkaXRHcm91cDogYW55O1xyXG4gIGRlc2NyaXB0aW9uOmFueTtcclxuICBncm91cE5hbWU6YW55O1xyXG4gIG9wZXJhdGlvblR5cGU6IHN0cmluZztcclxuICAkaGVhZGVyRmlsdGVyczogYW55O1xyXG4gIGF2YWlsYWJsZVN0b3JlczogYW55O1xyXG4gIGRhdGFPYmplY3Q6IGFueT1bXTtcclxuICBkdW1teUFycmF5OiBhbnk7XHJcbiAgZ3JvdXA6IGFueT1bXTtcclxuICBjc21TZWxlY3RJbnB1dDphbnkgPSBbXVxyXG4gIGdyb3VwVmFsdWU6IGFueTtcclxuICBzZWxlY3RlZFZhbHVlczphbnk9W107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBncm91cFNlcnZpY2U6IEdyb3VwU2VydmljZSxcclxuICAgIHByaXZhdGUgdHM6IFRvYXN0U2VydmljZSxcclxuICAgIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLiRoZWFkZXJGaWx0ZXJzID0gZGF0YTtcclxuICAgICAgICB0aGlzLmdldEF2YWlsYWJsZVN0b3JlcygpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5vcGVyYXRpb25UeXBlID0gdGhpcy50eXBlO1xyXG4gIH1cclxuICBnZXRBdmFpbGFibGVTdG9yZXMoKSB7XHJcbiAgICB0aGlzLmdyb3VwU2VydmljZS5nZXRTdG9yZXMoeyBjbGllbnRJZDogdGhpcy4kaGVhZGVyRmlsdGVycy5jbGllbnQgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuYXZhaWxhYmxlU3RvcmVzID0gcmVzLmRhdGEucmVzdWx0O1xyXG4gICAgICAgICAgdGhpcy5kYXRhT2JqZWN0ID0gcmVzLmRhdGEucmVzdWx0O1xyXG4gICAgICAgICAgY29uc29sZS5sb2coKVxyXG4gICAgICAgICAgdGhpcy5kdW1teUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKVxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5lZGl0R3JvdXApIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRHcm91cCgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHsgXHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVTdG9yZXMgPSBbXTtcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6ICgpID0+IHt9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gICAvLyBpZih0aGlzLm9wZXJhdGlvblR5cGU9PSd2aWV3Jykge1xyXG4gICAgLy8gICB0aGlzLmdyb3VwVmFsdWUuZGlzYWJsZSgpO1xyXG4gICAgLy8gfVxyXG4gIGxvYWRHcm91cCgpIHtcclxuICAgIHRoaXMuZ3JvdXBOYW1lPSB0aGlzLmdyb3VwPy5ncm91cE5hbWU7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uPSB0aGlzLmdyb3VwPy5kZXNjcmlwdGlvbjtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLmZpbHRlclN0b3Jlcyh0aGlzLmdyb3VwLnN0b3JlTGlzdCx0aGlzLmRhdGFPYmplY3QpXHJcbiAgICB0aGlzLmNzbVNlbGVjdElucHV0ID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5tYXAoKGU6IGFueSkgPT4gZS5zdG9yZUlkKVxyXG4gICAgY29uc29sZS5sb2codGhpcy5jc21TZWxlY3RJbnB1dClcclxuICB9XHJcbiAgZmlsdGVyU3RvcmVzKHN0b3JlSWRzOmFueSwgc3RvcmVEZXRhaWxzOmFueSkge1xyXG4gICAgY29uc3Qgc3RvcmVJZFNldCA9IG5ldyBTZXQoc3RvcmVJZHMpOyAgICBcclxuICAgIGNvbnN0IGZpbHRlcmVkU3RvcmVzID0gc3RvcmVEZXRhaWxzLmZpbHRlcigoc3RvcmU6YW55KSA9PiBzdG9yZUlkU2V0LmhhcyhzdG9yZS5zdG9yZUlkKSk7XHJcbiAgICByZXR1cm4gZmlsdGVyZWRTdG9yZXM7XHJcbn1cclxuICBnZXRHcm91cCgpIHtcclxuICAgIHRoaXMuZ3JvdXBTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cCh7XHJcbiAgICAgICAgY2xpZW50SWQ6IHRoaXMuZWRpdEdyb3VwPy5jbGllbnRJZCxcclxuICAgICAgICBncm91cE5hbWU6IHRoaXMuZWRpdEdyb3VwPy5ncm91cE5hbWUsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cCA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgICAgdGhpcy5sb2FkR3JvdXAoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge30sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHt9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuICBlZGl0Z3JvdXAoKSB7XHJcbiAgICB0aGlzLm9wZXJhdGlvblR5cGUgPSBcImVkaXRcIjtcclxuICB9XHJcbiAgb25Dc21TZWxlY3Qoc2VsZWN0ZWRDc206YW55KXtcclxuICAgIHRoaXMuY3NtU2VsZWN0SW5wdXQgPSBzZWxlY3RlZENzbS5tYXAoKGU6IGFueSkgPT4gZS5zdG9yZUlkKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuY3NtU2VsZWN0SW5wdXQpXHJcbiAgfVxyXG4gIGdyb3VwU3VibWl0KGZvcm06YW55KSB7XHJcbiAgICBpZiAoZm9ybS52YWxpZCkge1xyXG4gICAgICBpZiAodGhpcy5vcGVyYXRpb25UeXBlID09PSBcImFkZFwiKSB7XHJcbiAgICAgICAgdGhpcy5ncm91cFZhbHVlID17XHJcbiAgICAgICAgICBjbGllbnRJZDogdGhpcy4kaGVhZGVyRmlsdGVycy5jbGllbnQsXHJcbiAgICAgICAgICBncm91cE5hbWU6IHRoaXMuZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICBzdG9yZUxpc3Q6IHRoaXMuY3NtU2VsZWN0SW5wdXQsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKCF0aGlzLmdyb3VwVmFsdWUuZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgIGRlbGV0ZSB0aGlzLmdyb3VwVmFsdWUuZGVzY3JpcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlXHJcbiAgICAgICAgLmNyZWF0ZUdyb3VwKHRoaXMuZ3JvdXBWYWx1ZSlcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHMuZ2V0U3VjY2Vzc1RvYXN0KFwiR3JvdXAgYWRkZWQgc3VjY2Vzc2Z1bGx5XCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KCdVbmFibGUgdG8gYWRkIEdyb3VwJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIGlmKGVycilcclxuICAgICAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgICAgZWxzZSBcclxuICAgICAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoJ1VuYWJsZSB0byBhZGQgR3JvdXAnKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge30sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMuZ3JvdXBWYWx1ZSA9e1xyXG4gICAgICAgIF9pZDp0aGlzLmVkaXRHcm91cC5faWQsXHJcbiAgICAgICAgZ3JvdXBOYW1lOiB0aGlzLmdyb3VwTmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcclxuICAgICAgICBzdG9yZUxpc3Q6IHRoaXMuY3NtU2VsZWN0SW5wdXQsXHJcbiAgICAgIH1cclxuICAgICAgaWYoIXRoaXMuZ3JvdXBWYWx1ZS5kZXNjcmlwdGlvbikge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmdyb3VwVmFsdWUuZGVzY3JpcHRpb247XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ncm91cFNlcnZpY2UudXBkYXRlR3JvdXAodGhpcy5ncm91cFZhbHVlKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50cy5nZXRTdWNjZXNzVG9hc3QoXCJHcm91cCB1cGRhdGVkIHN1Y2Nlc3NmdWxseVwiKTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoJ1VuYWJsZSB0byB1cGRhdGUgR3JvdXAnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoJ1VuYWJsZSB0byB1cGRhdGUgR3JvdXAnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7fSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBIaWdobGlnaHQgdGhlIGludmFsaWQgZmllbGRzXHJcbiAgICAgIGZvcm0uY29udHJvbHMuZ3JvdXBOYW1lLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgZm9ybS5jb250cm9scy5kZXNjcmlwdGlvbi5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgIFxyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcHktMCBzY3JvbGwteVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0wIGQtZmxleCBmbGV4LXN0YXJ0IGZsZXgtY29sdW1uIHAtOSBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG10LTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvcGVyYXRpb25UeXBlPT09J2FkZCdcIiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPkFkZFxyXG4gICAgICAgICAgICAgICAgICAgIEdyb3VwPC9hPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10aXRsZVwiPlBsZWFzZSBhZGQgeW91ciBncm91cCBkZXRhaWxzPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3BlcmF0aW9uVHlwZT09PSdlZGl0J1wiIGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImZzLTQgdGV4dC1ncmF5LTgwMCB0ZXh0LWhvdmVyLXByaW1hcnkgZnctYm9sZCBtYi0wIHRpdGxlIGN1cnNvci1wb2ludGVyXCI+RWRpdCBHcm91cDwvYT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGl0bGVcIj5FZGl0IHlvdXIgZ3JvdXAgZGV0YWlsczwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhdGlvblR5cGU9PT0ndmlldydcIiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImZzLTQgdGV4dC1ncmF5LTgwMCB0ZXh0LWhvdmVyLXByaW1hcnkgZnctYm9sZCBtYi0wIHRpdGxlIGN1cnNvci1wb2ludGVyXCI+VmlldyBHcm91cDwvYT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGl0bGVcIj5WaWV3IHlvdXIgZ3JvdXAgZGV0YWlsczwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgQGlmICgoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3N0b3Jlc19pc0VkaXQpIHtcclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhdGlvblR5cGU9PT0ndmlldydcIiBjbGFzcz1cImNvbC1tZC0zIHRleHQtZW5kIHB4LTBcIiAoY2xpY2spPVwiZWRpdGdyb3VwKClcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zODMzXzg1OTA4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMTY2MDIgMy4zMzMySDMuMzMyNjhDMi44OTA2NSAzLjMzMzIgMi40NjY3MyAzLjUwODc5IDIuMTU0MTcgMy44MjEzNUMxLjg0MTYxIDQuMTMzOTEgMS42NjYwMiA0LjU1Nzg0IDEuNjY2MDIgNC45OTk4NlYxNi42NjY1QzEuNjY2MDIgMTcuMTA4NiAxLjg0MTYxIDE3LjUzMjUgMi4xNTQxNyAxNy44NDVDMi40NjY3MyAxOC4xNTc2IDIuODkwNjUgMTguMzMzMiAzLjMzMjY4IDE4LjMzMzJIMTQuOTk5M0MxNS40NDE0IDE4LjMzMzIgMTUuODY1MyAxOC4xNTc2IDE2LjE3NzkgMTcuODQ1QzE2LjQ5MDQgMTcuNTMyNSAxNi42NjYgMTcuMTA4NiAxNi42NjYgMTYuNjY2NVYxMC44MzMyTTE1LjQxNiAyLjA4MzJDMTUuNzQ3NSAxLjc1MTY4IDE2LjE5NzIgMS41NjU0MyAxNi42NjYgMS41NjU0M0MxNy4xMzQ5IDEuNTY1NDMgMTcuNTg0NSAxLjc1MTY4IDE3LjkxNiAyLjA4MzJDMTguMjQ3NSAyLjQxNDcyIDE4LjQzMzggMi44NjQzNiAxOC40MzM4IDMuMzMzMkMxOC40MzM4IDMuODAyMDQgMTguMjQ3NSA0LjI1MTY4IDE3LjkxNiA0LjU4MzJMOS45OTkzNSAxMi40OTk5TDYuNjY2MDIgMTMuMzMzMkw3LjQ5OTM1IDkuOTk5ODZMMTUuNDE2IDIuMDgzMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM4MzNfODU5MDhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8Zm9ybSAjZm9ybT1cIm5nRm9ybVwiICBub3ZhbGlkYXRlPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMTIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJncm91cE5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Hcm91cCBOYW1lPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZ3JvdXBOYW1lXCIgbmFtZT1cImdyb3VwTmFtZVwiIFsobmdNb2RlbCldPVwiZ3JvdXBOYW1lXCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtLnN1Ym1pdHRlZCB8fCBmb3JtLmNvbnRyb2xzLmdyb3VwTmFtZT8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uY29udHJvbHMuZ3JvdXBOYW1lPy5lcnJvcnM/LnJlcXVpcmVkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBHcm91cCBOYW1lIGlzIHJlcXVpcmVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybS5jb250cm9scy5ncm91cE5hbWU/LmVycm9ycz8ubWlubGVuZ3RoXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBHcm91cCBOYW1lIG11c3QgYmUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzIGxvbmcuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtYi01XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkYXRhT2JqZWN0XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U2VsZWN0IFN0b3JlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1zZWxlY3QgW2l0ZW1zXT1cImRhdGFPYmplY3RcIiBbbXVsdGldPVwidHJ1ZVwiIFtzZWFyY2hGaWVsZF09XCInc3RvcmVOYW1lJ1wiIFtpZEZpZWxkXT1cIidzdG9yZUlkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJvbkNzbVNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cInNlbGVjdGVkVmFsdWVzXCIgPjwvbGliLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMTIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkRlc2NyaXB0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz1cIjVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZGVzY3JpcHRpb25cIiBuYW1lPVwiZGVzY3JpcHRpb25cIiBbKG5nTW9kZWwpXT1cImRlc2NyaXB0aW9uXCIgcmVxdWlyZWQ+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybS5zdWJtaXR0ZWQgfHwgZm9ybS5jb250cm9scy5kZXNjcmlwdGlvbj8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uY29udHJvbHMuZGVzY3JpcHRpb24/LmVycm9ycz8ucmVxdWlyZWRcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uIGlzIHJlcXVpcmVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhdGlvblR5cGUgIT09ICd2aWV3J1wiIHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgaWQ9XCJhbGVydC10b2FzdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTNcIiBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdyb3VwU3VibWl0KGZvcm0pXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|