tango-app-ui-store-builder 1.2.6 → 1.2.7
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/plano-library/fixture-library/fixture-library.component.mjs +22 -8
- package/esm2022/lib/components/plano-library/fixture-library/popups/create-fixture-modal/create-fixture-modal.component.mjs +13 -4
- package/esm2022/lib/components/plano-tools/cad-files/cad-files.component.mjs +3 -3
- package/esm2022/lib/components/plano-tools/move-bucket/move-bucket.component.mjs +3 -3
- package/esm2022/lib/interfaces/fixture-library.interface.mjs +1 -1
- package/fesm2022/tango-app-ui-store-builder.mjs +38 -16
- package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
- package/lib/components/plano-library/fixture-library/fixture-library.component.d.ts +1 -0
- package/lib/components/plano-library/fixture-library/popups/create-fixture-modal/create-fixture-modal.component.d.ts +5 -0
- package/lib/interfaces/fixture-library.interface.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Injectable, inject,
|
|
2
|
+
import { Component, Injectable, inject, Input, ViewChild, EventEmitter, ChangeDetectionStrategy, HostListener, Output, forwardRef, Pipe, ViewChildren, ChangeDetectorRef, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/router';
|
|
4
4
|
import { NavigationEnd, RouterLink, RouterOutlet, RouterModule } from '@angular/router';
|
|
5
5
|
import * as i2$1 from 'tango-app-ui-global';
|
|
6
6
|
import { GlobalStateService } from 'tango-app-ui-global';
|
|
7
7
|
import * as i5 from '@angular/common';
|
|
8
|
-
import {
|
|
8
|
+
import { DatePipe, CommonModule, NgClass, NgStyle, NgFor, NgIf, TitleCasePipe, UpperCasePipe } from '@angular/common';
|
|
9
9
|
import * as i1$2 from '@angular/forms';
|
|
10
10
|
import { FormControl, FormGroup, FormsModule, FormArray, NG_VALUE_ACCESSOR, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
11
11
|
import * as i7 from '@angular/cdk/drag-drop';
|
|
@@ -25428,9 +25428,17 @@ class CreateFixtureModalComponent {
|
|
|
25428
25428
|
storeBuilderService;
|
|
25429
25429
|
toast;
|
|
25430
25430
|
clientId;
|
|
25431
|
+
countryOptions = [
|
|
25432
|
+
{ id: 'IN', label: 'IN' },
|
|
25433
|
+
{ id: 'SG', label: 'SG' },
|
|
25434
|
+
{ id: 'SA', label: 'SA' },
|
|
25435
|
+
{ id: 'TH', label: 'TH' },
|
|
25436
|
+
{ id: 'AE', label: 'AE' },
|
|
25437
|
+
];
|
|
25431
25438
|
fixtureForm = new FormGroup({
|
|
25432
25439
|
fixtureCategory: new FormControl('', [Validators.required, generalValidator()]),
|
|
25433
|
-
fixtureType: new FormControl('wall', [Validators.required])
|
|
25440
|
+
fixtureType: new FormControl('wall', [Validators.required]),
|
|
25441
|
+
country: new FormControl([], [Validators.required])
|
|
25434
25442
|
});
|
|
25435
25443
|
destroy$ = new Subject();
|
|
25436
25444
|
constructor(activeModal, storeBuilderService, toast) {
|
|
@@ -25469,11 +25477,11 @@ class CreateFixtureModalComponent {
|
|
|
25469
25477
|
this.destroy$.complete();
|
|
25470
25478
|
}
|
|
25471
25479
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateFixtureModalComponent, deps: [{ token: i1$1.NgbActiveModal }, { token: StoreBuilderService }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25472
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreateFixtureModalComponent, selector: "app-create-fixture-modal", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <div class=\"mb-4\">\r\n <h3 class=\"mb-1\">Create fixture</h3>\r\n <p>You can create your fixture from the pre-configured settings.</p>\r\n </div>\r\n\r\n <form [formGroup]=\"fixtureForm\">\r\n <div class=\"mb-5\">\r\n <label for=\"fixtureCategory\" class=\"form-label mb-1\">Fixture name</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n id=\"fixtureCategory\"\r\n formControlName=\"fixtureCategory\"\r\n placeholder=\"Type your fixture name\"\r\n />\r\n <ng-container *ngIf=\"fixtureForm.get('fixtureCategory')?.touched && fixtureForm.get('fixtureCategory')?.invalid\">\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('required')\">\r\n Fixture name is required.\r\n </small>\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('whitespace')\">\r\n Fixture name cannot be only whitespace.\r\n </small>\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('trimSpaces')\">\r\n No leading or trailing whitespace allowed.\r\n </small>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mb-5\">\r\n <h4 class=\"mb-1\">Fixture type</h4>\r\n <p>Choose fixture type based on where it requires to fit into your store.</p>\r\n </div>\r\n\r\n <div class=\"type-container\">\r\n <div\r\n class=\"type-item\"\r\n (click)=\"fixtureForm.get('fixtureType')?.setValue('wall')\"\r\n [class.active]=\"fixtureForm.get('fixtureType')?.value === 'wall'\"\r\n >\r\n <svg\r\n class=\"mb-3\"\r\n width=\"66\"\r\n height=\"67\"\r\n viewBox=\"0 0 66 67\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <rect y=\"0.5\" width=\"66\" height=\"66\" fill=\"url(#pattern0_11_41655)\" />\r\n <defs>\r\n <pattern id=\"pattern0_11_41655\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_11_41655\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image\r\n id=\"image0_11_41655\"\r\n width=\"512\"\r\n height=\"512\"\r\n preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\"\r\n />\r\n </defs>\r\n </svg>\r\n <h5>Wall Fixture</h5>\r\n </div>\r\n\r\n <div\r\n class=\"type-item\"\r\n (click)=\"fixtureForm.get('fixtureType')?.setValue('floor')\"\r\n [class.active]=\"fixtureForm.get('fixtureType')?.value === 'floor'\"\r\n >\r\n <svg\r\n class=\"mb-3\"\r\n width=\"72\"\r\n height=\"73\"\r\n viewBox=\"0 0 72 73\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <rect y=\"0.5\" width=\"72\" height=\"72\" fill=\"url(#pattern0_11_41659)\" />\r\n <defs>\r\n <pattern id=\"pattern0_11_41659\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_11_41659\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image\r\n id=\"image0_11_41659\"\r\n width=\"512\"\r\n height=\"512\"\r\n preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\"\r\n />\r\n </defs>\r\n </svg>\r\n <h5>Floor Fixture</h5>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-actions\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" (click)=\"onProceed()\" [disabled]=\"!fixtureForm.valid\">Proceed</button>\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.type-container{display:flex;justify-content:stretch;gap:16px;margin-bottom:24px}.type-item{width:100%;padding:30px;background:#fff;border:2px solid #d0d5dd;border-radius:6px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all ease .2s;box-shadow:0 8px 8px -4px #fff0;box-shadow:0 20px 24px -4px #fff0}.type-item:hover{cursor:pointer}.type-item.active{border:2px solid #00a3ff;box-shadow:0 8px 8px -4px #10182808;box-shadow:0 20px 24px -4px #10182814}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
25480
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreateFixtureModalComponent, selector: "app-create-fixture-modal", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <div class=\"mb-4\">\r\n <h3 class=\"mb-1\">Create fixture</h3>\r\n <p>You can create your fixture from the pre-configured settings.</p>\r\n </div>\r\n\r\n <form [formGroup]=\"fixtureForm\">\r\n <div class=\"mb-5\">\r\n <label for=\"fixtureCategory\" class=\"form-label mb-1\">Fixture name</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n id=\"fixtureCategory\"\r\n formControlName=\"fixtureCategory\"\r\n placeholder=\"Type your fixture name\"\r\n />\r\n <ng-container *ngIf=\"fixtureForm.get('fixtureCategory')?.touched && fixtureForm.get('fixtureCategory')?.invalid\">\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('required')\">\r\n Fixture name is required.\r\n </small>\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('whitespace')\">\r\n Fixture name cannot be only whitespace.\r\n </small>\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('trimSpaces')\">\r\n No leading or trailing whitespace allowed.\r\n </small>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mb-5\">\r\n <label for=\"country\" class=\"form-label mb-1\">Country</label>\r\n <multiselect-chip-dropdown\r\n [items]=\"countryOptions\"\r\n [idField]=\"'id'\"\r\n [nameField]=\"'label'\"\r\n [placeholder]=\"'Select countries'\"\r\n formControlName=\"country\"\r\n ></multiselect-chip-dropdown>\r\n <ng-container *ngIf=\"fixtureForm.get('country')?.touched && fixtureForm.get('country')?.invalid\">\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('country')?.hasError('required')\">\r\n Select at least one country.\r\n </small>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mb-5\">\r\n <h4 class=\"mb-1\">Fixture type</h4>\r\n <p>Choose fixture type based on where it requires to fit into your store.</p>\r\n </div>\r\n\r\n <div class=\"type-container\">\r\n <div\r\n class=\"type-item\"\r\n (click)=\"fixtureForm.get('fixtureType')?.setValue('wall')\"\r\n [class.active]=\"fixtureForm.get('fixtureType')?.value === 'wall'\"\r\n >\r\n <svg\r\n class=\"mb-3\"\r\n width=\"66\"\r\n height=\"67\"\r\n viewBox=\"0 0 66 67\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <rect y=\"0.5\" width=\"66\" height=\"66\" fill=\"url(#pattern0_11_41655)\" />\r\n <defs>\r\n <pattern id=\"pattern0_11_41655\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_11_41655\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image\r\n id=\"image0_11_41655\"\r\n width=\"512\"\r\n height=\"512\"\r\n preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\"\r\n />\r\n </defs>\r\n </svg>\r\n <h5>Wall Fixture</h5>\r\n </div>\r\n\r\n <div\r\n class=\"type-item\"\r\n (click)=\"fixtureForm.get('fixtureType')?.setValue('floor')\"\r\n [class.active]=\"fixtureForm.get('fixtureType')?.value === 'floor'\"\r\n >\r\n <svg\r\n class=\"mb-3\"\r\n width=\"72\"\r\n height=\"73\"\r\n viewBox=\"0 0 72 73\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <rect y=\"0.5\" width=\"72\" height=\"72\" fill=\"url(#pattern0_11_41659)\" />\r\n <defs>\r\n <pattern id=\"pattern0_11_41659\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_11_41659\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image\r\n id=\"image0_11_41659\"\r\n width=\"512\"\r\n height=\"512\"\r\n preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\"\r\n />\r\n </defs>\r\n </svg>\r\n <h5>Floor Fixture</h5>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-actions\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" (click)=\"onProceed()\" [disabled]=\"!fixtureForm.valid\">Proceed</button>\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.type-container{display:flex;justify-content:stretch;gap:16px;margin-bottom:24px}.type-item{width:100%;padding:30px;background:#fff;border:2px solid #d0d5dd;border-radius:6px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all ease .2s;box-shadow:0 8px 8px -4px #fff0;box-shadow:0 20px 24px -4px #fff0}.type-item:hover{cursor:pointer}.type-item.active{border:2px solid #00a3ff;box-shadow:0 8px 8px -4px #10182808;box-shadow:0 20px 24px -4px #10182814}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MultiselectChipDropdownComponent, selector: "multiselect-chip-dropdown", inputs: ["idField", "nameField", "placeholder", "items", "search", "searchField", "maxSelection", "compact", "extraActionLabel", "extraActionActive"], outputs: ["extraActionClick"] }] });
|
|
25473
25481
|
}
|
|
25474
25482
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateFixtureModalComponent, decorators: [{
|
|
25475
25483
|
type: Component,
|
|
25476
|
-
args: [{ selector: 'app-create-fixture-modal', template: "<div class=\"modal-wrapper\">\r\n <div class=\"mb-4\">\r\n <h3 class=\"mb-1\">Create fixture</h3>\r\n <p>You can create your fixture from the pre-configured settings.</p>\r\n </div>\r\n\r\n <form [formGroup]=\"fixtureForm\">\r\n <div class=\"mb-5\">\r\n <label for=\"fixtureCategory\" class=\"form-label mb-1\">Fixture name</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n id=\"fixtureCategory\"\r\n formControlName=\"fixtureCategory\"\r\n placeholder=\"Type your fixture name\"\r\n />\r\n <ng-container *ngIf=\"fixtureForm.get('fixtureCategory')?.touched && fixtureForm.get('fixtureCategory')?.invalid\">\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('required')\">\r\n Fixture name is required.\r\n </small>\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('whitespace')\">\r\n Fixture name cannot be only whitespace.\r\n </small>\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('trimSpaces')\">\r\n No leading or trailing whitespace allowed.\r\n </small>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mb-5\">\r\n <h4 class=\"mb-1\">Fixture type</h4>\r\n <p>Choose fixture type based on where it requires to fit into your store.</p>\r\n </div>\r\n\r\n <div class=\"type-container\">\r\n <div\r\n class=\"type-item\"\r\n (click)=\"fixtureForm.get('fixtureType')?.setValue('wall')\"\r\n [class.active]=\"fixtureForm.get('fixtureType')?.value === 'wall'\"\r\n >\r\n <svg\r\n class=\"mb-3\"\r\n width=\"66\"\r\n height=\"67\"\r\n viewBox=\"0 0 66 67\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <rect y=\"0.5\" width=\"66\" height=\"66\" fill=\"url(#pattern0_11_41655)\" />\r\n <defs>\r\n <pattern id=\"pattern0_11_41655\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_11_41655\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image\r\n id=\"image0_11_41655\"\r\n width=\"512\"\r\n height=\"512\"\r\n preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\"\r\n />\r\n </defs>\r\n </svg>\r\n <h5>Wall Fixture</h5>\r\n </div>\r\n\r\n <div\r\n class=\"type-item\"\r\n (click)=\"fixtureForm.get('fixtureType')?.setValue('floor')\"\r\n [class.active]=\"fixtureForm.get('fixtureType')?.value === 'floor'\"\r\n >\r\n <svg\r\n class=\"mb-3\"\r\n width=\"72\"\r\n height=\"73\"\r\n viewBox=\"0 0 72 73\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <rect y=\"0.5\" width=\"72\" height=\"72\" fill=\"url(#pattern0_11_41659)\" />\r\n <defs>\r\n <pattern id=\"pattern0_11_41659\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_11_41659\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image\r\n id=\"image0_11_41659\"\r\n width=\"512\"\r\n height=\"512\"\r\n preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\"\r\n />\r\n </defs>\r\n </svg>\r\n <h5>Floor Fixture</h5>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-actions\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" (click)=\"onProceed()\" [disabled]=\"!fixtureForm.valid\">Proceed</button>\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.type-container{display:flex;justify-content:stretch;gap:16px;margin-bottom:24px}.type-item{width:100%;padding:30px;background:#fff;border:2px solid #d0d5dd;border-radius:6px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all ease .2s;box-shadow:0 8px 8px -4px #fff0;box-shadow:0 20px 24px -4px #fff0}.type-item:hover{cursor:pointer}.type-item.active{border:2px solid #00a3ff;box-shadow:0 8px 8px -4px #10182808;box-shadow:0 20px 24px -4px #10182814}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"] }]
|
|
25484
|
+
args: [{ selector: 'app-create-fixture-modal', template: "<div class=\"modal-wrapper\">\r\n <div class=\"mb-4\">\r\n <h3 class=\"mb-1\">Create fixture</h3>\r\n <p>You can create your fixture from the pre-configured settings.</p>\r\n </div>\r\n\r\n <form [formGroup]=\"fixtureForm\">\r\n <div class=\"mb-5\">\r\n <label for=\"fixtureCategory\" class=\"form-label mb-1\">Fixture name</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n id=\"fixtureCategory\"\r\n formControlName=\"fixtureCategory\"\r\n placeholder=\"Type your fixture name\"\r\n />\r\n <ng-container *ngIf=\"fixtureForm.get('fixtureCategory')?.touched && fixtureForm.get('fixtureCategory')?.invalid\">\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('required')\">\r\n Fixture name is required.\r\n </small>\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('whitespace')\">\r\n Fixture name cannot be only whitespace.\r\n </small>\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('fixtureCategory')?.hasError('trimSpaces')\">\r\n No leading or trailing whitespace allowed.\r\n </small>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mb-5\">\r\n <label for=\"country\" class=\"form-label mb-1\">Country</label>\r\n <multiselect-chip-dropdown\r\n [items]=\"countryOptions\"\r\n [idField]=\"'id'\"\r\n [nameField]=\"'label'\"\r\n [placeholder]=\"'Select countries'\"\r\n formControlName=\"country\"\r\n ></multiselect-chip-dropdown>\r\n <ng-container *ngIf=\"fixtureForm.get('country')?.touched && fixtureForm.get('country')?.invalid\">\r\n <small class=\"text-danger\" *ngIf=\"fixtureForm.get('country')?.hasError('required')\">\r\n Select at least one country.\r\n </small>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mb-5\">\r\n <h4 class=\"mb-1\">Fixture type</h4>\r\n <p>Choose fixture type based on where it requires to fit into your store.</p>\r\n </div>\r\n\r\n <div class=\"type-container\">\r\n <div\r\n class=\"type-item\"\r\n (click)=\"fixtureForm.get('fixtureType')?.setValue('wall')\"\r\n [class.active]=\"fixtureForm.get('fixtureType')?.value === 'wall'\"\r\n >\r\n <svg\r\n class=\"mb-3\"\r\n width=\"66\"\r\n height=\"67\"\r\n viewBox=\"0 0 66 67\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <rect y=\"0.5\" width=\"66\" height=\"66\" fill=\"url(#pattern0_11_41655)\" />\r\n <defs>\r\n <pattern id=\"pattern0_11_41655\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_11_41655\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image\r\n id=\"image0_11_41655\"\r\n width=\"512\"\r\n height=\"512\"\r\n preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\"\r\n />\r\n </defs>\r\n </svg>\r\n <h5>Wall Fixture</h5>\r\n </div>\r\n\r\n <div\r\n class=\"type-item\"\r\n (click)=\"fixtureForm.get('fixtureType')?.setValue('floor')\"\r\n [class.active]=\"fixtureForm.get('fixtureType')?.value === 'floor'\"\r\n >\r\n <svg\r\n class=\"mb-3\"\r\n width=\"72\"\r\n height=\"73\"\r\n viewBox=\"0 0 72 73\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <rect y=\"0.5\" width=\"72\" height=\"72\" fill=\"url(#pattern0_11_41659)\" />\r\n <defs>\r\n <pattern id=\"pattern0_11_41659\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_11_41659\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image\r\n id=\"image0_11_41659\"\r\n width=\"512\"\r\n height=\"512\"\r\n preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\"\r\n />\r\n </defs>\r\n </svg>\r\n <h5>Floor Fixture</h5>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-actions\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" (click)=\"onProceed()\" [disabled]=\"!fixtureForm.valid\">Proceed</button>\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.type-container{display:flex;justify-content:stretch;gap:16px;margin-bottom:24px}.type-item{width:100%;padding:30px;background:#fff;border:2px solid #d0d5dd;border-radius:6px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all ease .2s;box-shadow:0 8px 8px -4px #fff0;box-shadow:0 20px 24px -4px #fff0}.type-item:hover{cursor:pointer}.type-item.active{border:2px solid #00a3ff;box-shadow:0 8px 8px -4px #10182808;box-shadow:0 20px 24px -4px #10182814}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"] }]
|
|
25477
25485
|
}], ctorParameters: () => [{ type: i1$1.NgbActiveModal }, { type: StoreBuilderService }, { type: i4.ToastService }], propDecorators: { clientId: [{
|
|
25478
25486
|
type: Input
|
|
25479
25487
|
}] } });
|
|
@@ -25511,12 +25519,23 @@ class FixtureLibraryComponent {
|
|
|
25511
25519
|
{ text: "Wall", id: 'wall' },
|
|
25512
25520
|
{ text: "Floor", id: 'floor' },
|
|
25513
25521
|
]
|
|
25522
|
+
},
|
|
25523
|
+
{
|
|
25524
|
+
Description: 'Country',
|
|
25525
|
+
Issues: [
|
|
25526
|
+
{ text: "IN", id: 'IN' },
|
|
25527
|
+
{ text: "SG", id: 'SG' },
|
|
25528
|
+
{ text: "SA", id: 'SA' },
|
|
25529
|
+
{ text: "TH", id: 'TH' },
|
|
25530
|
+
{ text: "AE", id: 'AE' },
|
|
25531
|
+
]
|
|
25514
25532
|
}
|
|
25515
25533
|
];
|
|
25516
25534
|
appliedFilters = {
|
|
25517
25535
|
type: [],
|
|
25518
25536
|
status: [],
|
|
25519
|
-
size: []
|
|
25537
|
+
size: [],
|
|
25538
|
+
country: []
|
|
25520
25539
|
};
|
|
25521
25540
|
isFilterApplied = false;
|
|
25522
25541
|
isPageLoading = true;
|
|
@@ -25613,6 +25632,7 @@ class FixtureLibraryComponent {
|
|
|
25613
25632
|
templatesTagged: item.templateId.length,
|
|
25614
25633
|
status: item.status,
|
|
25615
25634
|
id: item._id,
|
|
25635
|
+
country: item.country || [],
|
|
25616
25636
|
};
|
|
25617
25637
|
});
|
|
25618
25638
|
if (this.totalItems < 10) {
|
|
@@ -25657,7 +25677,8 @@ class FixtureLibraryComponent {
|
|
|
25657
25677
|
filter: {
|
|
25658
25678
|
type: [],
|
|
25659
25679
|
status: [],
|
|
25660
|
-
size: []
|
|
25680
|
+
size: [],
|
|
25681
|
+
country: []
|
|
25661
25682
|
},
|
|
25662
25683
|
export: true,
|
|
25663
25684
|
emptyDownload: true
|
|
@@ -25734,9 +25755,10 @@ class FixtureLibraryComponent {
|
|
|
25734
25755
|
applyFilters(event) {
|
|
25735
25756
|
const status = event[0]?.Issues?.map((i) => i?.id);
|
|
25736
25757
|
const type = event[1]?.Issues?.map((i) => i?.id);
|
|
25737
|
-
const
|
|
25738
|
-
|
|
25739
|
-
this.
|
|
25758
|
+
const country = event[2]?.Issues?.map((i) => i?.id);
|
|
25759
|
+
const size = event[3]?.Issues?.map((i) => i?.id);
|
|
25760
|
+
this.isFilterApplied = (status || type || size || country);
|
|
25761
|
+
this.appliedFilters = { type, status, size, country };
|
|
25740
25762
|
this.offset = 1;
|
|
25741
25763
|
this.getFixturesList();
|
|
25742
25764
|
}
|
|
@@ -25838,11 +25860,11 @@ class FixtureLibraryComponent {
|
|
|
25838
25860
|
this.libSub?.unsubscribe();
|
|
25839
25861
|
}
|
|
25840
25862
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FixtureLibraryComponent, deps: [{ token: i1$1.NgbModal }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: StoreBuilderService }, { token: i2$1.GlobalStateService }, { token: i4.ToastService }, { token: i2$1.PageInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25841
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FixtureLibraryComponent, selector: "lib-fixture-library", ngImport: i0, template: "<section id=\"fixture-library\" class=\"content-wrapper\">\r\n <!-- Fixture view header -->\r\n <div\r\n *ngIf=\"fixturesList.length !== 0 || searchTerm || isFilterApplied\"\r\n class=\"d-flex justify-content-between align-items-center mb-5\"\r\n >\r\n <div>\r\n <h4>Fixtures List</h4>\r\n <span>{{ totalItems }} - Total Fixtures</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div style=\"position: relative\">\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"searchTerm\"\r\n (change)=\"onSearch()\"\r\n style=\"padding-left: 3rem; padding-right: 3rem\"\r\n class=\"form-control\"\r\n name=\"search\"\r\n autocomplete=\"off\"\r\n placeholder=\"Search\"\r\n />\r\n\r\n <span class=\"search-icon\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <circle cx=\"8\" cy=\"8\" r=\"6\" stroke=\"currentColor\" stroke-width=\"2\" />\r\n <line x1=\"13\" y1=\"13\" x2=\"16\" y2=\"16\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <button *ngIf=\"searchTerm\" type=\"button\" aria-label=\"Clear\" (click)=\"searchTerm = ''; onSearch()\" class=\"clear-search\">\r\n <svg width=\"64px\" height=\"64px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <path d=\"M9 9L15 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <path d=\"M15 9L9 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n ></circle>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <button type=\"button\" (click)=\"onClickCreateFixtureLibrary()\" class=\"btn btn-primary d-inline-flex align-items-center me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\"\r\n stroke=\"white\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <span class=\"ms-2 text-white\">Create </span>\r\n </button>\r\n\r\n <!-- <button type=\"button\" (click)=\"openBulkUploadModal()\" class=\"btn btn-outline text-nowrap\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Bulk Upload\r\n </button> -->\r\n\r\n <button\r\n type=\"button\"\r\n [disabled]=\"fixturesList.length <= 0\"\r\n (click)=\"exportFixtureList()\"\r\n class=\"btn btn-outline text-nowrap\"\r\n >\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Export\r\n </button>\r\n\r\n <lib-filters [dataObject]=\"filterObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div class=\"toggle-button me-2\" [ngClass]=\"{ selected: viewMode === 'list' }\" (click)=\"toggleViewMode('list')\">\r\n <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.24078 4.54639H15.8906M6.24078 9.00017H15.8906M6.24078 13.4539H15.8906M2.5293 4.54639H2.53672M2.5293 9.00017H2.53672M2.5293 13.4539H2.53672\"\r\n [attr.stroke]=\"viewMode === 'list' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"toggle-button\" [ngClass]=\"{ selected: viewMode === 'grid' }\" (click)=\"toggleViewMode('grid')\">\r\n <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M7.91886 2.31934H2.72278V7.51541H7.91886V2.31934Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.0841 2.31934H10.888V7.51541H16.0841V2.31934Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.0841 10.4846H10.888V15.6807H16.0841V10.4846Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M7.91886 10.4846H2.72278V15.6807H7.91886V10.4846Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isPageLoading; else contentPart\">\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 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 </div>\r\n\r\n <ng-template #contentPart>\r\n <div *ngIf=\"fixturesList.length === 0\">\r\n @if(searchTerm || isFilterApplied){\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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/Nodata1.svg\" alt=\"\" />\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for matching filter and search</div>\r\n </div>\r\n </div>\r\n </div>\r\n }@else{\r\n <div class=\"row g-0 py-12\">\r\n <!-- Single Fixture Creation -->\r\n <div class=\"col-md-12 pe-md-3\">\r\n <div class=\"d-flex flex-column align-items-center p-10\">\r\n <div class=\"text-center mb-8\">\r\n <div class=\"mb-5\">\r\n <svg\r\n style=\"width: 80px; height: 80px\"\r\n width=\"56\"\r\n height=\"56\"\r\n viewBox=\"0 0 56 56\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path\r\n d=\"M28 24V32M24 28H32M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\"\r\n stroke=\"#00A3FF\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h3 class=\"card-title mb-3\">Create fixture</h3>\r\n <p class=\"card-tagline mb-0\">Start creating fixture manually through step by step</p>\r\n </div>\r\n <button\r\n (click)=\"onClickCreateFixtureLibrary()\"\r\n type=\"button\"\r\n class=\"btn btn-outline d-inline-flex align-items-center\"\r\n >\r\n <svg class=\"me-2\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M12 5V19M5 12H19\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Create\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Bulk Fixture Creation -->\r\n <!-- <div class=\"col-md-6 ps-md-3 border-start\">\r\n <div class=\"d-flex flex-column align-items-center p-10\">\r\n <div class=\"text-center mb-8\">\r\n <div class=\"mb-5\">\r\n <svg\r\n style=\"width: 80px; height: 80px\"\r\n width=\"56\"\r\n height=\"56\"\r\n viewBox=\"0 0 95 94\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect x=\"7.5\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7.5\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\" stroke-width=\"13.3333\" />\r\n <path\r\n d=\"M62.5 52V58.6667C62.5 59.5507 62.1488 60.3986 61.5237 61.0237C60.8986 61.6488 60.0507 62 59.1667 62H35.8333C34.9493 62 34.1014 61.6488 33.4763 61.0237C32.8512 60.3986 32.5 59.5507 32.5 58.6667V52M55.8333 40.3333L47.5 32M47.5 32L39.1667 40.3333M47.5 32V52\"\r\n stroke=\"#00A3FF\"\r\n stroke-width=\"3.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h3 class=\"card-title mb-3\">Create fixture using excel template</h3>\r\n <p class=\"card-tagline mb-0\">You can create a single or a multiple fixtures using the template below</p>\r\n </div>\r\n <div class=\"d-flex flex-column gap-2 mb-6\" style=\"width: fit-content\">\r\n <p class=\"card-description mb-0\">\r\n Step1 - <a class=\"download-link fw-medium\" (click)=\"downloadEmptyTemplate()\">Download the template here</a>\r\n </p>\r\n <p class=\"card-description mb-0\">Step2 - Add your data to the Template File</p>\r\n <p class=\"card-description mb-0\">Step3 - Upload it below for processing</p>\r\n </div>\r\n <button class=\"btn btn-primary d-inline-flex align-items-center\" (click)=\"openBulkUploadModal()\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Upload\r\n </button>\r\n </div>\r\n </div> -->\r\n </div>\r\n }\r\n </div>\r\n\r\n <div *ngIf=\"fixturesList.length != 0\">\r\n <!-- Fixture list view -->\r\n <section id=\"list-view\" *ngIf=\"viewMode === 'list'; else gridView\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <span (click)=\"onSortTable('fixtureCategory')\" class=\"cursor-pointer\">\r\n Fixture name\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureCategory' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureCategory' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('fixtureType')\" class=\"cursor-pointer\">\r\n Type\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureType' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureType' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureWidth')\" class=\"cursor-pointer\">\r\n Width\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureWidth' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureWidth' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureLength')\" class=\"cursor-pointer\">\r\n Height\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureLength' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureLength' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('shelfConfig')\" class=\"cursor-pointer\">\r\n Partitions\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'shelfConfig' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'shelfConfig' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n\r\n <svg\r\n placement=\"start\"\r\n ngbTooltip=\"Partitions are shelves/sections/panel\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n class=\"ms-2\"\r\n >\r\n <g clip-path=\"url(#clip0_1_25644)\">\r\n <path\r\n d=\"M9 12V9M9 6H9.0075M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1_25644\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('templateCount')\" class=\"cursor-pointer\">\r\n Templates tagged\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'templateCount' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'templateCount' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">Status</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let fixture of fixturesList\">\r\n <td style=\"max-width: 300px\">\r\n <div class=\"d-flex align-items-center\">\r\n <!-- <div class=\"thumbnail\"></div> -->\r\n <a\r\n [routerLink]=\"['/manage/planogram/create-library-fixture']\"\r\n [queryParams]=\"{ fixtureId: fixture.id }\"\r\n class=\"text-decoration-underline ellipsis\"\r\n [ngbTooltip]=\"fixture.name + ' - ' + fixture.width + 'ft'\"\r\n >\r\n {{ fixture.name }} - {{ fixture.width }}ft\r\n </a>\r\n </div>\r\n </td>\r\n <td>{{ fixture.type | titlecase }}</td>\r\n <td class=\"text-center\">{{ fixture.width }}ft</td>\r\n <td class=\"text-center\">{{ fixture.height }}ft</td>\r\n <td class=\"text-center\">{{ fixture.partitions }}</td>\r\n <td class=\"text-center\">{{ fixture.templatesTagged }}</td>\r\n <td class=\"text-center\">\r\n <div class=\"badge\" [ngClass]=\"fixture.status\" placement=\"start\" [ngbTooltip]=\"getTooltipText(fixture.status)\">\r\n {{ fixture.status | titlecase }}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"dropdown\">\r\n <button class=\"btn btn-link p-0\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <ng-container *ngTemplateOutlet=\"verticalDots\"></ng-container>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a class=\"dropdown-item cursor-pointer\" (click)=\"onEdit(fixture.id, fixture.templatesTagged)\"> Edit </a>\r\n </li>\r\n <li><a class=\"dropdown-item cursor-pointer\" (click)=\"onDuplicate(fixture.id)\">Duplicate</a></li>\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer text-danger\"\r\n (click)=\"onDelete(fixture.id, fixture.templatesTagged)\"\r\n >\r\n Delete\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </section>\r\n\r\n <!-- Fixture grid view -->\r\n <ng-template #gridView>\r\n <section id=\"grid-view\" class=\"table-responsive\">\r\n <div class=\"row gx-6 gy-4 m-0\">\r\n <div class=\"col-md-4\" *ngFor=\"let fixture of fixturesList\">\r\n <div class=\"card\" (click)=\"onClickCard($event, fixture)\">\r\n <div class=\"card-img\">\r\n <div class=\"card-action dropdown\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"btn btn-light\" style=\"padding: 12px 21px !important\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"18\" viewBox=\"0 0 4 18\" fill=\"none\">\r\n <path\r\n d=\"M1 9C1 9.55228 1.44771 10 2 10C2.55228 10 3 9.55228 3 9C3 8.44772 2.55228 8 2 8C1.44771 8 1 8.44772 1 9Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.999999 16C0.999999 16.5523 1.44771 17 2 17C2.55228 17 3 16.5523 3 16C3 15.4477 2.55228 15 2 15C1.44771 15 0.999999 15.4477 0.999999 16Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer\"\r\n (click)=\"onEdit(fixture.id, fixture.templatesTagged); $event.stopPropagation()\"\r\n >\r\n Edit\r\n </a>\r\n </li>\r\n <li>\r\n <a class=\"dropdown-item cursor-pointer\" (click)=\"onDuplicate(fixture.id); $event.stopPropagation()\">\r\n Duplicate\r\n </a>\r\n </li>\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer text-danger\"\r\n (click)=\"onDelete(fixture.id, fixture.templatesTagged); $event.stopPropagation()\"\r\n >\r\n Delete\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <h3 class=\"ellipsis\" [ngbTooltip]=\"fixture.name + ' - ' + fixture.width + 'ft'\">\r\n {{ fixture.name }}\r\n </h3>\r\n <div class=\"badge\" [ngClass]=\"fixture.status\" placement=\"start\" [ngbTooltip]=\"getTooltipText(fixture.status)\">\r\n {{ fixture.status | titlecase }}\r\n </div>\r\n </div>\r\n <div class=\"card-tagline\">\r\n {{ fixture.width }}ft x {{ fixture.height }}ft <span>•</span> {{ fixture.partitions }}\r\n <span>•</span>\r\n {{ fixture.type }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </ng-template>\r\n\r\n <!-- Pagination -->\r\n <lib-pagination\r\n class=\"text-start\"\r\n [itemsPerPage]=\"limit\"\r\n [currentPage]=\"offset\"\r\n [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n ></lib-pagination>\r\n </div>\r\n </ng-template>\r\n</section>\r\n\r\n<ng-template #verticalDots>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"18\" viewBox=\"0 0 4 18\" fill=\"none\">\r\n <path\r\n d=\"M1 9C1 9.55228 1.44771 10 2 10C2.55228 10 3 9.55228 3 9C3 8.44772 2.55228 8 2 8C1.44771 8 1 8.44772 1 9Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.999999 16C0.999999 16.5523 1.44771 17 2 17C2.55228 17 3 16.5523 3 16C3 15.4477 2.55228 15 2 15C1.44771 15 0.999999 15.4477 0.999999 16Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: [".nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext[_ngcontent-ng-c2141490359]{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.table-responsive{min-height:calc(100vh - 495px)}.download-link{color:var(--Primary-800, #008edf);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;cursor:pointer}h3.card-title{color:#101828;font-size:18px;font-weight:600;line-height:28px}p.card-tagline{color:#101828;font-size:14px;font-weight:500;line-height:20px}p.card-description{color:#344054;font-size:14px;font-weight:400;line-height:20px}#list-view .thumbnail{height:40px;width:40px;background:#f2f4f7;margin-right:12px;border-radius:8px}#list-view td{vertical-align:middle}#grid-view .card{box-shadow:0 4px 10px #0000000d;border:1px solid rgb(223,225,231);background:#fff;border-radius:12px;padding:12px;height:100%;transition:all .2s ease}#grid-view .card:hover{cursor:pointer;box-shadow:0 10px 10px #0001;transition:all .2s ease}#grid-view .card-img{margin-bottom:12px;background:#d0d5dd;height:200px;border-radius:6px}#grid-view .card-action{position:absolute;top:20px;right:20px}#grid-view .card-tagline{color:#475467;font-weight:500;font-size:14px;line-height:20px}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7;color:#344054}.badge.cluster{background:#f2f4f7;color:#344054}.badge.published{background:#ecfdf3;color:#027a48}.badge.yet-to-publish{background:#f8f9fc;color:#363f72}.indicator{border-radius:16px;padding:2px 8px;display:flex;justify-content:center;align-items:center;white-space:nowrap;width:fit-content;text-align:center;font-size:14px;font-weight:500}.indicator.short{height:14px!important;width:14px!important;border-radius:50%!important;padding:0!important}.indicator.yetToComplete{background:#f2f4f7;color:#667085}.indicator.yetToComplete path{fill:#667085}.indicator.draft{background:#f2f4f7;color:#667085}.indicator.draft path{fill:#667085}.indicator.yetToAssign{background:#eaecf5;color:#344054}.indicator.yetToAssign path{fill:#344054}.indicator.taskAssigned{background:#e0eaff;color:#7a5af8}.indicator.taskAssigned path{fill:#7a5af8}.indicator.reviewPending{background:#fef0c7;color:#f79009}.indicator.reviewPending path{fill:#f79009}.indicator.allocationPending{background:#fef0c7;color:#f79009}.indicator.allocationPending path{fill:#f79009}.indicator.flagged{background:var(--Error-50, #fef3f2);color:var(--Error-700, #b42318)}.indicator.completed{background:#d1fadf;color:#12b76a}.indicator.completed path{fill:#12b76a}.toggle-button{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;background:#fff;border:.89px solid rgb(208,213,221);box-shadow:0 .89px 1.78px #1018280d;transition:all ease .3s}.toggle-button:hover{cursor:pointer}.toggle-button.selected{transition:all ease .3s;background:#eaf8ff;box-shadow:0 0 0 3.56px #d5effe!important;border:.89px solid rgb(234,248,255)}.disabled-click{pointer-events:none;cursor:not-allowed!important;opacity:.6}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#888;display:flex;align-items:center;height:1.5rem}.clear-search{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;height:1.5rem;width:1.5rem}.restrict-interaction{-webkit-user-select:none;user-select:none;pointer-events:none}.btn .spinner{height:22px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:4px;stroke:#071437;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}.header{background:#fff;padding:12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.btn{padding:.775rem 1.5rem!important;font-size:1.1rem!important}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;padding:2px 8px;border-radius:16px}.badge.active{color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7!important;color:#344054!important}.badge.draft{color:#009bf3;background:#eaf8ff}.builder{height:75vh}.builder .cols{background:#fff;border-radius:12px;padding:24px 24px 12px;max-height:75vh;overflow-y:auto}.shelf-container{border-radius:8px;background:var(--Gray-50, #f9fafb);padding:8px 16px;margin-bottom:12px}.counter-container{display:flex;align-items:center;justify-content:center;border-radius:8px;background-color:#fff;padding:10px;border:.49px solid #d0d5dd}.counter-container span{margin:0 18px;font-weight:500;font-size:14px;text-align:center;vertical-align:middle;width:18px}.disable-counter{color:var(--bs-gray-500)!important;background-color:var(--bs-gray-200)!important;border-color:var(--bs-gray-300)!important;pointer-events:none;opacity:1}.disabled-click{pointer-events:none;opacity:.85}.wall-viewport{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:30px;max-width:345px;min-width:234px;text-align:center}.wall-viewport .wrapper{width:100%;max-width:345px}.wall-viewport .header-info,.wall-viewport .footer-info,.wall-viewport .body-info{width:100%;border:2px solid #f2f4f7;border-bottom:4px solid #ffffff;background:#f2f4f7;max-width:230px;display:flex;align-items:center;justify-content:center;justify-content:start;padding:12px;gap:4px}.wall-viewport .header-info p,.wall-viewport .footer-info p,.wall-viewport .body-info p{margin:0}.wall-viewport .header-info{margin-top:40px}.wall-viewport .sub-footer{border:1px solid #98a2b3;height:100%}.wall-viewport .header-block,.wall-viewport .footer-block{border:1px solid #98a2b3;height:95px;padding:8px;background-color:#f2f4f7;width:100%;display:flex;justify-content:center;align-items:center}.wall-viewport .header-block p,.wall-viewport .footer-block p{color:var(--Gray-600, #475467);font-size:18px;font-weight:600;white-space:normal;word-wrap:break-word;margin:0;background-color:#f2f4f7}.wall-viewport .body-block{width:100%}.wall-viewport .body-block .shelfContainer .block{border:1px solid #98a2b3;border-top:none}.wall-viewport .body-block .shelfContainer:first-child .block{border-top:1px solid #98a2b3}.wall-viewport .body-block .block{padding:10px;width:100%;max-width:345px;overflow-x:auto;min-height:52px}.wall-viewport .body-block .tray,.wall-viewport .body-block .shelf{display:flex;gap:4px}.wall-viewport .body-block .tray .product,.wall-viewport .body-block .shelf .product{border:1px solid rgba(152,162,179,.2901960784);min-width:50px}.wall-viewport .body-block .tray .product{min-height:20px}.wall-viewport .body-block .shelf .product{min-height:30px}.wall-viewport .body-block .vmonly-placeholder{background-image:repeating-linear-gradient(45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px),repeating-linear-gradient(-45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px)}.wall-viewport .body-block .hide-product{border-color:transparent!important}.wall-viewport .body-block .hide-scroll{overflow-x:hidden!important}.horizontal-dimension{display:flex;align-items:center;justify-content:center;height:30px;position:relative}.horizontal-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.horizontal-dimension .arrow.left{transform:rotate(180deg);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .arrow.right{transform:rotate(0);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;height:1px}.horizontal-dimension .line span{position:absolute;top:-12px;color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:0 4px}.vertical-dimension{display:flex;flex-direction:column;align-items:center;width:30px;position:relative}.vertical-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.vertical-dimension .arrow.up{transform:rotate(-90deg);margin-top:20px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .arrow.down{transform:rotate(90deg);margin-bottom:26px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;width:1px}.vertical-dimension .line span{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:2px 4px}.info-card{padding:12px;background:#fff;border:1px solid #d0d5dd;border-radius:8px;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a}.info-card h3{font-weight:600;font-size:18px;line-height:28px;vertical-align:middle}.info-card p{font-weight:500;font-size:14px;line-height:20px;color:#667085;margin:0}.checkbox input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #d0d5dd)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.checkbox input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00a3ff)!important;background-color:var(--primary-50, #eaf8ff)}.checkbox input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00a3ff;border-right:2px solid #00a3ff;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.nav-pills{display:inline-flex;gap:4px}.nav-pills .nav-item .nav-link{border-radius:0;color:#667085;font-size:14px;font-weight:500;padding:8px 16px;border:none}.nav-pills .nav-item .nav-link:hover{background-color:#00000005}.nav-pills .nav-item .nav-link.active{background-color:#eaf8ff;color:#009bf3;border-bottom:3px solid #009bf3}.content-wrapper{background:#fff;border-radius:12px;min-height:calc(100vh - 400px);height:100%;padding:16px 24px;display:flex;flex-direction:column}.loader .shimmer{height:150px}.filter-tab{border:1px solid rgb(234,236,240);background:#fff;box-shadow:0 1px 2px #1018280d;border-radius:8px;padding:18px;transition:all ease .2s}.filter-tab:hover{cursor:pointer}.filter-tab.selected{background:#f6fcff;border:1px solid rgb(107,202,255);box-shadow:0 1px 2px #1018280d}.filter-tab h3{color:#000;font-size:20px;font-weight:600;line-height:30px;margin:0}.filter-tab p{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;margin:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i4.FiltersComponent, selector: "lib-filters", inputs: ["dataObject"], outputs: ["appliedFilters"] }, { kind: "directive", type: i1$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
|
|
25863
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FixtureLibraryComponent, selector: "lib-fixture-library", ngImport: i0, template: "<section id=\"fixture-library\" class=\"content-wrapper\">\r\n <!-- Fixture view header -->\r\n <div\r\n *ngIf=\"fixturesList.length !== 0 || searchTerm || isFilterApplied\"\r\n class=\"d-flex justify-content-between align-items-center mb-5\"\r\n >\r\n <div>\r\n <h4>Fixtures List</h4>\r\n <span>{{ totalItems }} - Total Fixtures</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div style=\"position: relative\">\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"searchTerm\"\r\n (change)=\"onSearch()\"\r\n style=\"padding-left: 3rem; padding-right: 3rem\"\r\n class=\"form-control\"\r\n name=\"search\"\r\n autocomplete=\"off\"\r\n placeholder=\"Search\"\r\n />\r\n\r\n <span class=\"search-icon\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <circle cx=\"8\" cy=\"8\" r=\"6\" stroke=\"currentColor\" stroke-width=\"2\" />\r\n <line x1=\"13\" y1=\"13\" x2=\"16\" y2=\"16\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <button *ngIf=\"searchTerm\" type=\"button\" aria-label=\"Clear\" (click)=\"searchTerm = ''; onSearch()\" class=\"clear-search\">\r\n <svg width=\"64px\" height=\"64px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <path d=\"M9 9L15 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <path d=\"M15 9L9 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n ></circle>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <button type=\"button\" (click)=\"onClickCreateFixtureLibrary()\" class=\"btn btn-primary d-inline-flex align-items-center me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\"\r\n stroke=\"white\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <span class=\"ms-2 text-white\">Create </span>\r\n </button>\r\n\r\n <!-- <button type=\"button\" (click)=\"openBulkUploadModal()\" class=\"btn btn-outline text-nowrap\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Bulk Upload\r\n </button> -->\r\n\r\n <button\r\n type=\"button\"\r\n [disabled]=\"fixturesList.length <= 0\"\r\n (click)=\"exportFixtureList()\"\r\n class=\"btn btn-outline text-nowrap\"\r\n >\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Export\r\n </button>\r\n\r\n <lib-filters [dataObject]=\"filterObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div class=\"toggle-button me-2\" [ngClass]=\"{ selected: viewMode === 'list' }\" (click)=\"toggleViewMode('list')\">\r\n <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.24078 4.54639H15.8906M6.24078 9.00017H15.8906M6.24078 13.4539H15.8906M2.5293 4.54639H2.53672M2.5293 9.00017H2.53672M2.5293 13.4539H2.53672\"\r\n [attr.stroke]=\"viewMode === 'list' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"toggle-button\" [ngClass]=\"{ selected: viewMode === 'grid' }\" (click)=\"toggleViewMode('grid')\">\r\n <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M7.91886 2.31934H2.72278V7.51541H7.91886V2.31934Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.0841 2.31934H10.888V7.51541H16.0841V2.31934Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.0841 10.4846H10.888V15.6807H16.0841V10.4846Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M7.91886 10.4846H2.72278V15.6807H7.91886V10.4846Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isPageLoading; else contentPart\">\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 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 </div>\r\n\r\n <ng-template #contentPart>\r\n <div *ngIf=\"fixturesList.length === 0\">\r\n @if(searchTerm || isFilterApplied){\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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/Nodata1.svg\" alt=\"\" />\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for matching filter and search</div>\r\n </div>\r\n </div>\r\n </div>\r\n }@else{\r\n <div class=\"row g-0 py-12\">\r\n <!-- Single Fixture Creation -->\r\n <div class=\"col-md-12 pe-md-3\">\r\n <div class=\"d-flex flex-column align-items-center p-10\">\r\n <div class=\"text-center mb-8\">\r\n <div class=\"mb-5\">\r\n <svg\r\n style=\"width: 80px; height: 80px\"\r\n width=\"56\"\r\n height=\"56\"\r\n viewBox=\"0 0 56 56\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path\r\n d=\"M28 24V32M24 28H32M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\"\r\n stroke=\"#00A3FF\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h3 class=\"card-title mb-3\">Create fixture</h3>\r\n <p class=\"card-tagline mb-0\">Start creating fixture manually through step by step</p>\r\n </div>\r\n <button\r\n (click)=\"onClickCreateFixtureLibrary()\"\r\n type=\"button\"\r\n class=\"btn btn-outline d-inline-flex align-items-center\"\r\n >\r\n <svg class=\"me-2\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M12 5V19M5 12H19\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Create\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Bulk Fixture Creation -->\r\n <!-- <div class=\"col-md-6 ps-md-3 border-start\">\r\n <div class=\"d-flex flex-column align-items-center p-10\">\r\n <div class=\"text-center mb-8\">\r\n <div class=\"mb-5\">\r\n <svg\r\n style=\"width: 80px; height: 80px\"\r\n width=\"56\"\r\n height=\"56\"\r\n viewBox=\"0 0 95 94\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect x=\"7.5\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7.5\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\" stroke-width=\"13.3333\" />\r\n <path\r\n d=\"M62.5 52V58.6667C62.5 59.5507 62.1488 60.3986 61.5237 61.0237C60.8986 61.6488 60.0507 62 59.1667 62H35.8333C34.9493 62 34.1014 61.6488 33.4763 61.0237C32.8512 60.3986 32.5 59.5507 32.5 58.6667V52M55.8333 40.3333L47.5 32M47.5 32L39.1667 40.3333M47.5 32V52\"\r\n stroke=\"#00A3FF\"\r\n stroke-width=\"3.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h3 class=\"card-title mb-3\">Create fixture using excel template</h3>\r\n <p class=\"card-tagline mb-0\">You can create a single or a multiple fixtures using the template below</p>\r\n </div>\r\n <div class=\"d-flex flex-column gap-2 mb-6\" style=\"width: fit-content\">\r\n <p class=\"card-description mb-0\">\r\n Step1 - <a class=\"download-link fw-medium\" (click)=\"downloadEmptyTemplate()\">Download the template here</a>\r\n </p>\r\n <p class=\"card-description mb-0\">Step2 - Add your data to the Template File</p>\r\n <p class=\"card-description mb-0\">Step3 - Upload it below for processing</p>\r\n </div>\r\n <button class=\"btn btn-primary d-inline-flex align-items-center\" (click)=\"openBulkUploadModal()\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Upload\r\n </button>\r\n </div>\r\n </div> -->\r\n </div>\r\n }\r\n </div>\r\n\r\n <div *ngIf=\"fixturesList.length != 0\">\r\n <!-- Fixture list view -->\r\n <section id=\"list-view\" *ngIf=\"viewMode === 'list'; else gridView\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <span (click)=\"onSortTable('fixtureCategory')\" class=\"cursor-pointer\">\r\n Fixture name\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureCategory' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureCategory' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('fixtureType')\" class=\"cursor-pointer\">\r\n Type\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureType' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureType' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th>Country</th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureWidth')\" class=\"cursor-pointer\">\r\n Width\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureWidth' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureWidth' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureLength')\" class=\"cursor-pointer\">\r\n Height\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureLength' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureLength' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('shelfConfig')\" class=\"cursor-pointer\">\r\n Partitions\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'shelfConfig' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'shelfConfig' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n\r\n <svg\r\n placement=\"start\"\r\n ngbTooltip=\"Partitions are shelves/sections/panel\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n class=\"ms-2\"\r\n >\r\n <g clip-path=\"url(#clip0_1_25644)\">\r\n <path\r\n d=\"M9 12V9M9 6H9.0075M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1_25644\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('templateCount')\" class=\"cursor-pointer\">\r\n Templates tagged\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'templateCount' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'templateCount' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">Status</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let fixture of fixturesList\">\r\n <td style=\"max-width: 300px\">\r\n <div class=\"d-flex align-items-center\">\r\n <!-- <div class=\"thumbnail\"></div> -->\r\n <a\r\n [routerLink]=\"['/manage/planogram/create-library-fixture']\"\r\n [queryParams]=\"{ fixtureId: fixture.id }\"\r\n class=\"text-decoration-underline ellipsis\"\r\n [ngbTooltip]=\"fixture.name + ' - ' + fixture.width + 'ft'\"\r\n >\r\n {{ fixture.name }} - {{ fixture.width }}ft\r\n </a>\r\n </div>\r\n </td>\r\n <td>{{ fixture.type | titlecase }}</td>\r\n <td>\r\n <div *ngIf=\"fixture.country?.length; else noCountry\" class=\"country-chip-list\">\r\n <span class=\"country-chip\" *ngFor=\"let c of fixture.country\">{{ c }}</span>\r\n </div>\r\n <ng-template #noCountry>-</ng-template>\r\n </td>\r\n <td class=\"text-center\">{{ fixture.width }}ft</td>\r\n <td class=\"text-center\">{{ fixture.height }}ft</td>\r\n <td class=\"text-center\">{{ fixture.partitions }}</td>\r\n <td class=\"text-center\">{{ fixture.templatesTagged }}</td>\r\n <td class=\"text-center\">\r\n <div class=\"badge\" [ngClass]=\"fixture.status\" placement=\"start\" [ngbTooltip]=\"getTooltipText(fixture.status)\">\r\n {{ fixture.status | titlecase }}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"dropdown\">\r\n <button class=\"btn btn-link p-0\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <ng-container *ngTemplateOutlet=\"verticalDots\"></ng-container>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a class=\"dropdown-item cursor-pointer\" (click)=\"onEdit(fixture.id, fixture.templatesTagged)\"> Edit </a>\r\n </li>\r\n <li><a class=\"dropdown-item cursor-pointer\" (click)=\"onDuplicate(fixture.id)\">Duplicate</a></li>\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer text-danger\"\r\n (click)=\"onDelete(fixture.id, fixture.templatesTagged)\"\r\n >\r\n Delete\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </section>\r\n\r\n <!-- Fixture grid view -->\r\n <ng-template #gridView>\r\n <section id=\"grid-view\" class=\"table-responsive\">\r\n <div class=\"row gx-6 gy-4 m-0\">\r\n <div class=\"col-md-4\" *ngFor=\"let fixture of fixturesList\">\r\n <div class=\"card\" (click)=\"onClickCard($event, fixture)\">\r\n <div class=\"card-img\">\r\n <div class=\"card-action dropdown\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"btn btn-light\" style=\"padding: 12px 21px !important\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"18\" viewBox=\"0 0 4 18\" fill=\"none\">\r\n <path\r\n d=\"M1 9C1 9.55228 1.44771 10 2 10C2.55228 10 3 9.55228 3 9C3 8.44772 2.55228 8 2 8C1.44771 8 1 8.44772 1 9Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.999999 16C0.999999 16.5523 1.44771 17 2 17C2.55228 17 3 16.5523 3 16C3 15.4477 2.55228 15 2 15C1.44771 15 0.999999 15.4477 0.999999 16Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer\"\r\n (click)=\"onEdit(fixture.id, fixture.templatesTagged); $event.stopPropagation()\"\r\n >\r\n Edit\r\n </a>\r\n </li>\r\n <li>\r\n <a class=\"dropdown-item cursor-pointer\" (click)=\"onDuplicate(fixture.id); $event.stopPropagation()\">\r\n Duplicate\r\n </a>\r\n </li>\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer text-danger\"\r\n (click)=\"onDelete(fixture.id, fixture.templatesTagged); $event.stopPropagation()\"\r\n >\r\n Delete\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <h3 class=\"ellipsis\" [ngbTooltip]=\"fixture.name + ' - ' + fixture.width + 'ft'\">\r\n {{ fixture.name }}\r\n </h3>\r\n <div class=\"badge\" [ngClass]=\"fixture.status\" placement=\"start\" [ngbTooltip]=\"getTooltipText(fixture.status)\">\r\n {{ fixture.status | titlecase }}\r\n </div>\r\n </div>\r\n <div class=\"card-tagline\">\r\n {{ fixture.width }}ft x {{ fixture.height }}ft <span>•</span> {{ fixture.partitions }}\r\n <span>•</span>\r\n {{ fixture.type }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </ng-template>\r\n\r\n <!-- Pagination -->\r\n <lib-pagination\r\n class=\"text-start\"\r\n [itemsPerPage]=\"limit\"\r\n [currentPage]=\"offset\"\r\n [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n ></lib-pagination>\r\n </div>\r\n </ng-template>\r\n</section>\r\n\r\n<ng-template #verticalDots>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"18\" viewBox=\"0 0 4 18\" fill=\"none\">\r\n <path\r\n d=\"M1 9C1 9.55228 1.44771 10 2 10C2.55228 10 3 9.55228 3 9C3 8.44772 2.55228 8 2 8C1.44771 8 1 8.44772 1 9Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.999999 16C0.999999 16.5523 1.44771 17 2 17C2.55228 17 3 16.5523 3 16C3 15.4477 2.55228 15 2 15C1.44771 15 0.999999 15.4477 0.999999 16Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: [".nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext[_ngcontent-ng-c2141490359]{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.table-responsive{min-height:calc(100vh - 495px)}.download-link{color:var(--Primary-800, #008edf);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;cursor:pointer}h3.card-title{color:#101828;font-size:18px;font-weight:600;line-height:28px}p.card-tagline{color:#101828;font-size:14px;font-weight:500;line-height:20px}p.card-description{color:#344054;font-size:14px;font-weight:400;line-height:20px}#list-view .thumbnail{height:40px;width:40px;background:#f2f4f7;margin-right:12px;border-radius:8px}#list-view td{vertical-align:middle}#grid-view .card{box-shadow:0 4px 10px #0000000d;border:1px solid rgb(223,225,231);background:#fff;border-radius:12px;padding:12px;height:100%;transition:all .2s ease}#grid-view .card:hover{cursor:pointer;box-shadow:0 10px 10px #0001;transition:all .2s ease}#grid-view .card-img{margin-bottom:12px;background:#d0d5dd;height:200px;border-radius:6px}#grid-view .card-action{position:absolute;top:20px;right:20px}#grid-view .card-tagline{color:#475467;font-weight:500;font-size:14px;line-height:20px}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7;color:#344054}.badge.cluster{background:#f2f4f7;color:#344054}.badge.published{background:#ecfdf3;color:#027a48}.badge.yet-to-publish{background:#f8f9fc;color:#363f72}.indicator{border-radius:16px;padding:2px 8px;display:flex;justify-content:center;align-items:center;white-space:nowrap;width:fit-content;text-align:center;font-size:14px;font-weight:500}.indicator.short{height:14px!important;width:14px!important;border-radius:50%!important;padding:0!important}.indicator.yetToComplete{background:#f2f4f7;color:#667085}.indicator.yetToComplete path{fill:#667085}.indicator.draft{background:#f2f4f7;color:#667085}.indicator.draft path{fill:#667085}.indicator.yetToAssign{background:#eaecf5;color:#344054}.indicator.yetToAssign path{fill:#344054}.indicator.taskAssigned{background:#e0eaff;color:#7a5af8}.indicator.taskAssigned path{fill:#7a5af8}.indicator.reviewPending{background:#fef0c7;color:#f79009}.indicator.reviewPending path{fill:#f79009}.indicator.allocationPending{background:#fef0c7;color:#f79009}.indicator.allocationPending path{fill:#f79009}.indicator.flagged{background:var(--Error-50, #fef3f2);color:var(--Error-700, #b42318)}.indicator.completed{background:#d1fadf;color:#12b76a}.indicator.completed path{fill:#12b76a}.toggle-button{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;background:#fff;border:.89px solid rgb(208,213,221);box-shadow:0 .89px 1.78px #1018280d;transition:all ease .3s}.toggle-button:hover{cursor:pointer}.toggle-button.selected{transition:all ease .3s;background:#eaf8ff;box-shadow:0 0 0 3.56px #d5effe!important;border:.89px solid rgb(234,248,255)}.disabled-click{pointer-events:none;cursor:not-allowed!important;opacity:.6}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#888;display:flex;align-items:center;height:1.5rem}.clear-search{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;height:1.5rem;width:1.5rem}.restrict-interaction{-webkit-user-select:none;user-select:none;pointer-events:none}.btn .spinner{height:22px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:4px;stroke:#071437;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}.header{background:#fff;padding:12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.btn{padding:.775rem 1.5rem!important;font-size:1.1rem!important}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;padding:2px 8px;border-radius:16px}.badge.active{color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7!important;color:#344054!important}.badge.draft{color:#009bf3;background:#eaf8ff}.builder{height:75vh}.builder .cols{background:#fff;border-radius:12px;padding:24px 24px 12px;max-height:75vh;overflow-y:auto}.shelf-container{border-radius:8px;background:var(--Gray-50, #f9fafb);padding:8px 16px;margin-bottom:12px}.counter-container{display:flex;align-items:center;justify-content:center;border-radius:8px;background-color:#fff;padding:10px;border:.49px solid #d0d5dd}.counter-container span{margin:0 18px;font-weight:500;font-size:14px;text-align:center;vertical-align:middle;width:18px}.disable-counter{color:var(--bs-gray-500)!important;background-color:var(--bs-gray-200)!important;border-color:var(--bs-gray-300)!important;pointer-events:none;opacity:1}.disabled-click{pointer-events:none;opacity:.85}.wall-viewport{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:30px;max-width:345px;min-width:234px;text-align:center}.wall-viewport .wrapper{width:100%;max-width:345px}.wall-viewport .header-info,.wall-viewport .footer-info,.wall-viewport .body-info{width:100%;border:2px solid #f2f4f7;border-bottom:4px solid #ffffff;background:#f2f4f7;max-width:230px;display:flex;align-items:center;justify-content:center;justify-content:start;padding:12px;gap:4px}.wall-viewport .header-info p,.wall-viewport .footer-info p,.wall-viewport .body-info p{margin:0}.wall-viewport .header-info{margin-top:40px}.wall-viewport .sub-footer{border:1px solid #98a2b3;height:100%}.wall-viewport .header-block,.wall-viewport .footer-block{border:1px solid #98a2b3;height:95px;padding:8px;background-color:#f2f4f7;width:100%;display:flex;justify-content:center;align-items:center}.wall-viewport .header-block p,.wall-viewport .footer-block p{color:var(--Gray-600, #475467);font-size:18px;font-weight:600;white-space:normal;word-wrap:break-word;margin:0;background-color:#f2f4f7}.wall-viewport .body-block{width:100%}.wall-viewport .body-block .shelfContainer .block{border:1px solid #98a2b3;border-top:none}.wall-viewport .body-block .shelfContainer:first-child .block{border-top:1px solid #98a2b3}.wall-viewport .body-block .block{padding:10px;width:100%;max-width:345px;overflow-x:auto;min-height:52px}.wall-viewport .body-block .tray,.wall-viewport .body-block .shelf{display:flex;gap:4px}.wall-viewport .body-block .tray .product,.wall-viewport .body-block .shelf .product{border:1px solid rgba(152,162,179,.2901960784);min-width:50px}.wall-viewport .body-block .tray .product{min-height:20px}.wall-viewport .body-block .shelf .product{min-height:30px}.wall-viewport .body-block .vmonly-placeholder{background-image:repeating-linear-gradient(45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px),repeating-linear-gradient(-45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px)}.wall-viewport .body-block .hide-product{border-color:transparent!important}.wall-viewport .body-block .hide-scroll{overflow-x:hidden!important}.horizontal-dimension{display:flex;align-items:center;justify-content:center;height:30px;position:relative}.horizontal-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.horizontal-dimension .arrow.left{transform:rotate(180deg);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .arrow.right{transform:rotate(0);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;height:1px}.horizontal-dimension .line span{position:absolute;top:-12px;color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:0 4px}.vertical-dimension{display:flex;flex-direction:column;align-items:center;width:30px;position:relative}.vertical-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.vertical-dimension .arrow.up{transform:rotate(-90deg);margin-top:20px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .arrow.down{transform:rotate(90deg);margin-bottom:26px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;width:1px}.vertical-dimension .line span{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:2px 4px}.info-card{padding:12px;background:#fff;border:1px solid #d0d5dd;border-radius:8px;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a}.info-card h3{font-weight:600;font-size:18px;line-height:28px;vertical-align:middle}.info-card p{font-weight:500;font-size:14px;line-height:20px;color:#667085;margin:0}.checkbox input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #d0d5dd)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.checkbox input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00a3ff)!important;background-color:var(--primary-50, #eaf8ff)}.checkbox input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00a3ff;border-right:2px solid #00a3ff;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.nav-pills{display:inline-flex;gap:4px}.nav-pills .nav-item .nav-link{border-radius:0;color:#667085;font-size:14px;font-weight:500;padding:8px 16px;border:none}.nav-pills .nav-item .nav-link:hover{background-color:#00000005}.nav-pills .nav-item .nav-link.active{background-color:#eaf8ff;color:#009bf3;border-bottom:3px solid #009bf3}.content-wrapper{background:#fff;border-radius:12px;min-height:calc(100vh - 400px);height:100%;padding:16px 24px;display:flex;flex-direction:column}.loader .shimmer{height:150px}.filter-tab{border:1px solid rgb(234,236,240);background:#fff;box-shadow:0 1px 2px #1018280d;border-radius:8px;padding:18px;transition:all ease .2s}.filter-tab:hover{cursor:pointer}.filter-tab.selected{background:#f6fcff;border:1px solid rgb(107,202,255);box-shadow:0 1px 2px #1018280d}.filter-tab h3{color:#000;font-size:20px;font-weight:600;line-height:30px;margin:0}.filter-tab p{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;margin:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.country-chip-list{display:flex;flex-wrap:wrap;gap:4px}.country-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:16px;background:var(--Gray-100, #f2f4f7);color:var(--Gray-700, #344054);font-size:12px;font-weight:500;line-height:18px}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i4.FiltersComponent, selector: "lib-filters", inputs: ["dataObject"], outputs: ["appliedFilters"] }, { kind: "directive", type: i1$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
|
|
25842
25864
|
}
|
|
25843
25865
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FixtureLibraryComponent, decorators: [{
|
|
25844
25866
|
type: Component,
|
|
25845
|
-
args: [{ selector: 'lib-fixture-library', template: "<section id=\"fixture-library\" class=\"content-wrapper\">\r\n <!-- Fixture view header -->\r\n <div\r\n *ngIf=\"fixturesList.length !== 0 || searchTerm || isFilterApplied\"\r\n class=\"d-flex justify-content-between align-items-center mb-5\"\r\n >\r\n <div>\r\n <h4>Fixtures List</h4>\r\n <span>{{ totalItems }} - Total Fixtures</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div style=\"position: relative\">\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"searchTerm\"\r\n (change)=\"onSearch()\"\r\n style=\"padding-left: 3rem; padding-right: 3rem\"\r\n class=\"form-control\"\r\n name=\"search\"\r\n autocomplete=\"off\"\r\n placeholder=\"Search\"\r\n />\r\n\r\n <span class=\"search-icon\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <circle cx=\"8\" cy=\"8\" r=\"6\" stroke=\"currentColor\" stroke-width=\"2\" />\r\n <line x1=\"13\" y1=\"13\" x2=\"16\" y2=\"16\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <button *ngIf=\"searchTerm\" type=\"button\" aria-label=\"Clear\" (click)=\"searchTerm = ''; onSearch()\" class=\"clear-search\">\r\n <svg width=\"64px\" height=\"64px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <path d=\"M9 9L15 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <path d=\"M15 9L9 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n ></circle>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <button type=\"button\" (click)=\"onClickCreateFixtureLibrary()\" class=\"btn btn-primary d-inline-flex align-items-center me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\"\r\n stroke=\"white\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <span class=\"ms-2 text-white\">Create </span>\r\n </button>\r\n\r\n <!-- <button type=\"button\" (click)=\"openBulkUploadModal()\" class=\"btn btn-outline text-nowrap\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Bulk Upload\r\n </button> -->\r\n\r\n <button\r\n type=\"button\"\r\n [disabled]=\"fixturesList.length <= 0\"\r\n (click)=\"exportFixtureList()\"\r\n class=\"btn btn-outline text-nowrap\"\r\n >\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Export\r\n </button>\r\n\r\n <lib-filters [dataObject]=\"filterObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div class=\"toggle-button me-2\" [ngClass]=\"{ selected: viewMode === 'list' }\" (click)=\"toggleViewMode('list')\">\r\n <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.24078 4.54639H15.8906M6.24078 9.00017H15.8906M6.24078 13.4539H15.8906M2.5293 4.54639H2.53672M2.5293 9.00017H2.53672M2.5293 13.4539H2.53672\"\r\n [attr.stroke]=\"viewMode === 'list' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"toggle-button\" [ngClass]=\"{ selected: viewMode === 'grid' }\" (click)=\"toggleViewMode('grid')\">\r\n <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M7.91886 2.31934H2.72278V7.51541H7.91886V2.31934Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.0841 2.31934H10.888V7.51541H16.0841V2.31934Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.0841 10.4846H10.888V15.6807H16.0841V10.4846Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M7.91886 10.4846H2.72278V15.6807H7.91886V10.4846Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isPageLoading; else contentPart\">\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 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 </div>\r\n\r\n <ng-template #contentPart>\r\n <div *ngIf=\"fixturesList.length === 0\">\r\n @if(searchTerm || isFilterApplied){\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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/Nodata1.svg\" alt=\"\" />\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for matching filter and search</div>\r\n </div>\r\n </div>\r\n </div>\r\n }@else{\r\n <div class=\"row g-0 py-12\">\r\n <!-- Single Fixture Creation -->\r\n <div class=\"col-md-12 pe-md-3\">\r\n <div class=\"d-flex flex-column align-items-center p-10\">\r\n <div class=\"text-center mb-8\">\r\n <div class=\"mb-5\">\r\n <svg\r\n style=\"width: 80px; height: 80px\"\r\n width=\"56\"\r\n height=\"56\"\r\n viewBox=\"0 0 56 56\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path\r\n d=\"M28 24V32M24 28H32M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\"\r\n stroke=\"#00A3FF\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h3 class=\"card-title mb-3\">Create fixture</h3>\r\n <p class=\"card-tagline mb-0\">Start creating fixture manually through step by step</p>\r\n </div>\r\n <button\r\n (click)=\"onClickCreateFixtureLibrary()\"\r\n type=\"button\"\r\n class=\"btn btn-outline d-inline-flex align-items-center\"\r\n >\r\n <svg class=\"me-2\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M12 5V19M5 12H19\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Create\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Bulk Fixture Creation -->\r\n <!-- <div class=\"col-md-6 ps-md-3 border-start\">\r\n <div class=\"d-flex flex-column align-items-center p-10\">\r\n <div class=\"text-center mb-8\">\r\n <div class=\"mb-5\">\r\n <svg\r\n style=\"width: 80px; height: 80px\"\r\n width=\"56\"\r\n height=\"56\"\r\n viewBox=\"0 0 95 94\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect x=\"7.5\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7.5\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\" stroke-width=\"13.3333\" />\r\n <path\r\n d=\"M62.5 52V58.6667C62.5 59.5507 62.1488 60.3986 61.5237 61.0237C60.8986 61.6488 60.0507 62 59.1667 62H35.8333C34.9493 62 34.1014 61.6488 33.4763 61.0237C32.8512 60.3986 32.5 59.5507 32.5 58.6667V52M55.8333 40.3333L47.5 32M47.5 32L39.1667 40.3333M47.5 32V52\"\r\n stroke=\"#00A3FF\"\r\n stroke-width=\"3.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h3 class=\"card-title mb-3\">Create fixture using excel template</h3>\r\n <p class=\"card-tagline mb-0\">You can create a single or a multiple fixtures using the template below</p>\r\n </div>\r\n <div class=\"d-flex flex-column gap-2 mb-6\" style=\"width: fit-content\">\r\n <p class=\"card-description mb-0\">\r\n Step1 - <a class=\"download-link fw-medium\" (click)=\"downloadEmptyTemplate()\">Download the template here</a>\r\n </p>\r\n <p class=\"card-description mb-0\">Step2 - Add your data to the Template File</p>\r\n <p class=\"card-description mb-0\">Step3 - Upload it below for processing</p>\r\n </div>\r\n <button class=\"btn btn-primary d-inline-flex align-items-center\" (click)=\"openBulkUploadModal()\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Upload\r\n </button>\r\n </div>\r\n </div> -->\r\n </div>\r\n }\r\n </div>\r\n\r\n <div *ngIf=\"fixturesList.length != 0\">\r\n <!-- Fixture list view -->\r\n <section id=\"list-view\" *ngIf=\"viewMode === 'list'; else gridView\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <span (click)=\"onSortTable('fixtureCategory')\" class=\"cursor-pointer\">\r\n Fixture name\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureCategory' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureCategory' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('fixtureType')\" class=\"cursor-pointer\">\r\n Type\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureType' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureType' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureWidth')\" class=\"cursor-pointer\">\r\n Width\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureWidth' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureWidth' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureLength')\" class=\"cursor-pointer\">\r\n Height\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureLength' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureLength' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('shelfConfig')\" class=\"cursor-pointer\">\r\n Partitions\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'shelfConfig' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'shelfConfig' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n\r\n <svg\r\n placement=\"start\"\r\n ngbTooltip=\"Partitions are shelves/sections/panel\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n class=\"ms-2\"\r\n >\r\n <g clip-path=\"url(#clip0_1_25644)\">\r\n <path\r\n d=\"M9 12V9M9 6H9.0075M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1_25644\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('templateCount')\" class=\"cursor-pointer\">\r\n Templates tagged\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'templateCount' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'templateCount' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">Status</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let fixture of fixturesList\">\r\n <td style=\"max-width: 300px\">\r\n <div class=\"d-flex align-items-center\">\r\n <!-- <div class=\"thumbnail\"></div> -->\r\n <a\r\n [routerLink]=\"['/manage/planogram/create-library-fixture']\"\r\n [queryParams]=\"{ fixtureId: fixture.id }\"\r\n class=\"text-decoration-underline ellipsis\"\r\n [ngbTooltip]=\"fixture.name + ' - ' + fixture.width + 'ft'\"\r\n >\r\n {{ fixture.name }} - {{ fixture.width }}ft\r\n </a>\r\n </div>\r\n </td>\r\n <td>{{ fixture.type | titlecase }}</td>\r\n <td class=\"text-center\">{{ fixture.width }}ft</td>\r\n <td class=\"text-center\">{{ fixture.height }}ft</td>\r\n <td class=\"text-center\">{{ fixture.partitions }}</td>\r\n <td class=\"text-center\">{{ fixture.templatesTagged }}</td>\r\n <td class=\"text-center\">\r\n <div class=\"badge\" [ngClass]=\"fixture.status\" placement=\"start\" [ngbTooltip]=\"getTooltipText(fixture.status)\">\r\n {{ fixture.status | titlecase }}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"dropdown\">\r\n <button class=\"btn btn-link p-0\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <ng-container *ngTemplateOutlet=\"verticalDots\"></ng-container>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a class=\"dropdown-item cursor-pointer\" (click)=\"onEdit(fixture.id, fixture.templatesTagged)\"> Edit </a>\r\n </li>\r\n <li><a class=\"dropdown-item cursor-pointer\" (click)=\"onDuplicate(fixture.id)\">Duplicate</a></li>\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer text-danger\"\r\n (click)=\"onDelete(fixture.id, fixture.templatesTagged)\"\r\n >\r\n Delete\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </section>\r\n\r\n <!-- Fixture grid view -->\r\n <ng-template #gridView>\r\n <section id=\"grid-view\" class=\"table-responsive\">\r\n <div class=\"row gx-6 gy-4 m-0\">\r\n <div class=\"col-md-4\" *ngFor=\"let fixture of fixturesList\">\r\n <div class=\"card\" (click)=\"onClickCard($event, fixture)\">\r\n <div class=\"card-img\">\r\n <div class=\"card-action dropdown\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"btn btn-light\" style=\"padding: 12px 21px !important\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"18\" viewBox=\"0 0 4 18\" fill=\"none\">\r\n <path\r\n d=\"M1 9C1 9.55228 1.44771 10 2 10C2.55228 10 3 9.55228 3 9C3 8.44772 2.55228 8 2 8C1.44771 8 1 8.44772 1 9Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.999999 16C0.999999 16.5523 1.44771 17 2 17C2.55228 17 3 16.5523 3 16C3 15.4477 2.55228 15 2 15C1.44771 15 0.999999 15.4477 0.999999 16Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer\"\r\n (click)=\"onEdit(fixture.id, fixture.templatesTagged); $event.stopPropagation()\"\r\n >\r\n Edit\r\n </a>\r\n </li>\r\n <li>\r\n <a class=\"dropdown-item cursor-pointer\" (click)=\"onDuplicate(fixture.id); $event.stopPropagation()\">\r\n Duplicate\r\n </a>\r\n </li>\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer text-danger\"\r\n (click)=\"onDelete(fixture.id, fixture.templatesTagged); $event.stopPropagation()\"\r\n >\r\n Delete\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <h3 class=\"ellipsis\" [ngbTooltip]=\"fixture.name + ' - ' + fixture.width + 'ft'\">\r\n {{ fixture.name }}\r\n </h3>\r\n <div class=\"badge\" [ngClass]=\"fixture.status\" placement=\"start\" [ngbTooltip]=\"getTooltipText(fixture.status)\">\r\n {{ fixture.status | titlecase }}\r\n </div>\r\n </div>\r\n <div class=\"card-tagline\">\r\n {{ fixture.width }}ft x {{ fixture.height }}ft <span>•</span> {{ fixture.partitions }}\r\n <span>•</span>\r\n {{ fixture.type }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </ng-template>\r\n\r\n <!-- Pagination -->\r\n <lib-pagination\r\n class=\"text-start\"\r\n [itemsPerPage]=\"limit\"\r\n [currentPage]=\"offset\"\r\n [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n ></lib-pagination>\r\n </div>\r\n </ng-template>\r\n</section>\r\n\r\n<ng-template #verticalDots>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"18\" viewBox=\"0 0 4 18\" fill=\"none\">\r\n <path\r\n d=\"M1 9C1 9.55228 1.44771 10 2 10C2.55228 10 3 9.55228 3 9C3 8.44772 2.55228 8 2 8C1.44771 8 1 8.44772 1 9Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.999999 16C0.999999 16.5523 1.44771 17 2 17C2.55228 17 3 16.5523 3 16C3 15.4477 2.55228 15 2 15C1.44771 15 0.999999 15.4477 0.999999 16Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: [".nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext[_ngcontent-ng-c2141490359]{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.table-responsive{min-height:calc(100vh - 495px)}.download-link{color:var(--Primary-800, #008edf);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;cursor:pointer}h3.card-title{color:#101828;font-size:18px;font-weight:600;line-height:28px}p.card-tagline{color:#101828;font-size:14px;font-weight:500;line-height:20px}p.card-description{color:#344054;font-size:14px;font-weight:400;line-height:20px}#list-view .thumbnail{height:40px;width:40px;background:#f2f4f7;margin-right:12px;border-radius:8px}#list-view td{vertical-align:middle}#grid-view .card{box-shadow:0 4px 10px #0000000d;border:1px solid rgb(223,225,231);background:#fff;border-radius:12px;padding:12px;height:100%;transition:all .2s ease}#grid-view .card:hover{cursor:pointer;box-shadow:0 10px 10px #0001;transition:all .2s ease}#grid-view .card-img{margin-bottom:12px;background:#d0d5dd;height:200px;border-radius:6px}#grid-view .card-action{position:absolute;top:20px;right:20px}#grid-view .card-tagline{color:#475467;font-weight:500;font-size:14px;line-height:20px}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7;color:#344054}.badge.cluster{background:#f2f4f7;color:#344054}.badge.published{background:#ecfdf3;color:#027a48}.badge.yet-to-publish{background:#f8f9fc;color:#363f72}.indicator{border-radius:16px;padding:2px 8px;display:flex;justify-content:center;align-items:center;white-space:nowrap;width:fit-content;text-align:center;font-size:14px;font-weight:500}.indicator.short{height:14px!important;width:14px!important;border-radius:50%!important;padding:0!important}.indicator.yetToComplete{background:#f2f4f7;color:#667085}.indicator.yetToComplete path{fill:#667085}.indicator.draft{background:#f2f4f7;color:#667085}.indicator.draft path{fill:#667085}.indicator.yetToAssign{background:#eaecf5;color:#344054}.indicator.yetToAssign path{fill:#344054}.indicator.taskAssigned{background:#e0eaff;color:#7a5af8}.indicator.taskAssigned path{fill:#7a5af8}.indicator.reviewPending{background:#fef0c7;color:#f79009}.indicator.reviewPending path{fill:#f79009}.indicator.allocationPending{background:#fef0c7;color:#f79009}.indicator.allocationPending path{fill:#f79009}.indicator.flagged{background:var(--Error-50, #fef3f2);color:var(--Error-700, #b42318)}.indicator.completed{background:#d1fadf;color:#12b76a}.indicator.completed path{fill:#12b76a}.toggle-button{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;background:#fff;border:.89px solid rgb(208,213,221);box-shadow:0 .89px 1.78px #1018280d;transition:all ease .3s}.toggle-button:hover{cursor:pointer}.toggle-button.selected{transition:all ease .3s;background:#eaf8ff;box-shadow:0 0 0 3.56px #d5effe!important;border:.89px solid rgb(234,248,255)}.disabled-click{pointer-events:none;cursor:not-allowed!important;opacity:.6}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#888;display:flex;align-items:center;height:1.5rem}.clear-search{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;height:1.5rem;width:1.5rem}.restrict-interaction{-webkit-user-select:none;user-select:none;pointer-events:none}.btn .spinner{height:22px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:4px;stroke:#071437;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}.header{background:#fff;padding:12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.btn{padding:.775rem 1.5rem!important;font-size:1.1rem!important}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;padding:2px 8px;border-radius:16px}.badge.active{color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7!important;color:#344054!important}.badge.draft{color:#009bf3;background:#eaf8ff}.builder{height:75vh}.builder .cols{background:#fff;border-radius:12px;padding:24px 24px 12px;max-height:75vh;overflow-y:auto}.shelf-container{border-radius:8px;background:var(--Gray-50, #f9fafb);padding:8px 16px;margin-bottom:12px}.counter-container{display:flex;align-items:center;justify-content:center;border-radius:8px;background-color:#fff;padding:10px;border:.49px solid #d0d5dd}.counter-container span{margin:0 18px;font-weight:500;font-size:14px;text-align:center;vertical-align:middle;width:18px}.disable-counter{color:var(--bs-gray-500)!important;background-color:var(--bs-gray-200)!important;border-color:var(--bs-gray-300)!important;pointer-events:none;opacity:1}.disabled-click{pointer-events:none;opacity:.85}.wall-viewport{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:30px;max-width:345px;min-width:234px;text-align:center}.wall-viewport .wrapper{width:100%;max-width:345px}.wall-viewport .header-info,.wall-viewport .footer-info,.wall-viewport .body-info{width:100%;border:2px solid #f2f4f7;border-bottom:4px solid #ffffff;background:#f2f4f7;max-width:230px;display:flex;align-items:center;justify-content:center;justify-content:start;padding:12px;gap:4px}.wall-viewport .header-info p,.wall-viewport .footer-info p,.wall-viewport .body-info p{margin:0}.wall-viewport .header-info{margin-top:40px}.wall-viewport .sub-footer{border:1px solid #98a2b3;height:100%}.wall-viewport .header-block,.wall-viewport .footer-block{border:1px solid #98a2b3;height:95px;padding:8px;background-color:#f2f4f7;width:100%;display:flex;justify-content:center;align-items:center}.wall-viewport .header-block p,.wall-viewport .footer-block p{color:var(--Gray-600, #475467);font-size:18px;font-weight:600;white-space:normal;word-wrap:break-word;margin:0;background-color:#f2f4f7}.wall-viewport .body-block{width:100%}.wall-viewport .body-block .shelfContainer .block{border:1px solid #98a2b3;border-top:none}.wall-viewport .body-block .shelfContainer:first-child .block{border-top:1px solid #98a2b3}.wall-viewport .body-block .block{padding:10px;width:100%;max-width:345px;overflow-x:auto;min-height:52px}.wall-viewport .body-block .tray,.wall-viewport .body-block .shelf{display:flex;gap:4px}.wall-viewport .body-block .tray .product,.wall-viewport .body-block .shelf .product{border:1px solid rgba(152,162,179,.2901960784);min-width:50px}.wall-viewport .body-block .tray .product{min-height:20px}.wall-viewport .body-block .shelf .product{min-height:30px}.wall-viewport .body-block .vmonly-placeholder{background-image:repeating-linear-gradient(45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px),repeating-linear-gradient(-45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px)}.wall-viewport .body-block .hide-product{border-color:transparent!important}.wall-viewport .body-block .hide-scroll{overflow-x:hidden!important}.horizontal-dimension{display:flex;align-items:center;justify-content:center;height:30px;position:relative}.horizontal-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.horizontal-dimension .arrow.left{transform:rotate(180deg);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .arrow.right{transform:rotate(0);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;height:1px}.horizontal-dimension .line span{position:absolute;top:-12px;color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:0 4px}.vertical-dimension{display:flex;flex-direction:column;align-items:center;width:30px;position:relative}.vertical-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.vertical-dimension .arrow.up{transform:rotate(-90deg);margin-top:20px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .arrow.down{transform:rotate(90deg);margin-bottom:26px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;width:1px}.vertical-dimension .line span{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:2px 4px}.info-card{padding:12px;background:#fff;border:1px solid #d0d5dd;border-radius:8px;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a}.info-card h3{font-weight:600;font-size:18px;line-height:28px;vertical-align:middle}.info-card p{font-weight:500;font-size:14px;line-height:20px;color:#667085;margin:0}.checkbox input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #d0d5dd)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.checkbox input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00a3ff)!important;background-color:var(--primary-50, #eaf8ff)}.checkbox input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00a3ff;border-right:2px solid #00a3ff;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.nav-pills{display:inline-flex;gap:4px}.nav-pills .nav-item .nav-link{border-radius:0;color:#667085;font-size:14px;font-weight:500;padding:8px 16px;border:none}.nav-pills .nav-item .nav-link:hover{background-color:#00000005}.nav-pills .nav-item .nav-link.active{background-color:#eaf8ff;color:#009bf3;border-bottom:3px solid #009bf3}.content-wrapper{background:#fff;border-radius:12px;min-height:calc(100vh - 400px);height:100%;padding:16px 24px;display:flex;flex-direction:column}.loader .shimmer{height:150px}.filter-tab{border:1px solid rgb(234,236,240);background:#fff;box-shadow:0 1px 2px #1018280d;border-radius:8px;padding:18px;transition:all ease .2s}.filter-tab:hover{cursor:pointer}.filter-tab.selected{background:#f6fcff;border:1px solid rgb(107,202,255);box-shadow:0 1px 2px #1018280d}.filter-tab h3{color:#000;font-size:20px;font-weight:600;line-height:30px;margin:0}.filter-tab p{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;margin:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
25867
|
+
args: [{ selector: 'lib-fixture-library', template: "<section id=\"fixture-library\" class=\"content-wrapper\">\r\n <!-- Fixture view header -->\r\n <div\r\n *ngIf=\"fixturesList.length !== 0 || searchTerm || isFilterApplied\"\r\n class=\"d-flex justify-content-between align-items-center mb-5\"\r\n >\r\n <div>\r\n <h4>Fixtures List</h4>\r\n <span>{{ totalItems }} - Total Fixtures</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div style=\"position: relative\">\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"searchTerm\"\r\n (change)=\"onSearch()\"\r\n style=\"padding-left: 3rem; padding-right: 3rem\"\r\n class=\"form-control\"\r\n name=\"search\"\r\n autocomplete=\"off\"\r\n placeholder=\"Search\"\r\n />\r\n\r\n <span class=\"search-icon\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <circle cx=\"8\" cy=\"8\" r=\"6\" stroke=\"currentColor\" stroke-width=\"2\" />\r\n <line x1=\"13\" y1=\"13\" x2=\"16\" y2=\"16\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <button *ngIf=\"searchTerm\" type=\"button\" aria-label=\"Clear\" (click)=\"searchTerm = ''; onSearch()\" class=\"clear-search\">\r\n <svg width=\"64px\" height=\"64px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <path d=\"M9 9L15 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <path d=\"M15 9L9 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n ></circle>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <button type=\"button\" (click)=\"onClickCreateFixtureLibrary()\" class=\"btn btn-primary d-inline-flex align-items-center me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\"\r\n stroke=\"white\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <span class=\"ms-2 text-white\">Create </span>\r\n </button>\r\n\r\n <!-- <button type=\"button\" (click)=\"openBulkUploadModal()\" class=\"btn btn-outline text-nowrap\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Bulk Upload\r\n </button> -->\r\n\r\n <button\r\n type=\"button\"\r\n [disabled]=\"fixturesList.length <= 0\"\r\n (click)=\"exportFixtureList()\"\r\n class=\"btn btn-outline text-nowrap\"\r\n >\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Export\r\n </button>\r\n\r\n <lib-filters [dataObject]=\"filterObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div class=\"toggle-button me-2\" [ngClass]=\"{ selected: viewMode === 'list' }\" (click)=\"toggleViewMode('list')\">\r\n <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.24078 4.54639H15.8906M6.24078 9.00017H15.8906M6.24078 13.4539H15.8906M2.5293 4.54639H2.53672M2.5293 9.00017H2.53672M2.5293 13.4539H2.53672\"\r\n [attr.stroke]=\"viewMode === 'list' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"toggle-button\" [ngClass]=\"{ selected: viewMode === 'grid' }\" (click)=\"toggleViewMode('grid')\">\r\n <svg width=\"19\" height=\"18\" viewBox=\"0 0 19 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M7.91886 2.31934H2.72278V7.51541H7.91886V2.31934Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.0841 2.31934H10.888V7.51541H16.0841V2.31934Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.0841 10.4846H10.888V15.6807H16.0841V10.4846Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M7.91886 10.4846H2.72278V15.6807H7.91886V10.4846Z\"\r\n [attr.stroke]=\"viewMode === 'grid' ? '#009BF3' : '#344054'\"\r\n stroke-width=\"1.48756\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isPageLoading; else contentPart\">\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 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 </div>\r\n\r\n <ng-template #contentPart>\r\n <div *ngIf=\"fixturesList.length === 0\">\r\n @if(searchTerm || isFilterApplied){\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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/Nodata1.svg\" alt=\"\" />\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for matching filter and search</div>\r\n </div>\r\n </div>\r\n </div>\r\n }@else{\r\n <div class=\"row g-0 py-12\">\r\n <!-- Single Fixture Creation -->\r\n <div class=\"col-md-12 pe-md-3\">\r\n <div class=\"d-flex flex-column align-items-center p-10\">\r\n <div class=\"text-center mb-8\">\r\n <div class=\"mb-5\">\r\n <svg\r\n style=\"width: 80px; height: 80px\"\r\n width=\"56\"\r\n height=\"56\"\r\n viewBox=\"0 0 56 56\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path\r\n d=\"M28 24V32M24 28H32M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\"\r\n stroke=\"#00A3FF\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h3 class=\"card-title mb-3\">Create fixture</h3>\r\n <p class=\"card-tagline mb-0\">Start creating fixture manually through step by step</p>\r\n </div>\r\n <button\r\n (click)=\"onClickCreateFixtureLibrary()\"\r\n type=\"button\"\r\n class=\"btn btn-outline d-inline-flex align-items-center\"\r\n >\r\n <svg class=\"me-2\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M12 5V19M5 12H19\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Create\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Bulk Fixture Creation -->\r\n <!-- <div class=\"col-md-6 ps-md-3 border-start\">\r\n <div class=\"d-flex flex-column align-items-center p-10\">\r\n <div class=\"text-center mb-8\">\r\n <div class=\"mb-5\">\r\n <svg\r\n style=\"width: 80px; height: 80px\"\r\n width=\"56\"\r\n height=\"56\"\r\n viewBox=\"0 0 95 94\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect x=\"7.5\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7.5\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\" stroke-width=\"13.3333\" />\r\n <path\r\n d=\"M62.5 52V58.6667C62.5 59.5507 62.1488 60.3986 61.5237 61.0237C60.8986 61.6488 60.0507 62 59.1667 62H35.8333C34.9493 62 34.1014 61.6488 33.4763 61.0237C32.8512 60.3986 32.5 59.5507 32.5 58.6667V52M55.8333 40.3333L47.5 32M47.5 32L39.1667 40.3333M47.5 32V52\"\r\n stroke=\"#00A3FF\"\r\n stroke-width=\"3.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <h3 class=\"card-title mb-3\">Create fixture using excel template</h3>\r\n <p class=\"card-tagline mb-0\">You can create a single or a multiple fixtures using the template below</p>\r\n </div>\r\n <div class=\"d-flex flex-column gap-2 mb-6\" style=\"width: fit-content\">\r\n <p class=\"card-description mb-0\">\r\n Step1 - <a class=\"download-link fw-medium\" (click)=\"downloadEmptyTemplate()\">Download the template here</a>\r\n </p>\r\n <p class=\"card-description mb-0\">Step2 - Add your data to the Template File</p>\r\n <p class=\"card-description mb-0\">Step3 - Upload it below for processing</p>\r\n </div>\r\n <button class=\"btn btn-primary d-inline-flex align-items-center\" (click)=\"openBulkUploadModal()\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Upload\r\n </button>\r\n </div>\r\n </div> -->\r\n </div>\r\n }\r\n </div>\r\n\r\n <div *ngIf=\"fixturesList.length != 0\">\r\n <!-- Fixture list view -->\r\n <section id=\"list-view\" *ngIf=\"viewMode === 'list'; else gridView\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <span (click)=\"onSortTable('fixtureCategory')\" class=\"cursor-pointer\">\r\n Fixture name\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureCategory' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureCategory' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('fixtureType')\" class=\"cursor-pointer\">\r\n Type\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureType' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureType' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th>Country</th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureWidth')\" class=\"cursor-pointer\">\r\n Width\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureWidth' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureWidth' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureLength')\" class=\"cursor-pointer\">\r\n Height\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureLength' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureLength' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('shelfConfig')\" class=\"cursor-pointer\">\r\n Partitions\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'shelfConfig' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'shelfConfig' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n\r\n <svg\r\n placement=\"start\"\r\n ngbTooltip=\"Partitions are shelves/sections/panel\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n class=\"ms-2\"\r\n >\r\n <g clip-path=\"url(#clip0_1_25644)\">\r\n <path\r\n d=\"M9 12V9M9 6H9.0075M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1_25644\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('templateCount')\" class=\"cursor-pointer\">\r\n Templates tagged\r\n <i\r\n [ngStyle]=\"{ color: sortedColumn === 'templateCount' ? '#009BF3' : '' }\"\r\n class=\"fa ms-1 mt-1\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'templateCount' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">Status</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let fixture of fixturesList\">\r\n <td style=\"max-width: 300px\">\r\n <div class=\"d-flex align-items-center\">\r\n <!-- <div class=\"thumbnail\"></div> -->\r\n <a\r\n [routerLink]=\"['/manage/planogram/create-library-fixture']\"\r\n [queryParams]=\"{ fixtureId: fixture.id }\"\r\n class=\"text-decoration-underline ellipsis\"\r\n [ngbTooltip]=\"fixture.name + ' - ' + fixture.width + 'ft'\"\r\n >\r\n {{ fixture.name }} - {{ fixture.width }}ft\r\n </a>\r\n </div>\r\n </td>\r\n <td>{{ fixture.type | titlecase }}</td>\r\n <td>\r\n <div *ngIf=\"fixture.country?.length; else noCountry\" class=\"country-chip-list\">\r\n <span class=\"country-chip\" *ngFor=\"let c of fixture.country\">{{ c }}</span>\r\n </div>\r\n <ng-template #noCountry>-</ng-template>\r\n </td>\r\n <td class=\"text-center\">{{ fixture.width }}ft</td>\r\n <td class=\"text-center\">{{ fixture.height }}ft</td>\r\n <td class=\"text-center\">{{ fixture.partitions }}</td>\r\n <td class=\"text-center\">{{ fixture.templatesTagged }}</td>\r\n <td class=\"text-center\">\r\n <div class=\"badge\" [ngClass]=\"fixture.status\" placement=\"start\" [ngbTooltip]=\"getTooltipText(fixture.status)\">\r\n {{ fixture.status | titlecase }}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"dropdown\">\r\n <button class=\"btn btn-link p-0\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <ng-container *ngTemplateOutlet=\"verticalDots\"></ng-container>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a class=\"dropdown-item cursor-pointer\" (click)=\"onEdit(fixture.id, fixture.templatesTagged)\"> Edit </a>\r\n </li>\r\n <li><a class=\"dropdown-item cursor-pointer\" (click)=\"onDuplicate(fixture.id)\">Duplicate</a></li>\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer text-danger\"\r\n (click)=\"onDelete(fixture.id, fixture.templatesTagged)\"\r\n >\r\n Delete\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </section>\r\n\r\n <!-- Fixture grid view -->\r\n <ng-template #gridView>\r\n <section id=\"grid-view\" class=\"table-responsive\">\r\n <div class=\"row gx-6 gy-4 m-0\">\r\n <div class=\"col-md-4\" *ngFor=\"let fixture of fixturesList\">\r\n <div class=\"card\" (click)=\"onClickCard($event, fixture)\">\r\n <div class=\"card-img\">\r\n <div class=\"card-action dropdown\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"btn btn-light\" style=\"padding: 12px 21px !important\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"18\" viewBox=\"0 0 4 18\" fill=\"none\">\r\n <path\r\n d=\"M1 9C1 9.55228 1.44771 10 2 10C2.55228 10 3 9.55228 3 9C3 8.44772 2.55228 8 2 8C1.44771 8 1 8.44772 1 9Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.999999 16C0.999999 16.5523 1.44771 17 2 17C2.55228 17 3 16.5523 3 16C3 15.4477 2.55228 15 2 15C1.44771 15 0.999999 15.4477 0.999999 16Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer\"\r\n (click)=\"onEdit(fixture.id, fixture.templatesTagged); $event.stopPropagation()\"\r\n >\r\n Edit\r\n </a>\r\n </li>\r\n <li>\r\n <a class=\"dropdown-item cursor-pointer\" (click)=\"onDuplicate(fixture.id); $event.stopPropagation()\">\r\n Duplicate\r\n </a>\r\n </li>\r\n <li>\r\n <a\r\n class=\"dropdown-item cursor-pointer text-danger\"\r\n (click)=\"onDelete(fixture.id, fixture.templatesTagged); $event.stopPropagation()\"\r\n >\r\n Delete\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <h3 class=\"ellipsis\" [ngbTooltip]=\"fixture.name + ' - ' + fixture.width + 'ft'\">\r\n {{ fixture.name }}\r\n </h3>\r\n <div class=\"badge\" [ngClass]=\"fixture.status\" placement=\"start\" [ngbTooltip]=\"getTooltipText(fixture.status)\">\r\n {{ fixture.status | titlecase }}\r\n </div>\r\n </div>\r\n <div class=\"card-tagline\">\r\n {{ fixture.width }}ft x {{ fixture.height }}ft <span>•</span> {{ fixture.partitions }}\r\n <span>•</span>\r\n {{ fixture.type }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </ng-template>\r\n\r\n <!-- Pagination -->\r\n <lib-pagination\r\n class=\"text-start\"\r\n [itemsPerPage]=\"limit\"\r\n [currentPage]=\"offset\"\r\n [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n ></lib-pagination>\r\n </div>\r\n </ng-template>\r\n</section>\r\n\r\n<ng-template #verticalDots>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"18\" viewBox=\"0 0 4 18\" fill=\"none\">\r\n <path\r\n d=\"M1 9C1 9.55228 1.44771 10 2 10C2.55228 10 3 9.55228 3 9C3 8.44772 2.55228 8 2 8C1.44771 8 1 8.44772 1 9Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.999999 16C0.999999 16.5523 1.44771 17 2 17C2.55228 17 3 16.5523 3 16C3 15.4477 2.55228 15 2 15C1.44771 15 0.999999 15.4477 0.999999 16Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z\"\r\n stroke=\"#101828\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: [".nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext[_ngcontent-ng-c2141490359]{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.table-responsive{min-height:calc(100vh - 495px)}.download-link{color:var(--Primary-800, #008edf);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;cursor:pointer}h3.card-title{color:#101828;font-size:18px;font-weight:600;line-height:28px}p.card-tagline{color:#101828;font-size:14px;font-weight:500;line-height:20px}p.card-description{color:#344054;font-size:14px;font-weight:400;line-height:20px}#list-view .thumbnail{height:40px;width:40px;background:#f2f4f7;margin-right:12px;border-radius:8px}#list-view td{vertical-align:middle}#grid-view .card{box-shadow:0 4px 10px #0000000d;border:1px solid rgb(223,225,231);background:#fff;border-radius:12px;padding:12px;height:100%;transition:all .2s ease}#grid-view .card:hover{cursor:pointer;box-shadow:0 10px 10px #0001;transition:all .2s ease}#grid-view .card-img{margin-bottom:12px;background:#d0d5dd;height:200px;border-radius:6px}#grid-view .card-action{position:absolute;top:20px;right:20px}#grid-view .card-tagline{color:#475467;font-weight:500;font-size:14px;line-height:20px}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7;color:#344054}.badge.cluster{background:#f2f4f7;color:#344054}.badge.published{background:#ecfdf3;color:#027a48}.badge.yet-to-publish{background:#f8f9fc;color:#363f72}.indicator{border-radius:16px;padding:2px 8px;display:flex;justify-content:center;align-items:center;white-space:nowrap;width:fit-content;text-align:center;font-size:14px;font-weight:500}.indicator.short{height:14px!important;width:14px!important;border-radius:50%!important;padding:0!important}.indicator.yetToComplete{background:#f2f4f7;color:#667085}.indicator.yetToComplete path{fill:#667085}.indicator.draft{background:#f2f4f7;color:#667085}.indicator.draft path{fill:#667085}.indicator.yetToAssign{background:#eaecf5;color:#344054}.indicator.yetToAssign path{fill:#344054}.indicator.taskAssigned{background:#e0eaff;color:#7a5af8}.indicator.taskAssigned path{fill:#7a5af8}.indicator.reviewPending{background:#fef0c7;color:#f79009}.indicator.reviewPending path{fill:#f79009}.indicator.allocationPending{background:#fef0c7;color:#f79009}.indicator.allocationPending path{fill:#f79009}.indicator.flagged{background:var(--Error-50, #fef3f2);color:var(--Error-700, #b42318)}.indicator.completed{background:#d1fadf;color:#12b76a}.indicator.completed path{fill:#12b76a}.toggle-button{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;background:#fff;border:.89px solid rgb(208,213,221);box-shadow:0 .89px 1.78px #1018280d;transition:all ease .3s}.toggle-button:hover{cursor:pointer}.toggle-button.selected{transition:all ease .3s;background:#eaf8ff;box-shadow:0 0 0 3.56px #d5effe!important;border:.89px solid rgb(234,248,255)}.disabled-click{pointer-events:none;cursor:not-allowed!important;opacity:.6}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#888;display:flex;align-items:center;height:1.5rem}.clear-search{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;height:1.5rem;width:1.5rem}.restrict-interaction{-webkit-user-select:none;user-select:none;pointer-events:none}.btn .spinner{height:22px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:4px;stroke:#071437;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}.header{background:#fff;padding:12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.btn{padding:.775rem 1.5rem!important;font-size:1.1rem!important}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;padding:2px 8px;border-radius:16px}.badge.active{color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7!important;color:#344054!important}.badge.draft{color:#009bf3;background:#eaf8ff}.builder{height:75vh}.builder .cols{background:#fff;border-radius:12px;padding:24px 24px 12px;max-height:75vh;overflow-y:auto}.shelf-container{border-radius:8px;background:var(--Gray-50, #f9fafb);padding:8px 16px;margin-bottom:12px}.counter-container{display:flex;align-items:center;justify-content:center;border-radius:8px;background-color:#fff;padding:10px;border:.49px solid #d0d5dd}.counter-container span{margin:0 18px;font-weight:500;font-size:14px;text-align:center;vertical-align:middle;width:18px}.disable-counter{color:var(--bs-gray-500)!important;background-color:var(--bs-gray-200)!important;border-color:var(--bs-gray-300)!important;pointer-events:none;opacity:1}.disabled-click{pointer-events:none;opacity:.85}.wall-viewport{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:30px;max-width:345px;min-width:234px;text-align:center}.wall-viewport .wrapper{width:100%;max-width:345px}.wall-viewport .header-info,.wall-viewport .footer-info,.wall-viewport .body-info{width:100%;border:2px solid #f2f4f7;border-bottom:4px solid #ffffff;background:#f2f4f7;max-width:230px;display:flex;align-items:center;justify-content:center;justify-content:start;padding:12px;gap:4px}.wall-viewport .header-info p,.wall-viewport .footer-info p,.wall-viewport .body-info p{margin:0}.wall-viewport .header-info{margin-top:40px}.wall-viewport .sub-footer{border:1px solid #98a2b3;height:100%}.wall-viewport .header-block,.wall-viewport .footer-block{border:1px solid #98a2b3;height:95px;padding:8px;background-color:#f2f4f7;width:100%;display:flex;justify-content:center;align-items:center}.wall-viewport .header-block p,.wall-viewport .footer-block p{color:var(--Gray-600, #475467);font-size:18px;font-weight:600;white-space:normal;word-wrap:break-word;margin:0;background-color:#f2f4f7}.wall-viewport .body-block{width:100%}.wall-viewport .body-block .shelfContainer .block{border:1px solid #98a2b3;border-top:none}.wall-viewport .body-block .shelfContainer:first-child .block{border-top:1px solid #98a2b3}.wall-viewport .body-block .block{padding:10px;width:100%;max-width:345px;overflow-x:auto;min-height:52px}.wall-viewport .body-block .tray,.wall-viewport .body-block .shelf{display:flex;gap:4px}.wall-viewport .body-block .tray .product,.wall-viewport .body-block .shelf .product{border:1px solid rgba(152,162,179,.2901960784);min-width:50px}.wall-viewport .body-block .tray .product{min-height:20px}.wall-viewport .body-block .shelf .product{min-height:30px}.wall-viewport .body-block .vmonly-placeholder{background-image:repeating-linear-gradient(45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px),repeating-linear-gradient(-45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px)}.wall-viewport .body-block .hide-product{border-color:transparent!important}.wall-viewport .body-block .hide-scroll{overflow-x:hidden!important}.horizontal-dimension{display:flex;align-items:center;justify-content:center;height:30px;position:relative}.horizontal-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.horizontal-dimension .arrow.left{transform:rotate(180deg);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .arrow.right{transform:rotate(0);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;height:1px}.horizontal-dimension .line span{position:absolute;top:-12px;color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:0 4px}.vertical-dimension{display:flex;flex-direction:column;align-items:center;width:30px;position:relative}.vertical-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.vertical-dimension .arrow.up{transform:rotate(-90deg);margin-top:20px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .arrow.down{transform:rotate(90deg);margin-bottom:26px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;width:1px}.vertical-dimension .line span{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:2px 4px}.info-card{padding:12px;background:#fff;border:1px solid #d0d5dd;border-radius:8px;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a}.info-card h3{font-weight:600;font-size:18px;line-height:28px;vertical-align:middle}.info-card p{font-weight:500;font-size:14px;line-height:20px;color:#667085;margin:0}.checkbox input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #d0d5dd)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.checkbox input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00a3ff)!important;background-color:var(--primary-50, #eaf8ff)}.checkbox input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00a3ff;border-right:2px solid #00a3ff;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.nav-pills{display:inline-flex;gap:4px}.nav-pills .nav-item .nav-link{border-radius:0;color:#667085;font-size:14px;font-weight:500;padding:8px 16px;border:none}.nav-pills .nav-item .nav-link:hover{background-color:#00000005}.nav-pills .nav-item .nav-link.active{background-color:#eaf8ff;color:#009bf3;border-bottom:3px solid #009bf3}.content-wrapper{background:#fff;border-radius:12px;min-height:calc(100vh - 400px);height:100%;padding:16px 24px;display:flex;flex-direction:column}.loader .shimmer{height:150px}.filter-tab{border:1px solid rgb(234,236,240);background:#fff;box-shadow:0 1px 2px #1018280d;border-radius:8px;padding:18px;transition:all ease .2s}.filter-tab:hover{cursor:pointer}.filter-tab.selected{background:#f6fcff;border:1px solid rgb(107,202,255);box-shadow:0 1px 2px #1018280d}.filter-tab h3{color:#000;font-size:20px;font-weight:600;line-height:30px;margin:0}.filter-tab p{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;margin:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.country-chip-list{display:flex;flex-wrap:wrap;gap:4px}.country-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:16px;background:var(--Gray-100, #f2f4f7);color:var(--Gray-700, #344054);font-size:12px;font-weight:500;line-height:18px}\n"] }]
|
|
25846
25868
|
}], ctorParameters: () => [{ type: i1$1.NgbModal }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: StoreBuilderService }, { type: i2$1.GlobalStateService }, { type: i4.ToastService }, { type: i2$1.PageInfoService }] });
|
|
25847
25869
|
|
|
25848
25870
|
class VMBulkUploadComponent {
|
|
@@ -68066,11 +68088,11 @@ class MoveBucketComponent {
|
|
|
68066
68088
|
this.destroy$.complete();
|
|
68067
68089
|
}
|
|
68068
68090
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MoveBucketComponent, deps: [{ token: StoreBuilderService }, { token: i2$1.GlobalStateService }, { token: i1$1.NgbModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
68069
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MoveBucketComponent, selector: "lib-move-bucket", ngImport: i0, template: "<section class=\"move-bucket p-3\">\n <div class=\"card p-4\" style=\"max-width: 640px;\">\n <h5 class=\"mb-1\">Move Store Bucket</h5>\n <p class=\"text-muted small mb-3\">\n Move a floor between Onboarding (Draft / Allocation Pending) and ManagePlano (Completed) without losing store data.\n </p>\n\n <!-- Store -->\n <div class=\"mb-3\">\n <lib-reactive-select\n label=\"Store\"\n [idField]=\"'id'\"\n [nameField]=\"'label'\"\n [data]=\"storeOptions\"\n [search]=\"true\"\n [ngModel]=\"selectedStoreId\"\n (ngModelChange)=\"onStoreSelected($event)\">\n </lib-reactive-select>\n </div>\n\n <!-- Floor -->\n <div class=\"mb-3\" *ngIf=\"selectedStoreId\">\n <ng-container *ngIf=\"isLoadingFloors; else floorPicker\">\n <div class=\"text-muted small\">Loading floors...</div>\n </ng-container>\n <ng-template #floorPicker>\n <ng-container *ngIf=\"floors.length > 0; else noFloors\">\n <lib-reactive-select\n label=\"Floor\"\n [idField]=\"'_id'\"\n [nameField]=\"'displayName'\"\n [data]=\"floors\"\n [search]=\"true\"\n [ngModel]=\"selectedFloorId\"\n (ngModelChange)=\"onFloorSelected($event)\">\n </lib-reactive-select>\n </ng-container>\n <ng-template #noFloors>\n <div class=\"text-muted small\">No floors found for this store.</div>\n </ng-template>\n </ng-template>\n </div>\n\n <!-- Current bucket info + target status -->\n <ng-container *ngIf=\"selectedFloorId && currentStatus\">\n <div class=\"mb-3 p-3 rounded current-info\">\n <div class=\"d-flex justify-content-between small\">\n <span class=\"text-muted\">Current bucket</span>\n <span class=\"fw-semibold\">{{ getBucketLabel(currentStatus) }}</span>\n </div>\n <div class=\"d-flex justify-content-between small mt-1\">\n <span class=\"text-muted\">Current status</span>\n <span class=\"fw-semibold\">{{ getStatusLabel(currentStatus) }}</span>\n </div>\n </div>\n\n <div class=\"mb-3\">\n <lib-reactive-select\n label=\"Move to status\"\n [idField]=\"'value'\"\n [nameField]=\"'label'\"\n [subTextField]=\"'bucket'\"\n [data]=\"statusOptions\"\n [ngModel]=\"targetStatus\"\n (ngModelChange)=\"onTargetStatusSelected($event)\">\n </lib-reactive-select>\n <div class=\"form-text text-warning\" *ngIf=\"statusChanged\">\n isPlanoApproved will be set to\n <strong>{{ targetStatus === 'draft' ? 'false' : 'true' }}</strong>,\n planoProgress will be set to\n <strong>{{ targetStatus === 'completed' ? 25 : 0 }}</strong>.\n </div>\n </div>\n\n <!-- Task cleanup checkboxes -->\n <div class=\"mb-3\">\n <label class=\"form-label\">Clear tasks & compliance rows (optional)</label>\n <div class=\"d-flex flex-column gap-2\">\n <div class=\"form-check\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrLayout\"\n [(ngModel)]=\"clearLayoutTasks\">\n <label class=\"form-check-label\" for=\"clrLayout\">\n Layout tasks\n <span class=\"text-muted small\">(planoType: layout, layoutFixture)</span>\n </label>\n </div>\n <div class=\"form-check\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrFixture\"\n [(ngModel)]=\"clearFixtureTasks\">\n <label class=\"form-check-label\" for=\"clrFixture\">\n Fixture tasks\n <span class=\"text-muted small\">(planoType: fixture, vm)</span>\n </label>\n </div>\n <div class=\"form-check\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrZone\"\n [(ngModel)]=\"clearZoneTasks\">\n <label class=\"form-check-label\" for=\"clrZone\">\n Zone tasks\n <span class=\"text-muted small\">(planoType: zoneVerification)</span>\n </label>\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Submit -->\n <button class=\"btn btn-primary\" (click)=\"onSubmit()\" [disabled]=\"!canSubmit\">\n {{ isSubmitting ? 'Updating...' : 'Update' }}\n </button>\n\n <div class=\"mt-3 alert\" *ngIf=\"message\"\n [class.alert-success]=\"messageType === 'success'\"\n [class.alert-danger]=\"messageType === 'error'\"\n style=\"white-space: pre-line;\">\n {{ message }}\n </div>\n </div>\n</section>\n", styles: [".move-bucket .current-info{background-color:#f9fafb;border:1px solid #e4e7ec}\n"], dependencies: [{ kind: "component", type: ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "subTextField", "searchField", "label", "data", "action", "search", "prefix", "actionLabel"], outputs: ["actionClick"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
68091
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MoveBucketComponent, selector: "lib-move-bucket", ngImport: i0, template: "<section class=\"move-bucket p-3\">\r\n <div class=\"card p-4\" style=\"max-width: 640px;\">\r\n <h5 class=\"mb-1\">Move Store Bucket</h5>\r\n <p class=\"text-muted small mb-3\">\r\n Move a floor between Onboarding (Draft / Allocation Pending) and ManagePlano (Completed) without losing store data.\r\n </p>\r\n\r\n <!-- Store -->\r\n <div class=\"mb-3\">\r\n <lib-reactive-select\r\n label=\"Store\"\r\n [idField]=\"'id'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"storeOptions\"\r\n [search]=\"true\"\r\n [ngModel]=\"selectedStoreId\"\r\n (ngModelChange)=\"onStoreSelected($event)\">\r\n </lib-reactive-select>\r\n </div>\r\n\r\n <!-- Floor -->\r\n <div class=\"mb-3\" *ngIf=\"selectedStoreId\">\r\n <ng-container *ngIf=\"isLoadingFloors; else floorPicker\">\r\n <div class=\"text-muted small\">Loading floors...</div>\r\n </ng-container>\r\n <ng-template #floorPicker>\r\n <ng-container *ngIf=\"floors.length > 0; else noFloors\">\r\n <lib-reactive-select\r\n label=\"Floor\"\r\n [idField]=\"'_id'\"\r\n [nameField]=\"'displayName'\"\r\n [data]=\"floors\"\r\n [search]=\"true\"\r\n [ngModel]=\"selectedFloorId\"\r\n (ngModelChange)=\"onFloorSelected($event)\">\r\n </lib-reactive-select>\r\n </ng-container>\r\n <ng-template #noFloors>\r\n <div class=\"text-muted small\">No floors found for this store.</div>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n\r\n <!-- Current bucket info + target status -->\r\n <ng-container *ngIf=\"selectedFloorId && currentStatus\">\r\n <div class=\"mb-3 p-3 rounded current-info\">\r\n <div class=\"d-flex justify-content-between small\">\r\n <span class=\"text-muted\">Current bucket</span>\r\n <span class=\"fw-semibold\">{{ getBucketLabel(currentStatus) }}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between small mt-1\">\r\n <span class=\"text-muted\">Current status</span>\r\n <span class=\"fw-semibold\">{{ getStatusLabel(currentStatus) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <lib-reactive-select\r\n label=\"Move to status\"\r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [subTextField]=\"'bucket'\"\r\n [data]=\"statusOptions\"\r\n [ngModel]=\"targetStatus\"\r\n (ngModelChange)=\"onTargetStatusSelected($event)\">\r\n </lib-reactive-select>\r\n <div class=\"form-text text-warning\" *ngIf=\"statusChanged\">\r\n isPlanoApproved will be set to\r\n <strong>{{ targetStatus === 'draft' ? 'false' : 'true' }}</strong>,\r\n planoProgress will be set to\r\n <strong>{{ targetStatus === 'completed' ? 25 : 0 }}</strong>.\r\n </div>\r\n </div>\r\n\r\n <!-- Task cleanup checkboxes -->\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">Clear tasks & compliance rows (optional)</label>\r\n <div class=\"d-flex flex-column gap-2\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrLayout\"\r\n [(ngModel)]=\"clearLayoutTasks\">\r\n <label class=\"form-check-label\" for=\"clrLayout\">\r\n Layout tasks\r\n <span class=\"text-muted small\">(planoType: layout, layoutFixture)</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrFixture\"\r\n [(ngModel)]=\"clearFixtureTasks\">\r\n <label class=\"form-check-label\" for=\"clrFixture\">\r\n Fixture tasks\r\n <span class=\"text-muted small\">(planoType: fixture, vm)</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrZone\"\r\n [(ngModel)]=\"clearZoneTasks\">\r\n <label class=\"form-check-label\" for=\"clrZone\">\r\n Zone tasks\r\n <span class=\"text-muted small\">(planoType: zoneVerification)</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Submit -->\r\n <button class=\"btn btn-primary\" (click)=\"onSubmit()\" [disabled]=\"!canSubmit\">\r\n {{ isSubmitting ? 'Updating...' : 'Update' }}\r\n </button>\r\n\r\n <div class=\"mt-3 alert\" *ngIf=\"message\"\r\n [class.alert-success]=\"messageType === 'success'\"\r\n [class.alert-danger]=\"messageType === 'error'\"\r\n style=\"white-space: pre-line;\">\r\n {{ message }}\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".move-bucket .current-info{background-color:#f9fafb;border:1px solid #e4e7ec}\n"], dependencies: [{ kind: "component", type: ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "subTextField", "searchField", "label", "data", "action", "search", "prefix", "actionLabel"], outputs: ["actionClick"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
68070
68092
|
}
|
|
68071
68093
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MoveBucketComponent, decorators: [{
|
|
68072
68094
|
type: Component,
|
|
68073
|
-
args: [{ selector: "lib-move-bucket", template: "<section class=\"move-bucket p-3\">\n <div class=\"card p-4\" style=\"max-width: 640px;\">\n <h5 class=\"mb-1\">Move Store Bucket</h5>\n <p class=\"text-muted small mb-3\">\n Move a floor between Onboarding (Draft / Allocation Pending) and ManagePlano (Completed) without losing store data.\n </p>\n\n <!-- Store -->\n <div class=\"mb-3\">\n <lib-reactive-select\n label=\"Store\"\n [idField]=\"'id'\"\n [nameField]=\"'label'\"\n [data]=\"storeOptions\"\n [search]=\"true\"\n [ngModel]=\"selectedStoreId\"\n (ngModelChange)=\"onStoreSelected($event)\">\n </lib-reactive-select>\n </div>\n\n <!-- Floor -->\n <div class=\"mb-3\" *ngIf=\"selectedStoreId\">\n <ng-container *ngIf=\"isLoadingFloors; else floorPicker\">\n <div class=\"text-muted small\">Loading floors...</div>\n </ng-container>\n <ng-template #floorPicker>\n <ng-container *ngIf=\"floors.length > 0; else noFloors\">\n <lib-reactive-select\n label=\"Floor\"\n [idField]=\"'_id'\"\n [nameField]=\"'displayName'\"\n [data]=\"floors\"\n [search]=\"true\"\n [ngModel]=\"selectedFloorId\"\n (ngModelChange)=\"onFloorSelected($event)\">\n </lib-reactive-select>\n </ng-container>\n <ng-template #noFloors>\n <div class=\"text-muted small\">No floors found for this store.</div>\n </ng-template>\n </ng-template>\n </div>\n\n <!-- Current bucket info + target status -->\n <ng-container *ngIf=\"selectedFloorId && currentStatus\">\n <div class=\"mb-3 p-3 rounded current-info\">\n <div class=\"d-flex justify-content-between small\">\n <span class=\"text-muted\">Current bucket</span>\n <span class=\"fw-semibold\">{{ getBucketLabel(currentStatus) }}</span>\n </div>\n <div class=\"d-flex justify-content-between small mt-1\">\n <span class=\"text-muted\">Current status</span>\n <span class=\"fw-semibold\">{{ getStatusLabel(currentStatus) }}</span>\n </div>\n </div>\n\n <div class=\"mb-3\">\n <lib-reactive-select\n label=\"Move to status\"\n [idField]=\"'value'\"\n [nameField]=\"'label'\"\n [subTextField]=\"'bucket'\"\n [data]=\"statusOptions\"\n [ngModel]=\"targetStatus\"\n (ngModelChange)=\"onTargetStatusSelected($event)\">\n </lib-reactive-select>\n <div class=\"form-text text-warning\" *ngIf=\"statusChanged\">\n isPlanoApproved will be set to\n <strong>{{ targetStatus === 'draft' ? 'false' : 'true' }}</strong>,\n planoProgress will be set to\n <strong>{{ targetStatus === 'completed' ? 25 : 0 }}</strong>.\n </div>\n </div>\n\n <!-- Task cleanup checkboxes -->\n <div class=\"mb-3\">\n <label class=\"form-label\">Clear tasks & compliance rows (optional)</label>\n <div class=\"d-flex flex-column gap-2\">\n <div class=\"form-check\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrLayout\"\n [(ngModel)]=\"clearLayoutTasks\">\n <label class=\"form-check-label\" for=\"clrLayout\">\n Layout tasks\n <span class=\"text-muted small\">(planoType: layout, layoutFixture)</span>\n </label>\n </div>\n <div class=\"form-check\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrFixture\"\n [(ngModel)]=\"clearFixtureTasks\">\n <label class=\"form-check-label\" for=\"clrFixture\">\n Fixture tasks\n <span class=\"text-muted small\">(planoType: fixture, vm)</span>\n </label>\n </div>\n <div class=\"form-check\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrZone\"\n [(ngModel)]=\"clearZoneTasks\">\n <label class=\"form-check-label\" for=\"clrZone\">\n Zone tasks\n <span class=\"text-muted small\">(planoType: zoneVerification)</span>\n </label>\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Submit -->\n <button class=\"btn btn-primary\" (click)=\"onSubmit()\" [disabled]=\"!canSubmit\">\n {{ isSubmitting ? 'Updating...' : 'Update' }}\n </button>\n\n <div class=\"mt-3 alert\" *ngIf=\"message\"\n [class.alert-success]=\"messageType === 'success'\"\n [class.alert-danger]=\"messageType === 'error'\"\n style=\"white-space: pre-line;\">\n {{ message }}\n </div>\n </div>\n</section>\n", styles: [".move-bucket .current-info{background-color:#f9fafb;border:1px solid #e4e7ec}\n"] }]
|
|
68095
|
+
args: [{ selector: "lib-move-bucket", template: "<section class=\"move-bucket p-3\">\r\n <div class=\"card p-4\" style=\"max-width: 640px;\">\r\n <h5 class=\"mb-1\">Move Store Bucket</h5>\r\n <p class=\"text-muted small mb-3\">\r\n Move a floor between Onboarding (Draft / Allocation Pending) and ManagePlano (Completed) without losing store data.\r\n </p>\r\n\r\n <!-- Store -->\r\n <div class=\"mb-3\">\r\n <lib-reactive-select\r\n label=\"Store\"\r\n [idField]=\"'id'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"storeOptions\"\r\n [search]=\"true\"\r\n [ngModel]=\"selectedStoreId\"\r\n (ngModelChange)=\"onStoreSelected($event)\">\r\n </lib-reactive-select>\r\n </div>\r\n\r\n <!-- Floor -->\r\n <div class=\"mb-3\" *ngIf=\"selectedStoreId\">\r\n <ng-container *ngIf=\"isLoadingFloors; else floorPicker\">\r\n <div class=\"text-muted small\">Loading floors...</div>\r\n </ng-container>\r\n <ng-template #floorPicker>\r\n <ng-container *ngIf=\"floors.length > 0; else noFloors\">\r\n <lib-reactive-select\r\n label=\"Floor\"\r\n [idField]=\"'_id'\"\r\n [nameField]=\"'displayName'\"\r\n [data]=\"floors\"\r\n [search]=\"true\"\r\n [ngModel]=\"selectedFloorId\"\r\n (ngModelChange)=\"onFloorSelected($event)\">\r\n </lib-reactive-select>\r\n </ng-container>\r\n <ng-template #noFloors>\r\n <div class=\"text-muted small\">No floors found for this store.</div>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n\r\n <!-- Current bucket info + target status -->\r\n <ng-container *ngIf=\"selectedFloorId && currentStatus\">\r\n <div class=\"mb-3 p-3 rounded current-info\">\r\n <div class=\"d-flex justify-content-between small\">\r\n <span class=\"text-muted\">Current bucket</span>\r\n <span class=\"fw-semibold\">{{ getBucketLabel(currentStatus) }}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between small mt-1\">\r\n <span class=\"text-muted\">Current status</span>\r\n <span class=\"fw-semibold\">{{ getStatusLabel(currentStatus) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <lib-reactive-select\r\n label=\"Move to status\"\r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [subTextField]=\"'bucket'\"\r\n [data]=\"statusOptions\"\r\n [ngModel]=\"targetStatus\"\r\n (ngModelChange)=\"onTargetStatusSelected($event)\">\r\n </lib-reactive-select>\r\n <div class=\"form-text text-warning\" *ngIf=\"statusChanged\">\r\n isPlanoApproved will be set to\r\n <strong>{{ targetStatus === 'draft' ? 'false' : 'true' }}</strong>,\r\n planoProgress will be set to\r\n <strong>{{ targetStatus === 'completed' ? 25 : 0 }}</strong>.\r\n </div>\r\n </div>\r\n\r\n <!-- Task cleanup checkboxes -->\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">Clear tasks & compliance rows (optional)</label>\r\n <div class=\"d-flex flex-column gap-2\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrLayout\"\r\n [(ngModel)]=\"clearLayoutTasks\">\r\n <label class=\"form-check-label\" for=\"clrLayout\">\r\n Layout tasks\r\n <span class=\"text-muted small\">(planoType: layout, layoutFixture)</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrFixture\"\r\n [(ngModel)]=\"clearFixtureTasks\">\r\n <label class=\"form-check-label\" for=\"clrFixture\">\r\n Fixture tasks\r\n <span class=\"text-muted small\">(planoType: fixture, vm)</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"clrZone\"\r\n [(ngModel)]=\"clearZoneTasks\">\r\n <label class=\"form-check-label\" for=\"clrZone\">\r\n Zone tasks\r\n <span class=\"text-muted small\">(planoType: zoneVerification)</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Submit -->\r\n <button class=\"btn btn-primary\" (click)=\"onSubmit()\" [disabled]=\"!canSubmit\">\r\n {{ isSubmitting ? 'Updating...' : 'Update' }}\r\n </button>\r\n\r\n <div class=\"mt-3 alert\" *ngIf=\"message\"\r\n [class.alert-success]=\"messageType === 'success'\"\r\n [class.alert-danger]=\"messageType === 'error'\"\r\n style=\"white-space: pre-line;\">\r\n {{ message }}\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".move-bucket .current-info{background-color:#f9fafb;border:1px solid #e4e7ec}\n"] }]
|
|
68074
68096
|
}], ctorParameters: () => [{ type: StoreBuilderService }, { type: i2$1.GlobalStateService }, { type: i1$1.NgbModal }] });
|
|
68075
68097
|
|
|
68076
68098
|
class CadFilesComponent {
|
|
@@ -68147,11 +68169,11 @@ class CadFilesComponent {
|
|
|
68147
68169
|
this.destroy$.complete();
|
|
68148
68170
|
}
|
|
68149
68171
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CadFilesComponent, deps: [{ token: StoreBuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
68150
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CadFilesComponent, selector: "lib-cad-files", ngImport: i0, template: "<section class=\"cad-files p-3\">\n <div class=\"card p-4\">\n <h5 class=\"mb-1\">CAD & Kissflow Files</h5>\n <p class=\"text-muted small mb-3\">\n Enter a store name to list the uploaded CAD and Kissflow files (sorted).\n </p>\n\n <div class=\"d-flex gap-2 align-items-end mb-3 flex-wrap\">\n <div class=\"flex-grow-1\" style=\"min-width: 260px; max-width: 420px;\">\n <label class=\"form-label\">Store Name</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"Enter store name\"\n [(ngModel)]=\"storeName\"\n (keyup.enter)=\"onFetch()\"\n [disabled]=\"isLoading\" />\n </div>\n\n <button\n class=\"btn btn-primary\"\n (click)=\"onFetch()\"\n [disabled]=\"isLoading || !storeName.trim()\">\n {{ isLoading ? 'Fetching...' : 'Fetch Files' }}\n </button>\n </div>\n\n @if (message) {\n <div\n class=\"alert\"\n [class.alert-success]=\"messageType === 'success'\"\n [class.alert-danger]=\"messageType === 'error'\">\n {{ message }}\n </div>\n }\n\n @if (isLoading) {\n <div class=\"text-muted\">Loading files...</div>\n } @else if (hasSearched && files.length === 0) {\n <div class=\"text-muted\">No files found for this store.</div>\n } @else if (files.length > 0) {\n <div class=\"table-responsive\">\n <table class=\"table table-sm align-middle\">\n <thead>\n <tr>\n <th>Name</th>\n <th>Key</th>\n <th>Uploaded At</th>\n <th>Size</th>\n <th class=\"text-end\">Action</th>\n </tr>\n </thead>\n <tbody>\n @for (file of files; track file.key) {\n <tr>\n <td>{{ file.name }}</td>\n <td class=\"text-muted small text-break\">{{ file.key }}</td>\n <td>{{ file.uploadedAt | date: 'medium' }}</td>\n <td>{{ formatSize(file.size) }}</td>\n <td class=\"text-end\">\n <button\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"onDownload(file)\"\n [disabled]=\"downloadingKey === file.key\">\n {{ downloadingKey === file.key ? 'Downloading...' : 'Download' }}\n </button>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n</section>\n", styles: [".cad-files .card{border:1px solid #e0e0e0}.cad-files .table th{font-size:.85rem;color:#475467;font-weight:600}.cad-files .table td{vertical-align:middle}.cad-files .table .text-break{word-break:break-all}\n"], dependencies: [{ kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] });
|
|
68172
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CadFilesComponent, selector: "lib-cad-files", ngImport: i0, template: "<section class=\"cad-files p-3\">\r\n <div class=\"card p-4\">\r\n <h5 class=\"mb-1\">CAD & Kissflow Files</h5>\r\n <p class=\"text-muted small mb-3\">\r\n Enter a store name to list the uploaded CAD and Kissflow files (sorted).\r\n </p>\r\n\r\n <div class=\"d-flex gap-2 align-items-end mb-3 flex-wrap\">\r\n <div class=\"flex-grow-1\" style=\"min-width: 260px; max-width: 420px;\">\r\n <label class=\"form-label\">Store Name</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n placeholder=\"Enter store name\"\r\n [(ngModel)]=\"storeName\"\r\n (keyup.enter)=\"onFetch()\"\r\n [disabled]=\"isLoading\" />\r\n </div>\r\n\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"onFetch()\"\r\n [disabled]=\"isLoading || !storeName.trim()\">\r\n {{ isLoading ? 'Fetching...' : 'Fetch Files' }}\r\n </button>\r\n </div>\r\n\r\n @if (message) {\r\n <div\r\n class=\"alert\"\r\n [class.alert-success]=\"messageType === 'success'\"\r\n [class.alert-danger]=\"messageType === 'error'\">\r\n {{ message }}\r\n </div>\r\n }\r\n\r\n @if (isLoading) {\r\n <div class=\"text-muted\">Loading files...</div>\r\n } @else if (hasSearched && files.length === 0) {\r\n <div class=\"text-muted\">No files found for this store.</div>\r\n } @else if (files.length > 0) {\r\n <div class=\"table-responsive\">\r\n <table class=\"table table-sm align-middle\">\r\n <thead>\r\n <tr>\r\n <th>Name</th>\r\n <th>Key</th>\r\n <th>Uploaded At</th>\r\n <th>Size</th>\r\n <th class=\"text-end\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (file of files; track file.key) {\r\n <tr>\r\n <td>{{ file.name }}</td>\r\n <td class=\"text-muted small text-break\">{{ file.key }}</td>\r\n <td>{{ file.uploadedAt | date: 'medium' }}</td>\r\n <td>{{ formatSize(file.size) }}</td>\r\n <td class=\"text-end\">\r\n <button\r\n class=\"btn btn-sm btn-outline-primary\"\r\n (click)=\"onDownload(file)\"\r\n [disabled]=\"downloadingKey === file.key\">\r\n {{ downloadingKey === file.key ? 'Downloading...' : 'Download' }}\r\n </button>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n }\r\n </div>\r\n</section>\r\n", styles: [".cad-files .card{border:1px solid #e0e0e0}.cad-files .table th{font-size:.85rem;color:#475467;font-weight:600}.cad-files .table td{vertical-align:middle}.cad-files .table .text-break{word-break:break-all}\n"], dependencies: [{ kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] });
|
|
68151
68173
|
}
|
|
68152
68174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CadFilesComponent, decorators: [{
|
|
68153
68175
|
type: Component,
|
|
68154
|
-
args: [{ selector: 'lib-cad-files', template: "<section class=\"cad-files p-3\">\n <div class=\"card p-4\">\n <h5 class=\"mb-1\">CAD & Kissflow Files</h5>\n <p class=\"text-muted small mb-3\">\n Enter a store name to list the uploaded CAD and Kissflow files (sorted).\n </p>\n\n <div class=\"d-flex gap-2 align-items-end mb-3 flex-wrap\">\n <div class=\"flex-grow-1\" style=\"min-width: 260px; max-width: 420px;\">\n <label class=\"form-label\">Store Name</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"Enter store name\"\n [(ngModel)]=\"storeName\"\n (keyup.enter)=\"onFetch()\"\n [disabled]=\"isLoading\" />\n </div>\n\n <button\n class=\"btn btn-primary\"\n (click)=\"onFetch()\"\n [disabled]=\"isLoading || !storeName.trim()\">\n {{ isLoading ? 'Fetching...' : 'Fetch Files' }}\n </button>\n </div>\n\n @if (message) {\n <div\n class=\"alert\"\n [class.alert-success]=\"messageType === 'success'\"\n [class.alert-danger]=\"messageType === 'error'\">\n {{ message }}\n </div>\n }\n\n @if (isLoading) {\n <div class=\"text-muted\">Loading files...</div>\n } @else if (hasSearched && files.length === 0) {\n <div class=\"text-muted\">No files found for this store.</div>\n } @else if (files.length > 0) {\n <div class=\"table-responsive\">\n <table class=\"table table-sm align-middle\">\n <thead>\n <tr>\n <th>Name</th>\n <th>Key</th>\n <th>Uploaded At</th>\n <th>Size</th>\n <th class=\"text-end\">Action</th>\n </tr>\n </thead>\n <tbody>\n @for (file of files; track file.key) {\n <tr>\n <td>{{ file.name }}</td>\n <td class=\"text-muted small text-break\">{{ file.key }}</td>\n <td>{{ file.uploadedAt | date: 'medium' }}</td>\n <td>{{ formatSize(file.size) }}</td>\n <td class=\"text-end\">\n <button\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"onDownload(file)\"\n [disabled]=\"downloadingKey === file.key\">\n {{ downloadingKey === file.key ? 'Downloading...' : 'Download' }}\n </button>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n</section>\n", styles: [".cad-files .card{border:1px solid #e0e0e0}.cad-files .table th{font-size:.85rem;color:#475467;font-weight:600}.cad-files .table td{vertical-align:middle}.cad-files .table .text-break{word-break:break-all}\n"] }]
|
|
68176
|
+
args: [{ selector: 'lib-cad-files', template: "<section class=\"cad-files p-3\">\r\n <div class=\"card p-4\">\r\n <h5 class=\"mb-1\">CAD & Kissflow Files</h5>\r\n <p class=\"text-muted small mb-3\">\r\n Enter a store name to list the uploaded CAD and Kissflow files (sorted).\r\n </p>\r\n\r\n <div class=\"d-flex gap-2 align-items-end mb-3 flex-wrap\">\r\n <div class=\"flex-grow-1\" style=\"min-width: 260px; max-width: 420px;\">\r\n <label class=\"form-label\">Store Name</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n placeholder=\"Enter store name\"\r\n [(ngModel)]=\"storeName\"\r\n (keyup.enter)=\"onFetch()\"\r\n [disabled]=\"isLoading\" />\r\n </div>\r\n\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"onFetch()\"\r\n [disabled]=\"isLoading || !storeName.trim()\">\r\n {{ isLoading ? 'Fetching...' : 'Fetch Files' }}\r\n </button>\r\n </div>\r\n\r\n @if (message) {\r\n <div\r\n class=\"alert\"\r\n [class.alert-success]=\"messageType === 'success'\"\r\n [class.alert-danger]=\"messageType === 'error'\">\r\n {{ message }}\r\n </div>\r\n }\r\n\r\n @if (isLoading) {\r\n <div class=\"text-muted\">Loading files...</div>\r\n } @else if (hasSearched && files.length === 0) {\r\n <div class=\"text-muted\">No files found for this store.</div>\r\n } @else if (files.length > 0) {\r\n <div class=\"table-responsive\">\r\n <table class=\"table table-sm align-middle\">\r\n <thead>\r\n <tr>\r\n <th>Name</th>\r\n <th>Key</th>\r\n <th>Uploaded At</th>\r\n <th>Size</th>\r\n <th class=\"text-end\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (file of files; track file.key) {\r\n <tr>\r\n <td>{{ file.name }}</td>\r\n <td class=\"text-muted small text-break\">{{ file.key }}</td>\r\n <td>{{ file.uploadedAt | date: 'medium' }}</td>\r\n <td>{{ formatSize(file.size) }}</td>\r\n <td class=\"text-end\">\r\n <button\r\n class=\"btn btn-sm btn-outline-primary\"\r\n (click)=\"onDownload(file)\"\r\n [disabled]=\"downloadingKey === file.key\">\r\n {{ downloadingKey === file.key ? 'Downloading...' : 'Download' }}\r\n </button>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n }\r\n </div>\r\n</section>\r\n", styles: [".cad-files .card{border:1px solid #e0e0e0}.cad-files .table th{font-size:.85rem;color:#475467;font-weight:600}.cad-files .table td{vertical-align:middle}.cad-files .table .text-break{word-break:break-all}\n"] }]
|
|
68155
68177
|
}], ctorParameters: () => [{ type: StoreBuilderService }] });
|
|
68156
68178
|
|
|
68157
68179
|
const routes$1 = [
|