tango-app-ui-analyse-zone 3.7.1-beta.49 → 3.7.1-beta.50

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.
@@ -34,11 +34,13 @@ export class TangoAnalyseZoneComponent {
34
34
  this.cd = cd;
35
35
  }
36
36
  clientData;
37
+ zoneType = {};
37
38
  // receivedData: any = '';
38
39
  ngOnInit() {
39
40
  this.setPageData();
40
41
  const userData = JSON.parse(localStorage.getItem("client-details") || "{}");
41
42
  this.clientData = userData;
43
+ this.zoneType = this.clientData?.zoneType || {};
42
44
  this.gs.dataRangeValue
43
45
  .pipe(takeUntil(this.destroy$), debounceTime(300))
44
46
  .subscribe((data) => {
@@ -92,10 +94,10 @@ export class TangoAnalyseZoneComponent {
92
94
  });
93
95
  }
94
96
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TangoAnalyseZoneComponent, deps: [{ token: i1.PageInfoService }, { token: i1.GlobalStateService }, { token: i2.ZoneService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
95
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TangoAnalyseZoneComponent, selector: "lib-tango-analyse-zone", ngImport: i0, template: "<div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\">\r\n<div *ngIf=\"storeId === 1\">\r\n<lib-zone-concentration></lib-zone-concentration>\r\n</div>\r\n<div class=\"mt-4\" *ngIf=\"!(storeId > 1 && headerData?.client === '459')\">\r\n <lib-overallcards></lib-overallcards>\r\n</div>\r\n<div *ngIf=\"storeId === 1\">\r\n <lib-segmentation></lib-segmentation>\r\n</div>\r\n <!-- <ng-container *ngIf=\"hasSegmentationData === true\"> -->\r\n \r\n <!-- </ng-container> -->\r\n <!-- <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-8\">\r\n <lib-interation-table-client430></lib-interation-table-client430>\r\n </div>\r\n <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-4\">\r\n <lib-passerby-table></lib-passerby-table>\r\n </div>\r\n </div> -->\r\n\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId === 1 && headerData?.client === '459'\">\r\n<lib-interation-table-client459></lib-interation-table-client459>\r\n</div>\r\n<div class=\"mt-2\" *ngIf=\"storeId > 1\">\r\n <div *ngIf=\"headerData?.client !== '459'\">\r\n <lib-top-performing-zones *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-top-performing-zones>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mt-2\" *ngIf=\"storeId === 1 && headerData?.client === '478'\">\r\n <lib-customer-journey-chart *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-customer-journey-chart>\r\n</div>\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId > 1\">\r\n <lib-zone-summary-table *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-zone-summary-table>\r\n</div>\r\n</div>\r\n<div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n\r\n</div>\r\n<div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> ", styles: [":host{display:block;width:100%;max-width:1600px;margin-left:auto;margin-right:auto}.dataprocessed{height:500px}.dataprocessedgif{height:150px;width:150px}.dataprocessed-title{color:var(--Gray-900, #101828);text-align:center;font-size:24px;font-style:normal;font-weight:600;line-height:32px}.dataprocessed-sub{color:var(--Gray-500, #667085);text-align:center;font-size:18px;font-style:normal;font-weight:500;line-height:28px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.OverallcardsComponent, selector: "lib-overallcards" }, { kind: "component", type: i5.TopPerformingZonesComponent, selector: "lib-top-performing-zones", inputs: ["clientData"] }, { kind: "component", type: i6.ZoneSummaryTableComponent, selector: "lib-zone-summary-table" }, { kind: "component", type: i7.ZoneConcentrationComponent, selector: "lib-zone-concentration" }, { kind: "component", type: i8.SegmentationComponent, selector: "lib-segmentation", outputs: ["dataEmitter"] }, { kind: "component", type: i9.InterationTableClient459Component, selector: "lib-interation-table-client459" }, { kind: "component", type: i10.CustomerJourneyChartComponent, selector: "lib-customer-journey-chart", inputs: ["clientData"] }] });
97
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TangoAnalyseZoneComponent, selector: "lib-tango-analyse-zone", ngImport: i0, template: "<div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\">\r\n<div *ngIf=\"storeId === 1\">\r\n<lib-zone-concentration></lib-zone-concentration>\r\n</div>\r\n<div class=\"mt-4\" *ngIf=\"!(storeId > 1 && headerData?.client === '459')\">\r\n <lib-overallcards></lib-overallcards>\r\n</div>\r\n<div *ngIf=\"storeId === 1\">\r\n <lib-segmentation></lib-segmentation>\r\n</div>\r\n <!-- <ng-container *ngIf=\"hasSegmentationData === true\"> -->\r\n \r\n <!-- </ng-container> -->\r\n <!-- <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-8\">\r\n <lib-interation-table-client430></lib-interation-table-client430>\r\n </div>\r\n <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-4\">\r\n <lib-passerby-table></lib-passerby-table>\r\n </div>\r\n </div> -->\r\n\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId === 1 && headerData?.client === '459'\">\r\n<lib-interation-table-client459></lib-interation-table-client459>\r\n</div>\r\n<div class=\"mt-2\" *ngIf=\"storeId > 1\">\r\n <div *ngIf=\"headerData?.client !== '459'\">\r\n <lib-top-performing-zones *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-top-performing-zones>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mt-2\" *ngIf=\"storeId === 1 && zoneType?.showCustomerJourney === false\">\r\n <lib-customer-journey-chart *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-customer-journey-chart>\r\n</div>\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId > 1\">\r\n <lib-zone-summary-table *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-zone-summary-table>\r\n</div>\r\n</div>\r\n<div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n\r\n</div>\r\n<div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> ", styles: [":host{display:block;width:100%;max-width:1600px;margin-left:auto;margin-right:auto}.dataprocessed{height:500px}.dataprocessedgif{height:150px;width:150px}.dataprocessed-title{color:var(--Gray-900, #101828);text-align:center;font-size:24px;font-style:normal;font-weight:600;line-height:32px}.dataprocessed-sub{color:var(--Gray-500, #667085);text-align:center;font-size:18px;font-style:normal;font-weight:500;line-height:28px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.OverallcardsComponent, selector: "lib-overallcards" }, { kind: "component", type: i5.TopPerformingZonesComponent, selector: "lib-top-performing-zones", inputs: ["clientData"] }, { kind: "component", type: i6.ZoneSummaryTableComponent, selector: "lib-zone-summary-table" }, { kind: "component", type: i7.ZoneConcentrationComponent, selector: "lib-zone-concentration" }, { kind: "component", type: i8.SegmentationComponent, selector: "lib-segmentation", outputs: ["dataEmitter"] }, { kind: "component", type: i9.InterationTableClient459Component, selector: "lib-interation-table-client459" }, { kind: "component", type: i10.CustomerJourneyChartComponent, selector: "lib-customer-journey-chart", inputs: ["clientData"] }] });
96
98
  }
97
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TangoAnalyseZoneComponent, decorators: [{
98
100
  type: Component,
99
- args: [{ selector: 'lib-tango-analyse-zone', template: "<div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\">\r\n<div *ngIf=\"storeId === 1\">\r\n<lib-zone-concentration></lib-zone-concentration>\r\n</div>\r\n<div class=\"mt-4\" *ngIf=\"!(storeId > 1 && headerData?.client === '459')\">\r\n <lib-overallcards></lib-overallcards>\r\n</div>\r\n<div *ngIf=\"storeId === 1\">\r\n <lib-segmentation></lib-segmentation>\r\n</div>\r\n <!-- <ng-container *ngIf=\"hasSegmentationData === true\"> -->\r\n \r\n <!-- </ng-container> -->\r\n <!-- <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-8\">\r\n <lib-interation-table-client430></lib-interation-table-client430>\r\n </div>\r\n <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-4\">\r\n <lib-passerby-table></lib-passerby-table>\r\n </div>\r\n </div> -->\r\n\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId === 1 && headerData?.client === '459'\">\r\n<lib-interation-table-client459></lib-interation-table-client459>\r\n</div>\r\n<div class=\"mt-2\" *ngIf=\"storeId > 1\">\r\n <div *ngIf=\"headerData?.client !== '459'\">\r\n <lib-top-performing-zones *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-top-performing-zones>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mt-2\" *ngIf=\"storeId === 1 && headerData?.client === '478'\">\r\n <lib-customer-journey-chart *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-customer-journey-chart>\r\n</div>\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId > 1\">\r\n <lib-zone-summary-table *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-zone-summary-table>\r\n</div>\r\n</div>\r\n<div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n\r\n</div>\r\n<div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> ", styles: [":host{display:block;width:100%;max-width:1600px;margin-left:auto;margin-right:auto}.dataprocessed{height:500px}.dataprocessedgif{height:150px;width:150px}.dataprocessed-title{color:var(--Gray-900, #101828);text-align:center;font-size:24px;font-style:normal;font-weight:600;line-height:32px}.dataprocessed-sub{color:var(--Gray-500, #667085);text-align:center;font-size:18px;font-style:normal;font-weight:500;line-height:28px}\n"] }]
101
+ args: [{ selector: 'lib-tango-analyse-zone', template: "<div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\">\r\n<div *ngIf=\"storeId === 1\">\r\n<lib-zone-concentration></lib-zone-concentration>\r\n</div>\r\n<div class=\"mt-4\" *ngIf=\"!(storeId > 1 && headerData?.client === '459')\">\r\n <lib-overallcards></lib-overallcards>\r\n</div>\r\n<div *ngIf=\"storeId === 1\">\r\n <lib-segmentation></lib-segmentation>\r\n</div>\r\n <!-- <ng-container *ngIf=\"hasSegmentationData === true\"> -->\r\n \r\n <!-- </ng-container> -->\r\n <!-- <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-8\">\r\n <lib-interation-table-client430></lib-interation-table-client430>\r\n </div>\r\n <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-4\">\r\n <lib-passerby-table></lib-passerby-table>\r\n </div>\r\n </div> -->\r\n\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId === 1 && headerData?.client === '459'\">\r\n<lib-interation-table-client459></lib-interation-table-client459>\r\n</div>\r\n<div class=\"mt-2\" *ngIf=\"storeId > 1\">\r\n <div *ngIf=\"headerData?.client !== '459'\">\r\n <lib-top-performing-zones *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-top-performing-zones>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mt-2\" *ngIf=\"storeId === 1 && zoneType?.showCustomerJourney === false\">\r\n <lib-customer-journey-chart *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-customer-journey-chart>\r\n</div>\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId > 1\">\r\n <lib-zone-summary-table *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-zone-summary-table>\r\n</div>\r\n</div>\r\n<div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n\r\n</div>\r\n<div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> ", styles: [":host{display:block;width:100%;max-width:1600px;margin-left:auto;margin-right:auto}.dataprocessed{height:500px}.dataprocessedgif{height:150px;width:150px}.dataprocessed-title{color:var(--Gray-900, #101828);text-align:center;font-size:24px;font-style:normal;font-weight:600;line-height:32px}.dataprocessed-sub{color:var(--Gray-500, #667085);text-align:center;font-size:18px;font-style:normal;font-weight:500;line-height:28px}\n"] }]
100
102
  }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i1.GlobalStateService }, { type: i2.ZoneService }, { type: i0.ChangeDetectorRef }] });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYW5hbHlzZS16b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2Utem9uZS9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYW5hbHlzZS16b25lL3RhbmdvLWFuYWx5c2Utem9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXpvbmUvc3JjL2xpYi9jb21wb25lbnRzL3RhbmdvLWFuYWx5c2Utem9uZS90YW5nby1hbmFseXNlLXpvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUF3QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQU8xRixNQUFNLE9BQU8seUJBQXlCO0lBYzFCO0lBQWlDO0lBQStCO0lBQWdDO0lBYjFHLE9BQU8sR0FBVyxDQUFDLENBQUM7SUFDcEIsUUFBUSxDQUFTO0lBQ2pCLFVBQVUsQ0FBTTtJQUNoQix3QkFBd0IsR0FBWSxJQUFJLENBQUM7SUFDekMsYUFBYSxHQUFXLEVBQUUsQ0FBQztJQUMzQixvQkFBb0IsR0FBRyxJQUFJLENBQUM7SUFDWCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUUxQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsWUFDVSxRQUF5QixFQUFRLEVBQXNCLEVBQVMsV0FBdUIsRUFBUyxFQUFvQjtRQUFwSCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUFRLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQVMs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O1lBRUQsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNILENBQUM7d0dBL0VNLHlCQUF5Qjs0RkFBekIseUJBQXlCLDhEQ1R0Qyw4aEdBK0RROzs0RkR0REsseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBab25lU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3pvbmUuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhbmdvLWFuYWx5c2Utem9uZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhbmdvLWFuYWx5c2Utem9uZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RhbmdvLWFuYWx5c2Utem9uZS5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb0FuYWx5c2Vab25lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgc3RvcmVJZDogbnVtYmVyID0gMDtcclxuICBjbGllbnRJZDogbnVtYmVyOyBcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcbiAgc2hvd1JlcG9ydFByb2Nlc3NpbmdDYXJkOiBib29sZWFuID0gdHJ1ZTtcclxuICB5ZXN0ZXJkYXlEYXRlOiBzdHJpbmcgPSAnJztcclxuICBkYXRhUHJvY2Vzc2VkTG9hZGluZyA9IHRydWU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm86IFBhZ2VJbmZvU2VydmljZSxwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIHpvbmVTZXJ2aWNlOlpvbmVTZXJ2aWNlLHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgfVxyXG4gIGNsaWVudERhdGE6IGFueTtcclxuICAvLyByZWNlaXZlZERhdGE6IGFueSA9ICcnO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjbGllbnQtZGV0YWlsc1wiKSB8fCBcInt9XCIpO1xyXG4gICAgICB0aGlzLmNsaWVudERhdGEgPSB1c2VyRGF0YTtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU3RvcmVJZCgpICAgXHJcbiAgICAgICAgdGhpcy5jaGVja1RvZGF5UmVwb3J0U3RhdHVzKCkgICBcclxufSlcclxufVxyXG5cclxuaGFzU2VnbWVudGF0aW9uRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxudXBkYXRlU2VnbWVudGF0aW9uU3RhdHVzKGhhc0RhdGE6IGJvb2xlYW4pIHtcclxuICB0aGlzLmhhc1NlZ21lbnRhdGlvbkRhdGEgPSBoYXNEYXRhO1xyXG59XHJcbi8vIHJlY2VpdmVEYXRhKGRhdGE6IGFueSkge1xyXG4vLyAgIHRoaXMucmVjZWl2ZWREYXRhID0gZGF0YTtcclxuLy8gICBjb25zb2xlLmxvZyhkYXRhKVxyXG4vLyAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4vLyB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIlpvbmVzXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIlpvbmVzXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gRXllXCIsIHBhdGg6IFwiL21hbmFnZS90cmFmZmljXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gRXllXCIsIHBhdGg6IFwiL21hbmFnZS90cmFmZmljXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuICB1cGRhdGVTdG9yZUlkKCk6IHZvaWQge1xyXG4gICAgIHRoaXMuc3RvcmVJZCA9IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzPy5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlPy5jaGVja2VkKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAgY2hlY2tUb2RheVJlcG9ydFN0YXR1cygpOiB2b2lkIHtcclxuICAgICAgdGhpcy5kYXRhUHJvY2Vzc2VkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGNvbnN0IHJlcG9ydFBhcmFtcyA9IHtcclxuICAgICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQsXHJcbiAgICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZT8uc3RhcnREYXRlLFxyXG4gICAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhPy5kYXRlPy5lbmREYXRlXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuem9uZVNlcnZpY2UuZ2V0Q2hlY2tUb2RheVJlcG9ydFN0YXR1cyhyZXBvcnRQYXJhbXMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFQcm9jZXNzZWRMb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuc2hvd1JlcG9ydFByb2Nlc3NpbmdDYXJkID0gcmVzPy5kYXRhPy5yZXBvcnRTZW5kU3RhdHVzID09PSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy55ZXN0ZXJkYXlEYXRlID0gcmVzPy5kYXRhPy55ZXN0ZXJkYXkgfHwgJyc7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNoZWNraW5nIHJlcG9ydCBzdGF0dXM6JywgZXJyKTtcclxuICAgICAgICAgIHRoaXMuc2hvd1JlcG9ydFByb2Nlc3NpbmdDYXJkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmRhdGFQcm9jZXNzZWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIiFzaG93UmVwb3J0UHJvY2Vzc2luZ0NhcmQgJiYgIWRhdGFQcm9jZXNzZWRMb2FkaW5nXCI+XHJcbjxkaXYgKm5nSWY9XCJzdG9yZUlkID09PSAxXCI+XHJcbjxsaWItem9uZS1jb25jZW50cmF0aW9uPjwvbGliLXpvbmUtY29uY2VudHJhdGlvbj5cclxuPC9kaXY+XHJcbjxkaXYgIGNsYXNzPVwibXQtNFwiICpuZ0lmPVwiIShzdG9yZUlkID4gMSAmJiBoZWFkZXJEYXRhPy5jbGllbnQgPT09ICc0NTknKVwiPlxyXG4gIDxsaWItb3ZlcmFsbGNhcmRzPjwvbGliLW92ZXJhbGxjYXJkcz5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJzdG9yZUlkID09PSAxXCI+XHJcbiAgPGxpYi1zZWdtZW50YXRpb24+PC9saWItc2VnbWVudGF0aW9uPlxyXG48L2Rpdj5cclxuICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU2VnbWVudGF0aW9uRGF0YSA9PT0gdHJ1ZVwiPiAtLT5cclxuICAgICAgXHJcbiAgICAgIDwhLS0gPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICA8IS0tIDxkaXYgKm5nSWY9XCJzdG9yZUlkID09PSAxICYmIGhlYWRlckRhdGE/LmNsaWVudCA9PT0gJzQzMCdcIiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItaW50ZXJhdGlvbi10YWJsZS1jbGllbnQ0MzA+PC9saWItaW50ZXJhdGlvbi10YWJsZS1jbGllbnQ0MzA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUlkID09PSAxICYmIGhlYWRlckRhdGE/LmNsaWVudCA9PT0gJzQzMCdcIiBjbGFzcz1cImNvbC00XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItcGFzc2VyYnktdGFibGU+PC9saWItcGFzc2VyYnktdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcblxyXG48ZGl2IGNsYXNzPVwibXQtNFwiICpuZ0lmPVwic3RvcmVJZCA9PT0gMSAmJiBoZWFkZXJEYXRhPy5jbGllbnQgPT09ICc0NTknXCI+XHJcbjxsaWItaW50ZXJhdGlvbi10YWJsZS1jbGllbnQ0NTk+PC9saWItaW50ZXJhdGlvbi10YWJsZS1jbGllbnQ0NTk+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibXQtMlwiICpuZ0lmPVwic3RvcmVJZCA+IDFcIj5cclxuICA8ZGl2ICpuZ0lmPVwiaGVhZGVyRGF0YT8uY2xpZW50ICE9PSAnNDU5J1wiPlxyXG4gICAgPGxpYi10b3AtcGVyZm9ybWluZy16b25lcyAqbmdJZj1cImNsaWVudERhdGFcIiBbY2xpZW50RGF0YV09XCJjbGllbnREYXRhXCI+PC9saWItdG9wLXBlcmZvcm1pbmctem9uZXM+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm10LTJcIiAqbmdJZj1cInN0b3JlSWQgPT09IDEgJiYgaGVhZGVyRGF0YT8uY2xpZW50ID09PSAnNDc4J1wiPlxyXG4gIDxsaWItY3VzdG9tZXItam91cm5leS1jaGFydCAqbmdJZj1cImNsaWVudERhdGFcIiBbY2xpZW50RGF0YV09XCJjbGllbnREYXRhXCI+PC9saWItY3VzdG9tZXItam91cm5leS1jaGFydD5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwibXQtNFwiICpuZ0lmPVwic3RvcmVJZCA+IDFcIj5cclxuICA8bGliLXpvbmUtc3VtbWFyeS10YWJsZSAqbmdJZj1cImNsaWVudERhdGFcIiBbY2xpZW50RGF0YV09XCJjbGllbnREYXRhXCI+PC9saWItem9uZS1zdW1tYXJ5LXRhYmxlPlxyXG48L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJzaG93UmVwb3J0UHJvY2Vzc2luZ0NhcmQgJiYgIWRhdGFQcm9jZXNzZWRMb2FkaW5nXCIgY2xhc3M9XCJyb3cgcHgtM1wiPiAgICAgICAgICAgICAgICAgICAgICBcclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBkYXRhcHJvY2Vzc2VkIHBiLTAgcHgtMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgPGltZyBjbGFzcz1cImRhdGFwcm9jZXNzZWRnaWZcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9kYXRhX2FuYWx5c2VfZ2lmLmdpZlwiIGFsdD1cIlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YXByb2Nlc3NlZC10aXRsZVwiPkRhdGEgYmVpbmcgUHJvY2Vzc2VkPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRhcHJvY2Vzc2VkLXN1YlwiPkRhdGEgZm9yIHRoZSBzZWxlY3RlZCBkYXRlIHt7IHllc3RlcmRheURhdGUgfX0sIGlzIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQgYW5kIHdpbGwgYmUgYXZhaWxhYmxlIHNob3J0bHkuPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRhcHJvY2Vzc2VkLXN1YlwiPiBJZiB5b3Ugd2lzaCB0byB2aWV3IGRhdGEgZm9yIG90aGVyIGRhdGVzLCBSZW1vdmUge3sgeWVzdGVyZGF5RGF0ZSB9fSBmcm9tIHlvdXIgc2VsZWN0aW9uIG9yIGNob29zZSBhIGRpZmZlcmVudCBkYXRlIHJhbmdlLjwvZGl2PiAgICBcclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiZGF0YVByb2Nlc3NlZExvYWRpbmdcIiBjbGFzcz1cImNhcmQgcm93IGxvYWRlciAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4gICJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYW5hbHlzZS16b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2Utem9uZS9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYW5hbHlzZS16b25lL3RhbmdvLWFuYWx5c2Utem9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXpvbmUvc3JjL2xpYi9jb21wb25lbnRzL3RhbmdvLWFuYWx5c2Utem9uZS90YW5nby1hbmFseXNlLXpvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUF3QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQU8xRixNQUFNLE9BQU8seUJBQXlCO0lBYzFCO0lBQWlDO0lBQStCO0lBQWdDO0lBYjFHLE9BQU8sR0FBVyxDQUFDLENBQUM7SUFDcEIsUUFBUSxDQUFTO0lBQ2pCLFVBQVUsQ0FBTTtJQUNoQix3QkFBd0IsR0FBWSxJQUFJLENBQUM7SUFDekMsYUFBYSxHQUFXLEVBQUUsQ0FBQztJQUMzQixvQkFBb0IsR0FBRyxJQUFJLENBQUM7SUFDWCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUUxQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsWUFDVSxRQUF5QixFQUFRLEVBQXNCLEVBQVMsV0FBdUIsRUFBUyxFQUFvQjtRQUFwSCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUFRLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQVMs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R0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFCLENBQUM7WUFFRCxLQUFLLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQztnQkFDdEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztnQkFDbEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0gsQ0FBQzt3R0FqRk0seUJBQXlCOzRGQUF6Qix5QkFBeUIsOERDVHRDLHlpR0ErRFE7OzRGRHRESyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFpvbmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvem9uZS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFuZ28tYW5hbHlzZS16b25lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFuZ28tYW5hbHlzZS16b25lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGFuZ28tYW5hbHlzZS16b25lLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhbmdvQW5hbHlzZVpvbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBzdG9yZUlkOiBudW1iZXIgPSAwO1xyXG4gIGNsaWVudElkOiBudW1iZXI7IFxyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBzaG93UmVwb3J0UHJvY2Vzc2luZ0NhcmQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHllc3RlcmRheURhdGU6IHN0cmluZyA9ICcnO1xyXG4gIGRhdGFQcm9jZXNzZWRMb2FkaW5nID0gdHJ1ZTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgem9uZVNlcnZpY2U6Wm9uZVNlcnZpY2UscHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICB9XHJcbiAgY2xpZW50RGF0YTogYW55O1xyXG4gIHpvbmVUeXBlOiBhbnkgPSB7fTtcclxuICAvLyByZWNlaXZlZERhdGE6IGFueSA9ICcnO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjbGllbnQtZGV0YWlsc1wiKSB8fCBcInt9XCIpO1xyXG4gICAgICB0aGlzLmNsaWVudERhdGEgPSB1c2VyRGF0YTtcclxuICAgICAgICB0aGlzLnpvbmVUeXBlID0gdGhpcy5jbGllbnREYXRhPy56b25lVHlwZSB8fCB7fTtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU3RvcmVJZCgpICAgXHJcbiAgICAgICAgdGhpcy5jaGVja1RvZGF5UmVwb3J0U3RhdHVzKCkgICBcclxufSlcclxufVxyXG5cclxuaGFzU2VnbWVudGF0aW9uRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxudXBkYXRlU2VnbWVudGF0aW9uU3RhdHVzKGhhc0RhdGE6IGJvb2xlYW4pIHtcclxuICB0aGlzLmhhc1NlZ21lbnRhdGlvbkRhdGEgPSBoYXNEYXRhO1xyXG59XHJcbi8vIHJlY2VpdmVEYXRhKGRhdGE6IGFueSkge1xyXG4vLyAgIHRoaXMucmVjZWl2ZWREYXRhID0gZGF0YTtcclxuLy8gICBjb25zb2xlLmxvZyhkYXRhKVxyXG4vLyAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4vLyB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIlpvbmVzXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIlpvbmVzXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gRXllXCIsIHBhdGg6IFwiL21hbmFnZS90cmFmZmljXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gRXllXCIsIHBhdGg6IFwiL21hbmFnZS90cmFmZmljXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuICB1cGRhdGVTdG9yZUlkKCk6IHZvaWQge1xyXG4gICAgIHRoaXMuc3RvcmVJZCA9IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzPy5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlPy5jaGVja2VkKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAgY2hlY2tUb2RheVJlcG9ydFN0YXR1cygpOiB2b2lkIHtcclxuICAgICAgdGhpcy5kYXRhUHJvY2Vzc2VkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGNvbnN0IHJlcG9ydFBhcmFtcyA9IHtcclxuICAgICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQsXHJcbiAgICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZT8uc3RhcnREYXRlLFxyXG4gICAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhPy5kYXRlPy5lbmREYXRlXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuem9uZVNlcnZpY2UuZ2V0Q2hlY2tUb2RheVJlcG9ydFN0YXR1cyhyZXBvcnRQYXJhbXMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFQcm9jZXNzZWRMb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuc2hvd1JlcG9ydFByb2Nlc3NpbmdDYXJkID0gcmVzPy5kYXRhPy5yZXBvcnRTZW5kU3RhdHVzID09PSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy55ZXN0ZXJkYXlEYXRlID0gcmVzPy5kYXRhPy55ZXN0ZXJkYXkgfHwgJyc7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNoZWNraW5nIHJlcG9ydCBzdGF0dXM6JywgZXJyKTtcclxuICAgICAgICAgIHRoaXMuc2hvd1JlcG9ydFByb2Nlc3NpbmdDYXJkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmRhdGFQcm9jZXNzZWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIiFzaG93UmVwb3J0UHJvY2Vzc2luZ0NhcmQgJiYgIWRhdGFQcm9jZXNzZWRMb2FkaW5nXCI+XHJcbjxkaXYgKm5nSWY9XCJzdG9yZUlkID09PSAxXCI+XHJcbjxsaWItem9uZS1jb25jZW50cmF0aW9uPjwvbGliLXpvbmUtY29uY2VudHJhdGlvbj5cclxuPC9kaXY+XHJcbjxkaXYgIGNsYXNzPVwibXQtNFwiICpuZ0lmPVwiIShzdG9yZUlkID4gMSAmJiBoZWFkZXJEYXRhPy5jbGllbnQgPT09ICc0NTknKVwiPlxyXG4gIDxsaWItb3ZlcmFsbGNhcmRzPjwvbGliLW92ZXJhbGxjYXJkcz5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJzdG9yZUlkID09PSAxXCI+XHJcbiAgPGxpYi1zZWdtZW50YXRpb24+PC9saWItc2VnbWVudGF0aW9uPlxyXG48L2Rpdj5cclxuICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU2VnbWVudGF0aW9uRGF0YSA9PT0gdHJ1ZVwiPiAtLT5cclxuICAgICAgXHJcbiAgICAgIDwhLS0gPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICA8IS0tIDxkaXYgKm5nSWY9XCJzdG9yZUlkID09PSAxICYmIGhlYWRlckRhdGE/LmNsaWVudCA9PT0gJzQzMCdcIiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItaW50ZXJhdGlvbi10YWJsZS1jbGllbnQ0MzA+PC9saWItaW50ZXJhdGlvbi10YWJsZS1jbGllbnQ0MzA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUlkID09PSAxICYmIGhlYWRlckRhdGE/LmNsaWVudCA9PT0gJzQzMCdcIiBjbGFzcz1cImNvbC00XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItcGFzc2VyYnktdGFibGU+PC9saWItcGFzc2VyYnktdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcblxyXG48ZGl2IGNsYXNzPVwibXQtNFwiICpuZ0lmPVwic3RvcmVJZCA9PT0gMSAmJiBoZWFkZXJEYXRhPy5jbGllbnQgPT09ICc0NTknXCI+XHJcbjxsaWItaW50ZXJhdGlvbi10YWJsZS1jbGllbnQ0NTk+PC9saWItaW50ZXJhdGlvbi10YWJsZS1jbGllbnQ0NTk+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibXQtMlwiICpuZ0lmPVwic3RvcmVJZCA+IDFcIj5cclxuICA8ZGl2ICpuZ0lmPVwiaGVhZGVyRGF0YT8uY2xpZW50ICE9PSAnNDU5J1wiPlxyXG4gICAgPGxpYi10b3AtcGVyZm9ybWluZy16b25lcyAqbmdJZj1cImNsaWVudERhdGFcIiBbY2xpZW50RGF0YV09XCJjbGllbnREYXRhXCI+PC9saWItdG9wLXBlcmZvcm1pbmctem9uZXM+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm10LTJcIiAqbmdJZj1cInN0b3JlSWQgPT09IDEgJiYgem9uZVR5cGU/LnNob3dDdXN0b21lckpvdXJuZXkgPT09IGZhbHNlXCI+XHJcbiAgPGxpYi1jdXN0b21lci1qb3VybmV5LWNoYXJ0ICpuZ0lmPVwiY2xpZW50RGF0YVwiIFtjbGllbnREYXRhXT1cImNsaWVudERhdGFcIj48L2xpYi1jdXN0b21lci1qb3VybmV5LWNoYXJ0PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJtdC00XCIgKm5nSWY9XCJzdG9yZUlkID4gMVwiPlxyXG4gIDxsaWItem9uZS1zdW1tYXJ5LXRhYmxlICpuZ0lmPVwiY2xpZW50RGF0YVwiIFtjbGllbnREYXRhXT1cImNsaWVudERhdGFcIj48L2xpYi16b25lLXN1bW1hcnktdGFibGU+XHJcbjwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cInNob3dSZXBvcnRQcm9jZXNzaW5nQ2FyZCAmJiAhZGF0YVByb2Nlc3NlZExvYWRpbmdcIiBjbGFzcz1cInJvdyBweC0zXCI+ICAgICAgICAgICAgICAgICAgICAgIFxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGRhdGFwcm9jZXNzZWQgcGItMCBweC0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICA8aW1nIGNsYXNzPVwiZGF0YXByb2Nlc3NlZGdpZlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL2RhdGFfYW5hbHlzZV9naWYuZ2lmXCIgYWx0PVwiXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRhcHJvY2Vzc2VkLXRpdGxlXCI+RGF0YSBiZWluZyBQcm9jZXNzZWQ8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRhdGFwcm9jZXNzZWQtc3ViXCI+RGF0YSBmb3IgdGhlIHNlbGVjdGVkIGRhdGUge3sgeWVzdGVyZGF5RGF0ZSB9fSwgaXMgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCBhbmQgd2lsbCBiZSBhdmFpbGFibGUgc2hvcnRseS48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRhdGFwcm9jZXNzZWQtc3ViXCI+IElmIHlvdSB3aXNoIHRvIHZpZXcgZGF0YSBmb3Igb3RoZXIgZGF0ZXMsIFJlbW92ZSB7eyB5ZXN0ZXJkYXlEYXRlIH19IGZyb20geW91ciBzZWxlY3Rpb24gb3IgY2hvb3NlIGEgZGlmZmVyZW50IGRhdGUgcmFuZ2UuPC9kaXY+ICAgIFxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJkYXRhUHJvY2Vzc2VkTG9hZGluZ1wiIGNsYXNzPVwiY2FyZCByb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiAgIl19
@@ -3826,11 +3826,13 @@ class TangoAnalyseZoneComponent {
3826
3826
  this.cd = cd;
3827
3827
  }
3828
3828
  clientData;
3829
+ zoneType = {};
3829
3830
  // receivedData: any = '';
3830
3831
  ngOnInit() {
3831
3832
  this.setPageData();
3832
3833
  const userData = JSON.parse(localStorage.getItem("client-details") || "{}");
3833
3834
  this.clientData = userData;
3835
+ this.zoneType = this.clientData?.zoneType || {};
3834
3836
  this.gs.dataRangeValue
3835
3837
  .pipe(takeUntil(this.destroy$), debounceTime(300))
3836
3838
  .subscribe((data) => {
@@ -3884,11 +3886,11 @@ class TangoAnalyseZoneComponent {
3884
3886
  });
3885
3887
  }
3886
3888
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TangoAnalyseZoneComponent, deps: [{ token: i2.PageInfoService }, { token: i2.GlobalStateService }, { token: ZoneService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3887
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TangoAnalyseZoneComponent, selector: "lib-tango-analyse-zone", ngImport: i0, template: "<div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\">\r\n<div *ngIf=\"storeId === 1\">\r\n<lib-zone-concentration></lib-zone-concentration>\r\n</div>\r\n<div class=\"mt-4\" *ngIf=\"!(storeId > 1 && headerData?.client === '459')\">\r\n <lib-overallcards></lib-overallcards>\r\n</div>\r\n<div *ngIf=\"storeId === 1\">\r\n <lib-segmentation></lib-segmentation>\r\n</div>\r\n <!-- <ng-container *ngIf=\"hasSegmentationData === true\"> -->\r\n \r\n <!-- </ng-container> -->\r\n <!-- <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-8\">\r\n <lib-interation-table-client430></lib-interation-table-client430>\r\n </div>\r\n <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-4\">\r\n <lib-passerby-table></lib-passerby-table>\r\n </div>\r\n </div> -->\r\n\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId === 1 && headerData?.client === '459'\">\r\n<lib-interation-table-client459></lib-interation-table-client459>\r\n</div>\r\n<div class=\"mt-2\" *ngIf=\"storeId > 1\">\r\n <div *ngIf=\"headerData?.client !== '459'\">\r\n <lib-top-performing-zones *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-top-performing-zones>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mt-2\" *ngIf=\"storeId === 1 && headerData?.client === '478'\">\r\n <lib-customer-journey-chart *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-customer-journey-chart>\r\n</div>\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId > 1\">\r\n <lib-zone-summary-table *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-zone-summary-table>\r\n</div>\r\n</div>\r\n<div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n\r\n</div>\r\n<div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> ", styles: [":host{display:block;width:100%;max-width:1600px;margin-left:auto;margin-right:auto}.dataprocessed{height:500px}.dataprocessedgif{height:150px;width:150px}.dataprocessed-title{color:var(--Gray-900, #101828);text-align:center;font-size:24px;font-style:normal;font-weight:600;line-height:32px}.dataprocessed-sub{color:var(--Gray-500, #667085);text-align:center;font-size:18px;font-style:normal;font-weight:500;line-height:28px}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverallcardsComponent, selector: "lib-overallcards" }, { kind: "component", type: TopPerformingZonesComponent, selector: "lib-top-performing-zones", inputs: ["clientData"] }, { kind: "component", type: ZoneSummaryTableComponent, selector: "lib-zone-summary-table" }, { kind: "component", type: ZoneConcentrationComponent, selector: "lib-zone-concentration" }, { kind: "component", type: SegmentationComponent, selector: "lib-segmentation", outputs: ["dataEmitter"] }, { kind: "component", type: InterationTableClient459Component, selector: "lib-interation-table-client459" }, { kind: "component", type: CustomerJourneyChartComponent, selector: "lib-customer-journey-chart", inputs: ["clientData"] }] });
3889
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TangoAnalyseZoneComponent, selector: "lib-tango-analyse-zone", ngImport: i0, template: "<div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\">\r\n<div *ngIf=\"storeId === 1\">\r\n<lib-zone-concentration></lib-zone-concentration>\r\n</div>\r\n<div class=\"mt-4\" *ngIf=\"!(storeId > 1 && headerData?.client === '459')\">\r\n <lib-overallcards></lib-overallcards>\r\n</div>\r\n<div *ngIf=\"storeId === 1\">\r\n <lib-segmentation></lib-segmentation>\r\n</div>\r\n <!-- <ng-container *ngIf=\"hasSegmentationData === true\"> -->\r\n \r\n <!-- </ng-container> -->\r\n <!-- <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-8\">\r\n <lib-interation-table-client430></lib-interation-table-client430>\r\n </div>\r\n <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-4\">\r\n <lib-passerby-table></lib-passerby-table>\r\n </div>\r\n </div> -->\r\n\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId === 1 && headerData?.client === '459'\">\r\n<lib-interation-table-client459></lib-interation-table-client459>\r\n</div>\r\n<div class=\"mt-2\" *ngIf=\"storeId > 1\">\r\n <div *ngIf=\"headerData?.client !== '459'\">\r\n <lib-top-performing-zones *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-top-performing-zones>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mt-2\" *ngIf=\"storeId === 1 && zoneType?.showCustomerJourney === false\">\r\n <lib-customer-journey-chart *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-customer-journey-chart>\r\n</div>\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId > 1\">\r\n <lib-zone-summary-table *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-zone-summary-table>\r\n</div>\r\n</div>\r\n<div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n\r\n</div>\r\n<div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> ", styles: [":host{display:block;width:100%;max-width:1600px;margin-left:auto;margin-right:auto}.dataprocessed{height:500px}.dataprocessedgif{height:150px;width:150px}.dataprocessed-title{color:var(--Gray-900, #101828);text-align:center;font-size:24px;font-style:normal;font-weight:600;line-height:32px}.dataprocessed-sub{color:var(--Gray-500, #667085);text-align:center;font-size:18px;font-style:normal;font-weight:500;line-height:28px}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverallcardsComponent, selector: "lib-overallcards" }, { kind: "component", type: TopPerformingZonesComponent, selector: "lib-top-performing-zones", inputs: ["clientData"] }, { kind: "component", type: ZoneSummaryTableComponent, selector: "lib-zone-summary-table" }, { kind: "component", type: ZoneConcentrationComponent, selector: "lib-zone-concentration" }, { kind: "component", type: SegmentationComponent, selector: "lib-segmentation", outputs: ["dataEmitter"] }, { kind: "component", type: InterationTableClient459Component, selector: "lib-interation-table-client459" }, { kind: "component", type: CustomerJourneyChartComponent, selector: "lib-customer-journey-chart", inputs: ["clientData"] }] });
3888
3890
  }
3889
3891
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TangoAnalyseZoneComponent, decorators: [{
3890
3892
  type: Component,
3891
- args: [{ selector: 'lib-tango-analyse-zone', template: "<div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\">\r\n<div *ngIf=\"storeId === 1\">\r\n<lib-zone-concentration></lib-zone-concentration>\r\n</div>\r\n<div class=\"mt-4\" *ngIf=\"!(storeId > 1 && headerData?.client === '459')\">\r\n <lib-overallcards></lib-overallcards>\r\n</div>\r\n<div *ngIf=\"storeId === 1\">\r\n <lib-segmentation></lib-segmentation>\r\n</div>\r\n <!-- <ng-container *ngIf=\"hasSegmentationData === true\"> -->\r\n \r\n <!-- </ng-container> -->\r\n <!-- <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-8\">\r\n <lib-interation-table-client430></lib-interation-table-client430>\r\n </div>\r\n <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-4\">\r\n <lib-passerby-table></lib-passerby-table>\r\n </div>\r\n </div> -->\r\n\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId === 1 && headerData?.client === '459'\">\r\n<lib-interation-table-client459></lib-interation-table-client459>\r\n</div>\r\n<div class=\"mt-2\" *ngIf=\"storeId > 1\">\r\n <div *ngIf=\"headerData?.client !== '459'\">\r\n <lib-top-performing-zones *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-top-performing-zones>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mt-2\" *ngIf=\"storeId === 1 && headerData?.client === '478'\">\r\n <lib-customer-journey-chart *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-customer-journey-chart>\r\n</div>\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId > 1\">\r\n <lib-zone-summary-table *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-zone-summary-table>\r\n</div>\r\n</div>\r\n<div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n\r\n</div>\r\n<div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> ", styles: [":host{display:block;width:100%;max-width:1600px;margin-left:auto;margin-right:auto}.dataprocessed{height:500px}.dataprocessedgif{height:150px;width:150px}.dataprocessed-title{color:var(--Gray-900, #101828);text-align:center;font-size:24px;font-style:normal;font-weight:600;line-height:32px}.dataprocessed-sub{color:var(--Gray-500, #667085);text-align:center;font-size:18px;font-style:normal;font-weight:500;line-height:28px}\n"] }]
3893
+ args: [{ selector: 'lib-tango-analyse-zone', template: "<div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\">\r\n<div *ngIf=\"storeId === 1\">\r\n<lib-zone-concentration></lib-zone-concentration>\r\n</div>\r\n<div class=\"mt-4\" *ngIf=\"!(storeId > 1 && headerData?.client === '459')\">\r\n <lib-overallcards></lib-overallcards>\r\n</div>\r\n<div *ngIf=\"storeId === 1\">\r\n <lib-segmentation></lib-segmentation>\r\n</div>\r\n <!-- <ng-container *ngIf=\"hasSegmentationData === true\"> -->\r\n \r\n <!-- </ng-container> -->\r\n <!-- <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-8\">\r\n <lib-interation-table-client430></lib-interation-table-client430>\r\n </div>\r\n <div *ngIf=\"storeId === 1 && headerData?.client === '430'\" class=\"col-4\">\r\n <lib-passerby-table></lib-passerby-table>\r\n </div>\r\n </div> -->\r\n\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId === 1 && headerData?.client === '459'\">\r\n<lib-interation-table-client459></lib-interation-table-client459>\r\n</div>\r\n<div class=\"mt-2\" *ngIf=\"storeId > 1\">\r\n <div *ngIf=\"headerData?.client !== '459'\">\r\n <lib-top-performing-zones *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-top-performing-zones>\r\n </div>\r\n</div>\r\n\r\n<div class=\"mt-2\" *ngIf=\"storeId === 1 && zoneType?.showCustomerJourney === false\">\r\n <lib-customer-journey-chart *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-customer-journey-chart>\r\n</div>\r\n\r\n<div class=\"mt-4\" *ngIf=\"storeId > 1\">\r\n <lib-zone-summary-table *ngIf=\"clientData\" [clientData]=\"clientData\"></lib-zone-summary-table>\r\n</div>\r\n</div>\r\n<div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n\r\n</div>\r\n<div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> ", styles: [":host{display:block;width:100%;max-width:1600px;margin-left:auto;margin-right:auto}.dataprocessed{height:500px}.dataprocessedgif{height:150px;width:150px}.dataprocessed-title{color:var(--Gray-900, #101828);text-align:center;font-size:24px;font-style:normal;font-weight:600;line-height:32px}.dataprocessed-sub{color:var(--Gray-500, #667085);text-align:center;font-size:18px;font-style:normal;font-weight:500;line-height:28px}\n"] }]
3892
3894
  }], ctorParameters: () => [{ type: i2.PageInfoService }, { type: i2.GlobalStateService }, { type: ZoneService }, { type: i0.ChangeDetectorRef }] });
3893
3895
 
3894
3896
  class ZonesCardsComponent {