tango-app-ui-store-builder 1.0.46 → 1.0.48

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 (94) hide show
  1. package/esm2022/lib/components/collection-update-ai/collection-update-ai.component.mjs +3 -3
  2. package/esm2022/lib/components/collection-update-ai/components/dynamic-filter/dynamic-filter.component.mjs +183 -0
  3. package/esm2022/lib/components/collection-update-ai/components/store-dropdown/store-dropdown.component.mjs +211 -0
  4. package/esm2022/lib/components/collection-update-ai/components/store-fixture/store-fixture.component.mjs +422 -0
  5. package/esm2022/lib/components/collection-update-ai/components/store-select/store-select.component.mjs +148 -0
  6. package/esm2022/lib/components/collection-update-ai/find-replace-layout/cancel-confirmation-modal/cancel-confirmation-modal.component.mjs +20 -0
  7. package/esm2022/lib/components/collection-update-ai/find-replace-layout/find-replace-layout.component.mjs +359 -0
  8. package/esm2022/lib/components/collection-update-ai/find-replace-layout/prepare-template/batch-confirmation-modal/batch-confirmation-modal.component.mjs +23 -0
  9. package/esm2022/lib/components/collection-update-ai/find-replace-layout/prepare-template/prepare-template.component.mjs +2524 -0
  10. package/esm2022/lib/components/collection-update-ai/find-replace-layout/review-replace/approve-complete-modal/approve-complete-modal.component.mjs +66 -0
  11. package/esm2022/lib/components/collection-update-ai/find-replace-layout/review-replace/fixture-before-after/fixture-before-after.component.mjs +85 -0
  12. package/esm2022/lib/components/collection-update-ai/find-replace-layout/review-replace/review-replace.component.mjs +2039 -0
  13. package/esm2022/lib/components/collection-update-ai/find-replace-table/find-replace-table.component.mjs +433 -0
  14. package/esm2022/lib/components/collection-update-ai/find-replace-table/reschedule-modal/reschedule-modal.component.mjs +76 -0
  15. package/esm2022/lib/components/collection-update-ai/models/find-replace.model.mjs +2 -0
  16. package/esm2022/lib/components/collection-update-ai/services/data.service.mjs +291 -0
  17. package/esm2022/lib/components/create-fixture/create-fixture.component.mjs +233 -138
  18. package/esm2022/lib/components/fixture-template/template-assign-stores/preview-modal/preview-modal.component.mjs +4 -2
  19. package/esm2022/lib/components/fixture-template/template-assign-stores/template-assign-stores.component.mjs +4 -2
  20. package/esm2022/lib/components/fixture-template/template-basic-details/template-basic-details.component.mjs +40 -4
  21. package/esm2022/lib/components/fixture-template/template-products/template-products.component.mjs +3 -3
  22. package/esm2022/lib/components/fixture-template/template-summary/template-summary.component.mjs +3 -3
  23. package/esm2022/lib/components/fixture-template/template-vms/template-vms.component.mjs +108 -79
  24. package/esm2022/lib/components/fixture-template-table/fixture-template-table.component.mjs +33 -4
  25. package/esm2022/lib/components/fixture-template-tree/fixture-template-tree.component.mjs +7 -3
  26. package/esm2022/lib/components/manage-plano/rollout-table/rollout-table.component.mjs +25 -3
  27. package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +4 -2
  28. package/esm2022/lib/components/manage-store-plano/template-basic-details/template-basic-details.component.mjs +27 -4
  29. package/esm2022/lib/components/manage-store-plano/template-products/template-products.component.mjs +3 -3
  30. package/esm2022/lib/components/manage-store-plano/template-vms/template-vms.component.mjs +10 -14
  31. package/esm2022/lib/components/manage-store-plano/verification-feedback/editable-fixture/editable-fixture.component.mjs +3 -3
  32. package/esm2022/lib/components/manage-store-plano/verification-feedback/verification-feedback.component.mjs +3 -3
  33. package/esm2022/lib/components/planogram/merch-compliance/fixture-products/fixture-products.component.mjs +75 -31
  34. package/esm2022/lib/components/planogram/merch-compliance/merch-compliance.component.mjs +7 -8
  35. package/esm2022/lib/components/planogram/merch-compliance/product-locator/misplaced-product-fixture/misplaced-product-fixture.component.mjs +234 -0
  36. package/esm2022/lib/components/planogram/merch-compliance/product-locator/product-locator.component.mjs +1110 -0
  37. package/esm2022/lib/components/planogram/merch-compliance/product-locator/product-zone-locator/product-zone-locator.component.mjs +52 -0
  38. package/esm2022/lib/components/planogram/merch-compliance/zone-products/zone-products.component.mjs +36 -10
  39. package/esm2022/lib/components/planogram/plano-analytics/analytics-popup/analytics-popup.component.mjs +68 -0
  40. package/esm2022/lib/components/planogram/plano-analytics/date-range-picker/date-range-picker.component.mjs +92 -0
  41. package/esm2022/lib/components/planogram/plano-analytics/fixture-analytics/fixture-analytics.component.mjs +645 -0
  42. package/esm2022/lib/components/planogram/plano-analytics/plano-analytics.component.mjs +1276 -0
  43. package/esm2022/lib/components/planogram/plano-details-parent/plano-details-parent.component.mjs +33 -15
  44. package/esm2022/lib/components/planogram/plano-overview/fixture-overview/fixture-overview.component.mjs +41 -35
  45. package/esm2022/lib/components/planogram/plano-overview/plano-comparison/plano-comparison.component.mjs +8 -4
  46. package/esm2022/lib/components/planogram/plano-overview/plano-overview.component.mjs +19 -12
  47. package/esm2022/lib/components/planogram/plano-table/plano-table.component.mjs +3 -3
  48. package/esm2022/lib/components/store-plano/store-plano-tree-view/store-plano-tree-view.component.mjs +3 -2
  49. package/esm2022/lib/components/store-plano/store-plano.component.mjs +4 -2
  50. package/esm2022/lib/interfaces/fixture-library.interface.mjs +1 -1
  51. package/esm2022/lib/services/store-builder.service.mjs +49 -1
  52. package/esm2022/lib/tango-store-builder-routing.module.mjs +23 -1
  53. package/esm2022/lib/tango-store-builder.module.mjs +42 -5
  54. package/fesm2022/tango-app-ui-store-builder.mjs +12677 -2064
  55. package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
  56. package/lib/components/collection-update-ai/components/dynamic-filter/dynamic-filter.component.d.ts +51 -0
  57. package/lib/components/collection-update-ai/components/store-dropdown/store-dropdown.component.d.ts +36 -0
  58. package/lib/components/collection-update-ai/components/store-fixture/store-fixture.component.d.ts +50 -0
  59. package/lib/components/collection-update-ai/components/store-select/store-select.component.d.ts +33 -0
  60. package/lib/components/collection-update-ai/find-replace-layout/cancel-confirmation-modal/cancel-confirmation-modal.component.d.ts +9 -0
  61. package/lib/components/collection-update-ai/find-replace-layout/find-replace-layout.component.d.ts +58 -0
  62. package/lib/components/collection-update-ai/find-replace-layout/prepare-template/batch-confirmation-modal/batch-confirmation-modal.component.d.ts +10 -0
  63. package/lib/components/collection-update-ai/find-replace-layout/prepare-template/prepare-template.component.d.ts +141 -0
  64. package/lib/components/collection-update-ai/find-replace-layout/review-replace/approve-complete-modal/approve-complete-modal.component.d.ts +18 -0
  65. package/lib/components/collection-update-ai/find-replace-layout/review-replace/fixture-before-after/fixture-before-after.component.d.ts +19 -0
  66. package/lib/components/collection-update-ai/find-replace-layout/review-replace/review-replace.component.d.ts +116 -0
  67. package/lib/components/collection-update-ai/find-replace-table/find-replace-table.component.d.ts +63 -0
  68. package/lib/components/collection-update-ai/find-replace-table/reschedule-modal/reschedule-modal.component.d.ts +19 -0
  69. package/lib/components/collection-update-ai/models/find-replace.model.d.ts +55 -0
  70. package/lib/components/collection-update-ai/services/data.service.d.ts +70 -0
  71. package/lib/components/create-fixture/create-fixture.component.d.ts +15 -14
  72. package/lib/components/fixture-template/template-basic-details/template-basic-details.component.d.ts +2 -0
  73. package/lib/components/fixture-template/template-vms/template-vms.component.d.ts +12 -12
  74. package/lib/components/fixture-template-table/fixture-template-table.component.d.ts +2 -0
  75. package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +4 -2
  76. package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +4 -4
  77. package/lib/components/manage-store-plano/template-basic-details/template-basic-details.component.d.ts +2 -0
  78. package/lib/components/manage-store-plano/template-vms/template-vms.component.d.ts +0 -1
  79. package/lib/components/planogram/merch-compliance/fixture-products/fixture-products.component.d.ts +8 -2
  80. package/lib/components/planogram/merch-compliance/merch-compliance.component.d.ts +1 -3
  81. package/lib/components/planogram/merch-compliance/product-locator/misplaced-product-fixture/misplaced-product-fixture.component.d.ts +47 -0
  82. package/lib/components/planogram/merch-compliance/product-locator/product-locator.component.d.ts +70 -0
  83. package/lib/components/planogram/merch-compliance/product-locator/product-zone-locator/product-zone-locator.component.d.ts +16 -0
  84. package/lib/components/planogram/merch-compliance/zone-products/zone-products.component.d.ts +13 -3
  85. package/lib/components/planogram/plano-analytics/analytics-popup/analytics-popup.component.d.ts +25 -0
  86. package/lib/components/planogram/plano-analytics/date-range-picker/date-range-picker.component.d.ts +24 -0
  87. package/lib/components/planogram/plano-analytics/fixture-analytics/fixture-analytics.component.d.ts +93 -0
  88. package/lib/components/planogram/plano-analytics/plano-analytics.component.d.ts +97 -0
  89. package/lib/components/planogram/plano-details-parent/plano-details-parent.component.d.ts +8 -3
  90. package/lib/components/planogram/plano-overview/fixture-overview/fixture-overview.component.d.ts +2 -4
  91. package/lib/interfaces/fixture-library.interface.d.ts +1 -1
  92. package/lib/services/store-builder.service.d.ts +25 -0
  93. package/lib/tango-store-builder.module.d.ts +31 -21
  94. package/package.json +1 -1
@@ -0,0 +1,55 @@
1
+ export interface FindReplace {
2
+ _id: string;
3
+ name?: string;
4
+ clientId?: string;
5
+ searchMode?: 'store' | 'cluster';
6
+ storeSearchString?: string;
7
+ target?: 'merch' | 'vm' | 'both';
8
+ findPrompt?: string;
9
+ replacePrompt?: string;
10
+ storeCount?: number;
11
+ stores?: Store[];
12
+ selectedClusters?: Array<{
13
+ id: string;
14
+ label: string;
15
+ }>;
16
+ batchProgress?: number;
17
+ status: 'draft' | 'batch-running' | 'yet-to-approve' | 'approved' | 'scheduled';
18
+ schedule?: boolean;
19
+ scheduleDate?: string | null;
20
+ createdAt?: string;
21
+ updatedAt?: string;
22
+ }
23
+ export interface Store {
24
+ storeName: string;
25
+ storeId?: string;
26
+ planoId?: string;
27
+ layoutId?: string;
28
+ batchId?: string;
29
+ batchStatus?: 'yet-to-start' | 'initiated' | 'complete' | 'failed';
30
+ responseStatus?: 'match' | 'no-match';
31
+ findResponseData?: string;
32
+ isApproved?: boolean;
33
+ replaceResponseData?: {
34
+ vmConfig?: any[];
35
+ shelfConfig?: any[];
36
+ };
37
+ }
38
+ export interface FindReplaceFilter {
39
+ status?: string[];
40
+ }
41
+ export interface FindReplaceRequest {
42
+ limit: number;
43
+ offset: number;
44
+ searchValue?: string;
45
+ filter?: FindReplaceFilter;
46
+ sortColumnName?: string;
47
+ sortBy?: number;
48
+ }
49
+ export interface FindReplaceResponse {
50
+ code: number;
51
+ data: {
52
+ data: FindReplace[];
53
+ count: number;
54
+ };
55
+ }
@@ -0,0 +1,70 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { FindReplace } from '../models/find-replace.model';
4
+ import { StoreBuilderService } from '../../../services/store-builder.service';
5
+ import { ToastService } from 'tango-app-ui-shared';
6
+ import * as i0 from "@angular/core";
7
+ export declare class CollectionUpdateAiDataService implements OnDestroy {
8
+ private storeBuilderService;
9
+ private toastService;
10
+ private findReplaceData$;
11
+ private saveDraftSubject$;
12
+ private loading$;
13
+ private savedId$;
14
+ private destroy$;
15
+ private saveSubscription;
16
+ constructor(storeBuilderService: StoreBuilderService, toastService: ToastService);
17
+ ngOnDestroy(): void;
18
+ /**
19
+ * Get current FindReplace data as Observable
20
+ */
21
+ getFindReplaceData(): Observable<FindReplace | null>;
22
+ /**
23
+ * Get loading state as Observable
24
+ */
25
+ getLoadingState(): Observable<boolean>;
26
+ /**
27
+ * Get saved ID as Observable (emits when save is successful)
28
+ */
29
+ getSavedId(): Observable<string>;
30
+ /**
31
+ * Get current FindReplace data value
32
+ */
33
+ getCurrentData(): FindReplace | null;
34
+ /**
35
+ * Initialize or update FindReplace data
36
+ */
37
+ setFindReplaceData(data: FindReplace | null): void;
38
+ /**
39
+ * Update partial data and merge with existing
40
+ */
41
+ updateData(partialData: Partial<FindReplace>): void;
42
+ /**
43
+ * Trigger save as draft with updated data
44
+ * Components can call this to save current state
45
+ */
46
+ triggerSaveDraft(data?: Partial<FindReplace>): void;
47
+ /**
48
+ * Save as draft and return an Observable that can be awaited
49
+ * Use this when you need to wait for the save to complete
50
+ */
51
+ saveDraftAndWait(data?: Partial<FindReplace>): Observable<any>;
52
+ /**
53
+ * Save as draft - internal method
54
+ */
55
+ private saveAsDraft;
56
+ /**
57
+ * Load FindReplace data by ID
58
+ */
59
+ loadFindReplaceDataById(id: string): Observable<any>;
60
+ /**
61
+ * Load and set FindReplace data by ID
62
+ */
63
+ loadAndSetFindReplaceDataById(id: string): void;
64
+ /**
65
+ * Clear all data
66
+ */
67
+ clearData(): void;
68
+ static ɵfac: i0.ɵɵFactoryDeclaration<CollectionUpdateAiDataService, never>;
69
+ static ɵprov: i0.ɵɵInjectableDeclaration<CollectionUpdateAiDataService>;
70
+ }
@@ -1,13 +1,13 @@
1
- import { OnInit, OnDestroy } from '@angular/core';
2
- import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
3
- import { ActivatedRoute, Router } from '@angular/router';
4
- import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
5
- import { ToastService } from 'tango-app-ui-shared';
6
- import { StoreBuilderService } from '../../services/store-builder.service';
7
- import { FixtureLibraryDetails, FixtureLibraryShelfConfig } from '../../interfaces/fixture-library.interface';
8
- import { DropdownIF } from '../../interfaces/plano-general.interface';
9
- import { CanExitGuard } from '../../functions/exit.guard';
10
- import { GlobalStateService, PageInfoService } from 'tango-app-ui-global';
1
+ import { OnInit, OnDestroy } from "@angular/core";
2
+ import { FormBuilder, FormGroup, FormArray } from "@angular/forms";
3
+ import { ActivatedRoute, Router } from "@angular/router";
4
+ import { NgbModal } from "@ng-bootstrap/ng-bootstrap";
5
+ import { ToastService } from "tango-app-ui-shared";
6
+ import { StoreBuilderService } from "../../services/store-builder.service";
7
+ import { FixtureLibraryDetails, FixtureLibraryShelfConfig } from "../../interfaces/fixture-library.interface";
8
+ import { DropdownIF } from "../../interfaces/plano-general.interface";
9
+ import { CanExitGuard } from "../../functions/exit.guard";
10
+ import { GlobalStateService, PageInfoService } from "tango-app-ui-global";
11
11
  import * as i0 from "@angular/core";
12
12
  export declare class CreateFixtureComponent implements OnInit, OnDestroy, CanExitGuard {
13
13
  private route;
@@ -46,14 +46,15 @@ export declare class CreateFixtureComponent implements OnInit, OnDestroy, CanExi
46
46
  width: import("@angular/forms").FormControl<number | null>;
47
47
  length: import("@angular/forms").FormControl<number | null>;
48
48
  }>;
49
- addShelf(shelf?: FixtureLibraryShelfConfig): void;
49
+ addShelf(shelf?: any): void;
50
+ updateProductPerShelfMinValidator(shelfGroup: FormGroup, shelfType: string): void;
50
51
  setupShelfTypeListener(shelfGroup: FormGroup): void;
51
52
  removeShelf(index?: number): void;
52
53
  addPanel(panel?: FixtureLibraryShelfConfig): void;
53
54
  removePanel(index?: number): void;
54
- toggleSection(section: 'header' | 'body' | 'footer'): void;
55
- toggleSectionForm(section: 'header' | 'body' | 'footer'): void;
56
- toggleSectionCheckBox(section: 'header' | 'body' | 'footer'): void;
55
+ toggleSection(section: "header" | "body" | "footer"): void;
56
+ toggleSectionForm(section: "header" | "body" | "footer"): void;
57
+ toggleSectionCheckBox(section: "header" | "body" | "footer"): void;
57
58
  mapFormToApi(form: FormGroup, status: string): any;
58
59
  onSubmit(status: string): Promise<boolean>;
59
60
  canDeactivate(): Promise<boolean>;
@@ -27,6 +27,8 @@ export declare class TemplateBasicDetailsComponent implements OnInit, OnDestroy
27
27
  setPageData(): void;
28
28
  initializeForm(): void;
29
29
  addShelf(shelf?: any): void;
30
+ setupShelfTypeListener(shelfGroup: FormGroup): void;
31
+ updateProductPerShelfMinValidator(shelfGroup: FormGroup, shelfType: string): void;
30
32
  removeShelf(index?: number): void;
31
33
  get shelfArray(): FormArray;
32
34
  get totalProductCapacity(): number;
@@ -1,15 +1,15 @@
1
- import { AfterViewChecked, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
- import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
3
- import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
4
- import { ActivatedRoute, Router } from '@angular/router';
5
- import { ToastService } from 'tango-app-ui-shared';
6
- import { GlobalStateService, PageInfoService } from 'tango-app-ui-global';
7
- import { FixtureTemplateDetails, SectionConfig, ShelfConfig, VMConfig } from '../../../interfaces/fixture-template.interface';
8
- import { DropdownIF } from '../../../interfaces/plano-general.interface';
9
- import { PlanoDataService } from '../../../services/plano-data.service';
10
- import { VmLibraryList } from '../../../interfaces/vm-library.interface';
11
- import { StoreBuilderService } from '../../../services/store-builder.service';
12
- import { TitleCasePipe } from '@angular/common';
1
+ import { AfterViewChecked, ChangeDetectorRef, OnDestroy, OnInit } from "@angular/core";
2
+ import { FormArray, FormBuilder, FormGroup } from "@angular/forms";
3
+ import { NgbModal } from "@ng-bootstrap/ng-bootstrap";
4
+ import { ActivatedRoute, Router } from "@angular/router";
5
+ import { ToastService } from "tango-app-ui-shared";
6
+ import { GlobalStateService, PageInfoService } from "tango-app-ui-global";
7
+ import { FixtureTemplateDetails, SectionConfig, ShelfConfig, VMConfig } from "../../../interfaces/fixture-template.interface";
8
+ import { DropdownIF } from "../../../interfaces/plano-general.interface";
9
+ import { PlanoDataService } from "../../../services/plano-data.service";
10
+ import { VmLibraryList } from "../../../interfaces/vm-library.interface";
11
+ import { StoreBuilderService } from "../../../services/store-builder.service";
12
+ import { TitleCasePipe } from "@angular/common";
13
13
  import * as i0 from "@angular/core";
14
14
  export declare class TemplateVmsComponent implements OnInit, OnDestroy, AfterViewChecked {
15
15
  private fb;
@@ -21,6 +21,7 @@ export declare class FixtureTemplateTableComponent implements OnInit, OnDestroy
21
21
  fixtureTemplatesList: FixtureTemplateList[];
22
22
  viewMode: "list" | "grid" | "tree" | string;
23
23
  fixtureTemplateChildList: any;
24
+ activeTab: string;
24
25
  sortedColumn: string;
25
26
  sortOrder: number;
26
27
  childSortedColumn: string;
@@ -61,6 +62,7 @@ export declare class FixtureTemplateTableComponent implements OnInit, OnDestroy
61
62
  openBulkUploadModal(): void;
62
63
  onClickCreateFixtureTemplate(): void;
63
64
  onSearch(): void;
65
+ onTabChange(tab: string): void;
64
66
  onSortTable(column: string): void;
65
67
  redirectToreplace(): void;
66
68
  onChildSortTable(column: string, templateId: any, index: number): void;
@@ -16,6 +16,7 @@ export declare class PlanoRolloutTableComponent implements OnInit, OnDestroy {
16
16
  cardData: any;
17
17
  planogramsList: PlanoRolloutList[];
18
18
  selectedFilterTab: string;
19
+ activeTab: string;
19
20
  sortedColumn: string;
20
21
  sortOrder: number;
21
22
  searchTerm: string;
@@ -46,13 +47,14 @@ export declare class PlanoRolloutTableComponent implements OnInit, OnDestroy {
46
47
  openBulkUploadModal(): void;
47
48
  onSearch(): void;
48
49
  onSortTable(column: string): void;
50
+ onTabChange(tab: string): void;
49
51
  filterTable(data: string): void;
50
52
  applyFilters(event: any): void;
51
53
  paginationSize(): number;
52
54
  onPageChange(pageOffset: number): void;
53
55
  onPageSizeChange(pageSize: number): void;
54
- getTaskStatus(data: any, type: string): "yetToAssign" | "reviewPending" | "completed" | "taskAssigned" | undefined;
55
- getTaskTooltip(data: any, type: string): "Review Pending" | "Yet to Assign" | "Task Assigned" | "Completed" | undefined;
56
+ getTaskStatus(data: any, type: string): "completed" | "yetToAssign" | "reviewPending" | "taskAssigned" | undefined;
57
+ getTaskTooltip(data: any, type: string): "Completed" | "Review Pending" | "Yet to Assign" | "Task Assigned" | undefined;
56
58
  showBreach(data: any, type: string): boolean;
57
59
  updateQueryParams(): void;
58
60
  ngOnDestroy(): void;
@@ -53,12 +53,12 @@ export declare class PlanoVerificationTableComponent implements OnInit, OnDestro
53
53
  onPageChange(pageOffset: number): void;
54
54
  onPageSizeChange(pageSize: number): void;
55
55
  planoFloorDetails(data: any): string | 1;
56
- getTaskStatus(data: any, type: string): "yetToAssign" | "reviewPending" | "completed" | "taskAssigned" | undefined;
57
- getTaskTooltip(data: any, type: string): "reviewPending" | "Yet to Assign" | "Task Assigned" | "Completed" | undefined;
56
+ getTaskStatus(data: any, type: string): "completed" | "yetToAssign" | "reviewPending" | "taskAssigned" | undefined;
57
+ getTaskTooltip(data: any, type: string): "Completed" | "reviewPending" | "Yet to Assign" | "Task Assigned" | undefined;
58
58
  getProgressValue(data: any): 100 | 50 | 25;
59
59
  showBreach(data: any, type: string): boolean;
60
- getStatus(data: any): "reviewPending" | "Yet to Assign" | "Task Assigned" | "Completed" | "Ready to Publish" | "Published" | undefined;
61
- getStatusBadge(data: any): "yetToAssign" | "reviewPending" | "completed" | "taskAssigned" | "primaryBadgeStyle" | "bg-success" | undefined;
60
+ getStatus(data: any): "Completed" | "reviewPending" | "Yet to Assign" | "Task Assigned" | "Ready to Publish" | "Published" | undefined;
61
+ getStatusBadge(data: any): "completed" | "yetToAssign" | "reviewPending" | "taskAssigned" | "primaryBadgeStyle" | "bg-success" | undefined;
62
62
  getSubmit(data: any): boolean;
63
63
  updateQueryParams(): void;
64
64
  ngOnDestroy(): void;
@@ -24,11 +24,13 @@ export declare class InstanceBasicDetailsComponent implements OnChanges, OnDestr
24
24
  initializeForm(): void;
25
25
  addShelf(shelf?: any): void;
26
26
  setupShelfTypeListener(shelfGroup: FormGroup): void;
27
+ updateProductPerShelfMinValidator(shelfGroup: FormGroup, shelfType: string): void;
27
28
  removeShelf(index?: number): void;
28
29
  get shelfArray(): FormArray;
29
30
  get totalProductCapacity(): number;
30
31
  submitForm(): void;
31
32
  validateFixtureData(): void;
33
+ getShelfTitle(shelf: FormGroup, index: number): string;
32
34
  getFixtureLibrary(): string;
33
35
  ngOnDestroy(): void;
34
36
  static ɵfac: i0.ɵɵFactoryDeclaration<InstanceBasicDetailsComponent, never>;
@@ -73,7 +73,6 @@ export declare class InstanceVmsComponent implements OnDestroy, AfterViewChecked
73
73
  addVM(vm?: VMConfig, i?: number): void;
74
74
  setupVMListener(vmGroup: FormGroup, i: string): void;
75
75
  onChangeStartY(i: number, event: any): void;
76
- onVmChange(val: any): void;
77
76
  removeVM(index: number): void;
78
77
  handleVmPositionAndSize(): boolean;
79
78
  applyShelfColors(): boolean;
@@ -12,6 +12,7 @@ export declare class FixtureProductsComponent implements OnInit, OnChanges, Afte
12
12
  private ngbModal;
13
13
  fixtureDetails: any;
14
14
  vmList: VmLibraryList[];
15
+ floorData: any;
15
16
  onClose: EventEmitter<any>;
16
17
  changeFixture: EventEmitter<{
17
18
  fixtureId: string;
@@ -57,6 +58,7 @@ export declare class FixtureProductsComponent implements OnInit, OnChanges, Afte
57
58
  private isVMInitialized;
58
59
  private isBCInitialized;
59
60
  private destroy$;
61
+ private fixtureSub?;
60
62
  constructor(storeBuilderService: StoreBuilderService, gs: GlobalStateService, cd: ChangeDetectorRef, ngbModal: NgbModal);
61
63
  ngOnInit(): void;
62
64
  ngOnChanges(changes: SimpleChanges): Promise<void>;
@@ -68,12 +70,16 @@ export declare class FixtureProductsComponent implements OnInit, OnChanges, Afte
68
70
  constructSequentialSection(shelfDivs: (HTMLElement | null)[]): void;
69
71
  groupShelvesByZone(input: ShelfConfig[]): SectionConfig[];
70
72
  applySectionConfigToShelves(sections: SectionConfig[]): ShelfConfig[];
71
- openZoneLevelProductModal(zoneData: any, level: string): void;
73
+ openZoneLevelProductModalByProduct(p: any, s: any): void;
74
+ openZoneLevelProductModal(zoneData: any, level: string, pLocator?: {
75
+ s: number;
76
+ pid: any;
77
+ }): void;
72
78
  openStoreBoxProducts(): void;
73
79
  distributeRoundRobin(products: any, trayRows: number): any;
74
80
  getShelfRowWithProducts(): void;
75
81
  onClickClose(): void;
76
82
  ngOnDestroy(): void;
77
83
  static ɵfac: i0.ɵɵFactoryDeclaration<FixtureProductsComponent, never>;
78
- static ɵcmp: i0.ɵɵComponentDeclaration<FixtureProductsComponent, "fixture-products", never, { "fixtureDetails": { "alias": "fixtureDetails"; "required": false; }; "vmList": { "alias": "vmList"; "required": false; }; }, { "onClose": "onClose"; "changeFixture": "changeFixture"; }, never, never, false, never>;
84
+ static ɵcmp: i0.ɵɵComponentDeclaration<FixtureProductsComponent, "fixture-products", never, { "fixtureDetails": { "alias": "fixtureDetails"; "required": false; }; "vmList": { "alias": "vmList"; "required": false; }; "floorData": { "alias": "floorData"; "required": false; }; }, { "onClose": "onClose"; "changeFixture": "changeFixture"; }, never, never, false, never>;
79
85
  }
@@ -2,13 +2,11 @@ import { TitleCasePipe } from "@angular/common";
2
2
  import { AfterViewInit, ElementRef, OnChanges, OnDestroy, SimpleChanges } from "@angular/core";
3
3
  import { GlobalStateService } from "tango-app-ui-global";
4
4
  import * as fabric from "fabric";
5
- import { VmLibraryList } from "../../../interfaces/vm-library.interface";
6
5
  import * as i0 from "@angular/core";
7
6
  export declare class MerchComplianceComponent implements AfterViewInit, OnChanges, OnDestroy {
8
7
  private gs;
9
8
  private titleCase;
10
9
  floorData: any;
11
- vmList: VmLibraryList[];
12
10
  canvasEl: ElementRef<HTMLCanvasElement>;
13
11
  containerRef: ElementRef<HTMLDivElement>;
14
12
  onResize(): void;
@@ -68,5 +66,5 @@ export declare class MerchComplianceComponent implements AfterViewInit, OnChange
68
66
  onClickClose(): void;
69
67
  ngOnDestroy(): void;
70
68
  static ɵfac: i0.ɵɵFactoryDeclaration<MerchComplianceComponent, never>;
71
- static ɵcmp: i0.ɵɵComponentDeclaration<MerchComplianceComponent, "merch-compliance", never, { "floorData": { "alias": "floorData"; "required": false; }; "vmList": { "alias": "vmList"; "required": false; }; }, {}, never, never, false, never>;
69
+ static ɵcmp: i0.ɵɵComponentDeclaration<MerchComplianceComponent, "merch-compliance", never, { "floorData": { "alias": "floorData"; "required": false; }; }, {}, never, never, false, never>;
72
70
  }
@@ -0,0 +1,47 @@
1
+ import { AfterViewChecked, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
2
+ import { StoreBuilderService } from "../../../../../services/store-builder.service";
3
+ import { ShelfConfig, SectionConfig } from "../../../../../interfaces/fixture-template.interface";
4
+ import { GlobalStateService } from "tango-app-ui-global";
5
+ import * as i0 from "@angular/core";
6
+ export declare class MisplacedProductFixtureComponent implements OnInit, OnChanges, AfterViewChecked, OnDestroy {
7
+ private storeBuilderService;
8
+ private gs;
9
+ private cd;
10
+ fixtureDetails: any;
11
+ fixtureTemplateDetails: any;
12
+ selectedProduct: any;
13
+ targetFixtureFullDetails: EventEmitter<any>;
14
+ fixtureRoot: ElementRef<HTMLElement>;
15
+ clientId: string;
16
+ imgCDN: string;
17
+ targetPID: any;
18
+ sectionByZones: {
19
+ zone: string;
20
+ section: {
21
+ brands: string[];
22
+ categories: string[];
23
+ shelves: string[];
24
+ shelfDivs: (HTMLElement | null | undefined)[];
25
+ capacity: number;
26
+ color: any;
27
+ };
28
+ }[];
29
+ private isLayoutInitialized;
30
+ private isColorsApplied;
31
+ isPageLoading: boolean;
32
+ private destroy$;
33
+ constructor(storeBuilderService: StoreBuilderService, gs: GlobalStateService, cd: ChangeDetectorRef);
34
+ ngOnInit(): void;
35
+ ngOnChanges(changes: SimpleChanges): Promise<void>;
36
+ ngAfterViewChecked(): void;
37
+ getFixtureShelfDetails(data: any): Promise<void>;
38
+ distributeRoundRobin(products: any, trayRows: number): any;
39
+ updateHeaderFooterSize(): boolean;
40
+ applyShelfColors(): boolean;
41
+ constructSequentialSection(shelfDivs: (HTMLElement | null)[]): void;
42
+ groupShelvesByZone(input: ShelfConfig[]): SectionConfig[];
43
+ private get bodyEl();
44
+ ngOnDestroy(): void;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<MisplacedProductFixtureComponent, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<MisplacedProductFixtureComponent, "misplaced-product-fixture", never, { "fixtureDetails": { "alias": "fixtureDetails"; "required": false; }; "selectedProduct": { "alias": "selectedProduct"; "required": false; }; }, { "targetFixtureFullDetails": "targetFixtureFullDetails"; }, never, never, false, never>;
47
+ }
@@ -0,0 +1,70 @@
1
+ import { TitleCasePipe } from "@angular/common";
2
+ import { AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from "@angular/core";
3
+ import { GlobalStateService } from "tango-app-ui-global";
4
+ import * as fabric from "fabric";
5
+ import * as i0 from "@angular/core";
6
+ export declare class ProductLocatorComponent implements AfterViewInit, OnChanges, OnDestroy {
7
+ private gs;
8
+ private titleCase;
9
+ floorData: any;
10
+ selectedProduct?: any;
11
+ canvasEl: ElementRef<HTMLCanvasElement>;
12
+ containerRef: ElementRef<HTMLDivElement>;
13
+ targetFixtureFullDetails: EventEmitter<any>;
14
+ onResize(): void;
15
+ canvas: fabric.Canvas;
16
+ clientId: string;
17
+ cdnUrl: string;
18
+ zoomLevel: number;
19
+ fixtureHeight: number;
20
+ fixtureWidth: number;
21
+ wallThickness: number;
22
+ verticalMargin: number;
23
+ isPageLoading: boolean;
24
+ selectedFixture: any;
25
+ selectedFixtureData: any;
26
+ private activeHighlight;
27
+ private cancelHighlightBlink;
28
+ private readonly destroy$;
29
+ constructor(gs: GlobalStateService, titleCase: TitleCasePipe);
30
+ ngOnChanges(changes: SimpleChanges): void;
31
+ ngAfterViewInit(): void;
32
+ resizeCanvas(): void;
33
+ setupZoomHandlers(): void;
34
+ renderFloor(): Promise<void>;
35
+ private fitCanvasToLayoutAnimated;
36
+ drawLayoutElements(): Promise<void>;
37
+ drawWall(canvas: fabric.Canvas, x: number, y: number, height: number, width: number, elementData: any): fabric.Group & {
38
+ objType: string;
39
+ data: any;
40
+ };
41
+ drawEntrance(canvas: fabric.Canvas, x: number, y: number, width: number, height: number, arrowWidth: number, elementData: any): void;
42
+ drawFixture(canvas: fabric.Canvas, x: number, y: number, height: number, width: number, fixtureData: any): Promise<fabric.Group & {
43
+ wallIndex: number;
44
+ fixtureIndex: number;
45
+ fixtureId: string;
46
+ fixtureType: "wall" | "floor";
47
+ issue: boolean;
48
+ issueData: any;
49
+ taskType: string;
50
+ vmConfig: [];
51
+ objType: string;
52
+ }>;
53
+ selectFixture(target: any): void;
54
+ drawLabeledRectangle(canvas: fabric.Canvas, x: number, y: number, width: number, height: number, element: any): fabric.Group;
55
+ toPixels(value: number, unit: string, dpi?: number): number;
56
+ calcMerchCompliancePercentage(): number;
57
+ private getFullLayoutBounds;
58
+ highlightFixture(group: any, blink?: boolean): void;
59
+ removeHighlight(): void;
60
+ onChangeFixture({ fixtureId, fixtureName, shelfId, zone, }: {
61
+ fixtureId: string;
62
+ fixtureName: string;
63
+ shelfId: string;
64
+ zone: string;
65
+ }): void;
66
+ onClickClose(): void;
67
+ ngOnDestroy(): void;
68
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductLocatorComponent, never>;
69
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProductLocatorComponent, "product-fixture-locator", never, { "floorData": { "alias": "floorData"; "required": false; }; "selectedProduct": { "alias": "selectedProduct"; "required": false; }; }, { "targetFixtureFullDetails": "targetFixtureFullDetails"; }, never, never, false, never>;
70
+ }
@@ -0,0 +1,16 @@
1
+ import { OnChanges, OnInit, SimpleChanges } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export declare class ProductZoneLocatorComponent implements OnChanges, OnInit {
4
+ targetProduct: any;
5
+ targetFixture: any;
6
+ data: any;
7
+ allBrands: any;
8
+ zoneCapacity: number;
9
+ allProducts: any[];
10
+ targetPID: any;
11
+ ngOnInit(): void;
12
+ ngOnChanges(changes: SimpleChanges): void;
13
+ distributeRoundRobin(products: any, trayRows: number): any;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductZoneLocatorComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProductZoneLocatorComponent, "product-zone-locator", never, { "targetProduct": { "alias": "targetProduct"; "required": false; }; "targetFixture": { "alias": "targetFixture"; "required": false; }; }, {}, never, never, false, never>;
16
+ }
@@ -1,27 +1,37 @@
1
1
  import { OnChanges, OnInit, SimpleChanges } from "@angular/core";
2
2
  import { NgbActiveModal } from "@ng-bootstrap/ng-bootstrap";
3
3
  import { ToastService } from "tango-app-ui-shared";
4
+ import { VmLibraryList } from "../../../../interfaces/vm-library.interface";
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class ZoneProductsComponent implements OnChanges, OnInit {
6
7
  activeModal: NgbActiveModal;
7
8
  private toastService;
8
9
  data: any;
9
10
  level: string;
11
+ floorData: any;
12
+ vmList: VmLibraryList[];
13
+ productLocation?: {
14
+ s: number;
15
+ pid: any;
16
+ };
10
17
  selectedProduct: any;
11
18
  productNote: string | null;
12
19
  allProducts: any[];
13
20
  zoneCapacity: number;
14
21
  brandName: string;
15
22
  allBrands: any;
23
+ showProductLocation: boolean;
24
+ misplacedTargetFixture: any;
16
25
  constructor(activeModal: NgbActiveModal, toastService: ToastService);
17
26
  ngOnInit(): void;
18
27
  ngOnChanges(changes: SimpleChanges): void;
19
28
  onClickRefresh(): void;
20
- onSelectProduct(pid: string, s: any): void;
29
+ onSelectProduct(pid: any, s: any): void;
21
30
  onClickClose(): void;
22
31
  distributeRoundRobin(products: any, trayRows: number): any;
23
32
  copySKU(text: string): void;
24
- onClickLocateFixture(fixtureDetails: any): void;
33
+ onClickLocateFixture(product: any): void;
34
+ onLoadTargetFixture(targetFixtureDetails: any): void;
25
35
  static ɵfac: i0.ɵɵFactoryDeclaration<ZoneProductsComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<ZoneProductsComponent, "zone-products", never, { "data": { "alias": "data"; "required": false; }; "level": { "alias": "level"; "required": false; }; }, {}, never, never, false, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<ZoneProductsComponent, "zone-products", never, { "data": { "alias": "data"; "required": false; }; "level": { "alias": "level"; "required": false; }; "floorData": { "alias": "floorData"; "required": false; }; "vmList": { "alias": "vmList"; "required": false; }; "productLocation": { "alias": "productLocation"; "required": false; }; }, {}, never, never, false, never>;
27
37
  }
@@ -0,0 +1,25 @@
1
+ import { NgbActiveModal } from "@ng-bootstrap/ng-bootstrap";
2
+ import { OnInit } from "@angular/core";
3
+ import { StoreBuilderService } from '../../../../services/store-builder.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AnalyticsPopupComponent implements OnInit {
6
+ activeModal: NgbActiveModal;
7
+ private apiService;
8
+ data: any;
9
+ type: any;
10
+ tableData: any;
11
+ searchTerm: any;
12
+ sortedColumn: any;
13
+ sortOrder: any;
14
+ columnHeader: any;
15
+ title: string;
16
+ dataList: any;
17
+ constructor(activeModal: NgbActiveModal, apiService: StoreBuilderService);
18
+ onClickClose(): void;
19
+ onSearch(): void;
20
+ onExport(): void;
21
+ onSortTable(column: any): void;
22
+ ngOnInit(): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsPopupComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnalyticsPopupComponent, "lib-analytics-popup", never, { "data": { "alias": "data"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, false, never>;
25
+ }
@@ -0,0 +1,24 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import dayjs from "dayjs";
3
+ import "dayjs/locale/en";
4
+ import { GlobalStateService } from "tango-app-ui-global";
5
+ import * as i0 from "@angular/core";
6
+ export declare class DateRangePickerComponent {
7
+ gs: GlobalStateService;
8
+ dateChange: EventEmitter<any>;
9
+ dayjs: typeof dayjs;
10
+ selectedClient: any;
11
+ isCustomDate: (m: dayjs.Dayjs) => false | "invalid-date";
12
+ selectedDateRange: any;
13
+ selectedFilters: any;
14
+ ranges: any;
15
+ constructor(gs: GlobalStateService);
16
+ value: number;
17
+ ngOnInit(): void;
18
+ getDateRanges(): any;
19
+ resetValidation(): void;
20
+ onStartDateChange(event: any): void;
21
+ emitDateChange(event: any): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerComponent, "lib-date-range-picker", never, { "value": { "alias": "value"; "required": false; }; }, { "dateChange": "dateChange"; }, never, never, false, never>;
24
+ }