tango-app-ui-store-builder 1.0.1-beta-1
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/README.md +24 -0
- package/esm2022/lib/components/create-layout/create-layout.component.mjs +1815 -0
- package/esm2022/lib/components/create-layout/popups/add-floor/add-floor.component.mjs +40 -0
- package/esm2022/lib/components/create-layout/popups/clear-all-steps/clear-all-steps.component.mjs +16 -0
- package/esm2022/lib/components/create-layout/popups/delete-layout/delete-layout.component.mjs +16 -0
- package/esm2022/lib/components/custom-select/custom-select.component.mjs +155 -0
- package/esm2022/lib/components/layout-builder/layout-builder.component.mjs +56 -0
- package/esm2022/lib/components/layout-summary/layout-summary.component.mjs +809 -0
- package/esm2022/lib/components/layout-summary/popups/complete-layout/complete-layout.component.mjs +16 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +87 -0
- package/esm2022/lib/components/store-layout-table/store-layout-table.component.mjs +709 -0
- package/esm2022/lib/components/store-offcanvas-component/store-offcanvas-component.component.mjs +99 -0
- package/esm2022/lib/interfaces/layout-builder.interface.mjs +2 -0
- package/esm2022/lib/services/store-builder.service.mjs +99 -0
- package/esm2022/lib/tango-store-builder-routing.module.mjs +41 -0
- package/esm2022/lib/tango-store-builder.module.mjs +71 -0
- package/esm2022/public-api.mjs +5 -0
- package/esm2022/tango-app-ui-store-builder.mjs +5 -0
- package/esm2022/tango-store-builder.mjs +5 -0
- package/fesm2022/tango-app-ui-store-builder.mjs +3947 -0
- package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -0
- package/fesm2022/tango-store-builder.mjs +3947 -0
- package/fesm2022/tango-store-builder.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/create-layout/create-layout.component.d.ts +197 -0
- package/lib/components/create-layout/popups/add-floor/add-floor.component.d.ts +16 -0
- package/lib/components/create-layout/popups/clear-all-steps/clear-all-steps.component.d.ts +8 -0
- package/lib/components/create-layout/popups/delete-layout/delete-layout.component.d.ts +8 -0
- package/lib/components/custom-select/custom-select.component.d.ts +33 -0
- package/lib/components/layout-builder/layout-builder.component.d.ts +18 -0
- package/lib/components/layout-summary/layout-summary.component.d.ts +92 -0
- package/lib/components/layout-summary/popups/complete-layout/complete-layout.component.d.ts +8 -0
- package/lib/components/reactive-select/reactive-select.component.d.ts +26 -0
- package/lib/components/store-layout-table/store-layout-table.component.d.ts +73 -0
- package/lib/components/store-offcanvas-component/store-offcanvas-component.component.d.ts +26 -0
- package/lib/interfaces/layout-builder.interface.d.ts +23 -0
- package/lib/services/store-builder.service.d.ts +33 -0
- package/lib/tango-store-builder-routing.module.d.ts +7 -0
- package/lib/tango-store-builder.module.d.ts +22 -0
- package/package.json +25 -0
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
export class AddFloorComponent {
|
|
7
|
+
modal;
|
|
8
|
+
floorNo = 1;
|
|
9
|
+
destroy$ = new Subject();
|
|
10
|
+
constructor(modal) {
|
|
11
|
+
this.modal = modal;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
}
|
|
15
|
+
ngOnDestroy() {
|
|
16
|
+
this.destroy$.next(true);
|
|
17
|
+
this.destroy$.complete();
|
|
18
|
+
}
|
|
19
|
+
floorDec() {
|
|
20
|
+
if (this.floorNo >= 2) {
|
|
21
|
+
this.floorNo--;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
floorInc() {
|
|
25
|
+
this.floorNo++;
|
|
26
|
+
}
|
|
27
|
+
createLayout() {
|
|
28
|
+
let params = {
|
|
29
|
+
floorNumber: this.floorNo,
|
|
30
|
+
};
|
|
31
|
+
this.modal.dismiss(params);
|
|
32
|
+
}
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddFloorComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AddFloorComponent, selector: "lib-add-floor", ngImport: i0, template: " <div class=\"card scroll\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <span class=\"card-label\">Add Floors</span>\r\n </div>\r\n </div>\r\n <div class=\"card-body storeCard\">\r\n <div class=\"selectStore\">\r\n <div class=\"mt-5\">No of floors</div>\r\n <div class=\"mt-2\">\r\n <div style=\"position: relative;\"><svg role=\"button\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" class=\"dec\" (click)=\"floorDec()\">\r\n <path d=\"M4.16602 10H15.8327\" stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg><input readonly=\"\" type=\"number\" [(ngModel)]=\"floorNo\" id=\"floor\"\r\n autocomplete=\"off\" class=\"form-control inc-dec-input\"\r\n ><svg role=\"button\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\" class=\"inc\" (click)=\"floorInc()\">\r\n <path d=\"M8.00065 3.33337V12.6667M3.33398 8.00004H12.6673\" stroke=\"#667085\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-footer storeCard text-end border-0\">\r\n <button class=\"btn mx-5 btn-outline\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"createLayout()\">Save</button>\r\n </div>\r\n </div>\r\n", styles: [".selectStore{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.inc-dec-input{padding-right:30px;padding-left:30px;text-align:center}.inc{height:100%;position:absolute;right:14px;top:0}.dec{height:100%;position:absolute;left:14px;top:0}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddFloorComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'lib-add-floor', standalone: false, template: " <div class=\"card scroll\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <span class=\"card-label\">Add Floors</span>\r\n </div>\r\n </div>\r\n <div class=\"card-body storeCard\">\r\n <div class=\"selectStore\">\r\n <div class=\"mt-5\">No of floors</div>\r\n <div class=\"mt-2\">\r\n <div style=\"position: relative;\"><svg role=\"button\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" class=\"dec\" (click)=\"floorDec()\">\r\n <path d=\"M4.16602 10H15.8327\" stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg><input readonly=\"\" type=\"number\" [(ngModel)]=\"floorNo\" id=\"floor\"\r\n autocomplete=\"off\" class=\"form-control inc-dec-input\"\r\n ><svg role=\"button\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\" class=\"inc\" (click)=\"floorInc()\">\r\n <path d=\"M8.00065 3.33337V12.6667M3.33398 8.00004H12.6673\" stroke=\"#667085\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-footer storeCard text-end border-0\">\r\n <button class=\"btn mx-5 btn-outline\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"createLayout()\">Save</button>\r\n </div>\r\n </div>\r\n", styles: [".selectStore{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.inc-dec-input{padding-right:30px;padding-left:30px;text-align:center}.inc{height:100%;position:absolute;right:14px;top:0}.dec{height:100%;position:absolute;left:14px;top:0}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}\n"] }]
|
|
39
|
+
}], ctorParameters: () => [{ type: i1.NgbActiveModal }] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZsb29yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1sYXlvdXQvcG9wdXBzL2FkZC1mbG9vci9hZGQtZmxvb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWxheW91dC9wb3B1cHMvYWRkLWZsb29yL2FkZC1mbG9vci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUy9CLE1BQU0sT0FBTyxpQkFBaUI7SUFLUDtJQUpuQixPQUFPLEdBQVUsQ0FBQyxDQUFBO0lBRVYsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFakMsWUFBbUIsS0FBb0I7UUFBcEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUFHLENBQUM7SUFFM0MsUUFBUTtJQUVSLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUdELFlBQVk7UUFDVixJQUFJLE1BQU0sR0FBRztZQUNYLFdBQVcsRUFBQyxJQUFJLENBQUMsT0FBTztTQUN6QixDQUFBO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUIsQ0FBQzt3R0FsQ1EsaUJBQWlCOzRGQUFqQixpQkFBaUIscURDWDlCLHF5REE2QkE7OzRGRGxCYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWRkLWZsb29yJyxcclxuICBzdGFuZGFsb25lOiBmYWxzZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWZsb29yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWRkLWZsb29yLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkRmxvb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBmbG9vck5vOm51bWJlciA9IDFcclxuICBcclxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIFxyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1vZGFsOk5nYkFjdGl2ZU1vZGFsKSB7fVxyXG4gIFxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgXHJcbiAgICB9XHJcbiAgXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgXHJcbiAgICBmbG9vckRlYygpIHtcclxuICAgICAgaWYodGhpcy5mbG9vck5vID49IDIpIHtcclxuICAgICAgICB0aGlzLmZsb29yTm8tLTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gICAgZmxvb3JJbmMoKSB7XHJcbiAgICAgIHRoaXMuZmxvb3JObysrO1xyXG4gICAgfVxyXG4gIFxyXG4gIFxyXG4gICAgY3JlYXRlTGF5b3V0KCkge1xyXG4gICAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICAgIGZsb29yTnVtYmVyOnRoaXMuZmxvb3JObyxcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tb2RhbC5kaXNtaXNzKHBhcmFtcylcclxuICAgIH1cclxuICBcclxufVxyXG4iLCIgICAgPGRpdiBjbGFzcz1cImNhcmQgc2Nyb2xsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtbGFiZWxcIj5BZGQgRmxvb3JzPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHN0b3JlQ2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0U3RvcmVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+Tm8gb2YgZmxvb3JzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+PHN2ZyByb2xlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiBjbGFzcz1cImRlY1wiIChjbGljayk9XCJmbG9vckRlYygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQuMTY2MDIgMTBIMTUuODMyN1wiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PGlucHV0IHJlYWRvbmx5PVwiXCIgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwiZmxvb3JOb1wiIGlkPVwiZmxvb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5jLWRlYy1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PHN2ZyByb2xlPVwiYnV0dG9uXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIGNsYXNzPVwiaW5jXCIgKGNsaWNrKT1cImZsb29ySW5jKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4wMDA2NSAzLjMzMzM3VjEyLjY2NjdNMy4zMzM5OCA4LjAwMDA0SDEyLjY2NzNcIiBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBzdG9yZUNhcmQgdGV4dC1lbmQgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBteC01IGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIChjbGljayk9XCJjcmVhdGVMYXlvdXQoKVwiPlNhdmU8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4iXX0=
|
package/esm2022/lib/components/create-layout/popups/clear-all-steps/clear-all-steps.component.mjs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
4
|
+
export class ClearAllStepsComponent {
|
|
5
|
+
modal;
|
|
6
|
+
constructor(modal) {
|
|
7
|
+
this.modal = modal;
|
|
8
|
+
}
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClearAllStepsComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ClearAllStepsComponent, selector: "lib-clear-all-steps", ngImport: i0, template: "<div class=\"header mb-5\" >\r\n Clear all steps\r\n</div>\r\n<div class=\"description mb-7\">\r\n Are you sure you want to clear all the steps for this layout? Please note that this action cannot be undone.\r\n</div>\r\n<div class=\"d-flex align-items-center justify-content-end\">\r\n <button class=\"btn btn-outline bg-white me-5\" (click)=\"modal.close()\" >Cancel</button>\r\n <button class=\"btn btn-sm btn-danger\" (click)=\"modal.close({message:'confirm'})\" >Clear All Steps</button>\r\n</div>", styles: [":host{padding:24px}.header{color:#000;font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.description{color:#1d2939;font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px}\n"] });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClearAllStepsComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{ selector: 'lib-clear-all-steps', standalone: false, template: "<div class=\"header mb-5\" >\r\n Clear all steps\r\n</div>\r\n<div class=\"description mb-7\">\r\n Are you sure you want to clear all the steps for this layout? Please note that this action cannot be undone.\r\n</div>\r\n<div class=\"d-flex align-items-center justify-content-end\">\r\n <button class=\"btn btn-outline bg-white me-5\" (click)=\"modal.close()\" >Cancel</button>\r\n <button class=\"btn btn-sm btn-danger\" (click)=\"modal.close({message:'confirm'})\" >Clear All Steps</button>\r\n</div>", styles: [":host{padding:24px}.header{color:#000;font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.description{color:#1d2939;font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px}\n"] }]
|
|
15
|
+
}], ctorParameters: () => [{ type: i1.NgbActiveModal }] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItYWxsLXN0ZXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1sYXlvdXQvcG9wdXBzL2NsZWFyLWFsbC1zdGVwcy9jbGVhci1hbGwtc3RlcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWxheW91dC9wb3B1cHMvY2xlYXItYWxsLXN0ZXBzL2NsZWFyLWFsbC1zdGVwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTMUMsTUFBTSxPQUFPLHNCQUFzQjtJQUNkO0lBQW5CLFlBQW1CLEtBQW9CO1FBQXBCLFVBQUssR0FBTCxLQUFLLENBQWU7SUFBRSxDQUFDO3dHQUQvQixzQkFBc0I7NEZBQXRCLHNCQUFzQiwyRENUbkMscWdCQVNNOzs0RkRBTyxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jbGVhci1hbGwtc3RlcHMnLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jbGVhci1hbGwtc3RlcHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jbGVhci1hbGwtc3RlcHMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGVhckFsbFN0ZXBzQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kYWw6TmdiQWN0aXZlTW9kYWwpe31cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImhlYWRlciBtYi01XCIgPlxyXG4gICAgQ2xlYXIgYWxsIHN0ZXBzXHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24gbWItN1wiPlxyXG4gICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNsZWFyIGFsbCB0aGUgc3RlcHMgZm9yIHRoaXMgbGF5b3V0PyBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuXHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJnLXdoaXRlIG1lLTVcIiAoY2xpY2spPVwibW9kYWwuY2xvc2UoKVwiID5DYW5jZWw8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwibW9kYWwuY2xvc2Uoe21lc3NhZ2U6J2NvbmZpcm0nfSlcIiAgPkNsZWFyIEFsbCBTdGVwczwvYnV0dG9uPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
4
|
+
export class DeleteLayoutComponent {
|
|
5
|
+
modal;
|
|
6
|
+
constructor(modal) {
|
|
7
|
+
this.modal = modal;
|
|
8
|
+
}
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DeleteLayoutComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DeleteLayoutComponent, selector: "lib-delete-layout", ngImport: i0, template: "<div class=\"header mb-5\" >\r\n Delete layout\r\n</div>\r\n<div class=\"description mb-4\">\r\n Are you sure you want to delete this layout? Please note that deleting this layout will also remove all associated unpublished VM and PID\u2019s.\r\n</div>\r\n<div class=\"description mb-7\">\r\n This action cannot be undone.\r\n</div>\r\n<div class=\"d-flex align-items-center justify-content-end\">\r\n <button class=\"btn btn-outline bg-white me-5\" (click)=\"modal.close()\" >Cancel</button>\r\n <button class=\"btn btn-sm btn-danger\" (click)=\"modal.close({message:'confirm'})\">Delete</button>\r\n</div>", styles: [":host{padding:24px}.header{color:#000;font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.description{color:#1d2939;font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px}\n"] });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DeleteLayoutComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{ selector: 'lib-delete-layout', standalone: false, template: "<div class=\"header mb-5\" >\r\n Delete layout\r\n</div>\r\n<div class=\"description mb-4\">\r\n Are you sure you want to delete this layout? Please note that deleting this layout will also remove all associated unpublished VM and PID\u2019s.\r\n</div>\r\n<div class=\"description mb-7\">\r\n This action cannot be undone.\r\n</div>\r\n<div class=\"d-flex align-items-center justify-content-end\">\r\n <button class=\"btn btn-outline bg-white me-5\" (click)=\"modal.close()\" >Cancel</button>\r\n <button class=\"btn btn-sm btn-danger\" (click)=\"modal.close({message:'confirm'})\">Delete</button>\r\n</div>", styles: [":host{padding:24px}.header{color:#000;font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.description{color:#1d2939;font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px}\n"] }]
|
|
15
|
+
}], ctorParameters: () => [{ type: i1.NgbActiveModal }] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9jcmVhdGUtbGF5b3V0L3BvcHVwcy9kZWxldGUtbGF5b3V0L2RlbGV0ZS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWxheW91dC9wb3B1cHMvZGVsZXRlLWxheW91dC9kZWxldGUtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVMxQyxNQUFNLE9BQU8scUJBQXFCO0lBRWI7SUFBbkIsWUFBbUIsS0FBb0I7UUFBcEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUFFLENBQUM7d0dBRi9CLHFCQUFxQjs0RkFBckIscUJBQXFCLHlEQ1RsQyxnbkJBWU07OzRGREhPLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWRlbGV0ZS1sYXlvdXQnLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWxldGUtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGVsZXRlLWxheW91dC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERlbGV0ZUxheW91dENvbXBvbmVudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtb2RhbDpOZ2JBY3RpdmVNb2RhbCl7fVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyIG1iLTVcIiA+XHJcbiAgICBEZWxldGUgbGF5b3V0XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNFwiPlxyXG4gICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGxheW91dD8gUGxlYXNlIG5vdGUgdGhhdCBkZWxldGluZyB0aGlzIGxheW91dCB3aWxsIGFsc28gcmVtb3ZlIGFsbCBhc3NvY2lhdGVkIHVucHVibGlzaGVkIFZNIGFuZCBQSUTigJlzLlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTdcIj5cclxuICAgIFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuXHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJnLXdoaXRlIG1lLTVcIiAoY2xpY2spPVwibW9kYWwuY2xvc2UoKVwiID5DYW5jZWw8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwibW9kYWwuY2xvc2Uoe21lc3NhZ2U6J2NvbmZpcm0nfSlcIj5EZWxldGU8L2J1dHRvbj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/store-builder.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
export class CustomSelectComponent {
|
|
7
|
+
cd;
|
|
8
|
+
authService;
|
|
9
|
+
onClick(event) {
|
|
10
|
+
const target = event.target;
|
|
11
|
+
if (!target.closest('.dropdown')) {
|
|
12
|
+
this.showDropdown = false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
items;
|
|
16
|
+
searchField;
|
|
17
|
+
multi;
|
|
18
|
+
idField;
|
|
19
|
+
selectedValues = [];
|
|
20
|
+
disabled;
|
|
21
|
+
label;
|
|
22
|
+
selected = new EventEmitter();
|
|
23
|
+
filteredValues = [];
|
|
24
|
+
showDropdown;
|
|
25
|
+
searchValue;
|
|
26
|
+
instanceId;
|
|
27
|
+
constructor(cd, authService) {
|
|
28
|
+
this.cd = cd;
|
|
29
|
+
this.authService = authService;
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.instanceId = crypto.randomUUID();
|
|
33
|
+
this.authService.dropDownTrigger.subscribe((e) => {
|
|
34
|
+
if (e !== this.instanceId) {
|
|
35
|
+
this.showDropdown = false;
|
|
36
|
+
this.cd.detectChanges();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
ngOnChanges(changes) {
|
|
41
|
+
if (changes['items'] && this.items?.length) {
|
|
42
|
+
this.initializeItems();
|
|
43
|
+
}
|
|
44
|
+
if (changes['selectedValues'] && Array.isArray(changes['selectedValues']?.currentValue) && changes['selectedValues']?.currentValue?.length > 0 && changes['selectedValues']?.currentValue[0]) {
|
|
45
|
+
this.updateSelectedValues();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
initializeItems() {
|
|
49
|
+
this.filteredValues = this.items.map((item) => ({ ...item }));
|
|
50
|
+
this.updateSelectedValues();
|
|
51
|
+
}
|
|
52
|
+
updateSelectedValues() {
|
|
53
|
+
this.selectedValues?.forEach((selectedItem) => {
|
|
54
|
+
const item = this.filteredValues?.find((filteredItem) => filteredItem?.[this.idField] === selectedItem?.[this.idField]);
|
|
55
|
+
if (item) {
|
|
56
|
+
item.isSelected = true;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
openDropdown(event) {
|
|
61
|
+
this.authService.dropDownTrigger.next(this.instanceId);
|
|
62
|
+
event.stopPropagation();
|
|
63
|
+
this.showDropdown = !this.showDropdown;
|
|
64
|
+
}
|
|
65
|
+
onInput(event) {
|
|
66
|
+
if (!event.target.value) {
|
|
67
|
+
this.filteredValues = [...this.items];
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const searchTerm = event.target.value.toLowerCase();
|
|
71
|
+
this.filteredValues = this.items.filter((item) => item[this.searchField].toLowerCase().includes(searchTerm));
|
|
72
|
+
}
|
|
73
|
+
this.updateSelectedValues();
|
|
74
|
+
this.cd.detectChanges();
|
|
75
|
+
}
|
|
76
|
+
onSelect(event, item) {
|
|
77
|
+
if (this.multi) {
|
|
78
|
+
if (event.currentTarget.checked) {
|
|
79
|
+
this.selectedValues.push(item);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.selectedValues = this.selectedValues.filter((elem) => elem[this.idField] !== item[this.idField]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.selectedValues = [{ ...item }];
|
|
87
|
+
this.filteredValues.forEach((element) => {
|
|
88
|
+
if (element[this.idField] !== item[this.idField]) {
|
|
89
|
+
element.isSelected = false;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
this.showDropdown = false;
|
|
93
|
+
}
|
|
94
|
+
const valuesToEmit = this.selectedValues.map((value) => {
|
|
95
|
+
const selectedItem = { ...value };
|
|
96
|
+
delete selectedItem.isSelected;
|
|
97
|
+
return selectedItem;
|
|
98
|
+
});
|
|
99
|
+
this.cd.detectChanges();
|
|
100
|
+
this.emitSelectedValues(valuesToEmit);
|
|
101
|
+
}
|
|
102
|
+
onSelectAll(event) {
|
|
103
|
+
const selectAll = event.currentTarget.checked;
|
|
104
|
+
this.filteredValues.forEach((item) => item.isSelected = selectAll);
|
|
105
|
+
if (selectAll) {
|
|
106
|
+
this.selectedValues = [...this.filteredValues];
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.selectedValues = [];
|
|
110
|
+
}
|
|
111
|
+
const valuesToEmit = this.selectedValues.map((value) => {
|
|
112
|
+
const { isSelected, ...selectedItem } = value;
|
|
113
|
+
return selectedItem;
|
|
114
|
+
});
|
|
115
|
+
this.cd.detectChanges();
|
|
116
|
+
this.emitSelectedValues(valuesToEmit);
|
|
117
|
+
}
|
|
118
|
+
emitSelectedValues(values) {
|
|
119
|
+
if (this.multi) {
|
|
120
|
+
this.selected.emit(values);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
this.selected.emit(values[0]);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
checkIfAllSelected() {
|
|
127
|
+
return this.filteredValues.every((item) => item.isSelected);
|
|
128
|
+
}
|
|
129
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.StoreBuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomSelectComponent, selector: "lib-select-plano", inputs: { items: "items", searchField: "searchField", multi: "multi", idField: "idField", selectedValues: "selectedValues", disabled: "disabled", label: "label" }, outputs: { selected: "selected" }, host: { listeners: { "document:click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" for=\"selectAll\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff;min-width:200px;border-radius:8px}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:42.5px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
131
|
+
}
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomSelectComponent, decorators: [{
|
|
133
|
+
type: Component,
|
|
134
|
+
args: [{ selector: 'lib-select-plano', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" for=\"selectAll\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff;min-width:200px;border-radius:8px}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:42.5px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"] }]
|
|
135
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.StoreBuilderService }], propDecorators: { onClick: [{
|
|
136
|
+
type: HostListener,
|
|
137
|
+
args: ['document:click', ['$event']]
|
|
138
|
+
}], items: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], searchField: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], multi: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], idField: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], selectedValues: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], disabled: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], label: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], selected: [{
|
|
153
|
+
type: Output
|
|
154
|
+
}] } });
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7OztBQVNuSyxNQUFNLE9BQU8scUJBQXFCO0lBeUJaO0lBQStCO0lBdEJuRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRVEsS0FBSyxDQUFLO0lBQ1YsV0FBVyxDQUFRO0lBQ25CLEtBQUssQ0FBUztJQUNkLE9BQU8sQ0FBUTtJQUNmLGNBQWMsR0FBUSxFQUFFLENBQUE7SUFDeEIsUUFBUSxDQUFxQjtJQUM3QixLQUFLLENBQVE7SUFFWixRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtJQUM1QyxjQUFjLEdBQVEsRUFBRSxDQUFBO0lBQ3hCLFlBQVksQ0FBUztJQUNyQixXQUFXLENBQVE7SUFDbkIsVUFBVSxDQUFNO0lBR2hCLFlBQW9CLEVBQXFCLEVBQVUsV0FBK0I7UUFBOUQsT0FBRSxHQUFGLEVBQUUs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QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQzt3R0ExSVUscUJBQXFCOzRGQUFyQixxQkFBcUIsa1ZDVGxDLDZnRkF5Q007OzRGRGhDTyxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07d0hBSy9DLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRakMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN0b3JlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yZS1idWlsZGVyLnNlcnZpY2UnO1xyXG4gXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNlbGVjdC1wbGFubycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuIFxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlcclxuICBASW5wdXQoKSBzZWFyY2hGaWVsZDogc3RyaW5nXHJcbiAgQElucHV0KCkgbXVsdGk6IGJvb2xlYW5cclxuICBASW5wdXQoKSBpZEZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlczogYW55ID0gW11cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmdcclxuIFxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXHJcbiAgZmlsdGVyZWRWYWx1ZXM6IGFueSA9IFtdXHJcbiAgc2hvd0Ryb3Bkb3duOiBib29sZWFuXHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZ1xyXG4gIGluc3RhbmNlSWQ6IGFueTtcclxuIFxyXG4gXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgYXV0aFNlcnZpY2U6U3RvcmVCdWlsZGVyU2VydmljZSkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluc3RhbmNlSWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5kcm9wRG93blRyaWdnZXIuc3Vic2NyaWJlKChlKT0+eyAgICAgICAgICAgXHJcbiAgICAgIGlmKGUgIT09IHRoaXMuaW5zdGFuY2VJZCl7ICAgICAgICBcclxuICAgICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiBcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiBcclxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmIHRoaXMuaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVJdGVtcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10gJiYgQXJyYXkuaXNBcnJheShjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddPy5jdXJyZW50VmFsdWUpICYmIGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID4gMCAmJiBjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddPy5jdXJyZW50VmFsdWVbMF0pIHsgICAgICAgICAgICBcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIGluaXRpYWxpemVJdGVtcygpIHtcclxuICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMgPSB0aGlzLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoeyAuLi5pdGVtIH0pKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKVxyXG4gIH1cclxuIFxyXG4gIHVwZGF0ZVNlbGVjdGVkVmFsdWVzKCkgeyAgICBcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZvckVhY2goKHNlbGVjdGVkSXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbHRlcmVkVmFsdWVzPy5maW5kKChmaWx0ZXJlZEl0ZW06IGFueSkgPT4gZmlsdGVyZWRJdGVtPy5bdGhpcy5pZEZpZWxkXSA9PT0gc2VsZWN0ZWRJdGVtPy5bdGhpcy5pZEZpZWxkXSk7XHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgaXRlbS5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgIFxyXG4gIH1cclxuIFxyXG4gIG9wZW5Ecm9wZG93bihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmRyb3BEb3duVHJpZ2dlci5uZXh0KHRoaXMuaW5zdGFuY2VJZClcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zaG93RHJvcGRvd24gPSAhdGhpcy5zaG93RHJvcGRvd247XHJcbiAgfVxyXG4gXHJcbiAgb25JbnB1dChldmVudDogYW55KSB7XHJcbiAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gWy4uLnRoaXMuaXRlbXNdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VhcmNoVGVybSA9IGV2ZW50LnRhcmdldC52YWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT5cclxuICAgICAgICBpdGVtW3RoaXMuc2VhcmNoRmllbGRdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuIFxyXG4gIG9uU2VsZWN0KGV2ZW50OiBhbnksIGl0ZW06IGFueSkgeyAgICBcclxuICAgIGlmICh0aGlzLm11bHRpKSB7XHJcbiAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnB1c2goaXRlbSApOyAgICAgICAgXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMuZmlsdGVyKChlbGVtOiBhbnkpID0+IGVsZW1bdGhpcy5pZEZpZWxkXSAhPT0gaXRlbVt0aGlzLmlkRmllbGRdKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFt7IC4uLml0ZW0gfV07XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMuZm9yRWFjaCgoZWxlbWVudDphbnkpID0+IHtcclxuICAgICAgICBpZihlbGVtZW50W3RoaXMuaWRGaWVsZF0gIT09IGl0ZW1bdGhpcy5pZEZpZWxkXSl7XHJcbiAgICAgICAgICBlbGVtZW50LmlzU2VsZWN0ZWQgPSBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiBcclxuICAgIGNvbnN0IHZhbHVlc1RvRW1pdCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMubWFwKCh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHsgLi4udmFsdWUgfTtcclxuICAgICAgZGVsZXRlIHNlbGVjdGVkSXRlbS5pc1NlbGVjdGVkO1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWRJdGVtO1xyXG4gICAgfSk7XHJcbiBcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5lbWl0U2VsZWN0ZWRWYWx1ZXModmFsdWVzVG9FbWl0KTtcclxuIFxyXG4gIH1cclxuIFxyXG4gIG9uU2VsZWN0QWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdEFsbCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiBpdGVtLmlzU2VsZWN0ZWQgPSBzZWxlY3RBbGwpO1xyXG4gXHJcbiAgICBpZiAoc2VsZWN0QWxsKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbLi4udGhpcy5maWx0ZXJlZFZhbHVlc107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XHJcbiAgICB9XHJcbiBcclxuICAgIGNvbnN0IHZhbHVlc1RvRW1pdCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMubWFwKCh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgaXNTZWxlY3RlZCwgLi4uc2VsZWN0ZWRJdGVtIH0gPSB2YWx1ZTtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbTtcclxuICAgIH0pO1xyXG4gXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlc1RvRW1pdCk7XHJcbiAgfVxyXG4gXHJcbiBcclxuICBlbWl0U2VsZWN0ZWRWYWx1ZXModmFsdWVzOiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHZhbHVlcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodmFsdWVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcbiBcclxuICBjaGVja0lmQWxsU2VsZWN0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZFZhbHVlcy5ldmVyeSgoaXRlbTogYW55KSA9PiBpdGVtLmlzU2VsZWN0ZWQpO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJvdXRlci1jb250YWluZXJcIj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZS1pbnB1dCc6JydcIiAgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCIgIGNsYXNzPVwiZm9ybS1zZWxlY3RcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aVwiID5cclxuICAgIHt7c2VsZWN0ZWRWYWx1ZXM/Lmxlbmd0aH19IHt7bGFiZWx9fSBTZWxlY3RlZCAgICBcclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aVwiID5cclxuICAgICAgICB7e3NlbGVjdGVkVmFsdWVzPy5bMF0/LltzZWFyY2hGaWVsZF19fVxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwic2hvd0Ryb3Bkb3duID8gJycgOiAnZC1ub25lJ1wiIGNsYXNzPVwiaW5wdXQtY29udGFpbmVyIGRyb3Bkb3duXCIgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBpbnB1dC13cmFwcGVyXCI+XHJcbiAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCIgdHlwZT1cInRleHRcIj4gIFxyXG4gICAgICAgIDxzdmcgY2xhc3M9XCJzZWFyY2gtaWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTdcIiB2aWV3Qm94PVwiMCAwIDE2IDE3XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNCAxNC41TDExLjEgMTEuNk0xMi42NjY3IDcuODMzMzNDMTIuNjY2NyAxMC43Nzg5IDEwLjI3ODkgMTMuMTY2NyA3LjMzMzMzIDEzLjE2NjdDNC4zODc4MSAxMy4xNjY3IDIgMTAuNzc4OSAyIDcuODMzMzNDMiA0Ljg4NzgxIDQuMzg3ODEgMi41IDcuMzMzMzMgMi41QzEwLjI3ODkgMi41IDEyLjY2NjcgNC44ODc4MSAxMi42NjY3IDcuODMzMzNaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgIDwvc3ZnPiAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJtdWx0aSAmJiBmaWx0ZXJlZFZhbHVlcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrXCIgZm9yPVwic2VsZWN0QWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiIFtjaGVja2VkXT1cImNoZWNrSWZBbGxTZWxlY3RlZCgpXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNlbGVjdEFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IEFsbFxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZFZhbHVlc1wiIFtuZ0NsYXNzXT1cIml0ZW0uaXNTZWxlY3RlZCAmJiAhbXVsdGkgPyAnc2VsZWN0ZWQnIDogJydcIiA+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJpdGVtW2lkRmllbGRdICsgaW5zdGFuY2VJZFwiIFtuZ0NsYXNzXT1cIm11bHRpICA/ICcnOiAncHMtMCdcIiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25nQ2xhc3NdPVwibXVsdGkgID8gJyc6ICdkLW5vbmUnXCIgKGNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQsIGl0ZW0pXCIgWyhuZ01vZGVsKV09XCJpdGVtLmlzU2VsZWN0ZWRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbWUtM1wiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIml0ZW1baWRGaWVsZF0gKyBpbnN0YW5jZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW1bc2VhcmNoRmllbGRdfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgKm5nSWY9XCIhZmlsdGVyZWRWYWx1ZXM/Lmxlbmd0aFwiID5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgPk5vIGRhdGEgZm91bmQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD4gIFxyXG4gICAgPC9kaXY+ICBcclxuICAgXHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { NavigationEnd } from '@angular/router';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "tango-app-ui-global";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
export class LayoutBuilderComponent {
|
|
8
|
+
router;
|
|
9
|
+
pageInfo;
|
|
10
|
+
currentRoute;
|
|
11
|
+
routerSub;
|
|
12
|
+
type = 'create';
|
|
13
|
+
constructor(router, pageInfo) {
|
|
14
|
+
this.router = router;
|
|
15
|
+
this.pageInfo = pageInfo;
|
|
16
|
+
}
|
|
17
|
+
ngOnDestroy() {
|
|
18
|
+
this.routerSub.unsubscribe();
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.currentRoute = this.router.url;
|
|
22
|
+
if (this.currentRoute.startsWith('/manage/planogram/layout-builder/create')) {
|
|
23
|
+
this.type = 'create';
|
|
24
|
+
}
|
|
25
|
+
else if (this.currentRoute.startsWith('/manage/planogram/layout-builder/summary')) {
|
|
26
|
+
this.type = 'summary';
|
|
27
|
+
}
|
|
28
|
+
this.routerSub = this.router.events.subscribe((event) => {
|
|
29
|
+
if (event instanceof NavigationEnd) {
|
|
30
|
+
this.currentRoute = event.urlAfterRedirects;
|
|
31
|
+
if (this.currentRoute.startsWith('/manage/planogram/layout-builder/create')) {
|
|
32
|
+
this.type = 'create';
|
|
33
|
+
}
|
|
34
|
+
else if (this.currentRoute.startsWith('/manage/planogram/layout-builder/summary')) {
|
|
35
|
+
this.type = 'summary';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
this.setPageData();
|
|
40
|
+
}
|
|
41
|
+
setPageData() {
|
|
42
|
+
this.pageInfo.setTitle("Create Store Layout");
|
|
43
|
+
this.pageInfo.setDescription("");
|
|
44
|
+
this.pageInfo.setBreadcrumbs([
|
|
45
|
+
{ title: "Planogram", path: "/manage/planogram/store-layout", isActive: false, isSeparator: false },
|
|
46
|
+
{ title: "Planogram", path: "/manage/planogram/store-layout", isActive: false, isSeparator: true },
|
|
47
|
+
]);
|
|
48
|
+
}
|
|
49
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutBuilderComponent, deps: [{ token: i1.Router }, { token: i2.PageInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutBuilderComponent, selector: "lib-layout-builder", ngImport: i0, template: "<div class=\"c-card\">\r\n <div *ngIf=\"type === 'create'\" class=\"active-dot\">\r\n 1\r\n </div>\r\n <div style=\"width: 8px;\" ></div>\r\n <div *ngIf=\"type === 'summary'\" class=\"success-dot me-2\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\">\r\n <path d=\"M9 2L3.5 7.5L1 5\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> \r\n </div> \r\n <div [ngClass]=\"type === 'create' ? 'active-txt' : 'success-txt'\" class=\" me-4\">\r\n Create layout\r\n </div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"103\" height=\"2\" viewBox=\"0 0 103 2\" fill=\"none\">\r\n <path d=\"M0 1H103\" stroke=\"#98A2B3\" stroke-width=\"1.5\" />\r\n </svg>\r\n <div [ngClass]=\"type === 'summary' ? 'active-dot' : 'inactive-dot'\" class=\" me-2\">\r\n 2\r\n </div>\r\n <div [ngClass]=\"type === 'summary' ? 'active-txt' : 'inactive-txt'\">\r\n Summary\r\n </div>\r\n</div>\r\n<router-outlet></router-outlet>", styles: [".c-card{display:flex;padding:20px;justify-content:center;align-items:center;border-radius:12px;background:#fff;margin-bottom:18px}.c-card .active-txt{color:#1d2939;font-size:14px;font-weight:600;line-height:20px}.c-card .inactive-txt{color:#98a2b3;font-size:12px;font-weight:400;line-height:18px}.c-card .success-txt{color:#1d2939;font-size:14px;font-weight:400;line-height:20px}.c-card .active-dot{color:#fff;font-size:12px;font-weight:600;line-height:18px;width:20px;height:20px;flex-shrink:0;background-color:#1d2939;border-radius:50%;display:flex;align-items:center;justify-content:center}.c-card .inactive-dot{color:#fff;font-size:12px;font-weight:600;line-height:18px;width:20px;height:20px;flex-shrink:0;background-color:#98a2b3;border-radius:50%;display:flex;align-items:center;justify-content:center}.c-card .success-dot{color:#fff;font-size:12px;font-weight:600;line-height:18px;width:20px;height:20px;flex-shrink:0;background-color:#039855;border-radius:50%;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutBuilderComponent, decorators: [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ selector: 'lib-layout-builder', template: "<div class=\"c-card\">\r\n <div *ngIf=\"type === 'create'\" class=\"active-dot\">\r\n 1\r\n </div>\r\n <div style=\"width: 8px;\" ></div>\r\n <div *ngIf=\"type === 'summary'\" class=\"success-dot me-2\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\">\r\n <path d=\"M9 2L3.5 7.5L1 5\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> \r\n </div> \r\n <div [ngClass]=\"type === 'create' ? 'active-txt' : 'success-txt'\" class=\" me-4\">\r\n Create layout\r\n </div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"103\" height=\"2\" viewBox=\"0 0 103 2\" fill=\"none\">\r\n <path d=\"M0 1H103\" stroke=\"#98A2B3\" stroke-width=\"1.5\" />\r\n </svg>\r\n <div [ngClass]=\"type === 'summary' ? 'active-dot' : 'inactive-dot'\" class=\" me-2\">\r\n 2\r\n </div>\r\n <div [ngClass]=\"type === 'summary' ? 'active-txt' : 'inactive-txt'\">\r\n Summary\r\n </div>\r\n</div>\r\n<router-outlet></router-outlet>", styles: [".c-card{display:flex;padding:20px;justify-content:center;align-items:center;border-radius:12px;background:#fff;margin-bottom:18px}.c-card .active-txt{color:#1d2939;font-size:14px;font-weight:600;line-height:20px}.c-card .inactive-txt{color:#98a2b3;font-size:12px;font-weight:400;line-height:18px}.c-card .success-txt{color:#1d2939;font-size:14px;font-weight:400;line-height:20px}.c-card .active-dot{color:#fff;font-size:12px;font-weight:600;line-height:18px;width:20px;height:20px;flex-shrink:0;background-color:#1d2939;border-radius:50%;display:flex;align-items:center;justify-content:center}.c-card .inactive-dot{color:#fff;font-size:12px;font-weight:600;line-height:18px;width:20px;height:20px;flex-shrink:0;background-color:#98a2b3;border-radius:50%;display:flex;align-items:center;justify-content:center}.c-card .success-dot{color:#fff;font-size:12px;font-weight:600;line-height:18px;width:20px;height:20px;flex-shrink:0;background-color:#039855;border-radius:50%;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
55
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.PageInfoService }] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVN4RCxNQUFNLE9BQU8sc0JBQXNCO0lBT1g7SUFBdUI7SUFMM0MsWUFBWSxDQUFPO0lBQ25CLFNBQVMsQ0FBYTtJQUN0QixJQUFJLEdBQXlCLFFBQVEsQ0FBQTtJQUdyQyxZQUFvQixNQUFhLEVBQVUsUUFBd0I7UUFBL0MsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdCO0lBRW5FLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDcEMsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFFO1lBQzFFLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFBO1NBQ3JCO2FBQ0ksSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQywwQ0FBMEMsQ0FBQyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFBO1NBQ3RCO1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0RCxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFBO2dCQUMzQyxJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLHlDQUF5QyxDQUFDLEVBQUM7b0JBQ3pFLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFBO2lCQUNyQjtxQkFDSSxJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLDBDQUEwQyxDQUFDLEVBQUM7b0JBQy9FLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFBO2lCQUN0QjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7SUFFcEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQzNCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBQ25HLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO1NBQ25HLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBN0NRLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDBEQ1ZuQywwbENBdUIrQjs7NEZEYmxCLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxheW91dC1idWlsZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9sYXlvdXQtYnVpbGRlci5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIExheW91dEJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgY3VycmVudFJvdXRlOnN0cmluZ1xyXG4gICAgcm91dGVyU3ViOlN1YnNjcmlwdGlvblxyXG4gICAgdHlwZTogJ2NyZWF0ZScgfCAnc3VtbWFyeScgPSAnY3JlYXRlJ1xyXG5cclxuICBcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOlJvdXRlciwgcHJpdmF0ZSBwYWdlSW5mbzpQYWdlSW5mb1NlcnZpY2Upe1xyXG4gIFxyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgIHRoaXMucm91dGVyU3ViLnVuc3Vic2NyaWJlKClcclxuICAgIH1cclxuICAgIFxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICBpZih0aGlzLmN1cnJlbnRSb3V0ZS5zdGFydHNXaXRoKCcvbWFuYWdlL3BsYW5vZ3JhbS9sYXlvdXQtYnVpbGRlci9jcmVhdGUnKSApe1xyXG4gICAgICAgIHRoaXMudHlwZSA9ICdjcmVhdGUnXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZih0aGlzLmN1cnJlbnRSb3V0ZS5zdGFydHNXaXRoKCcvbWFuYWdlL3BsYW5vZ3JhbS9sYXlvdXQtYnVpbGRlci9zdW1tYXJ5JykgKXtcclxuICAgICAgICB0aGlzLnR5cGUgPSAnc3VtbWFyeSdcclxuICAgICAgfVxyXG4gICAgIHRoaXMucm91dGVyU3ViID0gIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50Um91dGUgPSBldmVudC51cmxBZnRlclJlZGlyZWN0c1xyXG4gICAgICAgICAgaWYodGhpcy5jdXJyZW50Um91dGUuc3RhcnRzV2l0aCgnL21hbmFnZS9wbGFub2dyYW0vbGF5b3V0LWJ1aWxkZXIvY3JlYXRlJykpe1xyXG4gICAgICAgICAgICB0aGlzLnR5cGUgPSAnY3JlYXRlJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZih0aGlzLmN1cnJlbnRSb3V0ZS5zdGFydHNXaXRoKCcvbWFuYWdlL3BsYW5vZ3JhbS9sYXlvdXQtYnVpbGRlci9zdW1tYXJ5Jykpe1xyXG4gICAgICAgICAgICB0aGlzLnR5cGUgPSAnc3VtbWFyeSdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZXRQYWdlRGF0YSgpXHJcbiAgXHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJDcmVhdGUgU3RvcmUgTGF5b3V0XCIpO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKFwiXCIpO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgICB7IHRpdGxlOiBcIlBsYW5vZ3JhbVwiLCBwYXRoOiBcIi9tYW5hZ2UvcGxhbm9ncmFtL3N0b3JlLWxheW91dFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6IFwiUGxhbm9ncmFtXCIsIHBhdGg6IFwiL21hbmFnZS9wbGFub2dyYW0vc3RvcmUtbGF5b3V0XCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfSxcclxuICAgICAgXSk7XHJcbiAgICB9XHJcbiAgXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjLWNhcmRcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnY3JlYXRlJ1wiIGNsYXNzPVwiYWN0aXZlLWRvdFwiPlxyXG4gICAgICAgIDFcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiA4cHg7XCIgPjwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInR5cGUgPT09ICdzdW1tYXJ5J1wiIGNsYXNzPVwic3VjY2Vzcy1kb3QgbWUtMlwiID5cclxuICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDEwIDEwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICA8cGF0aCBkPVwiTTkgMkwzLjUgNy41TDEgNVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICA8L3N2Zz4gICBcclxuICAgIDwvZGl2PiAgICBcclxuICAgIDxkaXYgW25nQ2xhc3NdPVwidHlwZSA9PT0gJ2NyZWF0ZScgPyAnYWN0aXZlLXR4dCcgOiAnc3VjY2Vzcy10eHQnXCIgY2xhc3M9XCIgbWUtNFwiPlxyXG4gICAgICAgIENyZWF0ZSBsYXlvdXRcclxuICAgIDwvZGl2PlxyXG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMDNcIiBoZWlnaHQ9XCIyXCIgdmlld0JveD1cIjAgMCAxMDMgMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk0wIDFIMTAzXCIgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIC8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwidHlwZSA9PT0gJ3N1bW1hcnknID8gJ2FjdGl2ZS1kb3QnIDogJ2luYWN0aXZlLWRvdCdcIiBjbGFzcz1cIiBtZS0yXCI+XHJcbiAgICAgICAgMlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInR5cGUgPT09ICdzdW1tYXJ5JyA/ICdhY3RpdmUtdHh0JyA6ICdpbmFjdGl2ZS10eHQnXCI+XHJcbiAgICAgICAgU3VtbWFyeVxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+Il19
|