tango-app-ui-store-builder 1.2.4 → 1.2.5

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.
Files changed (27) hide show
  1. package/esm2022/lib/components/custom-select/custom-select.component.mjs +14 -5
  2. package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +15 -8
  3. package/esm2022/lib/components/manage-store-plano/zone-verification-feedback/zone-verification-feedback.component.mjs +7 -2
  4. package/esm2022/lib/components/onboard-store-plano/onboard-store-plano.component.mjs +173 -22
  5. package/esm2022/lib/components/plano-tools/cad-files/cad-files.component.mjs +88 -0
  6. package/esm2022/lib/components/plano-tools/move-bucket/move-bucket.component.mjs +239 -0
  7. package/esm2022/lib/components/plano-tools/plano-migrate/plano-migrate.component.mjs +3 -3
  8. package/esm2022/lib/components/plano-tools/swap-template/swap-template.component.mjs +325 -0
  9. package/esm2022/lib/components/plano-tools/tools-parent/tools-parent.component.mjs +3 -3
  10. package/esm2022/lib/components/popups/delete-confirmation/delete-confirmation.component.mjs +10 -3
  11. package/esm2022/lib/services/store-builder.service.mjs +15 -1
  12. package/esm2022/lib/tango-store-builder-routing.module.mjs +16 -1
  13. package/esm2022/lib/tango-store-builder.module.mjs +10 -1
  14. package/fesm2022/tango-app-ui-store-builder.mjs +873 -40
  15. package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
  16. package/lib/components/custom-select/custom-select.component.d.ts +5 -2
  17. package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +4 -4
  18. package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +5 -5
  19. package/lib/components/manage-store-plano/manage-store-plano.component.d.ts +1 -0
  20. package/lib/components/onboard-store-plano/onboard-store-plano.component.d.ts +11 -1
  21. package/lib/components/plano-tools/cad-files/cad-files.component.d.ts +30 -0
  22. package/lib/components/plano-tools/move-bucket/move-bucket.component.d.ts +64 -0
  23. package/lib/components/plano-tools/swap-template/swap-template.component.d.ts +83 -0
  24. package/lib/components/popups/delete-confirmation/delete-confirmation.component.d.ts +3 -1
  25. package/lib/services/store-builder.service.d.ts +16 -0
  26. package/lib/tango-store-builder.module.d.ts +56 -53
  27. package/package.json +1 -1
@@ -0,0 +1,325 @@
1
+ import { ChangeDetectionStrategy, Component, } from '@angular/core';
2
+ import { catchError, debounceTime, distinctUntilChanged, filter, finalize, map, of, shareReplay, Subject, switchMap, takeUntil, tap, } from 'rxjs';
3
+ import { DeleteConfirmationComponent } from '../../popups/delete-confirmation/delete-confirmation.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services/store-builder.service";
6
+ import * as i2 from "tango-app-ui-global";
7
+ import * as i3 from "@ng-bootstrap/ng-bootstrap";
8
+ import * as i4 from "tango-app-ui-shared";
9
+ import * as i5 from "../../reactive-select/reactive-select.component";
10
+ import * as i6 from "@angular/common";
11
+ import * as i7 from "@angular/forms";
12
+ export class SwapTemplateComponent {
13
+ sbs;
14
+ gs;
15
+ modalService;
16
+ toast;
17
+ cdr;
18
+ clientId;
19
+ storeOptions = [];
20
+ selectedStoreId = null;
21
+ selectedStore = null;
22
+ fixtures = [];
23
+ templates = [];
24
+ rows = [];
25
+ isLoadingFixtures = false;
26
+ isSubmitting = false;
27
+ canAddRow = false;
28
+ canSubmit = false;
29
+ destroy$ = new Subject();
30
+ storeSelected$ = new Subject();
31
+ templatesCache$ = null;
32
+ cachedTemplatesClientId = null;
33
+ rowIdSeq = 0;
34
+ constructor(sbs, gs, modalService, toast, cdr) {
35
+ this.sbs = sbs;
36
+ this.gs = gs;
37
+ this.modalService = modalService;
38
+ this.toast = toast;
39
+ this.cdr = cdr;
40
+ }
41
+ ngOnInit() {
42
+ this.gs.dataRangeValue
43
+ .pipe(takeUntil(this.destroy$), debounceTime(200), filter((data) => !!data), map((data) => {
44
+ if (data?.client)
45
+ return data.client;
46
+ const headerData = JSON.parse(localStorage.getItem('header-filters'));
47
+ return headerData?.client;
48
+ }), filter((id) => !!id), distinctUntilChanged())
49
+ .subscribe((clientId) => {
50
+ this.clientId = clientId;
51
+ this.templatesCache$ = null;
52
+ this.cachedTemplatesClientId = null;
53
+ this.resetSelection();
54
+ this.loadStores();
55
+ this.prefetchTemplates();
56
+ });
57
+ this.storeSelected$
58
+ .pipe(takeUntil(this.destroy$), tap((store) => {
59
+ this.selectedStore = store;
60
+ this.selectedStoreId = store.id;
61
+ this.fixtures = [];
62
+ this.rows = [];
63
+ this.recomputeFlags();
64
+ this.isLoadingFixtures = true;
65
+ this.cdr.markForCheck();
66
+ }), switchMap((store) => this.sbs
67
+ .getFixtureDetailsByStore(store.label, this.clientId)
68
+ .pipe(catchError(() => of({ data: [] })), finalize(() => {
69
+ this.isLoadingFixtures = false;
70
+ this.cdr.markForCheck();
71
+ }))))
72
+ .subscribe((res) => {
73
+ const fixtureData = res?.data || [];
74
+ this.fixtures = fixtureData.map((f) => ({
75
+ _id: f._id,
76
+ fixtureNumber: f.fixtureNumber,
77
+ fixtureName: f.fixtureName || '',
78
+ fixtureCategory: f.fixtureCategory || '',
79
+ fixtureWidthValue: f.fixtureWidthValue ?? 0,
80
+ associatedElementType: f.associatedElementType || '',
81
+ associatedElementFixtureNumber: f.associatedElementFixtureNumber ?? null,
82
+ displayName: `Fixture ${f.fixtureNumber}`,
83
+ }));
84
+ this.rows = this.fixtures.length ? [this.makeEmptyRow()] : [];
85
+ this.recomputeFlags();
86
+ this.cdr.markForCheck();
87
+ });
88
+ }
89
+ loadStores() {
90
+ this.sbs
91
+ .getStoreOrClusterList({ searchMode: 'store' })
92
+ .pipe(takeUntil(this.destroy$))
93
+ .subscribe({
94
+ next: (res) => {
95
+ this.storeOptions = res?.data || [];
96
+ this.cdr.markForCheck();
97
+ },
98
+ error: () => {
99
+ this.storeOptions = [];
100
+ this.cdr.markForCheck();
101
+ },
102
+ });
103
+ }
104
+ prefetchTemplates() {
105
+ this.getCachedTemplates()
106
+ .pipe(takeUntil(this.destroy$))
107
+ .subscribe({
108
+ next: (templates) => {
109
+ this.templates = templates;
110
+ this.cdr.markForCheck();
111
+ },
112
+ error: () => {
113
+ this.templates = [];
114
+ this.cdr.markForCheck();
115
+ },
116
+ });
117
+ }
118
+ getCachedTemplates() {
119
+ if (this.templatesCache$ &&
120
+ this.cachedTemplatesClientId === this.clientId) {
121
+ return this.templatesCache$;
122
+ }
123
+ this.cachedTemplatesClientId = this.clientId;
124
+ this.templatesCache$ = this.sbs
125
+ .getAllTemplates({ clientId: this.clientId })
126
+ .pipe(map((res) => {
127
+ const tplData = res?.data || [];
128
+ return tplData.map((t) => ({
129
+ _id: t._id,
130
+ fixtureName: t.fixtureName,
131
+ displayName: t.fixtureName?.includes('-ft')
132
+ ? t.fixtureName
133
+ : `${t.fixtureName} - ${t.fixtureWidth?.value ?? ''} ${t.fixtureWidth?.unit ?? ''}`,
134
+ subtext: (t.productBrandName || []).join(', '),
135
+ }));
136
+ }), shareReplay({ bufferSize: 1, refCount: false }));
137
+ return this.templatesCache$;
138
+ }
139
+ onStoreSelected(storeId) {
140
+ if (!storeId || storeId === this.selectedStore?.id)
141
+ return;
142
+ const store = this.storeOptions.find((s) => s.id === storeId);
143
+ if (!store)
144
+ return;
145
+ this.storeSelected$.next(store);
146
+ }
147
+ makeEmptyRow() {
148
+ const row = {
149
+ rowId: ++this.rowIdSeq,
150
+ fixtureId: null,
151
+ templateId: null,
152
+ fixture: null,
153
+ template: null,
154
+ fixtureOptions: [],
155
+ wallPosition: '',
156
+ };
157
+ row.fixtureOptions = this.computeFixtureOptions(row);
158
+ return row;
159
+ }
160
+ computeFixtureOptions(excludeRow) {
161
+ const usedIds = new Set(this.rows
162
+ .filter((r) => r !== excludeRow && r?.fixture)
163
+ .map((r) => r.fixture._id));
164
+ return this.fixtures.filter((f) => !usedIds.has(f._id));
165
+ }
166
+ refreshAllFixtureOptions() {
167
+ this.rows.forEach((r) => {
168
+ r.fixtureOptions = this.computeFixtureOptions(r);
169
+ });
170
+ }
171
+ computeWallPosition(fixture) {
172
+ if (!fixture)
173
+ return '';
174
+ if (fixture.associatedElementType === 'wall' &&
175
+ fixture.associatedElementFixtureNumber != null) {
176
+ return `Wall ${fixture.associatedElementFixtureNumber}`;
177
+ }
178
+ if (fixture.associatedElementType === 'floor')
179
+ return 'Floor';
180
+ return fixture.associatedElementType
181
+ ? fixture.associatedElementType.charAt(0).toUpperCase() +
182
+ fixture.associatedElementType.slice(1)
183
+ : '—';
184
+ }
185
+ recomputeFlags() {
186
+ const last = this.rows[this.rows.length - 1];
187
+ this.canAddRow =
188
+ this.rows.length > 0 &&
189
+ this.rows.length < this.fixtures.length &&
190
+ !!last?.fixture &&
191
+ !!last?.template;
192
+ this.canSubmit =
193
+ !!this.selectedStore &&
194
+ this.rows.length > 0 &&
195
+ this.rows.every((r) => !!r.fixture && !!r.template);
196
+ }
197
+ onRowFixtureChange(row, fixtureId) {
198
+ row.fixtureId = fixtureId;
199
+ row.fixture = fixtureId
200
+ ? this.fixtures.find((f) => f._id === fixtureId) || null
201
+ : null;
202
+ row.wallPosition = this.computeWallPosition(row.fixture);
203
+ this.refreshAllFixtureOptions();
204
+ this.recomputeFlags();
205
+ this.cdr.markForCheck();
206
+ }
207
+ onRowTemplateChange(row, templateId) {
208
+ row.templateId = templateId;
209
+ row.template = templateId
210
+ ? this.templates.find((t) => t._id === templateId) || null
211
+ : null;
212
+ this.recomputeFlags();
213
+ this.cdr.markForCheck();
214
+ }
215
+ addRow() {
216
+ if (!this.canAddRow)
217
+ return;
218
+ this.rows.push(this.makeEmptyRow());
219
+ this.recomputeFlags();
220
+ this.cdr.markForCheck();
221
+ }
222
+ removeRow(index) {
223
+ if (this.rows.length === 1) {
224
+ this.rows[0] = this.makeEmptyRow();
225
+ }
226
+ else {
227
+ this.rows.splice(index, 1);
228
+ }
229
+ this.refreshAllFixtureOptions();
230
+ this.recomputeFlags();
231
+ this.cdr.markForCheck();
232
+ }
233
+ onCancel() {
234
+ this.resetSelection();
235
+ this.cdr.markForCheck();
236
+ }
237
+ resetSelection() {
238
+ this.selectedStore = null;
239
+ this.selectedStoreId = null;
240
+ this.fixtures = [];
241
+ this.rows = [];
242
+ this.isLoadingFixtures = false;
243
+ this.recomputeFlags();
244
+ }
245
+ async onSubmit() {
246
+ if (!this.canSubmit || !this.selectedStore || this.isSubmitting)
247
+ return;
248
+ const storeName = this.selectedStore.label;
249
+ const payload = {
250
+ data: this.rows.map((r) => ({
251
+ storeName,
252
+ fixtureNumber: r.fixture.fixtureNumber,
253
+ templateName: r.template.fixtureName,
254
+ })),
255
+ };
256
+ const confirmed = await this.confirmSwap(payload.data.length);
257
+ if (!confirmed)
258
+ return;
259
+ this.isSubmitting = true;
260
+ this.cdr.markForCheck();
261
+ this.sbs
262
+ .swapFixtureTemplate(payload)
263
+ .pipe(takeUntil(this.destroy$))
264
+ .subscribe({
265
+ next: (res) => {
266
+ const successCount = res?.data?.successCount ?? 0;
267
+ const errorCount = res?.data?.errorCount ?? 0;
268
+ const errors = res?.data?.errors || [];
269
+ if (errorCount === 0) {
270
+ this.toast.getSuccessToast(`Swapped ${successCount} fixture template(s) successfully.`);
271
+ this.onCancel();
272
+ }
273
+ else if (successCount > 0) {
274
+ this.toast.getWarningToast(`Partial: ${successCount} succeeded, ${errorCount} failed. ${this.summarizeErrors(errors)}`);
275
+ }
276
+ else {
277
+ this.toast.getErrorToast(`All ${errorCount} swap(s) failed. ${this.summarizeErrors(errors)}`);
278
+ }
279
+ this.isSubmitting = false;
280
+ this.cdr.markForCheck();
281
+ },
282
+ error: (err) => {
283
+ this.toast.getErrorToast(err?.error?.message || 'Failed to swap fixture template.');
284
+ this.isSubmitting = false;
285
+ this.cdr.markForCheck();
286
+ },
287
+ });
288
+ }
289
+ summarizeErrors(errors) {
290
+ if (!errors?.length)
291
+ return '';
292
+ const first = errors
293
+ .slice(0, 2)
294
+ .map((e) => `#${e.fixtureNumber}: ${e.error}`)
295
+ .join('; ');
296
+ return errors.length > 2 ? `${first}; …` : first;
297
+ }
298
+ async confirmSwap(count) {
299
+ try {
300
+ const modelRef = this.modalService.open(DeleteConfirmationComponent, {
301
+ centered: true,
302
+ });
303
+ modelRef.componentInstance.title = 'Confirm template swap';
304
+ modelRef.componentInstance.description = `This will overwrite ${count} fixture(s) with the chosen templates and delete their existing shelves. This action cannot be undone. Continue?`;
305
+ const result = await modelRef.result;
306
+ return result === 'ok';
307
+ }
308
+ catch {
309
+ return false;
310
+ }
311
+ }
312
+ trackByRow = (_, row) => row.rowId;
313
+ ngOnDestroy() {
314
+ this.destroy$.next();
315
+ this.destroy$.complete();
316
+ this.storeSelected$.complete();
317
+ }
318
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SwapTemplateComponent, deps: [{ token: i1.StoreBuilderService }, { token: i2.GlobalStateService }, { token: i3.NgbModal }, { token: i4.ToastService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
319
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SwapTemplateComponent, selector: "lib-swap-template", ngImport: i0, template: "<section class=\"swap-template p-3\">\r\n <div class=\"card p-4\" style=\"max-width: 900px;\">\r\n <h5 class=\"mb-3\">Swap Fixture Template</h5>\r\n\r\n <!-- Store Select -->\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 <ng-container *ngIf=\"selectedStore\">\r\n <ng-container *ngIf=\"isLoadingFixtures; else loaded\">\r\n <div class=\"text-muted mb-3\">Loading fixtures\u2026</div>\r\n </ng-container>\r\n\r\n <ng-template #loaded>\r\n <ng-container *ngIf=\"fixtures.length; else noFixtures\">\r\n <!-- Swap Rows -->\r\n <div class=\"swap-rows\">\r\n <div *ngFor=\"let row of rows; let i = index; trackBy: trackByRow\"\r\n class=\"swap-row mb-3\">\r\n <div class=\"row g-2 align-items-start\">\r\n <!-- Plano Fixture -->\r\n <div class=\"col-5\">\r\n <lib-reactive-select\r\n label=\"Plano Fixture\"\r\n [idField]=\"'_id'\"\r\n [nameField]=\"'displayName'\"\r\n [data]=\"row.fixtureOptions\"\r\n [search]=\"true\"\r\n [ngModel]=\"row.fixtureId\"\r\n (ngModelChange)=\"onRowFixtureChange(row, $event)\">\r\n </lib-reactive-select>\r\n\r\n <div *ngIf=\"row.fixture\" class=\"fixture-info mt-2\">\r\n <div>\r\n <span class=\"label\">Name:</span>\r\n {{ row.fixture.fixtureName || '\u2014' }}\r\n </div>\r\n <div>\r\n <span class=\"label\">Position:</span>\r\n {{ row.wallPosition }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Arrow -->\r\n <div class=\"col-1 d-flex justify-content-center\"\r\n style=\"padding-top: 30px;\">\r\n <span class=\"arrow\">\u2192</span>\r\n </div>\r\n\r\n <!-- Swapping Template -->\r\n <div class=\"col-5\">\r\n <lib-reactive-select\r\n label=\"Swapping Template\"\r\n [idField]=\"'_id'\"\r\n [nameField]=\"'displayName'\"\r\n [subTextField]=\"'subtext'\"\r\n [data]=\"templates\"\r\n [search]=\"true\"\r\n [ngModel]=\"row.templateId\"\r\n (ngModelChange)=\"onRowTemplateChange(row, $event)\">\r\n </lib-reactive-select>\r\n </div>\r\n\r\n <!-- Remove Row -->\r\n <div class=\"col-1 d-flex justify-content-end\"\r\n style=\"padding-top: 30px;\">\r\n <button type=\"button\" class=\"btn btn-link p-0 remove-btn\"\r\n (click)=\"removeRow(i)\" title=\"Remove row\"\r\n [disabled]=\"rows.length === 1 && !row.fixture && !row.template\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 10 10\" fill=\"none\">\r\n <path d=\"M9 1L1 9M1 1L9 9\" stroke=\"#344054\"\r\n stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Add Row -->\r\n <div class=\"mb-3\">\r\n <button type=\"button\" class=\"btn btn-link p-0 add-btn\"\r\n (click)=\"addRow()\" [disabled]=\"!canAddRow\">\r\n + Add another swap\r\n </button>\r\n </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"d-flex gap-2 mt-4\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\"\r\n [disabled]=\"isSubmitting\">\r\n Cancel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onSubmit()\"\r\n [disabled]=\"!canSubmit || isSubmitting\">\r\n {{ isSubmitting ? 'Submitting\u2026' : 'Submit' }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #noFixtures>\r\n <div class=\"text-muted\">No fixtures found for this store.</div>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</section>\r\n", styles: [".swap-template .swap-row{border:1px solid #eaecf0;border-radius:6px;padding:12px;background:#fcfcfd}.swap-template .fixture-info{font-size:12px;color:#475467;background:#fff;border:1px dashed #eaecf0;border-radius:4px;padding:6px 8px;line-height:1.5}.swap-template .fixture-info .label{font-weight:600;color:#344054;margin-right:4px}.swap-template .arrow{font-size:20px;color:#98a2b3;-webkit-user-select:none;user-select:none}.swap-template .add-btn{color:#1570ef;text-decoration:none;font-weight:500}.swap-template .add-btn:disabled{color:#98a2b3;cursor:not-allowed}.swap-template .remove-btn{line-height:1}.swap-template .remove-btn:disabled{opacity:.4;cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: i5.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "subTextField", "searchField", "label", "data", "action", "search", "prefix", "actionLabel"], outputs: ["actionClick"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
320
+ }
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SwapTemplateComponent, decorators: [{
322
+ type: Component,
323
+ args: [{ selector: 'lib-swap-template', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"swap-template p-3\">\r\n <div class=\"card p-4\" style=\"max-width: 900px;\">\r\n <h5 class=\"mb-3\">Swap Fixture Template</h5>\r\n\r\n <!-- Store Select -->\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 <ng-container *ngIf=\"selectedStore\">\r\n <ng-container *ngIf=\"isLoadingFixtures; else loaded\">\r\n <div class=\"text-muted mb-3\">Loading fixtures\u2026</div>\r\n </ng-container>\r\n\r\n <ng-template #loaded>\r\n <ng-container *ngIf=\"fixtures.length; else noFixtures\">\r\n <!-- Swap Rows -->\r\n <div class=\"swap-rows\">\r\n <div *ngFor=\"let row of rows; let i = index; trackBy: trackByRow\"\r\n class=\"swap-row mb-3\">\r\n <div class=\"row g-2 align-items-start\">\r\n <!-- Plano Fixture -->\r\n <div class=\"col-5\">\r\n <lib-reactive-select\r\n label=\"Plano Fixture\"\r\n [idField]=\"'_id'\"\r\n [nameField]=\"'displayName'\"\r\n [data]=\"row.fixtureOptions\"\r\n [search]=\"true\"\r\n [ngModel]=\"row.fixtureId\"\r\n (ngModelChange)=\"onRowFixtureChange(row, $event)\">\r\n </lib-reactive-select>\r\n\r\n <div *ngIf=\"row.fixture\" class=\"fixture-info mt-2\">\r\n <div>\r\n <span class=\"label\">Name:</span>\r\n {{ row.fixture.fixtureName || '\u2014' }}\r\n </div>\r\n <div>\r\n <span class=\"label\">Position:</span>\r\n {{ row.wallPosition }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Arrow -->\r\n <div class=\"col-1 d-flex justify-content-center\"\r\n style=\"padding-top: 30px;\">\r\n <span class=\"arrow\">\u2192</span>\r\n </div>\r\n\r\n <!-- Swapping Template -->\r\n <div class=\"col-5\">\r\n <lib-reactive-select\r\n label=\"Swapping Template\"\r\n [idField]=\"'_id'\"\r\n [nameField]=\"'displayName'\"\r\n [subTextField]=\"'subtext'\"\r\n [data]=\"templates\"\r\n [search]=\"true\"\r\n [ngModel]=\"row.templateId\"\r\n (ngModelChange)=\"onRowTemplateChange(row, $event)\">\r\n </lib-reactive-select>\r\n </div>\r\n\r\n <!-- Remove Row -->\r\n <div class=\"col-1 d-flex justify-content-end\"\r\n style=\"padding-top: 30px;\">\r\n <button type=\"button\" class=\"btn btn-link p-0 remove-btn\"\r\n (click)=\"removeRow(i)\" title=\"Remove row\"\r\n [disabled]=\"rows.length === 1 && !row.fixture && !row.template\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 10 10\" fill=\"none\">\r\n <path d=\"M9 1L1 9M1 1L9 9\" stroke=\"#344054\"\r\n stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Add Row -->\r\n <div class=\"mb-3\">\r\n <button type=\"button\" class=\"btn btn-link p-0 add-btn\"\r\n (click)=\"addRow()\" [disabled]=\"!canAddRow\">\r\n + Add another swap\r\n </button>\r\n </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"d-flex gap-2 mt-4\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\"\r\n [disabled]=\"isSubmitting\">\r\n Cancel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onSubmit()\"\r\n [disabled]=\"!canSubmit || isSubmitting\">\r\n {{ isSubmitting ? 'Submitting\u2026' : 'Submit' }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #noFixtures>\r\n <div class=\"text-muted\">No fixtures found for this store.</div>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</section>\r\n", styles: [".swap-template .swap-row{border:1px solid #eaecf0;border-radius:6px;padding:12px;background:#fcfcfd}.swap-template .fixture-info{font-size:12px;color:#475467;background:#fff;border:1px dashed #eaecf0;border-radius:4px;padding:6px 8px;line-height:1.5}.swap-template .fixture-info .label{font-weight:600;color:#344054;margin-right:4px}.swap-template .arrow{font-size:20px;color:#98a2b3;-webkit-user-select:none;user-select:none}.swap-template .add-btn{color:#1570ef;text-decoration:none;font-weight:500}.swap-template .add-btn:disabled{color:#98a2b3;cursor:not-allowed}.swap-template .remove-btn{line-height:1}.swap-template .remove-btn:disabled{opacity:.4;cursor:not-allowed}\n"] }]
324
+ }], ctorParameters: () => [{ type: i1.StoreBuilderService }, { type: i2.GlobalStateService }, { type: i3.NgbModal }, { type: i4.ToastService }, { type: i0.ChangeDetectorRef }] });
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhcC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9wbGFuby10b29scy9zd2FwLXRlbXBsYXRlL3N3YXAtdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvc3dhcC10ZW1wbGF0ZS9zd2FwLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFFSCxFQUFFLEVBQ0YsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUlkLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7Ozs7Ozs7QUF5QzdHLE1BQU0sT0FBTyxxQkFBcUI7SUF3QnRCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUEzQlYsUUFBUSxDQUFTO0lBRWpCLFlBQVksR0FBZ0IsRUFBRSxDQUFDO0lBQy9CLGVBQWUsR0FBa0IsSUFBSSxDQUFDO0lBQ3RDLGFBQWEsR0FBcUIsSUFBSSxDQUFDO0lBRXZDLFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBQzdCLFNBQVMsR0FBbUIsRUFBRSxDQUFDO0lBQy9CLElBQUksR0FBYyxFQUFFLENBQUM7SUFFckIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFFckIsU0FB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LENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFhO1FBQ3JDLElBQUk7WUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtnQkFDbkUsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLHVCQUF1QixDQUFDO1lBQzNELFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsdUJBQXVCLEtBQUssa0hBQWtILENBQUM7WUFDeEwsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JDLE9BQU8sTUFBTSxLQUFLLElBQUksQ0FBQztTQUN4QjtRQUFDLE1BQU07WUFDTixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELFVBQVUsR0FBRyxDQUFDLENBQVMsRUFBRSxHQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFFcEQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7d0dBdldVLHFCQUFxQjs0RkFBckIscUJBQXFCLHlEQ25FbEMsczJKQXVIQTs7NEZEcERhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpbHRlcixcclxuICBmaW5hbGl6ZSxcclxuICBtYXAsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBvZixcclxuICBzaGFyZVJlcGxheSxcclxuICBTdWJqZWN0LFxyXG4gIHN3aXRjaE1hcCxcclxuICB0YWtlVW50aWwsXHJcbiAgdGFwLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFN0b3JlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yZS1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZWxldGVDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9wb3B1cHMvZGVsZXRlLWNvbmZpcm1hdGlvbi9kZWxldGUtY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgU3RvcmVJdGVtIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBGaXh0dXJlSXRlbSB7XHJcbiAgX2lkOiBzdHJpbmc7XHJcbiAgZml4dHVyZU51bWJlcjogbnVtYmVyO1xyXG4gIGZpeHR1cmVOYW1lOiBzdHJpbmc7XHJcbiAgZml4dHVyZUNhdGVnb3J5OiBzdHJpbmc7XHJcbiAgZml4dHVyZVdpZHRoVmFsdWU6IG51bWJlcjtcclxuICBhc3NvY2lhdGVkRWxlbWVudFR5cGU6IHN0cmluZztcclxuICBhc3NvY2lhdGVkRWxlbWVudEZpeHR1cmVOdW1iZXI6IG51bWJlciB8IG51bGw7XHJcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIFRlbXBsYXRlSXRlbSB7XHJcbiAgX2lkOiBzdHJpbmc7XHJcbiAgZml4dHVyZU5hbWU6IHN0cmluZztcclxuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gIHN1YnRleHQ6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIFN3YXBSb3cge1xyXG4gIHJvd0lkOiBudW1iZXI7XHJcbiAgZml4dHVyZUlkOiBzdHJpbmcgfCBudWxsO1xyXG4gIHRlbXBsYXRlSWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgZml4dHVyZTogRml4dHVyZUl0ZW0gfCBudWxsO1xyXG4gIHRlbXBsYXRlOiBUZW1wbGF0ZUl0ZW0gfCBudWxsO1xyXG4gIGZpeHR1cmVPcHRpb25zOiBGaXh0dXJlSXRlbVtdO1xyXG4gIHdhbGxQb3NpdGlvbjogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zd2FwLXRlbXBsYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3dhcC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3N3YXAtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3dhcFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIHN0b3JlT3B0aW9uczogU3RvcmVJdGVtW10gPSBbXTtcclxuICBzZWxlY3RlZFN0b3JlSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHNlbGVjdGVkU3RvcmU6IFN0b3JlSXRlbSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBmaXh0dXJlczogRml4dHVyZUl0ZW1bXSA9IFtdO1xyXG4gIHRlbXBsYXRlczogVGVtcGxhdGVJdGVtW10gPSBbXTtcclxuICByb3dzOiBTd2FwUm93W10gPSBbXTtcclxuXHJcbiAgaXNMb2FkaW5nRml4dHVyZXMgPSBmYWxzZTtcclxuICBpc1N1Ym1pdHRpbmcgPSBmYWxzZTtcclxuXHJcbiAgY2FuQWRkUm93ID0gZmFsc2U7XHJcbiAgY2FuU3VibWl0ID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmVTZWxlY3RlZCQgPSBuZXcgU3ViamVjdDxTdG9yZUl0ZW0+KCk7XHJcbiAgcHJpdmF0ZSB0ZW1wbGF0ZXNDYWNoZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVJdGVtW10+IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBjYWNoZWRUZW1wbGF0ZXNDbGllbnRJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSByb3dJZFNlcSA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzYnM6IFN0b3JlQnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIGZpbHRlcigoZGF0YSkgPT4gISFkYXRhKSxcclxuICAgICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGE/LmNsaWVudCkgcmV0dXJuIGRhdGEuY2xpZW50IGFzIHN0cmluZztcclxuICAgICAgICAgIGNvbnN0IGhlYWRlckRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnKSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIGhlYWRlckRhdGE/LmNsaWVudCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmlsdGVyKChpZCk6IGlkIGlzIHN0cmluZyA9PiAhIWlkKSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNsaWVudElkKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJZCA9IGNsaWVudElkO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVzQ2FjaGUkID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNhY2hlZFRlbXBsYXRlc0NsaWVudElkID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5sb2FkU3RvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5wcmVmZXRjaFRlbXBsYXRlcygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN0b3JlU2VsZWN0ZWQkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICB0YXAoKHN0b3JlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBzdG9yZTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZUlkID0gc3RvcmUuaWQ7XHJcbiAgICAgICAgICB0aGlzLmZpeHR1cmVzID0gW107XHJcbiAgICAgICAgICB0aGlzLnJvd3MgPSBbXTtcclxuICAgICAgICAgIHRoaXMucmVjb21wdXRlRmxhZ3MoKTtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nRml4dHVyZXMgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKChzdG9yZSkgPT5cclxuICAgICAgICAgIHRoaXMuc2JzXHJcbiAgICAgICAgICAgIC5nZXRGaXh0dXJlRGV0YWlsc0J5U3RvcmUoc3RvcmUubGFiZWwsIHRoaXMuY2xpZW50SWQpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoeyBkYXRhOiBbXSB9KSksXHJcbiAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdGaXh0dXJlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpeHR1cmVEYXRhOiBhbnlbXSA9IHJlcz8uZGF0YSB8fCBbXTtcclxuICAgICAgICB0aGlzLmZpeHR1cmVzID0gZml4dHVyZURhdGEubWFwKChmKSA9PiAoe1xyXG4gICAgICAgICAgX2lkOiBmLl9pZCxcclxuICAgICAgICAgIGZpeHR1cmVOdW1iZXI6IGYuZml4dHVyZU51bWJlcixcclxuICAgICAgICAgIGZpeHR1cmVOYW1lOiBmLmZpeHR1cmVOYW1lIHx8ICcnLFxyXG4gICAgICAgICAgZml4dHVyZUNhdGVnb3J5OiBmLmZpeHR1cmVDYXRlZ29yeSB8fCAnJyxcclxuICAgICAgICAgIGZpeHR1cmVXaWR0aFZhbHVlOiBmLmZpeHR1cmVXaWR0aFZhbHVlID8/IDAsXHJcbiAgICAgICAgICBhc3NvY2lhdGVkRWxlbWVudFR5cGU6IGYuYXNzb2NpYXRlZEVsZW1lbnRUeXBlIHx8ICcnLFxyXG4gICAgICAgICAgYXNzb2NpYXRlZEVsZW1lbnRGaXh0dXJlTnVtYmVyOlxyXG4gICAgICAgICAgICBmLmFzc29jaWF0ZWRFbGVtZW50Rml4dHVyZU51bWJlciA/PyBudWxsLFxyXG4gICAgICAgICAgZGlzcGxheU5hbWU6IGBGaXh0dXJlICR7Zi5maXh0dXJlTnVtYmVyfWAsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICAgIHRoaXMucm93cyA9IHRoaXMuZml4dHVyZXMubGVuZ3RoID8gW3RoaXMubWFrZUVtcHR5Um93KCldIDogW107XHJcbiAgICAgICAgdGhpcy5yZWNvbXB1dGVGbGFncygpO1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRTdG9yZXMoKSB7XHJcbiAgICB0aGlzLnNic1xyXG4gICAgICAuZ2V0U3RvcmVPckNsdXN0ZXJMaXN0KHsgc2VhcmNoTW9kZTogJ3N0b3JlJyB9KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZU9wdGlvbnMgPSByZXM/LmRhdGEgfHwgW107XHJcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlT3B0aW9ucyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByZWZldGNoVGVtcGxhdGVzKCkge1xyXG4gICAgdGhpcy5nZXRDYWNoZWRUZW1wbGF0ZXMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICh0ZW1wbGF0ZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMudGVtcGxhdGVzID0gdGVtcGxhdGVzO1xyXG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDYWNoZWRUZW1wbGF0ZXMoKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUl0ZW1bXT4ge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnRlbXBsYXRlc0NhY2hlJCAmJlxyXG4gICAgICB0aGlzLmNhY2hlZFRlbXBsYXRlc0NsaWVudElkID09PSB0aGlzLmNsaWVudElkXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzQ2FjaGUkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYWNoZWRUZW1wbGF0ZXNDbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICB0aGlzLnRlbXBsYXRlc0NhY2hlJCA9IHRoaXMuc2JzXHJcbiAgICAgIC5nZXRBbGxUZW1wbGF0ZXMoeyBjbGllbnRJZDogdGhpcy5jbGllbnRJZCB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB0cGxEYXRhOiBhbnlbXSA9IHJlcz8uZGF0YSB8fCBbXTtcclxuICAgICAgICAgIHJldHVybiB0cGxEYXRhLm1hcCgodCkgPT4gKHtcclxuICAgICAgICAgICAgX2lkOiB0Ll9pZCxcclxuICAgICAgICAgICAgZml4dHVyZU5hbWU6IHQuZml4dHVyZU5hbWUsXHJcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB0LmZpeHR1cmVOYW1lPy5pbmNsdWRlcygnLWZ0JylcclxuICAgICAgICAgICAgICA/IHQuZml4dHVyZU5hbWVcclxuICAgICAgICAgICAgICA6IGAke3QuZml4dHVyZU5hbWV9IC0gJHt0LmZpeHR1cmVXaWR0aD8udmFsdWUgPz8gJyd9ICR7XHJcbiAgICAgICAgICAgICAgICAgIHQuZml4dHVyZVdpZHRoPy51bml0ID8/ICcnXHJcbiAgICAgICAgICAgICAgICB9YCxcclxuICAgICAgICAgICAgc3VidGV4dDogKHQucHJvZHVjdEJyYW5kTmFtZSB8fCBbXSkuam9pbignLCAnKSxcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiBmYWxzZSB9KSxcclxuICAgICAgKTtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlc0NhY2hlJDtcclxuICB9XHJcblxyXG4gIG9uU3RvcmVTZWxlY3RlZChzdG9yZUlkOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBpZiAoIXN0b3JlSWQgfHwgc3RvcmVJZCA9PT0gdGhpcy5zZWxlY3RlZFN0b3JlPy5pZCkgcmV0dXJuO1xyXG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnN0b3JlT3B0aW9ucy5maW5kKChzKSA9PiBzLmlkID09PSBzdG9yZUlkKTtcclxuICAgIGlmICghc3RvcmUpIHJldHVybjtcclxuICAgIHRoaXMuc3RvcmVTZWxlY3RlZCQubmV4dChzdG9yZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1ha2VFbXB0eVJvdygpOiBTd2FwUm93IHtcclxuICAgIGNvbnN0IHJvdzogU3dhcFJvdyA9IHtcclxuICAgICAgcm93SWQ6ICsrdGhpcy5yb3dJZFNlcSxcclxuICAgICAgZml4dHVyZUlkOiBudWxsLFxyXG4gICAgICB0ZW1wbGF0ZUlkOiBudWxsLFxyXG4gICAgICBmaXh0dXJlOiBudWxsLFxyXG4gICAgICB0ZW1wbGF0ZTogbnVsbCxcclxuICAgICAgZml4dHVyZU9wdGlvbnM6IFtdLFxyXG4gICAgICB3YWxsUG9zaXRpb246ICcnLFxyXG4gICAgfTtcclxuICAgIHJvdy5maXh0dXJlT3B0aW9ucyA9IHRoaXMuY29tcHV0ZUZpeHR1cmVPcHRpb25zKHJvdyk7XHJcbiAgICByZXR1cm4gcm93O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlRml4dHVyZU9wdGlvbnMoZXhjbHVkZVJvdzogU3dhcFJvdyB8IG51bGwpOiBGaXh0dXJlSXRlbVtdIHtcclxuICAgIGNvbnN0IHVzZWRJZHMgPSBuZXcgU2V0KFxyXG4gICAgICB0aGlzLnJvd3NcclxuICAgICAgICAuZmlsdGVyKChyKSA9PiByICE9PSBleGNsdWRlUm93ICYmIHI/LmZpeHR1cmUpXHJcbiAgICAgICAgLm1hcCgocikgPT4gci5maXh0dXJlIS5faWQpLFxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmZpeHR1cmVzLmZpbHRlcigoZikgPT4gIXVzZWRJZHMuaGFzKGYuX2lkKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hBbGxGaXh0dXJlT3B0aW9ucygpIHtcclxuICAgIHRoaXMucm93cy5mb3JFYWNoKChyKSA9PiB7XHJcbiAgICAgIHIuZml4dHVyZU9wdGlvbnMgPSB0aGlzLmNvbXB1dGVGaXh0dXJlT3B0aW9ucyhyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlV2FsbFBvc2l0aW9uKGZpeHR1cmU6IEZpeHR1cmVJdGVtIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWZpeHR1cmUpIHJldHVybiAnJztcclxuICAgIGlmIChcclxuICAgICAgZml4dHVyZS5hc3NvY2lhdGVkRWxlbWVudFR5cGUgPT09ICd3YWxsJyAmJlxyXG4gICAgICBmaXh0dXJlLmFzc29jaWF0ZWRFbGVtZW50Rml4dHVyZU51bWJlciAhPSBudWxsXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIGBXYWxsICR7Zml4dHVyZS5hc3NvY2lhdGVkRWxlbWVudEZpeHR1cmVOdW1iZXJ9YDtcclxuICAgIH1cclxuICAgIGlmIChmaXh0dXJlLmFzc29jaWF0ZWRFbGVtZW50VHlwZSA9PT0gJ2Zsb29yJykgcmV0dXJuICdGbG9vcic7XHJcbiAgICByZXR1cm4gZml4dHVyZS5hc3NvY2lhdGVkRWxlbWVudFR5cGVcclxuICAgICAgPyBmaXh0dXJlLmFzc29jaWF0ZWRFbGVtZW50VHlwZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArXHJcbiAgICAgICAgICBmaXh0dXJlLmFzc29jaWF0ZWRFbGVtZW50VHlwZS5zbGljZSgxKVxyXG4gICAgICA6ICfigJQnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWNvbXB1dGVGbGFncygpIHtcclxuICAgIGNvbnN0IGxhc3QgPSB0aGlzLnJvd3NbdGhpcy5yb3dzLmxlbmd0aCAtIDFdO1xyXG4gICAgdGhpcy5jYW5BZGRSb3cgPVxyXG4gICAgICB0aGlzLnJvd3MubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLnJvd3MubGVuZ3RoIDwgdGhpcy5maXh0dXJlcy5sZW5ndGggJiZcclxuICAgICAgISFsYXN0Py5maXh0dXJlICYmXHJcbiAgICAgICEhbGFzdD8udGVtcGxhdGU7XHJcblxyXG4gICAgdGhpcy5jYW5TdWJtaXQgPVxyXG4gICAgICAhIXRoaXMuc2VsZWN0ZWRTdG9yZSAmJlxyXG4gICAgICB0aGlzLnJvd3MubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLnJvd3MuZXZlcnkoKHIpID0+ICEhci5maXh0dXJlICYmICEhci50ZW1wbGF0ZSk7XHJcbiAgfVxyXG5cclxuICBvblJvd0ZpeHR1cmVDaGFuZ2Uocm93OiBTd2FwUm93LCBmaXh0dXJlSWQ6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHJvdy5maXh0dXJlSWQgPSBmaXh0dXJlSWQ7XHJcbiAgICByb3cuZml4dHVyZSA9IGZpeHR1cmVJZFxyXG4gICAgICA/IHRoaXMuZml4dHVyZXMuZmluZCgoZikgPT4gZi5faWQgPT09IGZpeHR1cmVJZCkgfHwgbnVsbFxyXG4gICAgICA6IG51bGw7XHJcbiAgICByb3cud2FsbFBvc2l0aW9uID0gdGhpcy5jb21wdXRlV2FsbFBvc2l0aW9uKHJvdy5maXh0dXJlKTtcclxuICAgIHRoaXMucmVmcmVzaEFsbEZpeHR1cmVPcHRpb25zKCk7XHJcbiAgICB0aGlzLnJlY29tcHV0ZUZsYWdzKCk7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uUm93VGVtcGxhdGVDaGFuZ2Uocm93OiBTd2FwUm93LCB0ZW1wbGF0ZUlkOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICByb3cudGVtcGxhdGVJZCA9IHRlbXBsYXRlSWQ7XHJcbiAgICByb3cudGVtcGxhdGUgPSB0ZW1wbGF0ZUlkXHJcbiAgICAgID8gdGhpcy50ZW1wbGF0ZXMuZmluZCgodCkgPT4gdC5faWQgPT09IHRlbXBsYXRlSWQpIHx8IG51bGxcclxuICAgICAgOiBudWxsO1xyXG4gICAgdGhpcy5yZWNvbXB1dGVGbGFncygpO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhZGRSb3coKSB7XHJcbiAgICBpZiAoIXRoaXMuY2FuQWRkUm93KSByZXR1cm47XHJcbiAgICB0aGlzLnJvd3MucHVzaCh0aGlzLm1ha2VFbXB0eVJvdygpKTtcclxuICAgIHRoaXMucmVjb21wdXRlRmxhZ3MoKTtcclxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlUm93KGluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLnJvd3MubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMucm93c1swXSA9IHRoaXMubWFrZUVtcHR5Um93KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvd3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVmcmVzaEFsbEZpeHR1cmVPcHRpb25zKCk7XHJcbiAgICB0aGlzLnJlY29tcHV0ZUZsYWdzKCk7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5yZXNldFNlbGVjdGlvbigpO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0U2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlID0gbnVsbDtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZUlkID0gbnVsbDtcclxuICAgIHRoaXMuZml4dHVyZXMgPSBbXTtcclxuICAgIHRoaXMucm93cyA9IFtdO1xyXG4gICAgdGhpcy5pc0xvYWRpbmdGaXh0dXJlcyA9IGZhbHNlO1xyXG4gICAgdGhpcy5yZWNvbXB1dGVGbGFncygpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25TdWJtaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2FuU3VibWl0IHx8ICF0aGlzLnNlbGVjdGVkU3RvcmUgfHwgdGhpcy5pc1N1Ym1pdHRpbmcpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBzdG9yZU5hbWUgPSB0aGlzLnNlbGVjdGVkU3RvcmUubGFiZWw7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBkYXRhOiB0aGlzLnJvd3MubWFwKChyKSA9PiAoe1xyXG4gICAgICAgIHN0b3JlTmFtZSxcclxuICAgICAgICBmaXh0dXJlTnVtYmVyOiByLmZpeHR1cmUhLmZpeHR1cmVOdW1iZXIsXHJcbiAgICAgICAgdGVtcGxhdGVOYW1lOiByLnRlbXBsYXRlIS5maXh0dXJlTmFtZSxcclxuICAgICAgfSkpLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCB0aGlzLmNvbmZpcm1Td2FwKHBheWxvYWQuZGF0YS5sZW5ndGgpO1xyXG4gICAgaWYgKCFjb25maXJtZWQpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzU3VibWl0dGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc2JzXHJcbiAgICAgIC5zd2FwRml4dHVyZVRlbXBsYXRlKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzdWNjZXNzQ291bnQgPSByZXM/LmRhdGE/LnN1Y2Nlc3NDb3VudCA/PyAwO1xyXG4gICAgICAgICAgY29uc3QgZXJyb3JDb3VudCA9IHJlcz8uZGF0YT8uZXJyb3JDb3VudCA/PyAwO1xyXG4gICAgICAgICAgY29uc3QgZXJyb3JzID0gcmVzPy5kYXRhPy5lcnJvcnMgfHwgW107XHJcbiAgICAgICAgICBpZiAoZXJyb3JDb3VudCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChcclxuICAgICAgICAgICAgICBgU3dhcHBlZCAke3N1Y2Nlc3NDb3VudH0gZml4dHVyZSB0ZW1wbGF0ZShzKSBzdWNjZXNzZnVsbHkuYCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChzdWNjZXNzQ291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0V2FybmluZ1RvYXN0KFxyXG4gICAgICAgICAgICAgIGBQYXJ0aWFsOiAke3N1Y2Nlc3NDb3VudH0gc3VjY2VlZGVkLCAke2Vycm9yQ291bnR9IGZhaWxlZC4gJHt0aGlzLnN1bW1hcml6ZUVycm9ycyhlcnJvcnMpfWAsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgYEFsbCAke2Vycm9yQ291bnR9IHN3YXAocykgZmFpbGVkLiAke3RoaXMuc3VtbWFyaXplRXJyb3JzKGVycm9ycyl9YCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgZXJyPy5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIHN3YXAgZml4dHVyZSB0ZW1wbGF0ZS4nLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VtbWFyaXplRXJyb3JzKFxyXG4gICAgZXJyb3JzOiB7IGZpeHR1cmVOdW1iZXI6IG51bWJlcjsgZXJyb3I6IHN0cmluZyB9W10sXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGlmICghZXJyb3JzPy5sZW5ndGgpIHJldHVybiAnJztcclxuICAgIGNvbnN0IGZpcnN0ID0gZXJyb3JzXHJcbiAgICAgIC5zbGljZSgwLCAyKVxyXG4gICAgICAubWFwKChlKSA9PiBgIyR7ZS5maXh0dXJlTnVtYmVyfTogJHtlLmVycm9yfWApXHJcbiAgICAgIC5qb2luKCc7ICcpO1xyXG4gICAgcmV0dXJuIGVycm9ycy5sZW5ndGggPiAyID8gYCR7Zmlyc3R9OyDigKZgIDogZmlyc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGNvbmZpcm1Td2FwKGNvdW50OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IG1vZGVsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihEZWxldGVDb25maXJtYXRpb25Db21wb25lbnQsIHtcclxuICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIG1vZGVsUmVmLmNvbXBvbmVudEluc3RhbmNlLnRpdGxlID0gJ0NvbmZpcm0gdGVtcGxhdGUgc3dhcCc7XHJcbiAgICAgIG1vZGVsUmVmLmNvbXBvbmVudEluc3RhbmNlLmRlc2NyaXB0aW9uID0gYFRoaXMgd2lsbCBvdmVyd3JpdGUgJHtjb3VudH0gZml4dHVyZShzKSB3aXRoIHRoZSBjaG9zZW4gdGVtcGxhdGVzIGFuZCBkZWxldGUgdGhlaXIgZXhpc3Rpbmcgc2hlbHZlcy4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS4gQ29udGludWU/YDtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWxSZWYucmVzdWx0O1xyXG4gICAgICByZXR1cm4gcmVzdWx0ID09PSAnb2snO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyYWNrQnlSb3cgPSAoXzogbnVtYmVyLCByb3c6IFN3YXBSb3cpID0+IHJvdy5yb3dJZDtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuc3RvcmVTZWxlY3RlZCQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJzd2FwLXRlbXBsYXRlIHAtM1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIHAtNFwiIHN0eWxlPVwibWF4LXdpZHRoOiA5MDBweDtcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1iLTNcIj5Td2FwIEZpeHR1cmUgVGVtcGxhdGU8L2g1PlxyXG5cclxuICAgIDwhLS0gU3RvcmUgU2VsZWN0IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3RcclxuICAgICAgICBsYWJlbD1cIlN0b3JlXCJcclxuICAgICAgICBbaWRGaWVsZF09XCInaWQnXCJcclxuICAgICAgICBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIlxyXG4gICAgICAgIFtkYXRhXT1cInN0b3JlT3B0aW9uc1wiXHJcbiAgICAgICAgW3NlYXJjaF09XCJ0cnVlXCJcclxuICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFN0b3JlSWRcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU3RvcmVTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFN0b3JlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdGaXh0dXJlczsgZWxzZSBsb2FkZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tdXRlZCBtYi0zXCI+TG9hZGluZyBmaXh0dXJlc+KApjwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVkPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaXh0dXJlcy5sZW5ndGg7IGVsc2Ugbm9GaXh0dXJlc1wiPlxyXG4gICAgICAgICAgPCEtLSBTd2FwIFJvd3MgLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dhcC1yb3dzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Um93XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInN3YXAtcm93IG1iLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBQbGFubyBGaXh0dXJlIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJQbGFubyBGaXh0dXJlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWRGaWVsZF09XCInX2lkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVGaWVsZF09XCInZGlzcGxheU5hbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJyb3cuZml4dHVyZU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzZWFyY2hdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicm93LmZpeHR1cmVJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dGaXh0dXJlQ2hhbmdlKHJvdywgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LmZpeHR1cmVcIiBjbGFzcz1cImZpeHR1cmUtaW5mbyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5OYW1lOjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvdy5maXh0dXJlLmZpeHR1cmVOYW1lIHx8ICfigJQnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5Qb3NpdGlvbjo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyByb3cud2FsbFBvc2l0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBBcnJvdyAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy10b3A6IDMwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJyb3dcIj7ihpI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIFN3YXBwaW5nIFRlbXBsYXRlIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJTd2FwcGluZyBUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ19pZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lRmllbGRdPVwiJ2Rpc3BsYXlOYW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N1YlRleHRGaWVsZF09XCInc3VidGV4dCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NlYXJjaF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJyb3cudGVtcGxhdGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dUZW1wbGF0ZUNoYW5nZShyb3csICRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBSZW1vdmUgUm93IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXRvcDogMzBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpbmsgcC0wIHJlbW92ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVSb3coaSlcIiB0aXRsZT1cIlJlbW92ZSByb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyb3dzLmxlbmd0aCA9PT0gMSAmJiAhcm93LmZpeHR1cmUgJiYgIXJvdy50ZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEwIDEwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSAxTDEgOU0xIDFMOSA5XCIgc3Ryb2tlPVwiIzM0NDA1NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gQWRkIFJvdyAtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHAtMCBhZGQtYnRuXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkUm93KClcIiBbZGlzYWJsZWRdPVwiIWNhbkFkZFJvd1wiPlxyXG4gICAgICAgICAgICAgICsgQWRkIGFub3RoZXIgc3dhcFxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gQWN0aW9ucyAtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTIgbXQtNFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIChjbGljayk9XCJvbkNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTdWJtaXR0aW5nXCI+XHJcbiAgICAgICAgICAgICAgQ2FuY2VsXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJvblN1Ym1pdCgpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhblN1Ym1pdCB8fCBpc1N1Ym1pdHRpbmdcIj5cclxuICAgICAgICAgICAgICB7eyBpc1N1Ym1pdHRpbmcgPyAnU3VibWl0dGluZ+KApicgOiAnU3VibWl0JyB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vRml4dHVyZXM+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tdXRlZFwiPk5vIGZpeHR1cmVzIGZvdW5kIGZvciB0aGlzIHN0b3JlLjwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
@@ -50,10 +50,10 @@ export class ToolsParentComponent {
50
50
  this.destroy$.complete();
51
51
  }
52
52
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolsParentComponent, deps: [{ token: i1.NgbModal }, { token: i2.Router }, { token: i3.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
53
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolsParentComponent, selector: "lib-tools-parent", ngImport: i0, template: "<div class=\"d-flex mb-3\">\r\n <div class=\"d-flex gap-3\">\r\n\r\n <!-- <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/builder\">\r\n Plano Builder\r\n </button> -->\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/migrate\">\r\n Update Layout / Download Canvas\r\n </button>\r\n \r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\r\n Check CAD Output\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\r\n Allow Edit\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\r\n Delete Task\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/update-fixture-type\">\r\n Update Fixture Type\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\r\n Modify Fixture Numbers\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/data-export\">\r\n Data Export\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\r\n MBQ & Order\r\n </button>\r\n\r\n <button class=\"btn btn-success\" (click)=\"onClickCreateFixtureTemplate()\">\r\n Create Template\r\n </button>\r\n\r\n </div>\r\n</div>\r\n<hr>\r\n<router-outlet></router-outlet>", styles: [""], dependencies: [{ kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
53
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolsParentComponent, selector: "lib-tools-parent", ngImport: i0, template: "<div class=\"d-flex mb-3\">\r\n <div class=\"d-flex gap-3\">\r\n\r\n <!-- <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/builder\">\r\n Plano Builder\r\n </button> -->\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/migrate\">\r\n Download Layout Images\r\n </button>\r\n \r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\r\n Check CAD Output\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\r\n Allow Edit\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\r\n Delete Task\r\n </button>\r\n\r\n <!-- <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/update-fixture-type\">\r\n Update Fixture Type\r\n </button> -->\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\r\n Modify Fixture Numbers\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/data-export\">\r\n Data Export\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\r\n MBQ & Order\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/swap-template\">\r\n Template Swap\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/move-bucket\">\r\n Move Store Bucket\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/cad-files\">\r\n CAD Files\r\n </button>\r\n\r\n <button class=\"btn btn-success\" (click)=\"onClickCreateFixtureTemplate()\">\r\n Create Template\r\n </button>\r\n\r\n </div>\r\n</div>\r\n<hr>\r\n<router-outlet></router-outlet>", styles: [""], dependencies: [{ kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
54
54
  }
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolsParentComponent, decorators: [{
56
56
  type: Component,
57
- args: [{ selector: "lib-tools-parent", template: "<div class=\"d-flex mb-3\">\r\n <div class=\"d-flex gap-3\">\r\n\r\n <!-- <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/builder\">\r\n Plano Builder\r\n </button> -->\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/migrate\">\r\n Update Layout / Download Canvas\r\n </button>\r\n \r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\r\n Check CAD Output\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\r\n Allow Edit\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\r\n Delete Task\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/update-fixture-type\">\r\n Update Fixture Type\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\r\n Modify Fixture Numbers\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/data-export\">\r\n Data Export\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\r\n MBQ & Order\r\n </button>\r\n\r\n <button class=\"btn btn-success\" (click)=\"onClickCreateFixtureTemplate()\">\r\n Create Template\r\n </button>\r\n\r\n </div>\r\n</div>\r\n<hr>\r\n<router-outlet></router-outlet>" }]
57
+ args: [{ selector: "lib-tools-parent", template: "<div class=\"d-flex mb-3\">\r\n <div class=\"d-flex gap-3\">\r\n\r\n <!-- <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/builder\">\r\n Plano Builder\r\n </button> -->\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/migrate\">\r\n Download Layout Images\r\n </button>\r\n \r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\r\n Check CAD Output\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\r\n Allow Edit\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\r\n Delete Task\r\n </button>\r\n\r\n <!-- <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/update-fixture-type\">\r\n Update Fixture Type\r\n </button> -->\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\r\n Modify Fixture Numbers\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/data-export\">\r\n Data Export\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\r\n MBQ & Order\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/swap-template\">\r\n Template Swap\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/move-bucket\">\r\n Move Store Bucket\r\n </button>\r\n\r\n <button class=\"btn btn-outline\" routerLink=\"/manage/planogram/plano-tools/cad-files\">\r\n CAD Files\r\n </button>\r\n\r\n <button class=\"btn btn-success\" (click)=\"onClickCreateFixtureTemplate()\">\r\n Create Template\r\n </button>\r\n\r\n </div>\r\n</div>\r\n<hr>\r\n<router-outlet></router-outlet>" }]
58
58
  }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.Router }, { type: i3.GlobalStateService }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMtcGFyZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvdG9vbHMtcGFyZW50L3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtGQUErRixDQUFDO0FBRy9JLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDOzs7OztBQU9kLE1BQU0sT0FBTyxvQkFBb0I7SUFLckI7SUFDQTtJQUNBO0lBTlYsUUFBUSxDQUFTO0lBRUEsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDaEQsWUFDVSxRQUFrQixFQUNsQixNQUFjLEVBQ2QsRUFBc0I7UUFGdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7SUFDN0IsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7YUFDbkIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsdURBQXVEO1FBQ2pGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxxQ0FBcUM7UUFDeEQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQTRCO1FBQ3RELG9CQUFvQixFQUFFLENBQUMsMkRBQTJEO1NBQ25GO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBVyxDQUNqRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDRCQUE0QjtRQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtZQUNsRSxRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3BELFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2xCLENBQUMsa0RBQWtELENBQUMsRUFDcEQsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDMUQsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO3dHQWpEVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3RENsQmpDLHN0REE4QytCOzs0RkQ1QmxCLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7IENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9maXh0dXJlLXRlbXBsYXRlLXRhYmxlL3BvcHVwcy9jcmVhdGUtZml4dHVyZS10ZW1wbGF0ZS9jcmVhdGUtZml4dHVyZS10ZW1wbGF0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBmaWx0ZXIsXHJcbiAgU3ViamVjdCxcclxuICB0YWtlVW50aWwsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10b29scy1wYXJlbnRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vdG9vbHMtcGFyZW50LmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sc1BhcmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY2xpZW50SWQ6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nYk1vZGFsOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIC8vIFN1YnNjcmlwdGlvbiB3aWxsIGJlIGNhbmNlbGxlZCBvbiBjb21wb25lbnQgZGVzdHJveS5cclxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSwgLy8gVG8gYXZvaWQgaW1tZWRpYXRlIGZyZXF1ZW50IGNhbGxzLlxyXG4gICAgICAgIGZpbHRlcigoZGF0YSkgPT4gISFkYXRhKSwgLy8gRmlsdGVyaW5nIG51bGwvdW5kZWZpbmVkLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gRW1pdHRpbmcgb25seSBkaWZmZXJlbnQgdmFsdWVzLiAoSWdub3JlcyBzYW1lIGNsaWVudElkKS5cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YT8uY2xpZW50KSB7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudElkID0gZGF0YT8uY2xpZW50O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaGVhZGVyRGF0YSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgYXMgc3RyaW5nXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGhlYWRlckRhdGE/LmNsaWVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NyZWF0ZUZpeHR1cmVUZW1wbGF0ZSgpIHtcclxuICAgIGNvbnN0IG1vZGVsUmVmID0gdGhpcy5uZ2JNb2RhbC5vcGVuKENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgfSk7XHJcbiAgICBtb2RlbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICBtb2RlbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgIFtcIi9tYW5hZ2UvcGxhbm9ncmFtL2ZpeHR1cmUtdGVtcGxhdGUvYmFzaWMtZGV0YWlsc1wiXSxcclxuICAgICAgICAgIHsgcXVlcnlQYXJhbXM6IHsgdGVtcGxhdGVJZDogcmVzdWx0Ll9pZCwgaXNFZGl0OiB0cnVlIH0gfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBtYi0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4ICBnYXAtM1wiPlxyXG5cclxuICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvYnVpbGRlclwiPlxyXG4gICAgICAgICAgICBQbGFubyBCdWlsZGVyXHJcbiAgICAgICAgPC9idXR0b24+IC0tPlxyXG5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL21pZ3JhdGVcIj5cclxuICAgICAgICAgICAgVXBkYXRlIExheW91dCAvIERvd25sb2FkIENhbnZhc1xyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvY2FkLXJlbmRlclwiPlxyXG4gICAgICAgICAgICBDaGVjayBDQUQgT3V0cHV0XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvYWxsb3ctZWRpdFwiPlxyXG4gICAgICAgICAgICBBbGxvdyBFZGl0XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvZGVsZXRlLXRhc2tcIj5cclxuICAgICAgICAgICAgRGVsZXRlIFRhc2tcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy91cGRhdGUtZml4dHVyZS10eXBlXCI+XHJcbiAgICAgICAgICAgIFVwZGF0ZSBGaXh0dXJlIFR5cGVcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9tb2RpZnktZml4dHVyZS1udW1iZXJzXCI+XHJcbiAgICAgICAgICAgIE1vZGlmeSBGaXh0dXJlIE51bWJlcnNcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9kYXRhLWV4cG9ydFwiPlxyXG4gICAgICAgICAgICBEYXRhIEV4cG9ydFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL3N0b3JlLWV4cG9ydHNcIj5cclxuICAgICAgICAgICAgTUJRICYgT3JkZXJcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIChjbGljayk9XCJvbkNsaWNrQ3JlYXRlRml4dHVyZVRlbXBsYXRlKClcIj5cclxuICAgICAgICAgICAgQ3JlYXRlIFRlbXBsYXRlXHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48aHI+XHJcbjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMtcGFyZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvdG9vbHMtcGFyZW50L3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtGQUErRixDQUFDO0FBRy9JLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDOzs7OztBQU9kLE1BQU0sT0FBTyxvQkFBb0I7SUFLckI7SUFDQTtJQUNBO0lBTlYsUUFBUSxDQUFTO0lBRUEsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDaEQsWUFDVSxRQUFrQixFQUNsQixNQUFjLEVBQ2QsRUFBc0I7UUFGdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7SUFDN0IsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7YUFDbkIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsdURBQXVEO1FBQ2pGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxxQ0FBcUM7UUFDeEQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQTRCO1FBQ3RELG9CQUFvQixFQUFFLENBQUMsMkRBQTJEO1NBQ25GO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBVyxDQUNqRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDRCQUE0QjtRQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtZQUNsRSxRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3BELFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2xCLENBQUMsa0RBQWtELENBQUMsRUFDcEQsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDMUQsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO3dHQWpEVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3RENsQmpDLDZxRUEwRCtCOzs0RkR4Q2xCLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7IENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9maXh0dXJlLXRlbXBsYXRlLXRhYmxlL3BvcHVwcy9jcmVhdGUtZml4dHVyZS10ZW1wbGF0ZS9jcmVhdGUtZml4dHVyZS10ZW1wbGF0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBmaWx0ZXIsXHJcbiAgU3ViamVjdCxcclxuICB0YWtlVW50aWwsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10b29scy1wYXJlbnRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vdG9vbHMtcGFyZW50LmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sc1BhcmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY2xpZW50SWQ6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nYk1vZGFsOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIC8vIFN1YnNjcmlwdGlvbiB3aWxsIGJlIGNhbmNlbGxlZCBvbiBjb21wb25lbnQgZGVzdHJveS5cclxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSwgLy8gVG8gYXZvaWQgaW1tZWRpYXRlIGZyZXF1ZW50IGNhbGxzLlxyXG4gICAgICAgIGZpbHRlcigoZGF0YSkgPT4gISFkYXRhKSwgLy8gRmlsdGVyaW5nIG51bGwvdW5kZWZpbmVkLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gRW1pdHRpbmcgb25seSBkaWZmZXJlbnQgdmFsdWVzLiAoSWdub3JlcyBzYW1lIGNsaWVudElkKS5cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YT8uY2xpZW50KSB7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudElkID0gZGF0YT8uY2xpZW50O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaGVhZGVyRGF0YSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgYXMgc3RyaW5nXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGhlYWRlckRhdGE/LmNsaWVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NyZWF0ZUZpeHR1cmVUZW1wbGF0ZSgpIHtcclxuICAgIGNvbnN0IG1vZGVsUmVmID0gdGhpcy5uZ2JNb2RhbC5vcGVuKENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgfSk7XHJcbiAgICBtb2RlbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICBtb2RlbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgIFtcIi9tYW5hZ2UvcGxhbm9ncmFtL2ZpeHR1cmUtdGVtcGxhdGUvYmFzaWMtZGV0YWlsc1wiXSxcclxuICAgICAgICAgIHsgcXVlcnlQYXJhbXM6IHsgdGVtcGxhdGVJZDogcmVzdWx0Ll9pZCwgaXNFZGl0OiB0cnVlIH0gfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBtYi0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4ICBnYXAtM1wiPlxyXG5cclxuICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvYnVpbGRlclwiPlxyXG4gICAgICAgICAgICBQbGFubyBCdWlsZGVyXHJcbiAgICAgICAgPC9idXR0b24+IC0tPlxyXG5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL21pZ3JhdGVcIj5cclxuICAgICAgICAgICAgRG93bmxvYWQgTGF5b3V0IEltYWdlc1xyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvY2FkLXJlbmRlclwiPlxyXG4gICAgICAgICAgICBDaGVjayBDQUQgT3V0cHV0XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvYWxsb3ctZWRpdFwiPlxyXG4gICAgICAgICAgICBBbGxvdyBFZGl0XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvZGVsZXRlLXRhc2tcIj5cclxuICAgICAgICAgICAgRGVsZXRlIFRhc2tcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL3VwZGF0ZS1maXh0dXJlLXR5cGVcIj5cclxuICAgICAgICAgICAgVXBkYXRlIEZpeHR1cmUgVHlwZVxyXG4gICAgICAgIDwvYnV0dG9uPiAtLT5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9tb2RpZnktZml4dHVyZS1udW1iZXJzXCI+XHJcbiAgICAgICAgICAgIE1vZGlmeSBGaXh0dXJlIE51bWJlcnNcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9kYXRhLWV4cG9ydFwiPlxyXG4gICAgICAgICAgICBEYXRhIEV4cG9ydFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL3N0b3JlLWV4cG9ydHNcIj5cclxuICAgICAgICAgICAgTUJRICYgT3JkZXJcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9zd2FwLXRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIFRlbXBsYXRlIFN3YXBcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9tb3ZlLWJ1Y2tldFwiPlxyXG4gICAgICAgICAgICBNb3ZlIFN0b3JlIEJ1Y2tldFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2NhZC1maWxlc1wiPlxyXG4gICAgICAgICAgICBDQUQgRmlsZXNcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIChjbGljayk9XCJvbkNsaWNrQ3JlYXRlRml4dHVyZVRlbXBsYXRlKClcIj5cclxuICAgICAgICAgICAgQ3JlYXRlIFRlbXBsYXRlXHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48aHI+XHJcbjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
@@ -1,10 +1,13 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@ng-bootstrap/ng-bootstrap";
4
+ import * as i2 from "@angular/common";
4
5
  export class DeleteConfirmationComponent {
5
6
  activeModal;
6
7
  title = 'Delete action';
7
8
  description = 'Are you sure you want to delete this item?';
9
+ confirmLabel = 'Delete';
10
+ confirmClass = 'btn-danger';
8
11
  constructor(activeModal) {
9
12
  this.activeModal = activeModal;
10
13
  }
@@ -15,14 +18,18 @@ export class DeleteConfirmationComponent {
15
18
  this.activeModal.close('ok');
16
19
  }
17
20
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DeleteConfirmationComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DeleteConfirmationComponent, selector: "app-delete-confirmation", inputs: { title: "title", description: "description" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex flex-start mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24.0002V28.0002M27.9998 32.0002H28.0098M26.2898 18.8602L17.8198 33.0002C17.6451 33.3026 17.5527 33.6455 17.5518 33.9947C17.5508 34.3439 17.6413 34.6873 17.8142 34.9907C17.9871 35.2941 18.2365 35.547 18.5375 35.7241C18.8385 35.9012 19.1806 35.9964 19.5298 36.0002H36.4698C36.819 35.9964 37.1611 35.9012 37.4621 35.7241C37.7631 35.547 38.0124 35.2941 38.1854 34.9907C38.3583 34.6873 38.4488 34.3439 38.4478 33.9947C38.4468 33.6455 38.3544 33.3026 38.1798 33.0002L29.7098 18.8602C29.5315 18.5663 29.2805 18.3233 28.981 18.1547C28.6814 17.9861 28.3435 17.8975 27.9998 17.8975C27.656 17.8975 27.3181 17.9861 27.0186 18.1547C26.7191 18.3233 26.468 18.5663 26.2898 18.8602Z\"\r\n stroke=\"#DC6803\"\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\r\n <h3 class=\"mb-4\">{{ title }}</h3>\r\n\r\n <p>{{ description }}</p>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-danger px-4\" (click)=\"onDelete()\">Delete</button>\r\n </div>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"] });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DeleteConfirmationComponent, selector: "app-delete-confirmation", inputs: { title: "title", description: "description", confirmLabel: "confirmLabel", confirmClass: "confirmClass" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex flex-start mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24.0002V28.0002M27.9998 32.0002H28.0098M26.2898 18.8602L17.8198 33.0002C17.6451 33.3026 17.5527 33.6455 17.5518 33.9947C17.5508 34.3439 17.6413 34.6873 17.8142 34.9907C17.9871 35.2941 18.2365 35.547 18.5375 35.7241C18.8385 35.9012 19.1806 35.9964 19.5298 36.0002H36.4698C36.819 35.9964 37.1611 35.9012 37.4621 35.7241C37.7631 35.547 38.0124 35.2941 38.1854 34.9907C38.3583 34.6873 38.4488 34.3439 38.4478 33.9947C38.4468 33.6455 38.3544 33.3026 38.1798 33.0002L29.7098 18.8602C29.5315 18.5663 29.2805 18.3233 28.981 18.1547C28.6814 17.9861 28.3435 17.8975 27.9998 17.8975C27.656 17.8975 27.3181 17.9861 27.0186 18.1547C26.7191 18.3233 26.468 18.5663 26.2898 18.8602Z\"\r\n stroke=\"#DC6803\"\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\r\n <h3 class=\"mb-4\">{{ title }}</h3>\r\n\r\n <p>{{ description }}</p>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn px-4\" [ngClass]=\"confirmClass\" (click)=\"onDelete()\">{{ confirmLabel }}</button>\r\n </div>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
19
22
  }
20
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DeleteConfirmationComponent, decorators: [{
21
24
  type: Component,
22
- args: [{ selector: 'app-delete-confirmation', template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex flex-start mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24.0002V28.0002M27.9998 32.0002H28.0098M26.2898 18.8602L17.8198 33.0002C17.6451 33.3026 17.5527 33.6455 17.5518 33.9947C17.5508 34.3439 17.6413 34.6873 17.8142 34.9907C17.9871 35.2941 18.2365 35.547 18.5375 35.7241C18.8385 35.9012 19.1806 35.9964 19.5298 36.0002H36.4698C36.819 35.9964 37.1611 35.9012 37.4621 35.7241C37.7631 35.547 38.0124 35.2941 38.1854 34.9907C38.3583 34.6873 38.4488 34.3439 38.4478 33.9947C38.4468 33.6455 38.3544 33.3026 38.1798 33.0002L29.7098 18.8602C29.5315 18.5663 29.2805 18.3233 28.981 18.1547C28.6814 17.9861 28.3435 17.8975 27.9998 17.8975C27.656 17.8975 27.3181 17.9861 27.0186 18.1547C26.7191 18.3233 26.468 18.5663 26.2898 18.8602Z\"\r\n stroke=\"#DC6803\"\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\r\n <h3 class=\"mb-4\">{{ title }}</h3>\r\n\r\n <p>{{ description }}</p>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-danger px-4\" (click)=\"onDelete()\">Delete</button>\r\n </div>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"] }]
25
+ args: [{ selector: 'app-delete-confirmation', template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex flex-start mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24.0002V28.0002M27.9998 32.0002H28.0098M26.2898 18.8602L17.8198 33.0002C17.6451 33.3026 17.5527 33.6455 17.5518 33.9947C17.5508 34.3439 17.6413 34.6873 17.8142 34.9907C17.9871 35.2941 18.2365 35.547 18.5375 35.7241C18.8385 35.9012 19.1806 35.9964 19.5298 36.0002H36.4698C36.819 35.9964 37.1611 35.9012 37.4621 35.7241C37.7631 35.547 38.0124 35.2941 38.1854 34.9907C38.3583 34.6873 38.4488 34.3439 38.4478 33.9947C38.4468 33.6455 38.3544 33.3026 38.1798 33.0002L29.7098 18.8602C29.5315 18.5663 29.2805 18.3233 28.981 18.1547C28.6814 17.9861 28.3435 17.8975 27.9998 17.8975C27.656 17.8975 27.3181 17.9861 27.0186 18.1547C26.7191 18.3233 26.468 18.5663 26.2898 18.8602Z\"\r\n stroke=\"#DC6803\"\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\r\n <h3 class=\"mb-4\">{{ title }}</h3>\r\n\r\n <p>{{ description }}</p>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn px-4\" [ngClass]=\"confirmClass\" (click)=\"onDelete()\">{{ confirmLabel }}</button>\r\n </div>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"] }]
23
26
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }], propDecorators: { title: [{
24
27
  type: Input
25
28
  }], description: [{
26
29
  type: Input
30
+ }], confirmLabel: [{
31
+ type: Input
32
+ }], confirmClass: [{
33
+ type: Input
27
34
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cHMvZGVsZXRlLWNvbmZpcm1hdGlvbi9kZWxldGUtY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwcy9kZWxldGUtY29uZmlybWF0aW9uL2RlbGV0ZS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVFqRCxNQUFNLE9BQU8sMkJBQTJCO0lBSzVCO0lBSkQsS0FBSyxHQUFXLGVBQWUsQ0FBQztJQUNoQyxXQUFXLEdBQVcsNENBQTRDLENBQUM7SUFFNUUsWUFDVSxXQUEyQjtRQUEzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFDakMsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzt3R0FkVSwyQkFBMkI7NEZBQTNCLDJCQUEyQix1SENSeEMseWtEQXdCQTs7NEZEaEJhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx5QkFBeUI7bUZBSzFCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRlbGV0ZS1jb25maXJtYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWxldGUtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGVsZXRlLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERlbGV0ZUNvbmZpcm1hdGlvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdEZWxldGUgYWN0aW9uJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBpdGVtPyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgKSB7IH1cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmRpc21pc3MoKTtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnb2snKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC13cmFwcGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YXJ0IG1iLTVcIj5cclxuICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIgLz5cclxuICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0yNy45OTk4IDI0LjAwMDJWMjguMDAwMk0yNy45OTk4IDMyLjAwMDJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MDJMMTcuODE5OCAzMy4wMDAyQzE3LjY0NTEgMzMuMzAyNiAxNy41NTI3IDMzLjY0NTUgMTcuNTUxOCAzMy45OTQ3QzE3LjU1MDggMzQuMzQzOSAxNy42NDEzIDM0LjY4NzMgMTcuODE0MiAzNC45OTA3QzE3Ljk4NzEgMzUuMjk0MSAxOC4yMzY1IDM1LjU0NyAxOC41Mzc1IDM1LjcyNDFDMTguODM4NSAzNS45MDEyIDE5LjE4MDYgMzUuOTk2NCAxOS41Mjk4IDM2LjAwMDJIMzYuNDY5OEMzNi44MTkgMzUuOTk2NCAzNy4xNjExIDM1LjkwMTIgMzcuNDYyMSAzNS43MjQxQzM3Ljc2MzEgMzUuNTQ3IDM4LjAxMjQgMzUuMjk0MSAzOC4xODU0IDM0Ljk5MDdDMzguMzU4MyAzNC42ODczIDM4LjQ0ODggMzQuMzQzOSAzOC40NDc4IDMzLjk5NDdDMzguNDQ2OCAzMy42NDU1IDM4LjM1NDQgMzMuMzAyNiAzOC4xNzk4IDMzLjAwMDJMMjkuNzA5OCAxOC44NjAyQzI5LjUzMTUgMTguNTY2MyAyOS4yODA1IDE4LjMyMzMgMjguOTgxIDE4LjE1NDdDMjguNjgxNCAxNy45ODYxIDI4LjM0MzUgMTcuODk3NSAyNy45OTk4IDE3Ljg5NzVDMjcuNjU2IDE3Ljg5NzUgMjcuMzE4MSAxNy45ODYxIDI3LjAxODYgMTguMTU0N0MyNi43MTkxIDE4LjMyMzMgMjYuNDY4IDE4LjU2NjMgMjYuMjg5OCAxOC44NjAyWlwiXHJcbiAgICAgICAgc3Ryb2tlPVwiI0RDNjgwM1wiXHJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAvPlxyXG4gICAgPC9zdmc+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxoMyBjbGFzcz1cIm1iLTRcIj57eyB0aXRsZSB9fTwvaDM+XHJcblxyXG4gIDxwPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYWN0aW9ucyBtdC01XCI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIHB4LTRcIiAoY2xpY2spPVwib25EZWxldGUoKVwiPkRlbGV0ZTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cHMvZGVsZXRlLWNvbmZpcm1hdGlvbi9kZWxldGUtY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwcy9kZWxldGUtY29uZmlybWF0aW9uL2RlbGV0ZS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRakQsTUFBTSxPQUFPLDJCQUEyQjtJQU81QjtJQU5ELEtBQUssR0FBVyxlQUFlLENBQUM7SUFDaEMsV0FBVyxHQUFXLDRDQUE0QyxDQUFDO0lBQ25FLFlBQVksR0FBVyxRQUFRLENBQUM7SUFDaEMsWUFBWSxHQUFXLFlBQVksQ0FBQztJQUU3QyxZQUNVLFdBQTJCO1FBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUNqQyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO3dHQWhCVSwyQkFBMkI7NEZBQTNCLDJCQUEyQixtTENSeEMscW1EQXdCQTs7NEZEaEJhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx5QkFBeUI7bUZBSzFCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kZWxldGUtY29uZmlybWF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVsZXRlLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RlbGV0ZS1jb25maXJtYXRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWxldGVDb25maXJtYXRpb25Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnRGVsZXRlIGFjdGlvbic7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZyA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgaXRlbT8nO1xyXG4gIEBJbnB1dCgpIGNvbmZpcm1MYWJlbDogc3RyaW5nID0gJ0RlbGV0ZSc7XHJcbiAgQElucHV0KCkgY29uZmlybUNsYXNzOiBzdHJpbmcgPSAnYnRuLWRhbmdlcic7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgKSB7IH1cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmRpc21pc3MoKTtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnb2snKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC13cmFwcGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YXJ0IG1iLTVcIj5cclxuICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIgLz5cclxuICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0yNy45OTk4IDI0LjAwMDJWMjguMDAwMk0yNy45OTk4IDMyLjAwMDJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MDJMMTcuODE5OCAzMy4wMDAyQzE3LjY0NTEgMzMuMzAyNiAxNy41NTI3IDMzLjY0NTUgMTcuNTUxOCAzMy45OTQ3QzE3LjU1MDggMzQuMzQzOSAxNy42NDEzIDM0LjY4NzMgMTcuODE0MiAzNC45OTA3QzE3Ljk4NzEgMzUuMjk0MSAxOC4yMzY1IDM1LjU0NyAxOC41Mzc1IDM1LjcyNDFDMTguODM4NSAzNS45MDEyIDE5LjE4MDYgMzUuOTk2NCAxOS41Mjk4IDM2LjAwMDJIMzYuNDY5OEMzNi44MTkgMzUuOTk2NCAzNy4xNjExIDM1LjkwMTIgMzcuNDYyMSAzNS43MjQxQzM3Ljc2MzEgMzUuNTQ3IDM4LjAxMjQgMzUuMjk0MSAzOC4xODU0IDM0Ljk5MDdDMzguMzU4MyAzNC42ODczIDM4LjQ0ODggMzQuMzQzOSAzOC40NDc4IDMzLjk5NDdDMzguNDQ2OCAzMy42NDU1IDM4LjM1NDQgMzMuMzAyNiAzOC4xNzk4IDMzLjAwMDJMMjkuNzA5OCAxOC44NjAyQzI5LjUzMTUgMTguNTY2MyAyOS4yODA1IDE4LjMyMzMgMjguOTgxIDE4LjE1NDdDMjguNjgxNCAxNy45ODYxIDI4LjM0MzUgMTcuODk3NSAyNy45OTk4IDE3Ljg5NzVDMjcuNjU2IDE3Ljg5NzUgMjcuMzE4MSAxNy45ODYxIDI3LjAxODYgMTguMTU0N0MyNi43MTkxIDE4LjMyMzMgMjYuNDY4IDE4LjU2NjMgMjYuMjg5OCAxOC44NjAyWlwiXHJcbiAgICAgICAgc3Ryb2tlPVwiI0RDNjgwM1wiXHJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAvPlxyXG4gICAgPC9zdmc+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxoMyBjbGFzcz1cIm1iLTRcIj57eyB0aXRsZSB9fTwvaDM+XHJcblxyXG4gIDxwPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYWN0aW9ucyBtdC01XCI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBweC00XCIgW25nQ2xhc3NdPVwiY29uZmlybUNsYXNzXCIgKGNsaWNrKT1cIm9uRGVsZXRlKClcIj57eyBjb25maXJtTGFiZWwgfX08L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==