ng-miam 9.2.2 → 9.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ng-miam.umd.js +20 -60
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +1 -1
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_models/basket.js +2 -9
- package/esm2015/lib/_services/baskets.service.js +2 -22
- package/esm2015/lib/_services/context.service.js +3 -4
- package/esm2015/lib/_services/items.service.js +2 -2
- package/esm2015/lib/_services/recipes.service.js +3 -3
- package/esm2015/lib/_types/builded/mealz-interface.js +1 -1
- package/esm2015/lib/_types/builded/mealz-internal-interface.js +1 -1
- package/esm2015/lib/_web-components/meals-planner/meals-planner.component.js +2 -3
- package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +4 -3
- package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-catalog/catalog-list/catalog-list.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-pricing/recipe-pricing.component.js +6 -12
- package/esm2015/lib/environments/version.js +2 -2
- package/fesm2015/ng-miam.js +20 -54
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_models/basket.d.ts +0 -3
- package/lib/_models/basket.d.ts.map +1 -1
- package/lib/_services/baskets.service.d.ts +0 -2
- package/lib/_services/baskets.service.d.ts.map +1 -1
- package/lib/_services/context.service.d.ts.map +1 -1
- package/lib/_services/recipes.service.d.ts +1 -1
- package/lib/_services/recipes.service.d.ts.map +1 -1
- package/lib/_types/builded/mealz-interface.d.ts +0 -6
- package/lib/_types/builded/mealz-interface.d.ts.map +1 -1
- package/lib/_types/builded/mealz-internal-interface.d.ts +1 -1
- package/lib/_types/builded/mealz-internal-interface.d.ts.map +1 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts +0 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-pricing/recipe-pricing.component.d.ts +0 -1
- package/lib/_web-components/recipe-pricing/recipe-pricing.component.d.ts.map +1 -1
- package/lib/environments/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -116,18 +116,13 @@ export class RecipePricingComponent {
|
|
|
116
116
|
this.inViewport = true;
|
|
117
117
|
this.priceSet = new EventEmitter();
|
|
118
118
|
this.loading = true;
|
|
119
|
-
this.pricebookKey = new BehaviorSubject('');
|
|
120
119
|
this.subscriptions = [];
|
|
121
120
|
this.guests$ = new BehaviorSubject(0);
|
|
122
121
|
this.isInView$ = new BehaviorSubject(false);
|
|
123
122
|
}
|
|
124
123
|
ngOnInit() {
|
|
125
124
|
this.isInView$.next(this.inViewport);
|
|
126
|
-
this.subscriptions.push(this.basketsService.basket$.pipe(skipWhile(b => !b)).subscribe(
|
|
127
|
-
if (b.pricebookKey !== this.pricebookKey.value) {
|
|
128
|
-
this.pricebookKey.next(b.pricebookKey);
|
|
129
|
-
}
|
|
130
|
-
}));
|
|
125
|
+
this.subscriptions.push(this.basketsService.basket$.pipe(skipWhile(b => !b)).subscribe());
|
|
131
126
|
}
|
|
132
127
|
ngOnChanges(changes) {
|
|
133
128
|
if (changes.serves) {
|
|
@@ -185,12 +180,11 @@ export class RecipePricingComponent {
|
|
|
185
180
|
this.posService.waitForPos,
|
|
186
181
|
this.isInView$,
|
|
187
182
|
this.guests$,
|
|
188
|
-
this.pricebookKey,
|
|
189
183
|
this.basketsService.recipeIsInBasket(this.recipeId)
|
|
190
184
|
]).pipe(skipWhile(results => !results[1] || !results[3])).subscribe(results => {
|
|
191
185
|
this.pos = results[0];
|
|
192
186
|
// fetch the price if the recipe isn't in the basket and if it was last time we check or on startup
|
|
193
|
-
if (!results[
|
|
187
|
+
if (!results[3] && wasInBasketBefore !== false && this.inViewport) {
|
|
194
188
|
this.loading = true;
|
|
195
189
|
this.cdr.detectChanges();
|
|
196
190
|
if (this.onChangesSubscription) {
|
|
@@ -198,7 +192,7 @@ export class RecipePricingComponent {
|
|
|
198
192
|
}
|
|
199
193
|
this.onChangesSubscription = this.fetchPricing().subscribe();
|
|
200
194
|
}
|
|
201
|
-
wasInBasketBefore = results[
|
|
195
|
+
wasInBasketBefore = results[3];
|
|
202
196
|
});
|
|
203
197
|
}
|
|
204
198
|
initPricingFromBasketChanges() {
|
|
@@ -208,7 +202,7 @@ export class RecipePricingComponent {
|
|
|
208
202
|
this.pos = results[0];
|
|
209
203
|
const recipeLine = results[1].find(l => { var _a, _b; return l.isRecipe && ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = this.recipeId) === null || _b === void 0 ? void 0 : _b.toString()); });
|
|
210
204
|
if (!!recipeLine) {
|
|
211
|
-
return this.recipesService.getPricing(this.recipeId, this.pos.id, this.
|
|
205
|
+
return this.recipesService.getPricing(this.recipeId, this.pos.id, this.serves).pipe(switchMap(pricing => {
|
|
212
206
|
return this.extractPricing(recipeLine, pricing);
|
|
213
207
|
}));
|
|
214
208
|
}
|
|
@@ -219,7 +213,7 @@ export class RecipePricingComponent {
|
|
|
219
213
|
if (!this.recipeId || !this.pos || !this.serves) {
|
|
220
214
|
return of(null);
|
|
221
215
|
}
|
|
222
|
-
return this.recipesService.getPricing(this.recipeId, this.pos.id, this.
|
|
216
|
+
return this.recipesService.getPricing(this.recipeId, this.pos.id, this.serves).pipe(skipWhile(result => result.price === 0), tap((result) => {
|
|
223
217
|
this.pricing = result;
|
|
224
218
|
this.format();
|
|
225
219
|
this.loading = false;
|
|
@@ -301,4 +295,4 @@ RecipePricingComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipePricingCompo
|
|
|
301
295
|
}], priceSet: [{
|
|
302
296
|
type: Output
|
|
303
297
|
}] }); })();
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLXByaWNpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtcHJpY2luZy9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1wcmljaW5nL3JlY2lwZS1wcmljaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztJQ1QzRCw0QkFBaUQ7SUFBakQsZ0JBQWlEO0lBQVMsaUJBQU87OztJQUNqRSw0QkFBNEM7SUFBQSxZQUFnQjtJQUFBLGlCQUFPOzs7SUFBdkIsZUFBZ0I7SUFBaEIsdUNBQWdCOzs7SUFIOUQsK0JBQ29EO0lBQ2xELDRGQUFpRTtJQUNqRSw0RkFBbUU7SUFDckUsaUJBQU07OztJQUZHLGVBQW1DO0lBQW5DLDJEQUFt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RUksUUFBUTtrQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwV2hpbGUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFza2V0UHJldmlld0xpbmUsIFBvaW50T2ZTYWxlLCBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZVByaWNpbmcgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3JlY2lwZS1wcmljaW5nJztcbmltcG9ydCB7IEJhc2tldHNTZXJ2aWNlLCBQb2ludE9mU2FsZXNTZXJ2aWNlLCBQcmljZVNlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtcHJpY2luZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1wcmljaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZVByaWNpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcmVjaXBlSWQ6IHN0cmluZztcbiAgQElucHV0KCkgcmVjaXBlRXh0SWQ6IHN0cmluZztcbiAgQElucHV0KCkgc2VydmVzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGd1ZXN0c1RleHQ7XG4gIEBJbnB1dCgpIGZldGNoUHJpY2luZ09uU2Nyb2xsID0gdHJ1ZTtcbiAgQElucHV0KCkgaW5WaWV3cG9ydCA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHByaWNlU2V0ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGVQcmljaW5nPigpO1xuXG4gIHByaWNpbmc6IFJlY2lwZVByaWNpbmc7XG4gIGxvYWRpbmcgPSB0cnVlO1xuICBpbnRlZ2VyUGFydDogc3RyaW5nO1xuICBkZWNpbWFsUGFydDogc3RyaW5nO1xuICB0b3RhbDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcG9zOiBQb2ludE9mU2FsZTtcbiAgcHJpdmF0ZSBwcmljZWJvb2tLZXkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgb25DaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZ3Vlc3RzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBpc0luVmlldyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcHJpY2VTZXJ2aWNlOiBQcmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2UsXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHB1YmxpYyBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZSxcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzSW5WaWV3JC5uZXh0KHRoaXMuaW5WaWV3cG9ydCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldCQucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKGIgPT4gIWIpXG4gICAgICApLnN1YnNjcmliZShiID0+IHtcbiAgICAgICAgaWYgKGIucHJpY2Vib29rS2V5ICE9PSB0aGlzLnByaWNlYm9va0tleS52YWx1ZSkge1xuICAgICAgICAgIHRoaXMucHJpY2Vib29rS2V5Lm5leHQoYi5wcmljZWJvb2tLZXkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuc2VydmVzKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0d1ZXN0cyA9IHRoaXMuZ3Vlc3RzJC52YWx1ZTtcbiAgICAgIHRoaXMuZ3Vlc3RzJC5uZXh0KHRoaXMuc2VydmVzKTtcbiAgICAgIC8vIFRoZSBwcmljaW5nIG9ubHkgbmVlZHMgdG8gdXBkYXRlIHRoZSBndWVzdHMgaWYgY2FsbGVkIHN0YW5kYWxvbmUgLT4gd2l0aCBhIHJlY2lwZUV4dElkICYmIHJlY2lwZSB3YXMgZmV0Y2hlZCAmJiBndWVzdHMgaGF2ZSBjaGFuZ2VkXG4gICAgICBpZiAodGhpcy5yZWNpcGVFeHRJZCAmJiB0aGlzLnJlY2lwZUlkICYmIHByZXZpb3VzR3Vlc3RzID4gMCAmJiBwcmV2aW91c0d1ZXN0cyAhPT0gdGhpcy5zZXJ2ZXMpIHtcbiAgICAgICAgdGhpcy51cGRhdGVSZWNpcGVHdWVzdHMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXMucmVjaXBlSWQgfHwgY2hhbmdlcy5yZWNpcGVFeHRJZCkge1xuICAgICAgdGhpcy5pbml0UHJpY2luZygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5pblZpZXdwb3J0KSB7XG4gICAgICB0aGlzLmlzSW5WaWV3JC5uZXh0KHRoaXMuaW5WaWV3cG9ydCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBpbml0UHJpY2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuaW5pdFJlY2lwZUZvckV4dElkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMucmVjaXBlSWQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIHRoaXMuaW5pdFByaWNpbmdGcm9tQmFza2V0Q2hhbmdlcygpLnN1YnNjcmliZSgpLFxuICAgICAgICAgICAgdGhpcy5pbml0UHJpY2luZ0Zyb21HdWVzdHNBbmRWaWV3UG9ydCgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaW5pdFJlY2lwZUZvckV4dElkKCk6IE9ic2VydmFibGU8UmVjaXBlPiB7XG4gICAgaWYgKCEodGhpcy5yZWNpcGVJZD8ubGVuZ3RoID4gMCkgJiYgdGhpcy5yZWNpcGVFeHRJZD8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2Uuc2VhcmNoUmVjaXBlQnlFeHRJZCh0aGlzLnJlY2lwZUV4dElkKS5waXBlKFxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMucmVjaXBlSWQgPSByZXNwb25zZT8uaWQgfHwgbnVsbDtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YobnVsbCBhcyBSZWNpcGUpO1xuICB9XG5cbiAgb3BlblN0b3JlTG9jYXRvcihlOiBFdmVudCk6IHZvaWQge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5yZWNpcGVzU2VydmljZS5vcGVuU3RvcmVMb2NhdG9yKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJlY2lwZUd1ZXN0cygpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnVwZGF0ZVJlY2lwZXNJbkJhc2tldChcbiAgICAgIFt0aGlzLnJlY2lwZUlkXSxcbiAgICAgIHRoaXMuZ3Vlc3RzJC52YWx1ZSxcbiAgICAgIHsgb3JpZ2luUGF0aDogJycsIHByb3BzOiB7IHJlY2lwZV9pZDogdGhpcy5yZWNpcGVJZCB9IH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UHJpY2luZ0Zyb21HdWVzdHNBbmRWaWV3UG9ydCgpOiBTdWJzY3JpcHRpb24ge1xuICAgIC8vIElmIHRoZSByZWNpcGUgaXMgaW4gYmFza2V0LCB3ZSBpZ25vcmUgdGhlIGNoYW5nZSA9PiBwcmljaW5nIHdpbGwgYmUgdXBkYXRlZCB3aGVuIHRoZSBuZXcgYmFza2V0IHByZXZpZXcgaXMgcmVhZHlcbiAgICAvLyBBZnRlciB0aGUgc2hhbGxvdyBjb3B5IHdpdGggZXZlbnRzIG9mIHRoZSByZWNpcGUsIG5nT25DaGFuZ2VzIGlzIGNhbGxlZCBhZ2FpbiBiZWNhdXNlIHRoZSByZWNpcGUgb2JqZWN0IGlzIGRpZmZlcmVudFxuICAgIC8vIFNvIGlmIGNoYW5nZXMgY29udGFpbnMgb25seSBhIHJlY2lwZSBhbmQgbm8gc2VydmVzLCB3ZSBhbHNvIGF2b2lkIHJlLWZldGNoaW5nXG4gICAgbGV0IHdhc0luQmFza2V0QmVmb3JlOiBib29sZWFuO1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucG9zU2VydmljZS53YWl0Rm9yUG9zLFxuICAgICAgdGhpcy5pc0luVmlldyQsXG4gICAgICB0aGlzLmd1ZXN0cyQsXG4gICAgICB0aGlzLnByaWNlYm9va0tleSxcbiAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNJbkJhc2tldCh0aGlzLnJlY2lwZUlkKVxuICAgIF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0cyA9PiAhcmVzdWx0c1sxXSB8fCAhcmVzdWx0c1szXSlcbiAgICApLnN1YnNjcmliZShyZXN1bHRzID0+IHtcbiAgICAgIHRoaXMucG9zID0gcmVzdWx0c1swXTtcbiAgICAgIC8vIGZldGNoIHRoZSBwcmljZSBpZiB0aGUgcmVjaXBlIGlzbid0IGluIHRoZSBiYXNrZXQgYW5kIGlmIGl0IHdhcyBsYXN0IHRpbWUgd2UgY2hlY2sgb3Igb24gc3RhcnR1cFxuICAgICAgaWYgKCFyZXN1bHRzWzRdICYmIHdhc0luQmFza2V0QmVmb3JlICE9PSBmYWxzZSAmJiB0aGlzLmluVmlld3BvcnQpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mZXRjaFByaWNpbmcoKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIHdhc0luQmFza2V0QmVmb3JlID0gcmVzdWx0c1s0XTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFByaWNpbmdGcm9tQmFza2V0Q2hhbmdlcygpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnBvc1NlcnZpY2UucG9zJCwgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRQcmV2aWV3JCwgdGhpcy5pc0luVmlldyRcbiAgICBdKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdHMgPT4gIXJlc3VsdHNbMF0gfHwgIXJlc3VsdHNbMV0gfHwgIXJlc3VsdHNbMl0pLFxuICAgICAgc3dpdGNoTWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICB0aGlzLnBvcyA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IHJlY2lwZUxpbmUgPSByZXN1bHRzWzFdLmZpbmQobCA9PiBsLmlzUmVjaXBlICYmIGwuaWQ/LnRvU3RyaW5nKCkgPT09IHRoaXMucmVjaXBlSWQ/LnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAoISFyZWNpcGVMaW5lKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuZ2V0UHJpY2luZyh0aGlzLnJlY2lwZUlkLCB0aGlzLnBvcy5pZCwgdGhpcy5wcmljZWJvb2tLZXkudmFsdWUsIHRoaXMuc2VydmVzKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKHByaWNpbmcgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHRyYWN0UHJpY2luZyhyZWNpcGVMaW5lLCBwcmljaW5nKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2YobnVsbCBhcyBSZWNpcGVQcmljaW5nKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hQcmljaW5nKCk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZz4ge1xuICAgIGlmICghdGhpcy5yZWNpcGVJZCB8fCAhdGhpcy5wb3MgfHwgIXRoaXMuc2VydmVzKSB7XG4gICAgICByZXR1cm4gKG9mKG51bGwpIGFzIE9ic2VydmFibGU8UmVjaXBlUHJpY2luZz4pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5nZXRQcmljaW5nKHRoaXMucmVjaXBlSWQsIHRoaXMucG9zLmlkLCB0aGlzLnByaWNlYm9va0tleS52YWx1ZSwgdGhpcy5zZXJ2ZXMpLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5wcmljZSA9PT0gMCksXG4gICAgICB0YXAoKHJlc3VsdDogUmVjaXBlUHJpY2luZykgPT4ge1xuICAgICAgICB0aGlzLnByaWNpbmcgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuZm9ybWF0KCk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByaWNlU2V0LmVtaXQocmVzdWx0KTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UHJpY2luZyhyZWNpcGVMaW5lOiBCYXNrZXRQcmV2aWV3TGluZSwgZmV0Y2hlZFByaWNlOiBSZWNpcGVQcmljaW5nKTogT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPiB7XG4gICAgdGhpcy5wcmljaW5nID0gbmV3IFJlY2lwZVByaWNpbmcoe1xuICAgICAgcHJpY2U6IHBhcnNlRmxvYXQocmVjaXBlTGluZS5wcmljZSksXG4gICAgICBzZXJ2ZXM6IHJlY2lwZUxpbmUuY291bnQsXG4gICAgICAncHJpY2UtcGVyLXNlcnZlJzogcGFyc2VGbG9hdChyZWNpcGVMaW5lLnByaWNlKSAvIHJlY2lwZUxpbmUuY291bnQsXG4gICAgICAnZGlzY291bnRlZC1pbmdyZWRpZW50cy1jb3VudCc6IGZldGNoZWRQcmljZVsnZGlzY291bnRlZC1pbmdyZWRpZW50cy1jb3VudCddXG4gICAgfSk7XG4gICAgdGhpcy5mb3JtYXQoKTtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnByaWNlU2V0LmVtaXQodGhpcy5wcmljaW5nKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIG9mKHRoaXMucHJpY2luZyk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnByaWNpbmdbJ3ByaWNlLXBlci1zZXJ2ZSddLnRvRml4ZWQoMikudG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuaW50ZWdlclBhcnQgPSB2YWx1ZXNbMF07XG4gICAgdGhpcy5kZWNpbWFsUGFydCA9IHZhbHVlcy5sZW5ndGggPT09IDIgPyB2YWx1ZXNbMV0gOiAnMDAnO1xuICAgIHRoaXMudG90YWwgPSB0aGlzLnByaWNpbmcucHJpY2UudG9GaXhlZCgyKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdcIiAqbmdJZj1cInJlY2lwZUlkPy5sZW5ndGggPiAwXCIgbmdNaWFtU2VsZWN0UG9zQnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fd2l0aC1wb3NcIiAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyX19wcmljZSBtaWFtLWRzLXRleHQgc2l6ZS1sIHdlaWdodC14eGxcIj5cbiAgICAgICAgPHNwYW4+e3sgaW50ZWdlclBhcnQgfX0sPC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBkZWNpbWFsUGFydCB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+IHt7IGN1cnJlbmN5U2VydmljZS5zeW1ib2wgfX0gPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fd3JhcHBlcl9fc3VibGluZSBtaWFtLWRzLXRleHQgc2l6ZS14cyB3ZWlnaHQtbVwiXG4gICAgICAgICpuZ0lmPVwiZ3Vlc3RzVGV4dD8ubGVuZ3RoIGVsc2UgZGVmYXVsdEd1ZXN0c1RleHRcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJndWVzdHNUZXh0ID09PSAncGFyLXBlcnNvbm5lJ1wiIGkxOG4+L3BlcnNvbm5lPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImd1ZXN0c1RleHQgIT09ICdwYXItcGVyc29ubmUnXCI+e3sgZ3Vlc3RzVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R3Vlc3RzVGV4dD5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dyYXBwZXJfX3N1YmxpbmUgbWlhbS1kcy10ZXh0IHNpemUtbSB3ZWlnaHQtbVwiIGkxOG4+L3BlcnMuPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX190b3RhbFwiPlxuICAgICAgPHNwYW4gaTE4bj5Tb2l0PC9zcGFuPlxuICAgICAgPHNwYW4+e3sgdG90YWwgfX08L3NwYW4+XG4gICAgICA8c3Bhbj57eyBjdXJyZW5jeVNlcnZpY2Uuc3ltYm9sIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dpdGhvdXQtcG9zXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0IG1pYW0tc2VsZWN0LXBvcy1idXR0b25fX29wZW4tc3RvcmUtc2VsZWN0b3ItYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5TdG9yZUxvY2F0b3IoJGV2ZW50KVwiPlxuICAgICAgPHNwYW4gaTE4bj5BZmZpY2hlciBsZSBwcml4PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLXByaWNpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtcHJpY2luZy9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1wcmljaW5nL3JlY2lwZS1wcmljaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztJQ1QzRCw0QkFBaUQ7SUFBakQsZ0JBQWlEO0lBQVMsaUJBQU87OztJQUNqRSw0QkFBNEM7SUFBQSxZQUFnQjtJQUFBLGlCQUFPOzs7SUFBdkIsZUFBZ0I7SUFBaEIsdUNBQWdCOzs7SUFIOUQsK0JBQ29EO0lBQ2xELDRGQUFpRTtJQUNqRSw0RkFBbUU7SUFDckUsaUJBQU07OztJQUZHLGVBQW1DO0lBQW5DLDJEQUFt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QUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OzRGQTFMVSxzQkFBc0I7MkRBQXRCLHNCQUFzQjs7Ozs7aUJDSGxCLFVBQUEsaUZBQWdCOzs7Ozs7aUJBUGhCLFVBQUEscUVBQUk7Ozs7OztpQkFSb0MsVUFBQSx5RUFBUzs7Ozs7O2lCQUkyQixVQUFBLHVFQUFNOztRQWRuRyx1RUE0Qk07O1FBNUI0Qiw4RUFBMEI7O3VGRDRCL0Msc0JBQXNCO2NBUGxDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztnQkFDOUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO2tQQUVVLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFFSSxRQUFRO2tCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNrZXRQcmV2aWV3TGluZSwgUG9pbnRPZlNhbGUsIFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlUHJpY2luZyB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlLXByaWNpbmcnO1xuaW1wb3J0IHsgQmFza2V0c1NlcnZpY2UsIFBvaW50T2ZTYWxlc1NlcnZpY2UsIFByaWNlU2VydmljZSwgUmVjaXBlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgQ3VycmVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL2N1cnJlbmN5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1wcmljaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1wcmljaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLXByaWNpbmcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlUHJpY2luZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWNpcGVFeHRJZDogc3RyaW5nO1xuICBASW5wdXQoKSBzZXJ2ZXM6IG51bWJlcjtcbiAgQElucHV0KCkgZ3Vlc3RzVGV4dDtcbiAgQElucHV0KCkgZmV0Y2hQcmljaW5nT25TY3JvbGwgPSB0cnVlO1xuICBASW5wdXQoKSBpblZpZXdwb3J0ID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgcHJpY2VTZXQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwZVByaWNpbmc+KCk7XG5cbiAgcHJpY2luZzogUmVjaXBlUHJpY2luZztcbiAgbG9hZGluZyA9IHRydWU7XG4gIGludGVnZXJQYXJ0OiBzdHJpbmc7XG4gIGRlY2ltYWxQYXJ0OiBzdHJpbmc7XG4gIHRvdGFsOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwb3M6IFBvaW50T2ZTYWxlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgb25DaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZ3Vlc3RzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBpc0luVmlldyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcHJpY2VTZXJ2aWNlOiBQcmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2UsXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHB1YmxpYyBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZSxcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzSW5WaWV3JC5uZXh0KHRoaXMuaW5WaWV3cG9ydCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldCQucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKGIgPT4gIWIpXG4gICAgICApLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5zZXJ2ZXMpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzR3Vlc3RzID0gdGhpcy5ndWVzdHMkLnZhbHVlO1xuICAgICAgdGhpcy5ndWVzdHMkLm5leHQodGhpcy5zZXJ2ZXMpO1xuICAgICAgLy8gVGhlIHByaWNpbmcgb25seSBuZWVkcyB0byB1cGRhdGUgdGhlIGd1ZXN0cyBpZiBjYWxsZWQgc3RhbmRhbG9uZSAtPiB3aXRoIGEgcmVjaXBlRXh0SWQgJiYgcmVjaXBlIHdhcyBmZXRjaGVkICYmIGd1ZXN0cyBoYXZlIGNoYW5nZWRcbiAgICAgIGlmICh0aGlzLnJlY2lwZUV4dElkICYmIHRoaXMucmVjaXBlSWQgJiYgcHJldmlvdXNHdWVzdHMgPiAwICYmIHByZXZpb3VzR3Vlc3RzICE9PSB0aGlzLnNlcnZlcykge1xuICAgICAgICB0aGlzLnVwZGF0ZVJlY2lwZUd1ZXN0cygpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5yZWNpcGVJZCB8fCBjaGFuZ2VzLnJlY2lwZUV4dElkKSB7XG4gICAgICB0aGlzLmluaXRQcmljaW5nKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmluVmlld3BvcnQpIHtcbiAgICAgIHRoaXMuaXNJblZpZXckLm5leHQodGhpcy5pblZpZXdwb3J0KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgaWYgKHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRQcmljaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5pbml0UmVjaXBlRm9yRXh0SWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5yZWNpcGVJZD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5pbml0UHJpY2luZ0Zyb21CYXNrZXRDaGFuZ2VzKCkuc3Vic2NyaWJlKCksXG4gICAgICAgICAgICB0aGlzLmluaXRQcmljaW5nRnJvbUd1ZXN0c0FuZFZpZXdQb3J0KClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBpbml0UmVjaXBlRm9yRXh0SWQoKTogT2JzZXJ2YWJsZTxSZWNpcGU+IHtcbiAgICBpZiAoISh0aGlzLnJlY2lwZUlkPy5sZW5ndGggPiAwKSAmJiB0aGlzLnJlY2lwZUV4dElkPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5zZWFyY2hSZWNpcGVCeUV4dElkKHRoaXMucmVjaXBlRXh0SWQpLnBpcGUoXG4gICAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWNpcGVJZCA9IHJlc3BvbnNlPy5pZCB8fCBudWxsO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZihudWxsIGFzIFJlY2lwZSk7XG4gIH1cblxuICBvcGVuU3RvcmVMb2NhdG9yKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLm9wZW5TdG9yZUxvY2F0b3IoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUmVjaXBlR3Vlc3RzKCk6IHZvaWQge1xuICAgIHRoaXMuYmFza2V0c1NlcnZpY2UudXBkYXRlUmVjaXBlc0luQmFza2V0KFxuICAgICAgW3RoaXMucmVjaXBlSWRdLFxuICAgICAgdGhpcy5ndWVzdHMkLnZhbHVlLFxuICAgICAgeyBvcmlnaW5QYXRoOiAnJywgcHJvcHM6IHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZUlkIH0gfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRQcmljaW5nRnJvbUd1ZXN0c0FuZFZpZXdQb3J0KCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgLy8gSWYgdGhlIHJlY2lwZSBpcyBpbiBiYXNrZXQsIHdlIGlnbm9yZSB0aGUgY2hhbmdlID0+IHByaWNpbmcgd2lsbCBiZSB1cGRhdGVkIHdoZW4gdGhlIG5ldyBiYXNrZXQgcHJldmlldyBpcyByZWFkeVxuICAgIC8vIEFmdGVyIHRoZSBzaGFsbG93IGNvcHkgd2l0aCBldmVudHMgb2YgdGhlIHJlY2lwZSwgbmdPbkNoYW5nZXMgaXMgY2FsbGVkIGFnYWluIGJlY2F1c2UgdGhlIHJlY2lwZSBvYmplY3QgaXMgZGlmZmVyZW50XG4gICAgLy8gU28gaWYgY2hhbmdlcyBjb250YWlucyBvbmx5IGEgcmVjaXBlIGFuZCBubyBzZXJ2ZXMsIHdlIGFsc28gYXZvaWQgcmUtZmV0Y2hpbmdcbiAgICBsZXQgd2FzSW5CYXNrZXRCZWZvcmU6IGJvb2xlYW47XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5wb3NTZXJ2aWNlLndhaXRGb3JQb3MsXG4gICAgICB0aGlzLmlzSW5WaWV3JCxcbiAgICAgIHRoaXMuZ3Vlc3RzJCxcbiAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNJbkJhc2tldCh0aGlzLnJlY2lwZUlkKVxuICAgIF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0cyA9PiAhcmVzdWx0c1sxXSB8fCAhcmVzdWx0c1szXSlcbiAgICApLnN1YnNjcmliZShyZXN1bHRzID0+IHtcbiAgICAgIHRoaXMucG9zID0gcmVzdWx0c1swXTtcbiAgICAgIC8vIGZldGNoIHRoZSBwcmljZSBpZiB0aGUgcmVjaXBlIGlzbid0IGluIHRoZSBiYXNrZXQgYW5kIGlmIGl0IHdhcyBsYXN0IHRpbWUgd2UgY2hlY2sgb3Igb24gc3RhcnR1cFxuICAgICAgaWYgKCFyZXN1bHRzWzNdICYmIHdhc0luQmFza2V0QmVmb3JlICE9PSBmYWxzZSAmJiB0aGlzLmluVmlld3BvcnQpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mZXRjaFByaWNpbmcoKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIHdhc0luQmFza2V0QmVmb3JlID0gcmVzdWx0c1szXTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFByaWNpbmdGcm9tQmFza2V0Q2hhbmdlcygpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnBvc1NlcnZpY2UucG9zJCwgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRQcmV2aWV3JCwgdGhpcy5pc0luVmlldyRcbiAgICBdKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdHMgPT4gIXJlc3VsdHNbMF0gfHwgIXJlc3VsdHNbMV0gfHwgIXJlc3VsdHNbMl0pLFxuICAgICAgc3dpdGNoTWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICB0aGlzLnBvcyA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IHJlY2lwZUxpbmUgPSByZXN1bHRzWzFdLmZpbmQobCA9PiBsLmlzUmVjaXBlICYmIGwuaWQ/LnRvU3RyaW5nKCkgPT09IHRoaXMucmVjaXBlSWQ/LnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAoISFyZWNpcGVMaW5lKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuZ2V0UHJpY2luZyh0aGlzLnJlY2lwZUlkLCB0aGlzLnBvcy5pZCwgdGhpcy5zZXJ2ZXMpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAocHJpY2luZyA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RQcmljaW5nKHJlY2lwZUxpbmUsIHByaWNpbmcpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihudWxsIGFzIFJlY2lwZVByaWNpbmcpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFByaWNpbmcoKTogT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPiB7XG4gICAgaWYgKCF0aGlzLnJlY2lwZUlkIHx8ICF0aGlzLnBvcyB8fCAhdGhpcy5zZXJ2ZXMpIHtcbiAgICAgIHJldHVybiAob2YobnVsbCkgYXMgT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldFByaWNpbmcodGhpcy5yZWNpcGVJZCwgdGhpcy5wb3MuaWQsIHRoaXMuc2VydmVzKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiByZXN1bHQucHJpY2UgPT09IDApLFxuICAgICAgdGFwKChyZXN1bHQ6IFJlY2lwZVByaWNpbmcpID0+IHtcbiAgICAgICAgdGhpcy5wcmljaW5nID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmZvcm1hdCgpO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wcmljZVNldC5lbWl0KHJlc3VsdCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFByaWNpbmcocmVjaXBlTGluZTogQmFza2V0UHJldmlld0xpbmUsIGZldGNoZWRQcmljZTogUmVjaXBlUHJpY2luZyk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZz4ge1xuICAgIHRoaXMucHJpY2luZyA9IG5ldyBSZWNpcGVQcmljaW5nKHtcbiAgICAgIHByaWNlOiBwYXJzZUZsb2F0KHJlY2lwZUxpbmUucHJpY2UpLFxuICAgICAgc2VydmVzOiByZWNpcGVMaW5lLmNvdW50LFxuICAgICAgJ3ByaWNlLXBlci1zZXJ2ZSc6IHBhcnNlRmxvYXQocmVjaXBlTGluZS5wcmljZSkgLyByZWNpcGVMaW5lLmNvdW50LFxuICAgICAgJ2Rpc2NvdW50ZWQtaW5ncmVkaWVudHMtY291bnQnOiBmZXRjaGVkUHJpY2VbJ2Rpc2NvdW50ZWQtaW5ncmVkaWVudHMtY291bnQnXVxuICAgIH0pO1xuICAgIHRoaXMuZm9ybWF0KCk7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5wcmljZVNldC5lbWl0KHRoaXMucHJpY2luZyk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiBvZih0aGlzLnByaWNpbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXQoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5wcmljaW5nWydwcmljZS1wZXItc2VydmUnXS50b0ZpeGVkKDIpLnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgICB0aGlzLmludGVnZXJQYXJ0ID0gdmFsdWVzWzBdO1xuICAgIHRoaXMuZGVjaW1hbFBhcnQgPSB2YWx1ZXMubGVuZ3RoID09PSAyID8gdmFsdWVzWzFdIDogJzAwJztcbiAgICB0aGlzLnRvdGFsID0gdGhpcy5wcmljaW5nLnByaWNlLnRvRml4ZWQoMik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nXCIgKm5nSWY9XCJyZWNpcGVJZD8ubGVuZ3RoID4gMFwiIG5nTWlhbVNlbGVjdFBvc0J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dpdGgtcG9zXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fd3JhcHBlcl9fcHJpY2UgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCI+XG4gICAgICAgIDxzcGFuPnt7IGludGVnZXJQYXJ0IH19LDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgZGVjaW1hbFBhcnQgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPiB7eyBjdXJyZW5jeVNlcnZpY2Uuc3ltYm9sIH19IDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXByaWNpbmdfX3dyYXBwZXJfX3N1YmxpbmUgbWlhbS1kcy10ZXh0IHNpemUteHMgd2VpZ2h0LW1cIlxuICAgICAgICAqbmdJZj1cImd1ZXN0c1RleHQ/Lmxlbmd0aCBlbHNlIGRlZmF1bHRHdWVzdHNUZXh0XCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZ3Vlc3RzVGV4dCA9PT0gJ3Bhci1wZXJzb25uZSdcIiBpMThuPi9wZXJzb25uZTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJndWVzdHNUZXh0ICE9PSAncGFyLXBlcnNvbm5lJ1wiPnt7IGd1ZXN0c1RleHQgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEd1ZXN0c1RleHQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyX19zdWJsaW5lIG1pYW0tZHMtdGV4dCBzaXplLW0gd2VpZ2h0LW1cIiBpMThuPi9wZXJzLjwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fdG90YWxcIj5cbiAgICAgIDxzcGFuIGkxOG4+U29pdDwvc3Bhbj5cbiAgICAgIDxzcGFuPnt7IHRvdGFsIH19PC9zcGFuPlxuICAgICAgPHNwYW4+e3sgY3VycmVuY3lTZXJ2aWNlLnN5bWJvbCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193aXRob3V0LXBvc1wiPlxuICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLWRzLWJ1dHRvbiBnaG9zdCBtaWFtLXNlbGVjdC1wb3MtYnV0dG9uX19vcGVuLXN0b3JlLXNlbGVjdG9yLWJ1dHRvblwiIChjbGljayk9XCJvcGVuU3RvcmVMb2NhdG9yKCRldmVudClcIj5cbiAgICAgIDxzcGFuIGkxOG4+QWZmaWNoZXIgbGUgcHJpeDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '9.2.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const VERSION = '9.2.4'; // TODO: replace by ##VERSION## and update it in the CI/CD
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9lbnZpcm9ubWVudHMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsMERBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnOS4yLjQnOyAvLyBUT0RPOiByZXBsYWNlIGJ5ICMjVkVSU0lPTiMjIGFuZCB1cGRhdGUgaXQgaW4gdGhlIENJL0NEXG4iXX0=
|
package/fesm2015/ng-miam.js
CHANGED
|
@@ -598,8 +598,7 @@ class Basket extends Resource {
|
|
|
598
598
|
completion: { total: 0, found: 0 },
|
|
599
599
|
'recipes-infos': [],
|
|
600
600
|
'total-price': 0,
|
|
601
|
-
token: null
|
|
602
|
-
'pricebook-key': 'DEFAULT' // Will tell api which pricebook to use, will affect how api will get prices for items
|
|
601
|
+
token: null // token exposed only on basket confirmation (PATCH confirmed=true)
|
|
603
602
|
};
|
|
604
603
|
this.relationships = {
|
|
605
604
|
'basket-entries': new DocumentCollection()
|
|
@@ -620,12 +619,6 @@ class Basket extends Resource {
|
|
|
620
619
|
get token() {
|
|
621
620
|
return this.attributes.token;
|
|
622
621
|
}
|
|
623
|
-
get pricebookKey() {
|
|
624
|
-
return this.attributes['pricebook-key'];
|
|
625
|
-
}
|
|
626
|
-
set pricebookKey(key) {
|
|
627
|
-
this.attributes['pricebook-key'] = key;
|
|
628
|
-
}
|
|
629
622
|
hasRecipe(recipeId) {
|
|
630
623
|
var _a;
|
|
631
624
|
return (_a = this.recipeInfos) === null || _a === void 0 ? void 0 : _a.some(info => info.id === recipeId);
|
|
@@ -2067,7 +2060,7 @@ var EventJourney;
|
|
|
2067
2060
|
EventJourney["EMPTY"] = "";
|
|
2068
2061
|
})(EventJourney || (EventJourney = {}));
|
|
2069
2062
|
|
|
2070
|
-
const VERSION = '9.2.
|
|
2063
|
+
const VERSION = '9.2.4'; // TODO: replace by ##VERSION## and update it in the CI/CD
|
|
2071
2064
|
|
|
2072
2065
|
class ContextRegistryService {
|
|
2073
2066
|
constructor() {
|
|
@@ -3962,11 +3955,11 @@ class RecipesService extends Service {
|
|
|
3962
3955
|
return null;
|
|
3963
3956
|
}));
|
|
3964
3957
|
}
|
|
3965
|
-
getPricing(recipeId, posId,
|
|
3958
|
+
getPricing(recipeId, posId, serves = null) {
|
|
3966
3959
|
if (!recipeId) {
|
|
3967
3960
|
return of(null);
|
|
3968
3961
|
}
|
|
3969
|
-
let url = MIAM_API_HOST$2 + `recipes/${recipeId}/pricing?point_of_sale_id=${posId}
|
|
3962
|
+
let url = MIAM_API_HOST$2 + `recipes/${recipeId}/pricing?point_of_sale_id=${posId}`;
|
|
3970
3963
|
if (serves) {
|
|
3971
3964
|
url += `&serves=${serves}`;
|
|
3972
3965
|
}
|
|
@@ -4152,7 +4145,7 @@ StatesService.ɵprov = i0.ɵɵdefineInjectable({ token: StatesService, factory:
|
|
|
4152
4145
|
}], function () { return []; }, null); })();
|
|
4153
4146
|
|
|
4154
4147
|
const BASKET_SPARSE_FIELDS = {
|
|
4155
|
-
baskets: ['total-price', '
|
|
4148
|
+
baskets: ['total-price', 'recipes-infos', 'completion', 'status']
|
|
4156
4149
|
};
|
|
4157
4150
|
class BasketsService extends Service {
|
|
4158
4151
|
constructor(http, basketEntriesService, posService, recipesService, analyticsService, usersService, toasterService, ignoredBasketsService, statesService, priceService) {
|
|
@@ -4533,26 +4526,6 @@ class BasketsService extends Service {
|
|
|
4533
4526
|
return entry;
|
|
4534
4527
|
}));
|
|
4535
4528
|
}
|
|
4536
|
-
/** *********************************************************** PRICEBOOK *********************************************************** **/
|
|
4537
|
-
// will patch basket with given pricebookName
|
|
4538
|
-
// Api will look for prices (pos items) corresponding to this pricebook key
|
|
4539
|
-
// fall case to a default pricebook
|
|
4540
|
-
updatePricebook(pricebookName) {
|
|
4541
|
-
if (!pricebookName) {
|
|
4542
|
-
mealzDebug('[Miam] empty pricebook name');
|
|
4543
|
-
return of(null);
|
|
4544
|
-
}
|
|
4545
|
-
return this.waitForBasket.pipe(switchMap(basket => {
|
|
4546
|
-
if (basket.pricebookKey === pricebookName) {
|
|
4547
|
-
mealzDebug(`[Mealz] same pricebook ${JSON.stringify(pricebookName)}`);
|
|
4548
|
-
return of(null);
|
|
4549
|
-
}
|
|
4550
|
-
mealzDebug(`[Mealz] update pricebook to ${JSON.stringify(pricebookName)}`);
|
|
4551
|
-
const patchUrl = `${environment$1.miamAPI}/api/v1/baskets/update_pricebook?` +
|
|
4552
|
-
`point_of_sale_id=${this.posService.pos$.value.id}&pricebook_key=${pricebookName}`;
|
|
4553
|
-
return this.http.patch(patchUrl, {}).pipe(switchMap((resp) => this.fillBasket(resp)));
|
|
4554
|
-
}));
|
|
4555
|
-
}
|
|
4556
4529
|
/** ******************************************************** ADD FROM PICTURE ******************************************************** **/
|
|
4557
4530
|
/**
|
|
4558
4531
|
* Add entries to basket from a picture or file
|
|
@@ -6331,7 +6304,6 @@ class ContextService {
|
|
|
6331
6304
|
reset: () => {
|
|
6332
6305
|
this.resetBasket();
|
|
6333
6306
|
},
|
|
6334
|
-
updatePricebook: (pricebookName) => this.basketsService.updatePricebook(pricebookName),
|
|
6335
6307
|
recipeCount: () => this.basketsService.waitForBasket.pipe(switchMap(() => this.basketsService.basketStats$), skipWhile(bs => !bs), map(bs => bs.recipesCount), distinctUntilChanged()),
|
|
6336
6308
|
openPreview: (analyticsPath = '') => this.recipesService.openBasket(analyticsPath),
|
|
6337
6309
|
overrideTransferUrl: (url) => {
|
|
@@ -6619,11 +6591,11 @@ class ContextService {
|
|
|
6619
6591
|
recipeLikeUpdated: () => this.recipeLikesService.recipeLikeUpdated$,
|
|
6620
6592
|
guestsUpdated: () => this.guestsChanged,
|
|
6621
6593
|
recipePriceUpdated: () => this.recipePriceChanged,
|
|
6622
|
-
fetchPricing: (recipeId, posId,
|
|
6594
|
+
fetchPricing: (recipeId, posId, serves) => {
|
|
6623
6595
|
if (!recipeId || !posId || !serves) {
|
|
6624
6596
|
return of(null);
|
|
6625
6597
|
}
|
|
6626
|
-
return this.recipesService.getPricing(recipeId, posId,
|
|
6598
|
+
return this.recipesService.getPricing(recipeId, posId, serves).pipe(skipWhile(result => result.price === 0));
|
|
6627
6599
|
}
|
|
6628
6600
|
},
|
|
6629
6601
|
supplier: {
|
|
@@ -8023,7 +7995,7 @@ class ItemsService extends Service {
|
|
|
8023
7995
|
}
|
|
8024
7996
|
getPriceForItem(selectedItemId) {
|
|
8025
7997
|
return this.posService.waitForPos.pipe(take(1), switchMap(pos => {
|
|
8026
|
-
const url = `${environment$1.miamAPI}/api/v1/items/${selectedItemId}/price?
|
|
7998
|
+
const url = `${environment$1.miamAPI}/api/v1/items/${selectedItemId}/price?point_of_sale_id=${pos.id}`;
|
|
8027
7999
|
return this.http.get(url);
|
|
8028
8000
|
}), map((price) => ({
|
|
8029
8001
|
unit: price.price,
|
|
@@ -10634,18 +10606,13 @@ class RecipePricingComponent {
|
|
|
10634
10606
|
this.inViewport = true;
|
|
10635
10607
|
this.priceSet = new EventEmitter();
|
|
10636
10608
|
this.loading = true;
|
|
10637
|
-
this.pricebookKey = new BehaviorSubject('');
|
|
10638
10609
|
this.subscriptions = [];
|
|
10639
10610
|
this.guests$ = new BehaviorSubject(0);
|
|
10640
10611
|
this.isInView$ = new BehaviorSubject(false);
|
|
10641
10612
|
}
|
|
10642
10613
|
ngOnInit() {
|
|
10643
10614
|
this.isInView$.next(this.inViewport);
|
|
10644
|
-
this.subscriptions.push(this.basketsService.basket$.pipe(skipWhile(b => !b)).subscribe(
|
|
10645
|
-
if (b.pricebookKey !== this.pricebookKey.value) {
|
|
10646
|
-
this.pricebookKey.next(b.pricebookKey);
|
|
10647
|
-
}
|
|
10648
|
-
}));
|
|
10615
|
+
this.subscriptions.push(this.basketsService.basket$.pipe(skipWhile(b => !b)).subscribe());
|
|
10649
10616
|
}
|
|
10650
10617
|
ngOnChanges(changes) {
|
|
10651
10618
|
if (changes.serves) {
|
|
@@ -10703,12 +10670,11 @@ class RecipePricingComponent {
|
|
|
10703
10670
|
this.posService.waitForPos,
|
|
10704
10671
|
this.isInView$,
|
|
10705
10672
|
this.guests$,
|
|
10706
|
-
this.pricebookKey,
|
|
10707
10673
|
this.basketsService.recipeIsInBasket(this.recipeId)
|
|
10708
10674
|
]).pipe(skipWhile(results => !results[1] || !results[3])).subscribe(results => {
|
|
10709
10675
|
this.pos = results[0];
|
|
10710
10676
|
// fetch the price if the recipe isn't in the basket and if it was last time we check or on startup
|
|
10711
|
-
if (!results[
|
|
10677
|
+
if (!results[3] && wasInBasketBefore !== false && this.inViewport) {
|
|
10712
10678
|
this.loading = true;
|
|
10713
10679
|
this.cdr.detectChanges();
|
|
10714
10680
|
if (this.onChangesSubscription) {
|
|
@@ -10716,7 +10682,7 @@ class RecipePricingComponent {
|
|
|
10716
10682
|
}
|
|
10717
10683
|
this.onChangesSubscription = this.fetchPricing().subscribe();
|
|
10718
10684
|
}
|
|
10719
|
-
wasInBasketBefore = results[
|
|
10685
|
+
wasInBasketBefore = results[3];
|
|
10720
10686
|
});
|
|
10721
10687
|
}
|
|
10722
10688
|
initPricingFromBasketChanges() {
|
|
@@ -10726,7 +10692,7 @@ class RecipePricingComponent {
|
|
|
10726
10692
|
this.pos = results[0];
|
|
10727
10693
|
const recipeLine = results[1].find(l => { var _a, _b; return l.isRecipe && ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = this.recipeId) === null || _b === void 0 ? void 0 : _b.toString()); });
|
|
10728
10694
|
if (!!recipeLine) {
|
|
10729
|
-
return this.recipesService.getPricing(this.recipeId, this.pos.id, this.
|
|
10695
|
+
return this.recipesService.getPricing(this.recipeId, this.pos.id, this.serves).pipe(switchMap(pricing => {
|
|
10730
10696
|
return this.extractPricing(recipeLine, pricing);
|
|
10731
10697
|
}));
|
|
10732
10698
|
}
|
|
@@ -10737,7 +10703,7 @@ class RecipePricingComponent {
|
|
|
10737
10703
|
if (!this.recipeId || !this.pos || !this.serves) {
|
|
10738
10704
|
return of(null);
|
|
10739
10705
|
}
|
|
10740
|
-
return this.recipesService.getPricing(this.recipeId, this.pos.id, this.
|
|
10706
|
+
return this.recipesService.getPricing(this.recipeId, this.pos.id, this.serves).pipe(skipWhile(result => result.price === 0), tap((result) => {
|
|
10741
10707
|
this.pricing = result;
|
|
10742
10708
|
this.format();
|
|
10743
10709
|
this.loading = false;
|
|
@@ -17522,7 +17488,8 @@ function RecipeCardComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
17522
17488
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
17523
17489
|
i0.ɵɵproperty("threshold", 0)("debounceTime", 0);
|
|
17524
17490
|
i0.ɵɵadvance(3);
|
|
17525
|
-
i0.ɵɵproperty("src", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl)
|
|
17491
|
+
i0.ɵɵproperty("src", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
|
|
17492
|
+
i0.ɵɵattribute("aria-hidden", true);
|
|
17526
17493
|
i0.ɵɵadvance(4);
|
|
17527
17494
|
i0.ɵɵproperty("ngIf", !(ctx_r0.displayBadge && ctx_r0.recipe.sponsorLogoUrl));
|
|
17528
17495
|
i0.ɵɵadvance(1);
|
|
@@ -17827,7 +17794,7 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
|
|
|
17827
17794
|
}
|
|
17828
17795
|
else {
|
|
17829
17796
|
i18n_6 = $localize `:␟f51693cf087a834d433fa3835d7b64905fdc57ee␟9008711340501624723:Découvrez nos recettes`;
|
|
17830
|
-
} return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-card_sponso_and_promo_badge", 4, "ngIf"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card_sponso_and_promo_badge"], [4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "
|
|
17797
|
+
} return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-card_sponso_and_promo_badge", 4, "ngIf"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card_sponso_and_promo_badge"], [4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 4, "ngIf"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 4, "ngIf"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 1, "miam-recipe-card__badge"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 1, "miam-recipe-card__badge"], [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], ["aria-hidden", "true", 3, "src", "alt", "error"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__difficulty-and-time"], ["class", "miam-recipe-card__difficulty", 4, "ngIf"], ["class", "miam-recipe-card__time", 4, "ngIf"], [1, "miam-recipe-card__difficulty"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/ChefHat.svg", "alt", "", "aria-hidden", "true"], [1, "miam-ds-text", "size-s", "weight-m"], [1, "miam-recipe-card__time"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Clock.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom-promotion"], [1, "miam-recipe-card__price"], [1, "miam-ds-text", "weight-xxl", 3, "recipeId", "serves", "inViewport", "priceSet"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked"], [1, "miam-recipe-card__actions__replace"], [1, "miam-ds-button", "ghost", 3, "click"], i18n_0, ["aria-label", "Supprimer la recette", 1, "miam-ds-button", "ghost", "square", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "iconName"], i18n_2, [1, "miam-recipe-card__redirect", 3, "href"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/Suggestion_Redirect_Background.png", "alt", "D\u00E9couvrez nos recettes"], [1, "miam-recipe-card__redirect__footer"], [1, "miam-recipe-card__redirect__title", "miam-ds-text", "size-l", "weight-xxl"], i18n_4, [1, "miam-recipe-card__redirect__button", "miam-ds-button", "primary"], i18n_6]; }, template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
17831
17798
|
i0.ɵɵelementStart(0, "div", 0);
|
|
17832
17799
|
i0.ɵɵlistener("inViewport", function RecipeCardComponent_Template_div_inViewport_0_listener() { return ctx.sendShowEvent(); });
|
|
17833
17800
|
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_Template, 32, 20, "div", 1);
|
|
@@ -18836,7 +18803,7 @@ CatalogListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogListComponent
|
|
|
18836
18803
|
}
|
|
18837
18804
|
else {
|
|
18838
18805
|
i18n_11 = $localize `:␟834498e5698b366d53cba7a7f98b06a12967862c␟1875448131572248295: Chargement des résultats... `;
|
|
18839
|
-
} return [[1, "miam-catalog-list"], ["class", "miam-catalog-list__notFound", 4, "ngIf"], ["class", "miam-catalog-list__loader", 4, "ngIf"], [1, "miam-catalog-list__cards"], ["recipeCard", ""], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-list__notFound"], [1, "miam-catalog-list__notFound__icon", 3, "width", "height", "iconName", "ngClass"], [4, "ngIf", "ngIfElse"], ["notFiltering", ""], ["notLogged", ""], [1, "miam-catalog-list__notFound__title1", "filtering"], i18n_0, [4, "ngIf"], [1, "miam-catalog-list__notFound__title2"], i18n_2, i18n_4, [1, "miam-catalog-list__notFound__title1", "not-filtering"], i18n_6, [1, "miam-catalog-list__notFound__title1", "not-logged"], i18n_8, [1, "miam-catalog-list__loader"], i18n_11, [3, "recipe", "originTrace", "displayPricing", "previewAllowed", "addRecipeMode", "displayGuests", "displayVariant", "helpButtonAllowed", "addToMealsPlanner"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["ngMiamLoadOnScroll", "", "marginRoot", "600px", 3, "isLoading", "loadMore"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "article"]]; }, template: function CatalogListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
18806
|
+
} return [[1, "miam-catalog-list"], ["class", "miam-catalog-list__notFound", 4, "ngIf"], ["class", "miam-catalog-list__loader", 4, "ngIf"], ["role", "list", 1, "miam-catalog-list__cards"], ["recipeCard", ""], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-list__notFound"], [1, "miam-catalog-list__notFound__icon", 3, "width", "height", "iconName", "ngClass"], [4, "ngIf", "ngIfElse"], ["notFiltering", ""], ["notLogged", ""], [1, "miam-catalog-list__notFound__title1", "filtering"], i18n_0, [4, "ngIf"], [1, "miam-catalog-list__notFound__title2"], i18n_2, i18n_4, [1, "miam-catalog-list__notFound__title1", "not-filtering"], i18n_6, [1, "miam-catalog-list__notFound__title1", "not-logged"], i18n_8, [1, "miam-catalog-list__loader"], i18n_11, ["role", "listitem", 3, "recipe", "originTrace", "displayPricing", "previewAllowed", "addRecipeMode", "displayGuests", "displayVariant", "helpButtonAllowed", "addToMealsPlanner"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["ngMiamLoadOnScroll", "", "marginRoot", "600px", 3, "isLoading", "loadMore"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "article"]]; }, template: function CatalogListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
18840
18807
|
i0.ɵɵelementStart(0, "div", 0);
|
|
18841
18808
|
i0.ɵɵtemplate(1, CatalogListComponent_div_1_Template, 7, 9, "div", 1);
|
|
18842
18809
|
i0.ɵɵpipe(2, "async");
|
|
@@ -19477,7 +19444,6 @@ class MealsPlannerComponent extends EventTracerComponent {
|
|
|
19477
19444
|
initRecipesPricing() {
|
|
19478
19445
|
return combineLatest([this.posService.waitForPos, this.basketsService.basket$]).pipe(skipWhile(result => !result[1])).subscribe(result => {
|
|
19479
19446
|
this.pos = result[0];
|
|
19480
|
-
this.pricebookKey = result[1].pricebookKey;
|
|
19481
19447
|
});
|
|
19482
19448
|
}
|
|
19483
19449
|
fetchRecipesPricing() {
|
|
@@ -19488,7 +19454,7 @@ class MealsPlannerComponent extends EventTracerComponent {
|
|
|
19488
19454
|
this.budgettedRecipesPrices = {};
|
|
19489
19455
|
this.budgettedRecipes.forEach(recipe => {
|
|
19490
19456
|
if (recipe) {
|
|
19491
|
-
requests.push(this.recipesService.getPricing(recipe.id, this.pos.id, this.
|
|
19457
|
+
requests.push(this.recipesService.getPricing(recipe.id, this.pos.id, this.form.value.guestsCount).pipe(skipWhile(result => !(result === null || result === void 0 ? void 0 : result.price)), tap(pricing => this.budgettedRecipesPrices[recipe.id] = pricing.price)));
|
|
19492
19458
|
}
|
|
19493
19459
|
});
|
|
19494
19460
|
return requests.length > 0 ? forkJoin(requests) : of([]);
|
|
@@ -19799,7 +19765,7 @@ CatalogCategoryComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogCategoryC
|
|
|
19799
19765
|
}
|
|
19800
19766
|
else {
|
|
19801
19767
|
i18n_4 = $localize `:␟8f2c8f66fed7cbda7649b4ba2320375ff7526dbb␟5011068305185462335: Chargement des résultats... `;
|
|
19802
|
-
} return [["class", "miam-catalog-category", "ngMiamInViewport", "", 3, "condition", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-catalog-category", 3, "condition", "inViewport"], [1, "miam-catalog-category__header"], ["role", "heading", "aria-level", "2", 1, "miam-catalog-category__title", 3, "click"], [1, "miam-catalog-category__header__bottom"], [1, "miam-catalog-category__subtitle", "miam-ds-text", "size-s", "weight-l"], [1, "miam-catalog-category__link", "miam-ds-text", "size-s", "weight-xl", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-catalog-category__content"], ["categoryContent", ""], [1, "miam-catalog-category__cards"], ["categoryCards", ""], ["class", "miam-catalog-category__loader", 4, "ngIf"], [3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-category__loader"], i18n_4, [3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace"], [3, "article"]]; }, template: function CatalogCategoryComponent_Template(rf, ctx) { if (rf & 1) {
|
|
19768
|
+
} return [["class", "miam-catalog-category", "ngMiamInViewport", "", 3, "condition", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-catalog-category", 3, "condition", "inViewport"], [1, "miam-catalog-category__header"], ["role", "heading", "aria-level", "2", 1, "miam-catalog-category__title", 3, "click"], [1, "miam-catalog-category__header__bottom"], [1, "miam-catalog-category__subtitle", "miam-ds-text", "size-s", "weight-l"], [1, "miam-catalog-category__link", "miam-ds-text", "size-s", "weight-xl", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-catalog-category__content"], ["categoryContent", ""], ["role", "list", 1, "miam-catalog-category__cards"], ["categoryCards", ""], ["class", "miam-catalog-category__loader", 4, "ngIf"], ["role", "listitem", 3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-category__loader"], i18n_4, ["role", "listitem", 3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace"], [3, "article"]]; }, template: function CatalogCategoryComponent_Template(rf, ctx) { if (rf & 1) {
|
|
19803
19769
|
i0.ɵɵtemplate(0, CatalogCategoryComponent_div_0_Template, 19, 10, "div", 0);
|
|
19804
19770
|
} if (rf & 2) {
|
|
19805
19771
|
i0.ɵɵproperty("ngIf", !ctx.hide);
|
|
@@ -22773,7 +22739,7 @@ function RecipeDetailsComponent_div_0_div_2_img_13_Template(rf, ctx) { if (rf &
|
|
|
22773
22739
|
} if (rf & 2) {
|
|
22774
22740
|
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
22775
22741
|
i0.ɵɵproperty("src", ctx_r8.recipeDetailsService.recipe == null ? null : ctx_r8.recipeDetailsService.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
|
|
22776
|
-
i0.ɵɵattribute("
|
|
22742
|
+
i0.ɵɵattribute("aria-hidden", true);
|
|
22777
22743
|
} }
|
|
22778
22744
|
function RecipeDetailsComponent_div_0_div_2_youtube_player_14_Template(rf, ctx) { if (rf & 1) {
|
|
22779
22745
|
i0.ɵɵelement(0, "youtube-player", 41);
|