tango-app-ui-store-builder 1.2.12 → 1.2.14

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.
@@ -32,6 +32,19 @@ export declare class LookPlanoCollectionFormComponent implements OnInit, OnDestr
32
32
  name: string;
33
33
  fixtureType: string;
34
34
  }[];
35
+ mbqBucketItems: {
36
+ value: string;
37
+ label: string;
38
+ }[];
39
+ brandItems: {
40
+ value: string;
41
+ label: string;
42
+ }[];
43
+ fixtureHeaderItems: {
44
+ value: string;
45
+ label: string;
46
+ }[];
47
+ private comboRaw;
35
48
  vmTypeOptions: {
36
49
  value: string;
37
50
  label: string;
@@ -99,6 +112,23 @@ export declare class LookPlanoCollectionFormComponent implements OnInit, OnDestr
99
112
  private getLibrarySnapshot;
100
113
  /** Persist a snapshot into the slot's librarySnapshots FormControl. */
101
114
  private captureLibrarySnapshot;
115
+ /**
116
+ * Initial vmConfig coords for a freshly-added VM entry, derived from the
117
+ * vmType and the target library's shelf layout. Mirrors the wall-layout
118
+ * rules in `runLooksAllocation` (onboard.controller.js:buildWallVmEntry)
119
+ * so what the form pre-positions matches what the backend allocator would
120
+ * place there.
121
+ *
122
+ * Top Masking -> first shelf, stretch (top strip of fixture)
123
+ * Mid 1 / Mid -> first mid shelf, left
124
+ * Mid 2 -> last mid shelf, right
125
+ * Mid 3 -> middle mid shelf (or last), stretch
126
+ * Bottom Slanter -> last shelf, stretch (bottom strip)
127
+ *
128
+ * Anything else falls back to the previous neutral default (top, no zone)
129
+ * so behaviour doesn't change for unknown labels.
130
+ */
131
+ private initialVmLayout;
102
132
  /** Resolve a VM placement's artwork NAME (+ vmType) to its planovm _id. */
103
133
  private resolveVmId;
104
134
  /**
@@ -175,6 +205,21 @@ export declare class LookPlanoCollectionFormComponent implements OnInit, OnDestr
175
205
  * - Product / SKU collection list (flattened from brand → category mapping
176
206
  * that powers /manage/planogram/config). */
177
207
  loadPlacementDropdownData(): Promise<void>;
208
+ /**
209
+ * Load the MBQ bucket / Brand / Fixture Header dropdown options seeded into
210
+ * planostaticdatas from the sheet, then rebuild the flat option lists
211
+ * (merging in any values already present on the loaded collection).
212
+ */
213
+ loadComboOptions(): Promise<void>;
214
+ /**
215
+ * Rebuild the MBQ bucket / Brand / Fixture Header option lists (and the
216
+ * cascading caches) by MERGING the seeded endpoint payload (comboRaw) with
217
+ * whatever values are already present on the currently-loaded looks. The
218
+ * merge guarantees the dropdowns are never empty for an existing collection
219
+ * even when the endpoint hasn't loaded, and that any value already saved on
220
+ * a look is always selectable.
221
+ */
222
+ private rebuildComboOptions;
178
223
  loadFixtureLibraries(): Promise<void>;
179
224
  /**
180
225
  * Recompute the slot-type-filtered library list once. Stable reference
@@ -205,12 +250,29 @@ export declare class LookPlanoCollectionFormComponent implements OnInit, OnDestr
205
250
  loadDetails(): Promise<void>;
206
251
  addLook(): void;
207
252
  removeLook(index: number): void;
253
+ /**
254
+ * Clone the look at `index` (deep copy of its full nested value — slots,
255
+ * placements, cadHeaderVariants, librarySnapshots) and insert it right
256
+ * after the original, then select the copy. createLookGroup rebuilds the
257
+ * whole FormGroup tree from the JSON seed, so the clone shares no control
258
+ * references with the source.
259
+ */
260
+ duplicateLook(index: number): void;
208
261
  selectLook(index: number): void;
209
262
  addSlot(): void;
210
263
  removeSlot(slotIndex: number): void;
211
264
  renumberSlotsForGroup(lookGroup: FormGroup): void;
212
265
  selectSlot(slotIndex: number): void;
213
266
  lookTitle(lookGroup: FormGroup): string;
267
+ /**
268
+ * Short visual indicator for the slotType mix of a look — rendered as a
269
+ * coloured chip in the MBQ Bucket - Fixture Combinations list. Returns
270
+ * `null` for an empty look so the chip is hidden.
271
+ */
272
+ fixtureTypeBadge(lookGroup: FormGroup): {
273
+ label: string;
274
+ cls: string;
275
+ } | null;
214
276
  bucketKey(lookGroup: FormGroup): string;
215
277
  /**
216
278
  * Assign a colour to each unique bucket key by **insertion order**, not by hash.
@@ -54,13 +54,13 @@ export declare class PlanoRolloutTableComponent implements OnInit, OnDestroy {
54
54
  paginationSize(): number;
55
55
  onPageChange(pageOffset: number): void;
56
56
  onPageSizeChange(pageSize: number): void;
57
- getTaskStatus(data: any, type: string): "completed" | "yetToAssign" | "taskAssigned" | "reviewPending" | undefined;
58
- getTaskTooltip(data: any, type: string): "Completed" | "Yet to Assign" | "Task Assigned" | "Review Pending" | undefined;
57
+ getTaskStatus(data: any, type: string): "completed" | "yetToAssign" | "reviewPending" | "taskAssigned" | undefined;
58
+ getTaskTooltip(data: any, type: string): "Review Pending" | "Yet to Assign" | "Task Assigned" | "Completed" | undefined;
59
59
  showBreach(data: any, type: string): boolean;
60
60
  updateQueryParams(): void;
61
61
  ngOnDestroy(): void;
62
- getStatus(data: any): "Yet to Assign" | "Task Assigned" | "Review Pending" | "Ready to Publish" | "Published" | undefined;
63
- getStatusBadge(data: any): "yetToAssign" | "taskAssigned" | "reviewPending" | "primaryBadgeStyle" | "bg-success" | undefined;
62
+ getStatus(data: any): "Review Pending" | "Yet to Assign" | "Task Assigned" | "Ready to Publish" | "Published" | undefined;
63
+ getStatusBadge(data: any): "yetToAssign" | "reviewPending" | "taskAssigned" | "primaryBadgeStyle" | "bg-success" | undefined;
64
64
  onExport(): void;
65
65
  static ɵfac: i0.ɵɵFactoryDeclaration<PlanoRolloutTableComponent, never>;
66
66
  static ɵcmp: i0.ɵɵComponentDeclaration<PlanoRolloutTableComponent, "lib-plano-rollout-table", never, {}, {}, never, never, false, never>;
@@ -54,14 +54,14 @@ export declare class PlanoVerificationTableComponent implements OnInit, OnDestro
54
54
  onPageChange(pageOffset: number): void;
55
55
  onPageSizeChange(pageSize: number): void;
56
56
  planoFloorDetails(data: any): string | 1;
57
- getTaskStatus(data: any, type: string): "completed" | "yetToAssign" | "taskAssigned" | "reviewPending" | undefined;
58
- getTaskTooltip(data: any, type: string): "Completed" | "Yet to Assign" | "Task Assigned" | "Review Pending" | "Task Scheduled" | undefined;
59
- getZoneStatus(data: any): "completed" | "yetToAssign" | "taskAssigned" | "reviewPending" | "flag";
57
+ getTaskStatus(data: any, type: string): "completed" | "yetToAssign" | "reviewPending" | "taskAssigned" | undefined;
58
+ getTaskTooltip(data: any, type: string): "Review Pending" | "Yet to Assign" | "Task Assigned" | "Task Scheduled" | "Completed" | undefined;
59
+ getZoneStatus(data: any): "completed" | "yetToAssign" | "reviewPending" | "taskAssigned" | "flag";
60
60
  getZoneTooltip(data: any): any;
61
61
  getProgressValue(data: any): 100 | 50 | 25;
62
62
  showBreach(data: any, type: string): boolean;
63
- getStatus(data: any): "Completed" | "Yet to Assign" | "Task Assigned" | "Review Pending" | "Ready to Publish" | "Published" | "Task Scheduled" | undefined;
64
- getStatusBadge(data: any): "completed" | "yetToAssign" | "taskAssigned" | "reviewPending" | "primaryBadgeStyle" | "bg-success" | undefined;
63
+ getStatus(data: any): "Review Pending" | "Yet to Assign" | "Task Assigned" | "Ready to Publish" | "Published" | "Task Scheduled" | "Completed" | undefined;
64
+ getStatusBadge(data: any): "completed" | "yetToAssign" | "reviewPending" | "taskAssigned" | "primaryBadgeStyle" | "bg-success" | undefined;
65
65
  getSubmit(data: any): boolean;
66
66
  updateQueryParams(): void;
67
67
  ngOnDestroy(): void;
@@ -169,6 +169,7 @@ export declare class StoreBuilderService implements OnDestroy {
169
169
  exportPlanoOrderSheetAsync(data: any): import("rxjs").Observable<import("@angular/common/http").HttpResponse<Object>>;
170
170
  getPlanoExportJob(jobId: string): import("rxjs").Observable<Object>;
171
171
  runAlocation(data: any): import("rxjs").Observable<Object>;
172
+ runLooksAllocation(data: any): import("rxjs").Observable<Object>;
172
173
  getIvmConversionAlias(): import("rxjs").Observable<Object>;
173
174
  getAllFindReplaceData(data: any): import("rxjs").Observable<Object>;
174
175
  getFindReplaceDataById(data: any): import("rxjs").Observable<Object>;
@@ -270,6 +271,9 @@ export declare class StoreBuilderService implements OnDestroy {
270
271
  }): import("rxjs").Observable<Object>;
271
272
  getLookPlanoCollectionList(data: any): import("rxjs").Observable<Object>;
272
273
  getLookPlanoCollectionDetails(collectionId: string): import("rxjs").Observable<Object>;
274
+ /** MBQ bucket / Brand / Fixture Header dropdown options + combinations,
275
+ * seeded into planostaticdatas (type='lookComboOptions') from the sheet. */
276
+ getLookComboOptions(clientId: string): import("rxjs").Observable<Object>;
273
277
  createLookPlanoCollection(data: any): import("rxjs").Observable<Object>;
274
278
  updateLookPlanoCollection(data: any): import("rxjs").Observable<Object>;
275
279
  deleteLookPlanoCollection(collectionId: string): import("rxjs").Observable<Object>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-app-ui-store-builder",
3
- "version": "1.2.12",
3
+ "version": "1.2.14",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0"