PageSourceSearch

https://toi-euskirchen.de/main-es2015.js

js toi-euskirchen.de collected 2026-10-02 01:52:21 UTC 851,068 bytes, 10,311 lines download raw bytes

1(self["webpackChunkgastro"] = self["webpackChunkgastro"] || []).push([["main"],{
2
3/***/ 98255:
4/*!*******************************************************!*\
5  !*** ./$_lazy_route_resources/ lazy namespace object ***!
6  \*******************************************************/
7/***/ (function(module) {
8
9function webpackEmptyAsyncContext(req) {
10	// Here Promise.resolve().then() is used instead of new Promise() to prevent
11	// uncaught exception popping up in devtools
12	return Promise.resolve().then(function() {
13		var e = new Error("Cannot find module '" + req + "'");
14		e.code = 'MODULE_NOT_FOUND';
15		throw e;
16	});
17}
18webpackEmptyAsyncContext.keys = function() { return []; };
19webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
20webpackEmptyAsyncContext.id = 98255;
21module.exports = webpackEmptyAsyncContext;
22
23/***/ }),
24
25/***/ 95670:
26/*!********************************************!*\
27  !*** ./src/app/api/app-service.service.ts ***!
28  \********************************************/
29/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
30
31"use strict";
32__webpack_require__.r(__webpack_exports__);
33/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34/* harmony export */   "AppServiceService": function() { return /* binding */ AppServiceService; }
35/* harmony export */ });
36/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! tslib */ 64762);
37/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/core */ 37716);
38/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/router */ 39895);
39/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @ngx-translate/core */ 29790);
40/* harmony import */ var _core_storage_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/storage.service */ 66498);
41/* harmony import */ var _ionic_native_geolocation_ngx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ionic-native/geolocation/ngx */ 87152);
42/* harmony import */ var _core_request_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/request.service */ 25094);
43/* harmony import */ var _ionic_native_onesignal_ngx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic-native/onesignal/ngx */ 61779);
44/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @ionic/angular */ 80476);
45/* harmony import */ var _ionic_native_globalization_ngx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic-native/globalization/ngx */ 25145);
46/* harmony import */ var _views_modals_popup_popup_page__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../views/modals/popup/popup.page */ 79979);
47/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! src/environments/environment */ 92340);
48/* harmony import */ var _ionic_native_in_app_browser_ngx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ionic-native/in-app-browser/ngx */ 53760);
49/* harmony import */ var _views_modals_toppings_toppings_page__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../views/modals/toppings/toppings.page */ 85300);
50/* harmony import */ var _views_modals_cart_cart_page__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../views/modals/cart/cart.page */ 728);
51/* harmony import */ var _views_modals_cross_selling_cross_selling_page__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../views/modals/cross-selling/cross-selling.page */ 45577);
52/* harmony import */ var _views_modals_alert_alert_page__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../views/modals/alert/alert.page */ 60307);
53/* harmony import */ var _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../views/web-views/shared/modal-popover/modal-popover.page */ 65524);
54/* harmony import */ var _views_web_views_shared_constatnts_json__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../views/web-views/shared/constatnts.json */ 20991);
55/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ 79765);
56/* harmony import */ var _views_modals_select_order_type_select_order_type_page__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../views/modals/select-order-type/select-order-type.page */ 84640);
57/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/platform-browser */ 39075);
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80let AppServiceService = class AppServiceService {
81    constructor(storage, translate, router, geolocation, requestService, oneSignal, platform, globalization, modalController, iab, menu, navController, toastController, zone, titleService, route) {
82        this.storage = storage;
83        this.translate = translate;
84        this.router = router;
85        this.geolocation = geolocation;
86        this.requestService = requestService;
87        this.oneSignal = oneSignal;
88        this.platform = platform;
89        this.globalization = globalization;
90        this.modalController = modalController;
91        this.iab = iab;
92        this.menu = menu;
93        this.navController = navController;
94        this.toastController = toastController;
95        this.zone = zone;
96        this.titleService = titleService;
97        this.route = route;
98        this.POPOVER_TYPES = _views_web_views_shared_constatnts_json__WEBPACK_IMPORTED_MODULE_13__.POPOVER_TYPES;
99        //App Object
100        this.animationDrop = false;
101        this.className = '';
102        this.className2 = '';
103        this.AddNsUB = [];
104        this.alagic_list = [];
105        this.STORAGE_KEYS = {
106            PAGES_KEY: "APP_PAGES"
107        };
108        this.currentLang = 'en';
109        this.cartIsOpen = false;
110        this.editing_cart_item = null;
111        this.routeToRestaurantList = false;
112        this.activeMenu = null;
113        this.menuList = [];
114        this.dishList = [];
115        this.hideCartButton = true;
116        this.selectedDish = {
117            total: 0,
118            toping_total: 0,
119            size_index: null,
120            size_id: null,
121            selectedTopings: [],
122            fullDishInfo: []
123        };
124        this.isSideMenu = false;
125        this.isFooterMenu = false;
126        this.closenotice = false;
127        this.isPreOrderAccept = false;
128        this.close_note_toggle = true;
129        this.appObject = {
130            appVersion: '0.1',
131            isFirstTime: true,
132            isAuthed: false,
133            platformIsReady: false,
134            viewPlatform: '',
135            isLoading: true,
136            currentLang: '',
137            isAddressHave: false,
138            isOrderProcess: false,
139            sideMenuPages: [],
140            FooterCouponLink: null,
141            myAddress: {
142                name: '',
143                lat: '',
144                lng: ''
145            },
146            oneSignalConfig: {
147                key: '',
148                fireid: ''
149            },
150            deviceUUID: '',
151            userId: '',
152            user: {
153                type: 'guest',
154                fname: '',
155                lname: '',
156                email: '',
157                telephone: '',
158                backyard: '',
159                instructions: ''
160            },
161            baseUrl: '',
162            promotions: [],
163            new_promotions: [],
164            settings: [],
165            errors: [],
166            restaurants: [],
167            langList: [],
168            selectedRestaurant: null,
169            selectedRestaurantDetails: [],
170            isPointsEnable: false,
171            selectedRestaurantId: null,
172            selectedDeliveryMethod: 'pickup',
173            selectedCoupon: [],
174            orderObjectDup: {
175                cart: []
176            },
177            orderObject: {
178                cart: [],
179                discounts: [],
180                order_tax: [],
181                delivery_tax: [],
182                cart_summery: {
183                    total_tax_inclusive: 0,
184                    total_tax_exclusive: 0,
185                    net_total_without_tax: 0,
186                    net_total: 0,
187                    total_discount: 0,
188                    total_with_discount_price: 0,
189                    delivery_cost: 0,
190                    gross_total: 0,
191                    min_reached: false,
192                    min_amount: 0,
193                    remarks: '',
194                    total_dish_count: 0
195                },
196                order_details: {
197                    delivery_type: '',
198                    delivery_date: 'asap',
199                    delivery_time: 'asap',
200                    delivery_address: {
201                        name: '',
202                        lat: '',
203                        lng: ''
204                    },
205                    payment_type: '',
206                    name: '',
207                    email: '',
208                    mobile_number: '',
209                    backyard: '',
210                    special_note: ''
211                },
212                resturent_id: "",
213                device_id: "",
214                device_type: "",
215                lang: ""
216            },
217            theme: this.getDefaultThemeColors(),
218            couponWeb: '',
219            couponWebAdded: false
220        };
221        this.email_content = true;
222        this.code_content = false;
223        this.repeatpass_content = false;
224        this.isWebVersion = false;
225        this.addToCartSuccessfulyCallBack = new rxjs__WEBPACK_IMPORTED_MODULE_15__.Subject();
226        this.settingsLoadedCallBack = new rxjs__WEBPACK_IMPORTED_MODULE_15__.Subject();
227        this.isSettingsLoaded = false;
228        this.availableDeliveryMethods = [];
229        this.selectedNotification = null;
230        this.dishFetchTimeoutList = [];
231        this.doNotFetchMain = false;
232        this.discountListWeb = [];
233        this.registrationServerError = false;
234        this.themeConfigFor = 'app';
235        this.isThemeObjectLoaded = false;
236        this.themeOb = this.getDefaultThemeColors();
237        /**
238         * in mobile app display location to change favourite restaurant
239         */
240        this.tourModeOn = false;
241        /**
242         * keep selected restaurant categories for calculate category taxes later
243         */
244        this.selectedRestaurantCategories = {
245            restaurantId: null,
246            categories: []
247        };
248        /**
249         * New validation added before placing order
250         * will check wether selected menu categories are available
251         * for the selected time slots by user
252         * so if there are any unavailable categories they will be on below array object
253         */
254        this.menusNotAvailable = [];
255        this.tempDeliveryDate = '';
256        this.tempDeliveryTime = '';
257        // This will use to highlight cart items that arn't available for
258        // customer selected date and time in checkout page
259        this.unavailableDishes = [];
260        this.tourModeOnDeliveryPriceWeb = false;
261        // this implemented with vacation mode
262        this.isSelectedRestaurantOnVacation = false;
263        // vacation mode text to display on app
264        this.vacationModeText = '';
265        // vacation mode is on msg in mobile view close btn action  
266        this.vacationModeMsgToggle = true;
267    }
268    //START INIT
269    appInit() {
270        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
271            this.appObject.isLoading = true;
272            //get App Object from storage if available else set object
273            let appObject = yield this.storage.get('appObject');
274            if (appObject && appObject.theme) {
275                this.themeOb = appObject.theme;
276            }
277            //if app version is different force init
278            this.appObject.deviceUUID = config.did;
279            this.appObject.currentLang = src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.DEFAULT_LANG;
280            if (appObject && appObject.appVersion == src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.APP_VERSION) {
281                this.appObject = appObject;
282                this.appObject.platformIsReady = false;
283                this.appObject.isLoading = true;
284                this.appObject.errors = [];
285            }
286            else {
287                this.appObject.appVersion = src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.APP_VERSION;
288                this.appObject.baseUrl = src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.BASE_URL;
289            }
290            if (!this.appObject.theme.app || !this.appObject.theme.web)
291                this.appObject.theme = this.getDefaultThemeColors();
292            this.isWebVersion ? this.themeConfigFor = 'web' : '';
293            this.isThemeObjectLoaded = true;
294            //register device in server
295            yield this.deviceRegister();
296            //set language
297            yield this.getLanguages();
298            yield this.setDefaultLanguage();
299            //get google key
300            yield this.getGoogleKey();
301            //get one signal key
302            //await this.getOneSignalKey();
303            //init one signal
304            //await this.initOneSignal();
305            //settigns
306            yield this.getSettings();
307            this.appObject.platformIsReady = true;
308            this.appObject.isLoading = false;
309            //set global to ready
310            config.platformReady = true;
311            //clear cart for now
312            //this.appObject.orderObject.cart = [];
313            //this.appObject.orderObjectDup.cart = [];
314            if (!appObject) {
315                yield this.updateAppObject();
316                //should route to getting started
317                //this.navController.navigateRoot(['/getting-started'], { replaceUrl: true });
318            }
319        });
320    }
321    /**
322     * This function for set default language as device language, function will map default language with
323     * our avaiable language if user doesn't set manually in first time
324    */
325    setDefaultLanguage() {
326        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
327            if (this.appObject.currentLang != '') {
328                this.translate.setDefaultLang(this.appObject.currentLang);
329                this.translate.use(this.appObject.currentLang);
330            }
331            else {
332                if ((this.platform.is('android') || this.platform.is('ios')) && !this.isMobileWeb()) {
333                    this.appObject.currentLang = src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.DEFAULT_LANG;
334                    let DeviceLang = yield this.globalization.getPreferredLanguage();
335                    var patde = new RegExp("de");
336                    var patsi = new RegExp("si");
337                    if (this.appObject.langList.length > 0) {
338                        for (let i = 0; i < this.appObject.langList.length; i++) {
339                            let pat = new RegExp(this.appObject.langList[i]['code']);
340                            if (pat.test(DeviceLang.value)) {
341                                this.appObject.currentLang = this.appObject.langList[i]['code'];
342                            }
343                        }
344                    }
345                    this.translate.setDefaultLang(this.appObject.currentLang);
346                    this.translate.use(this.appObject.currentLang);
347                }
348                else {
349                    this.translate.setDefaultLang(src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.DEFAULT_LANG);
350                    this.translate.use(src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.DEFAULT_LANG);
351                    this.appObject.currentLang = src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.DEFAULT_LANG;
352                }
353            }
354        });
355    }
356    /***
357     * Device register in server, this device id required for every api calls in future
358    */
359    deviceRegister(force = false) {
360        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
361            let currentid = yield this.storage.get('DEVICEUUID');
362            // this.showAlert('error','DEVICEUUID' ,(currentid + ' | ' + this.appObject.deviceUUID),false)
363            if (force) {
364                if (currentid == this.appObject.deviceUUID) {
365                    return false;
366                }
367                else {
368                    yield this.storage.set('DEVICEUUID', this.appObject.deviceUUID);
369                }
370            }
371            if (!this.appObject.userId || force)
372                // this.showAlert('error','old user id | ' + force + '  | ' ,this.appObject.userId,false)
373                return yield this.requestService.post('register', {
374                    'device_id': this.appObject.deviceUUID,
375                    'lang': this.appObject.currentLang,
376                    'type': this.appObject.user.type
377                }).then(data => {
378                    if (data.status) {
379                        this.appObject.userId = data.data.id;
380                        this.gettingStarted();
381                    }
382                }, error => {
383                    this.appObject.isLoading = false;
384                });
385        });
386    }
387    /**
388     * Get google key from server side
389    */
390    getGoogleKey() {
391        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
392            return yield this.requestService.post('google/map-key?device_type=' + config.plf, []).then(data => {
393                if (data.status) {
394                    config.gkey = data.key;
395                }
396            }, error => {
397                this.appObject.isLoading = false;
398            });
399        });
400    }
401    /**
402     * Get one signal key from server before initialize push notifications
403    */
404    getOneSignalKey() {
405        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
406            return yield this.requestService.post('onesignal/key?device_type=' + config.plf, []).then(data => {
407                if (data.status) {
408                    //set one signal id for web to init
409                    config.osid = data.onesignal_key;
410                    this.appObject.oneSignalConfig.key = data.onesignal_key;
411                    this.appObject.oneSignalConfig.fireid = data.firebase_id;
412                }
413            }, error => {
414                this.appObject.isLoading = false;
415            });
416        });
417    }
418    /**
419     *Initialize one signal push notifications
420    */
421    initOneSignal() {
422        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
423            if (this.platform.is('android') || this.platform.is('ios')) {
424                window["plugins"].oneSignal.startInit(this.appObject.oneSignalConfig.key, this.appObject.oneSignalConfig.fireid);
425                window["plugins"].oneSignal.inFocusDisplaying(window["plugins"].oneSignal.OSInFocusDisplayOption.InAppAlert);
426                window["plugins"].oneSignal.handleNotificationReceived().subscribe(() => {
427                    // do something when notification is received
428                });
429                window["plugins"].oneSignal.handleNotificationOpened().subscribe(() => {
430                    // do something when a notification is opened
431                });
432                window["plugins"].oneSignal.endInit();
433                window["plugins"].oneSignal.getIds().then(identity => {
434                    this.appObject.deviceUUID = identity.userId;
435                    //call device registration again to store device id which from one signal
436                    this.deviceRegister();
437                    this.updateAppObject();
438                });
439            }
440        });
441    }
442    /**
443     * Update app object to store appObject
444    */
445    updateAppObject() {
446        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
447            return yield this.storage.set('appObject', this.appObject);
448        });
449    }
450    //END INIT
451    /**
452     * Getting started update
453    */
454    gettingStarted() {
455        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
456            this.appObject.isFirstTime = false;
457            yield this.updateAppObject();
458            this.router.navigateByUrl('home');
459        });
460    }
461    /**
462   * Init google map
463  */
464    initGoogle(googleaddress) {
465        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
466            try {
467                var options = {
468                    componentRestrictions: { country: src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.GOOGLE_COUNTRIES }
469                };
470                this.googleAutocomplete = new google.maps.places.Autocomplete(yield googleaddress.getInputElement(), options);
471                this.googleAutocomplete.addListener('place_changed', () => {
472                    var place = this.googleAutocomplete.getPlace();
473                    let addressIsValid = [];
474                    let address = '';
475                    //for testing only
476                    //addressIsValid['street_number'] = true;
477                    //addressIsValid['route'] = true;
478                    //addressIsValid['postal_code'] = true;
479                    //addressIsValid['postal_code'] = true;
480                    //should remove in production
481                    if (place.address_components) {
482                        addressIsValid = this.validateAddressComponents(place.address_components);
483                        // place.address_components.forEach(part => {
484                        //   // console.log(part);
485                        //   if (part.types[0]) {
486                        //     if (part.types[0] === "street_number") {
487                        //       addressIsValid['street_number'] = true;
488                        //     }
489                        //     if (part.types[0] === "route") {
490                        //       addressIsValid['route'] = true;
491                        //     }
492                        //     if (part.types[0] === "postal_code") {
493                        //       addressIsValid['postal_code'] = true;
494                        //     }
495                        //     if (part.types[0] === "locality" || (part.types[1] && part.types[1] === "political")) {
496                        //       addressIsValid['locality'] = true;
497                        //     }
498                        //   }
499                        // });
500                    }
501                    // console.log(place, addressIsValid);
502                    this.zone.run(() => {
503                        if (this.isAddressComponentValid(addressIsValid)) {
504                            this.appObject.isAddressHave = true;
505                            // let address_splited = place.formatted_address.split(',');
506                            // address = place.formatted_address;
507                            // let country = address_splited[address_splited.length - 1];
508                            var changed = false;
509                            // if (country.trim() === 'Germany') {
510                            //   address = address.replace(", Germany", "");
511                            // }
512                            let streetNumber = '';
513                            if (addressIsValid['street_number'] === true) {
514                                let streetNumberComponent = place.address_components.find((component) => component.types[0] && component.types[0] === 'street_number');
515                                if (streetNumberComponent)
516                                    streetNumber = streetNumberComponent.short_name ? streetNumberComponent.short_name.trim() : '';
517                            }
518                            this.appObject.myAddress.streetNo = streetNumber;
519                            // this.appObject.myAddress.name = address;
520                            let generatedAddress = this.genarateAddressFromAddressComponents(place.address_components);
521                            this.appObject.myAddress.name = generatedAddress;
522                            // console.log(this.appObject.myAddress.name);
523                            this.appObject.myAddress.lat = place.geometry.location.lat();
524                            this.appObject.myAddress.lng = place.geometry.location.lng();
525                            this.updateAppObject();
526                            this.appObject.errors = [];
527                        }
528                        else {
529                            //address not valid
530                            this.appObject.isAddressHave = false;
531                            this.appObject.myAddress.name = '';
532                            this.appObject.myAddress.lat = '';
533                            this.appObject.myAddress.lng = '';
534                            this.appObject.myAddress.streetNo = '';
535                            this.updateAppObject();
536                            this.appObject.errors['address'] = ['address_is_not_valid'];
537                            // console.log(this.appObject);
538                        }
539                    });
540                });
541            }
542            catch (error) {
543                setTimeout(() => {
544                    this.initGoogle(googleaddress);
545                }, 1000);
546            }
547        });
548    }
549    /**
550     * Generate address from google address component list
551     * @param addressComponents google address component list
552     * @returns
553     */
554    genarateAddressFromAddressComponents(addressComponents) {
555        let address = '';
556        let routeComponent = addressComponents.find((component) => component.types.length && component.types.includes('route'));
557        if (routeComponent)
558            address += routeComponent.short_name + ', ';
559        let streetNumberComponent = addressComponents.find((component) => component.types.length && component.types.includes('street_number'));
560        if (streetNumberComponent)
561            address += streetNumberComponent.short_name + ', ';
562        let postalCodeComponent = addressComponents.find((component) => component.types.length && component.types.includes('postal_code'));
563        if (postalCodeComponent)
564            address += postalCodeComponent.short_name + ', ';
565        // added another check for sublocality due to an issue with a specific address
566        // "Kölner Str. 21,  50226 Frechen" selected but return "Kölner Str. 21,  50226 Lindenthal" 
567        // so sublocallity is excluded from the result set
568        let localityComponent = addressComponents.find((component) => component.types.length && ((component.types.includes('locality') || component.types.includes('political')) && !component.types.includes("sublocality")));
569        if (!localityComponent) {
570            // if cannot find such a value, use condition as it was before
571            localityComponent = addressComponents.find((component) => component.types.length && (component.types.includes('locality') || component.types.includes('political')));
572        }
573        if (localityComponent)
574            address += localityComponent.short_name;
575        return address;
576    }
577    /**
578     *
579     * @param addressIsValid validated Address component array
580     * @returns valid or not (boolean)
581     */
582    isAddressComponentValid(addressIsValid) {
583        // addressIsValid['street_number'] === true && 
584        return addressIsValid['route'] === true && addressIsValid['postal_code'] === true && addressIsValid['locality'] === true;
585    }
586    /**
587     * Will validate address component object of google response from google autocomplete
588     * @param addressComponents address component object returned from google api
589     * @returns validated address array
590     */
591    validateAddressComponents(addressComponents) {
592        let addressIsValid = [];
593        addressComponents.forEach(part => {
594            // console.log(part);
595            if (part.types[0]) {
596                if (part.types[0] === "street_number") {
597                    addressIsValid['street_number'] = true;
598                }
599                if (part.types[0] === "route") {
600                    addressIsValid['route'] = true;
601                }
602                if (part.types[0] === "postal_code") {
603                    addressIsValid['postal_code'] = true;
604                }
605                if (part.types[0] === "locality" || (part.types[1] && part.types[1] === "political")) {
606                    addressIsValid['locality'] = true;
607                }
608            }
609        });
610        return addressIsValid;
611    }
612    /**
613     * Find restaurant near by address
614    */
615    findNearByRestaurants(pageToGo = 'restaurant-list', getAllRestaurants = false) {
616        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
617            this.appObject.isLoading = true;
618            var sending;
619            if (this.appObject.myAddress.lat == '' || this.appObject.myAddress.lng == '' || getAllRestaurants) {
620                sending = {
621                    'device_id': this.appObject.deviceUUID,
622                    'lang': this.appObject.currentLang,
623                    'delivery_method': this.appObject.selectedDeliveryMethod
624                };
625            }
626            else {
627                if (this.appObject.selectedDeliveryMethod == 'delivery' || (this.appObject.settings.is_franchise === 'true' && this.appObject.settings.app_configuration && this.appObject.settings.app_configuration.has_multiple_restaurants)) {
628                    sending = {
629                        'device_id': this.appObject.deviceUUID,
630                        'lang': this.appObject.currentLang,
631                        'latitude': this.appObject.myAddress.lat,
632                        'longitude': this.appObject.myAddress.lng,
633                        'delivery_method': this.appObject.selectedDeliveryMethod
634                    };
635                }
636                else {
637                    sending = {
638                        'device_id': this.appObject.deviceUUID,
639                        'lang': this.appObject.currentLang,
640                        'delivery_method': this.appObject.selectedDeliveryMethod
641                    };
642                }
643            }
644            return yield this.requestService.post('restaurant/list', sending).then(data => {
645                if (data.status) {
646                    let restaurants = data.data;
647                    this.routeToRestaurantList = false;
648                    // get only selected ordering type is available restaurants
649                    let filteredRestaurants = restaurants;
650                    // .filter((restaurant) => {
651                    //   return restaurant.openDetails && restaurant.openDetails['is_' + this.appObject.selectedDeliveryMethod]
652                    // });
653                    // .filter((restaurant) => {
654                    //   return restaurant.openDetails && restaurant.openDetails['is_' + this.appObject.selectedDeliveryMethod]
655                    // });
656                    this.appObject.restaurants = filteredRestaurants;
657                    !this.isWebVersion && pageToGo && pageToGo !== 'branch-selected' && pageToGo !== 'do-not-redirect' ? this.router.navigate([pageToGo], { replaceUrl: true }) : '';
658                }
659                else {
660                    this.appObject.restaurants = [];
661                    this.updateAppObject();
662                    if (!this.isWebVersion && pageToGo !== 'branch-selected' && pageToGo !== 'do-not-redirect')
663                        this.router.navigate(['restaurant-list'], { replaceUrl: true });
664                }
665                this.appObject.isLoading = false;
666            }, error => {
667                this.appObject.isLoading = false;
668            });
669        });
670    }
671    /**
672     * This function will return all the actiuve restaurants
673     * Specially made for postal code feature, So it can get all the delivery enabled restaurants
674     * and filter by selected postal code
675     */
676    getAllRestaurants() {
677        return new Promise((resolve, reject) => {
678            let sending = {
679                'device_id': this.appObject.deviceUUID,
680                'lang': this.appObject.currentLang,
681                'delivery_method': 'delivery'
682            };
683            this.requestService.post('restaurant/list', sending).then(data => {
684                this.appObject.isLoading = false;
685                return resolve(data);
686            }, error => {
687                return reject(error);
688                this.appObject.isLoading = false;
689            });
690        });
691    }
692    /**
693     * Find restaurants nearby user
694     * @returns Promise
695     */
696    getRestaurantListForFavourite() {
697        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
698            let params = {
699                'device_id': this.appObject.deviceUUID,
700                'lang': this.appObject.currentLang,
701                'latitude': this.appObject.myAddress.lat,
702                'longitude': this.appObject.myAddress.lng,
703            };
704            setTimeout(() => {
705                this.appObject.isLoading = true;
706            }, 10);
707            this.appObject.restaurants = [];
708            return yield this.requestService.post('restaurant/list', params).then(data => {
709                if (data.status) {
710                    let restaurants = data.data;
711                    this.routeToRestaurantList = false;
712                    let filteredRestaurants = restaurants;
713                    this.appObject.restaurants = filteredRestaurants;
714                }
715                this.appObject.isLoading = false;
716            }, error => {
717                this.appObject.isLoading = false;
718            });
719        });
720    }
721    /**
722     * Get current location of user
723     */
724    getCurrentLocation() {
725        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
726            this.appObject.isLoading = true;
727            let options = { maximumAge: 60000, timeout: 30000, enableHighAccuracy: true };
728            var cpos = "";
729            try {
730                let Glocation = yield this.geolocation.getCurrentPosition(options).catch((error) => {
731                    if (error && error.code === error.PERMISSION_DENIED) {
732                        this.translate.get(['key.location_access_denied', 'key.please_allow_location_permission_to_get_your_current_location']).toPromise().then((response) => {
733                            this.showAlert('error', response['key.location_access_denied'], response['key.please_allow_location_permission_to_get_your_current_location'], false);
734                        });
735                        this.appObject.isLoading = false;
736                        console.log('please allow location');
737                        // this.showAlert('error','Location access denied','Please allow location access permission');
738                    }
739                });
740                this.appObject.myAddress.lat = Glocation['coords']['latitude'];
741                this.appObject.myAddress.lng = Glocation['coords']['longitude'];
742                var postal = "";
743                var city = "";
744                var road = "";
745                var homeno = "";
746                var geocoder = new google.maps.Geocoder();
747                var latlng = { lat: this.appObject.myAddress.lat, lng: this.appObject.myAddress.lng };
748                geocoder.geocode({ 'location': latlng }, function (results, status) {
749                    if (status == google.maps.GeocoderStatus.OK) {
750                        for (let i = 0; i < results[0]['address_components'].length; i++) {
751                            if (results[0]['address_components'][i]['types'][0] == "postal_code") {
752                                postal = results[0]['address_components'][i]['short_name'];
753                            }
754                            if (results[0]['address_components'][i]['types'][0] == "locality") {
755                                city = results[0]['address_components'][i]['short_name'];
756                            }
757                            if (results[0]['address_components'][i]['types'][0] == "route") {
758                                road = results[0]['address_components'][i]['short_name'];
759                            }
760                            // if (results[0]['address_components'][i]['types'][0] == "street_number") {
761                            //   homeno = results[0]['address_components'][i]['short_name'];
762                            // }
763                        }
764                        cpos = cpos + (road != "" ? road + ", " : "");
765                        // cpos = cpos + (homeno != "" ? homeno + ", " : "");
766                        cpos = cpos + (postal != "" ? postal + ", " : "");
767                        cpos = cpos + (city != "" ? city : "");
768                    }
769                });
770            }
771            catch (error) {
772            }
773            setInterval(() => {
774                if (cpos != "") {
775                    this.appObject.myAddress.name = cpos;
776                    this.appObject.isAddressHave = true;
777                    this.updateAppObject();
778                    cpos = "";
779                    this.appObject.isLoading = false;
780                    this.appObject.errors = [];
781                }
782            }, 1000);
783        });
784    }
785    /**
786     * Get promotions
787    */
788    getPromo() {
789        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
790            return yield this.requestService.post('promotion/list', {
791                'device_id': this.appObject.deviceUUID,
792                'lang': this.appObject.currentLang
793            }).then(data => {
794                var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
795                if (data.status) {
796                    this.appObject.promotions = data.data;
797                    this.appObject.FooterCouponLink = '/my-products/' + ((_d = (_c = (_b = (_a = this.appObject) === null || _a === void 0 ? void 0 : _a.promotions) === null || _b === void 0 ? void 0 : _b.resturent) === null || _c === void 0 ? void 0 : _c.show_on_list[0]) === null || _d === void 0 ? void 0 : _d.slug) + '/category/' + ((_h = (_g = (_f = (_e = this.appObject) === null || _e === void 0 ? void 0 : _e.promotions) === null || _f === void 0 ? void 0 : _f.category) === null || _g === void 0 ? void 0 : _g.show_on_list[0]) === null || _h === void 0 ? void 0 : _h.id) + '/' + ((_m = (_l = (_k = (_j = this.appObject) === null || _j === void 0 ? void 0 : _j.promotions) === null || _k === void 0 ? void 0 : _k.category) === null || _l === void 0 ? void 0 : _l.show_on_list[0]) === null || _m === void 0 ? void 0 : _m.name);
798                }
799            }, error => {
800                this.appObject.isLoading = false;
801            });
802        });
803    }
804    /**
805     * Show languages
806    */
807    showLanguage() {
808        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
809            const modal = yield this.modalController.create({
810                component: _views_modals_popup_popup_page__WEBPACK_IMPORTED_MODULE_5__.PopupPage,
811                cssClass: 'custom-popup',
812                componentProps: {
813                    'currentUI': 'lang'
814                }
815            });
816            yield modal.present();
817        });
818    }
819    /**
820     * Login
821    */
822    login(login_details) {
823        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
824            this.appObject.errors = [];
825            login_details['lang'] = this.appObject.currentLang;
826            login_details['device_id'] = this.appObject.deviceUUID;
827            login_details['device_type'] = config.plf;
828            return new Promise((resolve, reject) => {
829                this.requestService.post('login', login_details).then(response => {
830                    if (response.status) {
831                        this.appObject.userId = response.data.id;
832                        this.appObject.isAuthed = true;
833                        this.appObject.deviceUUID = response.data.device_id;
834                        this.appObject.user.type = 'registered';
835                        // this.navigateToRegisterd();
836                    }
837                    else {
838                        this.appObject.errors = this.getErrorArray(response.msg);
839                    }
840                    return resolve(response);
841                }, error => {
842                    this.appObject.isLoading = false;
843                    return reject(error);
844                });
845            });
846        });
847    }
848    /**
849     * Logout
850     * @param isWebVersion send a boolean to check web or app version
851    */
852    logOut(isWebVersion = false) {
853        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
854            return new Promise((resolve, reject) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
855                yield this.requestService.post('logout', {
856                    'device_id': this.appObject.deviceUUID,
857                    'language': this.appObject.currentLang,
858                    'device_type': config.plf
859                }).then((response) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
860                    // console.log('logout response : ', response);
861                    if (response.status) {
862                        this.appObject.isAuthed = false;
863                        // reset user object to guest
864                        this.appObject.user.type = 'guest';
865                        this.appObject.user.backyard = "";
866                        this.appObject.user.email = "";
867                        this.appObject.user.fname = "";
868                        this.appObject.user.instructions = "";
869                        this.appObject.user.lname = "";
870                        this.appObject.user.telephone = "";
871                        this.appObject.userId = '';
872                        yield this.deviceRegister();
873                        yield this.updateAppObject();
874                        // only redirect in mobile app
875                        if (!isWebVersion)
876                            this.router.navigate(['/home'], { replaceUrl: true });
877                        return resolve(response);
878                    }
879                })).catch((error) => {
880                    // console.log('error :  ', error);
881                    return reject(error);
882                });
883            }));
884        });
885    }
886    /**
887     * Register
888    */
889    register(registration_details) {
890        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
891            return new Promise((resolve, reject) => {
892                this.appObject.errors = [];
893                registration_details['lang'] = this.appObject.currentLang;
894                registration_details['device_id'] = this.appObject.deviceUUID;
895                this.requestService.post("register", registration_details).then(data => {
896                    if (data.status) {
897                        this.appObject.isAuthed = true;
898                        this.appObject.userId = data.data.id;
899                        this.appObject.deviceUUID = data.data.device_id;
900                        this.appObject.user.type = 'registered';
901                        if (!this.isWebVersion)
902                            this.navigateToRegisterd();
903                    }
904                    else {
905                        this.appObject.errors = this.getErrorArray(data.msg);
906                    }
907                    // console.log('registration_details : ', registration_details);
908                    if (registration_details.type === 'facebook' || registration_details.type === 'google' || registration_details.type === 'apple') {
909                        // console.log('Triggered');
910                        return resolve(data);
911                    }
912                    // console.log(this.appObject.errors);
913                }, error => {
914                    this.appObject.isLoading = false;
915                    return reject(error);
916                });
917            });
918        });
919    }
920    register_from_email(registration_details, isWebVersion = false) {
921        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
922            this.registrationServerError = false;
923            this.appObject.isLoading = true;
924            this.appObject.errors = [];
925            registration_details['lang'] = this.appObject.currentLang;
926            registration_details['device_id'] = this.appObject.deviceUUID;
927            return yield this.requestService.post("register", registration_details).then(data => {
928                // console.log('response : ', data)
929                if (data.status) {
930                    this.appObject.isAuthed = true;
931                    this.appObject.userId = data.data.id;
932                    this.appObject.deviceUUID = data.data.device_id;
933                    this.appObject.user.type = 'registered';
934                    if (!isWebVersion)
935                        this.navigateToRegisterd();
936                }
937                else {
938                    this.appObject.errors = this.getErrorArray(data.msg);
939                    if (data.already_exists_mobile) {
940                        console.log('mobile number already exists');
941                    }
942                    // console.log('am called')
943                }
944                this.appObject.isLoading = false;
945            }, error => {
946                this.registrationServerError = true;
947                this.appObject.isLoading = false;
948            });
949        });
950    }
951    navigateToRegisterd() {
952        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
953            yield this.updateAppObject();
954            if (this.appObject.isOrderProcess) {
955                this.router.navigate(['checkout']);
956            }
957            else {
958                this.router.navigate(['profile']);
959            }
960        });
961    }
962    getErrorArray(data) {
963        let err = new Object();
964        Object.keys(data).map(function (k) {
965            if (typeof data[k][0] === 'object') {
966                let e = new Object();
967                let i = 0;
968                Object.keys(data[k][0]).map(function (ke) {
969                    e[i] = data[k][0][ke];
970                    i++;
971                });
972                err[k] = e;
973            }
974            else {
975                err[k] = { 0: data[k][0] };
976            }
977        });
978        return err;
979    }
980    /**
981    * Clear address
982   */
983    clearAddress(clearByForce = '') {
984        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
985            this.appObject.isAddressHave = false;
986            this.appObject.myAddress.name = "";
987            this.appObject.myAddress.lat = "";
988            this.appObject.myAddress.lng = "";
989            this.appObject.myAddress.streetNo = "";
990            yield this.updateAppObject();
991            this.appObject.errors = {
992                address: {
993                    0: clearByForce ? clearByForce : 'address_is_required'
994                }
995            };
996        });
997    }
998    clearCart() {
999        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1000            // console.log('clear cart called');
1001            this.appObject.orderObjectDup.cart = [];
1002            this.appObject.orderObject.cart = [];
1003            this.appObject.orderObject.cart_summery = {
1004                // cart_summery: {
1005                total_tax_inclusive: 0,
1006                total_tax_exclusive: 0,
1007                net_total_without_tax: 0,
1008                net_total: 0,
1009                total_discount: 0,
1010                total_with_discount_price: 0,
1011                delivery_cost: 0,
1012                gross_total: 0,
1013                min_reached: false,
1014                min_amount: 0,
1015                remarks: '',
1016                total_dish_count: 0,
1017                dish_net_total_with_discount: 0
1018                //  }
1019            };
1020            this.appObject.orderObject.selectedTable = null;
1021            this.appObject.orderObject.save_items = null;
1022            this.appObject.orderObject.table_order_id = null;
1023            this.appObject.selectedCoupon = [];
1024            this.appObject.couponWeb = '';
1025            this.appObject.couponWebAdded = false;
1026            // console.log('cart cleared');
1027            this.updateAppObject();
1028        });
1029    }
1030    /**
1031    * Get restaurant by slug
1032   */
1033    getRestaurantBySlug(slug, cat = null) {
1034        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1035            this.appObject.isLoading = true;
1036            // reset selected restaurant data and close notice data
1037            this.closenotice = false;
1038            this.isPreOrderAccept = false;
1039            this.isSelectedRestaurantOnVacation = false;
1040            this.vacationModeText = '';
1041            this.appObject.selectedRestaurantDetails = null;
1042            this.menuList = [];
1043            if (this.appObject.deviceUUID == "") {
1044                setTimeout(() => {
1045                    this.getRestaurantBySlug(slug);
1046                }, 100);
1047            }
1048            else {
1049                // console.log('called multiple times');
1050                yield this.requestService.post('restaurant/' + slug, {
1051                    'device_id': this.appObject.deviceUUID,
1052                    'language': this.appObject.currentLang,
1053                    'device_type': config.plf,
1054                    'delivery_type': this.appObject.selectedDeliveryMethod,
1055                    'lat': this.appObject.myAddress.lat,
1056                    'lng': this.appObject.myAddress.lng
1057                }).then(data => {
1058                    this.appObject.isLoading = false;
1059                    if (data.status) {
1060                        // console.log('this.appObject.selectedRestaurantId | ', this.appObject.selectedRestaurantId, '  |  data.data.id : ', data.data.id);
1061                        if (this.appObject.selectedRestaurantId != data.data.id) {
1062                            this.clearCart();
1063                            // console.log('restaurant not equal');
1064                            // console.log('Cleared Babe');
1065                        }
1066                        this.appObject.selectedRestaurant = slug;
1067                        let payment_methods = JSON.parse(data.data['payment_methods']);
1068                        this.appObject.selectedRestaurantDetails = data.data;
1069                        this.appObject.selectedRestaurantId = this.appObject.selectedRestaurantDetails.id;
1070                        this.appObject.selectedRestaurantDetails['payment_methods'] = [];
1071                        // make points system turned off by default, if its enabled it will turn on below
1072                        this.appObject.isPointsEnable = false;
1073                        payment_methods.forEach(element => {
1074                            if (element.isActive == "true") {
1075                                let paymentMethodObj = {
1076                                    displayName: element.displayName,
1077                                    id: element.id,
1078                                    isActive: element.isActive,
1079                                    is_dine_in: element.is_dine_in,
1080                                    is_delivery: element.is_delivery,
1081                                    is_pickup: element.is_pickup,
1082                                };
1083                                // // get points payment method configurations
1084                                // if (element.id === 'points' && element.pointsConfigurations) {
1085                                //   paymentMethodObj['config'] = element.pointsConfigurations;
1086                                // }
1087                                // // get paypal payment method configurations
1088                                // if (element.id === 'paypal' && element.paypalConfigurations) {
1089                                //   paymentMethodObj['config'] = element.paypalConfigurations;
1090                                // }
1091                                if (element[element.id + 'Configurations']) {
1092                                    paymentMethodObj['config'] = element[element.id + 'Configurations'];
1093                                }
1094                                this.appObject.selectedRestaurantDetails['payment_methods'].push(paymentMethodObj);
1095                            }
1096                            // find whether selected restaurant is support for point system
1097                            if (element.id === 'points' && element.isActive === 'true')
1098                                this.appObject.isPointsEnable = true;
1099                        });
1100                        if (this.appObject.selectedRestaurantDetails.openDetails.current_status == "closed" && !this.appObject.selectedRestaurantDetails.openDetails.is_pre_order) {
1101                            this.closenotice = true;
1102                        }
1103                        else if (this.appObject.selectedRestaurantDetails.openDetails.current_status == "closed" && this.appObject.selectedRestaurantDetails.openDetails.is_pre_order) {
1104                            this.isPreOrderAccept = true;
1105                            this.closenotice = true;
1106                        }
1107                        else {
1108                            this.closenotice = false;
1109                        }
1110                        if (this.appObject.selectedRestaurantDetails.vacation_mode === 'true') {
1111                            this.isSelectedRestaurantOnVacation = true;
1112                            this.vacationModeText = this.appObject.selectedRestaurantDetails.vacation_mode_text;
1113                        }
1114                        this.appObject.selectedRestaurantId = data.data.id;
1115                        this.selectedRestaurantCategories.restaurantId = this.appObject.selectedRestaurantId;
1116                        // update if there is selected postal code detail with new pricing
1117                        if (this.appObject.postalCodeDetails && this.appObject.postalCodeDetails.price) {
1118                            let postalChargesOfSelectedRestaurant = this.appObject.postalCodeDetails.price.find((postalCharges) => postalCharges.restaurantId === this.appObject.selectedRestaurantDetails.id);
1119                            let selectedPostalCodeNewDetails = this.appObject.selectedRestaurantDetails.postal_code_details_v2.find((postal) => postal.code === this.appObject.postalCodeDetails.code && postal.name === this.appObject.postalCodeDetails.name);
1120                            if (postalChargesOfSelectedRestaurant && selectedPostalCodeNewDetails)
1121                                postalChargesOfSelectedRestaurant.time_slots = selectedPostalCodeNewDetails.time_slots;
1122                        }
1123                        this.updateAppObject();
1124                        this.getMenuDetails(cat);
1125                    }
1126                }, error => {
1127                    this.appObject.isLoading = false;
1128                });
1129            }
1130        });
1131    }
1132    getCouponPormo(slug) {
1133        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1134            return yield this.requestService.post('restaurant/coupon-list/' + slug, {
1135                'device_id': this.appObject.deviceUUID,
1136                'language': this.appObject.currentLang,
1137                'device_type': config.plf,
1138            });
1139        });
1140    }
1141    /**
1142    * Get menu details by restaurant_id
1143   */
1144    getMenuDetails(cat = null) {
1145        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1146            this.appObject.isLoading = true;
1147            this.requestService.post('menu-category/list', {
1148                'device_id': this.appObject.deviceUUID,
1149                'language': this.appObject.currentLang,
1150                'device_type': config.plf,
1151                'restaurant_id': this.appObject.selectedRestaurantId,
1152                'is_dish': 'true'
1153            }).then(data => {
1154                if (data.status) {
1155                    this.menuList = data.data;
1156                    this.selectedRestaurantCategories.categories = [...this.menuList];
1157                    // get dishes
1158                    for (let i = 0; i < this.menuList.length; i++) {
1159                        if (!this.menuList[i].dishes || !this.menuList[i].dishes.length) {
1160                            this.get_dishes(i);
1161                        }
1162                    }
1163                    // if (this.menuList.length > 0) {
1164                    //   if (cat == null) {
1165                    //     this.getDishDetails(this.menuList[0].id, this.menuList[0].restaurants_id);
1166                    //   } else {
1167                    //     this.getDishDetails(cat, cat.restaurants_id);
1168                    //   }
1169                    // } else {
1170                    //   this.appObject.isLoading = false;
1171                    // }
1172                    this.appObject.isLoading = false;
1173                }
1174            }, error => {
1175                this.appObject.isLoading = false;
1176            });
1177        });
1178    }
1179    getDishDetails(cat_id, res_id) {
1180        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1181            //this.appObject.isLoading = true;
1182            this.activeMenu = cat_id;
1183            this.requestService.post('dish/list', {
1184                'device_id': this.appObject.deviceUUID,
1185                'language': this.appObject.currentLang,
1186                'device_type': config.plf,
1187                'menu_categorie_id': cat_id,
1188                'restaurant_id': 2
1189            }).then(data => {
1190                if (data.status) {
1191                    this.dishList = data.data;
1192                }
1193                this.appObject.isLoading = false;
1194            }, error => {
1195                this.appObject.isLoading = false;
1196            });
1197        });
1198    }
1199    getPriceLabel(price) {
1200        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1201            let p = '';
1202            if (this.appObject.settings.currency_position == 'after') {
1203                p = price + ' ' + this.appObject.settings.currency_symbol;
1204            }
1205            else {
1206                p = this.appObject.settings.currency_symbol + ' ' + price;
1207            }
1208            // console.log(p);
1209            return p;
1210        });
1211    }
1212    goToOrder() {
1213        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1214            if (this.appObject.isAddressHave) {
1215                this.router.navigate(['/restaurant-list'], { replaceUrl: false });
1216            }
1217            else {
1218                this.routeToRestaurantList = true;
1219                this.router.navigate(['/find-near-by-me'], { replaceUrl: true });
1220            }
1221        });
1222    }
1223    calcSelectedDishTotal() {
1224        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1225            if (this.selectedDish.fullDishInfo.is_size == 'true') {
1226                this.selectedDish.total = this.selectedDish.fullDishInfo.sizes[this.selectedDish.size_index][this.appObject.selectedDeliveryMethod];
1227            }
1228            else {
1229                this.selectedDish.total = this.selectedDish.fullDishInfo[this.appObject.selectedDeliveryMethod];
1230            }
1231            this.selectedDish.toping_total = 0;
1232            if (this.selectedDish.selectedTopings.length > 0) {
1233                var topingTotal = 0;
1234                var dIshTotal = 0;
1235                dIshTotal += this.selectedDish.total;
1236                // console.log("this.selectedDish.selectedTopings  :",this.selectedDish.selectedTopings)
1237                for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1238                    // to avoid expression change exception
1239                    dIshTotal += this.selectedDish.selectedTopings[index].total;
1240                    topingTotal += this.selectedDish.selectedTopings[index].total;
1241                }
1242                setTimeout(() => {
1243                    this.selectedDish.toping_total = topingTotal;
1244                    this.selectedDish.total = dIshTotal;
1245                }, 0.1);
1246            }
1247            // // console.log(this.selectedDish);
1248        });
1249    }
1250    check_is_selected(t_id, is_mand, type) {
1251        let available = 0;
1252        this.selectedDish.selectedTopings.forEach(element => {
1253            if (t_id == element.topping_id) {
1254                available = element.count;
1255            }
1256        });
1257        if (available == 0 && is_mand == 'true' && type == "add-on") {
1258            this.appObject.errors['shoud_select_toping_' + t_id] = true;
1259            this.appObject.errors['mandatory_toping_should_be_selected'] = true;
1260        }
1261        return available;
1262    }
1263    addSizeToCart(fromCrossSelling = false) {
1264        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1265            this.appObject.errors = [];
1266            // show alert when store is closed and preorder not accept
1267            if ((this.closenotice && !this.isPreOrderAccept) || this.isSelectedRestaurantOnVacation) {
1268                if (!this.isWebVersion)
1269                    this.showAlert('error', this.isSelectedRestaurantOnVacation ? 'key.we_are_on_a_vacation' : 'key.restaurant_closed', this.appObject.selectedRestaurantDetails.openDetails.text ? this.appObject.selectedRestaurantDetails.openDetails.text : 'closeNote', false);
1270                else {
1271                    this.translate.get(this.isSelectedRestaurantOnVacation ? 'key.we_are_on_a_vacation' : 'key.we_are_closed_at_the_moment_and_wouldnt_accept_any_orders').toPromise().then((data) => {
1272                        this.showToast(data, 'danger', 'bottom', 5000);
1273                    }).catch((err) => {
1274                        console.log('error while fetching close notice : ', err);
1275                    });
1276                }
1277                return;
1278            }
1279            // check the selected ordering method is available in selected restaurant 
1280            // if (this.appObject.selectedRestaurantDetails) {
1281            //   let availbaleDeliveryMethodsInRest: string[] = this.findSelectedRestaurantOrderTypes(this.appObject.selectedRestaurantDetails.openDetails, true);
1282            //   if (!availbaleDeliveryMethodsInRest.includes(this.appObject.selectedDeliveryMethod)) {
1283            //     this.translate.get('key.selected_ordering_method_not_available_at_the_moment').toPromise().then((data) => {
1284            //       this.showToast(data, 'danger', 'bottom', 5000);
1285            //     }).catch((err) => {
1286            //       console.log('error while fetching close notice : ', err);
1287            //     })
1288            //     return;
1289            //   }
1290            // }
1291            // console.log(this.selectedDish.fullDishInfo);
1292            //check total toping count if is_mandatory
1293            let error_on_dish = false;
1294            let selected_size_or_scenario = [];
1295            if (this.selectedDish.fullDishInfo.is_size == 'true') {
1296                if (this.selectedDish.size_index === null) {
1297                    this.appObject.errors['size_select'] = 'please_select_a_size';
1298                    return;
1299                }
1300                selected_size_or_scenario = this.selectedDish.fullDishInfo.sizes[this.selectedDish.size_index].scenarios;
1301            }
1302            else {
1303                selected_size_or_scenario = this.selectedDish.fullDishInfo.scenarios;
1304            }
1305            //check mandatory toping is selected
1306            /*for (let index = 0; index < selected_size_or_scenario.length; index++) {
1307              if(selected_size_or_scenario[index].is_mandatory == 'true'){
1308                this.check_is_selected(selected_size_or_scenario[index].id);
1309              }
1310            }*/
1311            if (selected_size_or_scenario) {
1312                try {
1313                    //scenario
1314                    selected_size_or_scenario.forEach(element => {
1315                        let this_scenario_selected_count = 0;
1316                        //toping
1317                        element['topings'].forEach(elementt => {
1318                            let selected_count = this.check_is_selected(elementt.id, elementt.is_mandatory, element.btn_type);
1319                            // // console.log('zzz:', selected_count);
1320                            this_scenario_selected_count += selected_count;
1321                        });
1322                        if (element.is_mandatory == 'true') {
1323                            //validate by checking min and max
1324                            if (element.btn_type == "optional") {
1325                                //check min and max 
1326                                if (!(element.min_toping_count <= this_scenario_selected_count && element.max_toping_count >= this_scenario_selected_count)) {
1327                                    this.appObject.errors['error_in_scenario_' + element.i
1327d] = true;
1328                                    error_on_dish = true;
1329                                }
1330                            }
1331                            else {
1332                                //only min
1333                                if (!(element.min_toping_count <= this_scenario_selected_count)) {
1334                                    this.appObject.errors['error_in_scenario_' + element.id] = true;
1335                                    error_on_dish = true;
1336                                }
1337                            }
1338                        }
1339                        // // console.log('selected count', this_scenario_selected_count);
1340                    });
1341                }
1342                catch (error) {
1343                }
1344            }
1345            if (this.appObject.errors['mandatory_toping_should_be_selected'] || error_on_dish) {
1346                this.appObject.errors['mandatory_toping_should_be_selected'] = true;
1347                return false;
1348            }
1349            if (this.editing_cart_item) {
1350                this.appObject.orderObject.cart.splice(this.editing_cart_item, 1);
1351                this.appObject.orderObjectDup.cart.splice(this.editing_cart_item, 1);
1352            }
1353            let dishDetails = [];
1354            dishDetails['dish_id'] = this.selectedDish.fullDishInfo.id;
1355            dishDetails['count'] = 1;
1356            if (this.selectedDish.fullDishInfo.is_size == 'true') {
1357                dishDetails['name'] = this.selectedDish.fullDishInfo.name + ' (' + this.selectedDish.fullDishInfo.sizes[this.selectedDish.size_index].name + ')';
1358                dishDetails['size_info'] = {
1359                    size_id: this.selectedDish.size_id,
1360                    topping_info: this.selectedDish.selectedTopings
1361                };
1362            }
1363            else {
1364                dishDetails['name'] = this.selectedDish.fullDishInfo.name;
1365                dishDetails['size_info'] = {
1366                    size_id: this.selectedDish.size_id,
1367                    topping_info: this.selectedDish.selectedTopings
1368                };
1369            }
1370            this.appObject.orderObject.cart.push({
1371                'dish_id': dishDetails['dish_id'],
1372                'count': dishDetails['count'],
1373                'name': dishDetails['name'],
1374                'size_info': dishDetails['size_info'],
1375                'points_per_dish': (this.appObject.isPointsEnable && this.selectedDish.fullDishInfo.points_per_dish) ? this.selectedDish.fullDishInfo.points_per_dish : 0
1376            });
1377            this.appObject.orderObjectDup.cart.push(this.selectedDish.fullDishInfo);
1378            yield this.calculateCartAmounts();
1379            this.modalController.dismiss({
1380                'dismissed': true
1381            });
1382            if (this.cartIsOpen) {
1383                this.editing_cart_item = false;
1384                const modal = yield this.modalController.create({
1385                    component: _views_modals_cart_cart_page__WEBPACK_IMPORTED_MODULE_9__.CartPage,
1386                    cssClass: 'custom-popup'
1387                });
1388                yield modal.present();
1389            }
1390            else {
1391                this.animationDrop = true;
1392                this.className = 'animating';
1393                setTimeout(function () {
1394                    this.className = '';
1395                    this.animationDrop = false;
1396                }.bind(this), 1000);
1397                // if not from cross selling page, then allow to display cart icon
1398                if (!fromCrossSelling)
1399                    this.hideCartButton = false;
1400            }
1401            // check if the process came from cross selling form, if it is then mark the question as answered
1402            // otherwise open cross selling popup if available on the selected dish
1403            let validQuestion = this.selectedDish.fullDishInfo && this.selectedDish.fullDishInfo.cross_selling_products && this.selectedDish.fullDishInfo.cross_selling_products.length ?
1404                this.selectedDish.fullDishInfo.cross_selling_products.find((csproduct) => csproduct.category.count > 0) : null;
1405            if (!fromCrossSelling && validQuestion && this.selectedDish.fullDishInfo && this.selectedDish.fullDishInfo.cross_selling_products && this.selectedDish.fullDishInfo.cross_selling_products.length) {
1406                if (!this.isWebVersion) {
1407                    this.hideCartButton = true;
1408                    const modal = yield this.modalController.create({
1409                        component: _views_modals_cross_selling_cross_selling_page__WEBPACK_IMPORTED_MODULE_10__.CrossSellingPage,
1410                        cssClass: 'custom-popup',
1411                        componentProps: {
1412                            'crossSellingProducts': this.selectedDish.fullDishInfo.cross_selling_products,
1413                            'selectedDishCategory': this.selectedDish.fullDishInfo.menu_categories_id.id,
1414                            'title': this.selectedDish.fullDishInfo.name
1415                        }
1416                    });
1417                    yield modal.present();
1418                }
1419                else {
1420                    const modal = yield this.modalController.create({
1421                        component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_12__.ModalPopoverPage,
1422                        componentProps: {
1423                            'type': this.POPOVER_TYPES.CROSS_SELLING.TYPE,
1424                            'title': this.selectedDish.fullDishInfo.name,
1425                            'crossSellingProducts': this.selectedDish.fullDishInfo.cross_selling_products,
1426                            'selectedDishCategory': this.selectedDish.fullDishInfo.menu_categories_id.id,
1427                        }
1428                    });
1429                    yield modal.present();
1430                }
1431            }
1432            else if (fromCrossSelling) {
1433                this.watchAddToCartFromCrossSelling({ status: 'done' });
1434            }
1435        });
1436    }
1437    /**
1438     * This function will validate topping senario configurations
1439     * when its checked or even quantity change
1440     *
1441     * Part of this function is copied from addSizeToCart function
1442     * implemented by Pumayk26 at 2024-04-23
1443     */
1444    validateDishSenarioToppingConfigsRealTime() {
1445        //check total toping count if is_mandatory
1446        let error_on_dish = false;
1447        let selected_size_or_scenario = [];
1448        if (this.selectedDish.fullDishInfo.is_size == 'true') {
1449            if (this.selectedDish.size_index === null) {
1450                return;
1451            }
1452            selected_size_or_scenario = this.selectedDish.fullDishInfo.sizes[this.selectedDish.size_index].scenarios;
1453        }
1454        else {
1455            selected_size_or_scenario = this.selectedDish.fullDishInfo.scenarios;
1456        }
1457        if (selected_size_or_scenario) {
1458            try {
1459                //scenario
1460                selected_size_or_scenario.forEach(element => {
1461                    element.disable_rest = false;
1462                    let this_scenario_selected_count = 0;
1463                    //toping
1464                    element['topings'].forEach(elementt => {
1465                        let selected_count = this.check_is_selected(elementt.id, elementt.is_mandatory, element.btn_type);
1466                        this_scenario_selected_count += selected_count;
1467                    });
1468                    if (element.is_mandatory == 'true') {
1469                        this.appObject.errors['error_in_scenario_' + element.id] = false;
1470                        if (element.btn_type == "optional") {
1471                            if (this_scenario_selected_count === element.max_toping_count) {
1472                                // this.appObject.errors['error_in_scenario_' + element.id] = true;
1473                                element.disable_rest = true;
1474                            }
1475                        }
1476                    }
1477                    // // console.log('selected count', this_scenario_selected_count);
1478                });
1479            }
1480            catch (error) {
1481                console.log('error occoured while realtime topping cal : ', error);
1482            }
1483        }
1484    }
1485    addToCart(dish, fromCrossSelling = false) {
1486        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1487            // // console.log('dish : ', dish);
1488            return new Promise((resolve, reject) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1489                var _a, _b;
1490                if ((this.closenotice && !this.isPreOrderAccept) || this.isSelectedRestaurantOnVacation) {
1491                    // console.log('Am Called.... : ', this.appObject.selectedRestaurantDetails.openDetails.is_pre_order);
1492                    if (!this.isWebVersion)
1493                        this.showAlert('error', this.isSelectedRestaurantOnVacation ? 'key.we_are_on_a_vacation' : 'key.restaurant_closed', this.appObject.selectedRestaurantDetails.openDetails.text ? this.appObject.selectedRestaurantDetails.openDetails.text : 'closeNote', false);
1494                    else {
1495                        this.translate.get(this.isSelectedRestaurantOnVacation ? 'key.we_are_on_a_vacation' : 'key.we_are_closed_at_the_moment_and_wouldnt_accept_any_orders').toPromise().then((data) => {
1496                            this.showToast(data, 'danger', 'bottom', 5000);
1497                        }).catch((err) => {
1498                            console.log('error while fetching close notice : ', err);
1499                        });
1500                        // this.showToast('')
1501                    }
1502                    return;
1503                }
1504                // check the selected ordering method is available in selected restaurant 
1505                // if (this.appObject.selectedRestaurantDetails) {
1506                //   let availbaleDeliveryMethodsInRest: string[] = this.findSelectedRestaurantOrderTypes(this.appObject.selectedRestaurantDetails.openDetails, true);
1507                //   if (!availbaleDeliveryMethodsInRest.includes(this.appObject.selectedDeliveryMethod)) {
1508                //     this.translate.get('key.selected_ordering_method_not_available_at_the_moment').toPromise().then((data) => {
1509                //       this.showToast(data, 'danger', 'bottom', 5000);
1510                //     }).catch((err) => {
1511                //       console.log('error while fetching close notice : ', err);
1512                //     })
1513                //     return;
1514                //   }
1515                // }
1516                if (!this.isWebVersion)
1517                    this.animationDrop = true;
1518                this.className = 'animating';
1519                setTimeout(function () {
1520                    this.className = '';
1521                    this.animationDrop = false;
1522                }.bind(this), 1000);
1523                let counted = false;
1524                let dishDetails = [];
1525                // only if bar mode is disable, so we can add same item separated into bill (then use going to pay we can collect each items and send as a single dish)
1526                // console.log('am called in here : ' , this.appObject.selectedRestaurantDetails.is_bar_mode , '  |  ', this.appObject.selectedDeliveryMethod);
1527                if (this.appObject.selectedRestaurantDetails && (this.appObject.selectedRestaurantDetails.is_bar_mode !== 'true' || this.appObject.selectedDeliveryMethod !== 'dine_in')) {
1528                    //for each to check this already exit
1529                    if (((_b = (_a = this.appObject) === null || _a === void 0 ? void 0 : _a.orderObject) === null || _b === void 0 ? void 0 : _b.cart.length) > 0) {
1530                        for (let index = 0; index < this.appObject.orderObject.cart.length; index++) {
1531                            if (this.appObject.orderObject.cart[index].dish_id == dish.id && dish.is_size == 'false' && dish.is_customise == 'false') {
1532                                counted = true;
1533                                //change count
1534                                this.appObject.orderObject.cart[index].count += 1;
1535                                if (this.appObject.isPointsEnable && dish.points_per_dish)
1536                                    this.appObject.orderObject.cart[index].points_per_dish = (dish.points_per_dish * this.appObject.orderObject.cart[index].count);
1537                            }
1538                        }
1539                    }
1540                }
1541                if (!counted) {
1542                    dishDetails['points_per_dish'] = (this.appObject.isPointsEnable && dish.points_per_dish) ? dish.points_per_dish : 0;
1543                    dishDetails['dish_id'] = dish.id;
1544                    dishDetails['count'] = 1;
1545                    dishDetails['name'] = dish.name;
1546                    this.appObject.orderObject.cart.push({
1547                        'dish_id': dishDetails['dish_id'],
1548                        'count': dishDetails['count'],
1549                        'name': dishDetails['name'],
1550                        'points_per_dish': dishDetails['points_per_dish']
1551                    });
1552                    this.appObject.orderObjectDup.cart.push(dish);
1553                }
1554                yield this.calculateCartAmounts();
1555                // check if the user came from crossselling form, if not open to select cross selling product
1556                let validQuestion = dish && dish.cross_selling_products && dish.cross_selling_products.length ?
1557                    dish.cross_selling_products.find((csproduct) => csproduct.category.count > 0) : null;
1558                if (!fromCrossSelling && validQuestion && dish && dish.cross_selling_products && dish.cross_selling_products.length) {
1559                    if (!this.isWebVersion) {
1560                        this.hideCartButton = true;
1561                        const modal = yield this.modalController.create({
1562                            component: _views_modals_cross_selling_cross_selling_page__WEBPACK_IMPORTED_MODULE_10__.CrossSellingPage,
1563                            cssClass: 'custom-popup',
1564                            componentProps: {
1565                                'crossSellingProducts': dish.cross_selling_products,
1566                                'selectedDishCategory': dish.menu_categories_id.id,
1567                                'title': dish.name
1568                            }
1569                        });
1570                        yield modal.present();
1571                    }
1572                    else {
1573                        const modal = yield this.modalController.create({
1574                            component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_12__.ModalPopoverPage,
1575                            componentProps: {
1576                                'type': this.POPOVER_TYPES.CROSS_SELLING.TYPE,
1577                                'title': dish.name,
1578                                'crossSellingProducts': dish.cross_selling_products,
1579                                'selectedDishCategory': dish.menu_categories_id.id,
1580                            }
1581                        });
1582                        yield modal.present();
1583                    }
1584                }
1585                else if (fromCrossSelling) {
1586                    return resolve({ status: 'done' });
1587                }
1588            }));
1589        });
1590    }
1591    setSelectedSize(index) {
1592        var _a;
1593        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1594            if ((_a = index === null || index === void 0 ? void 0 : index.detail) === null || _a === void 0 ? void 0 : _a.value) {
1595                index = index.detail.value;
1596            }
1597            this.selectedDish.selectedTopings = [];
1598            this.selectedDish.size_index = index;
1599            this.selectedDish.size_id = this.selectedDish.fullDishInfo.sizes[index].id;
1600            this.calcSelectedDishTotal();
1601        });
1602    }
1603    topingInc(evt, toping, sc, t) {
1604        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1605            let s = this.selectedDish.size_index;
1606            for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1607                if (this.selectedDish.selectedTopings[index].topping_id == to
1607ping.id) {
1608                    this.selectedDish.selectedTopings[index].count += 1;
1609                    this.selectedDish.selectedTopings[index].total = this.selectedDish.selectedTopings[index].price * this.selectedDish.selectedTopings[index].count;
1610                    toping.count_selected++;
1611                    this.validateDishSenarioToppingConfigsRealTime();
1612                }
1613            }
1614            this.calcSelectedDishTotal();
1615        });
1616    }
1617    topingDec(evt, toping, sc, t) {
1618        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1619            let s = this.selectedDish.size_index;
1620            for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1621                if (this.selectedDish.selectedTopings[index].topping_id == toping.id) {
1622                    if (this.selectedDish.selectedTopings[index].count > 1) {
1623                        this.selectedDish.selectedTopings[index].count -= 1;
1624                        this.selectedDish.selectedTopings[index].total = this.selectedDish.selectedTopings[index].price * this.selectedDish.selectedTopings[index].count;
1625                        toping.count_selected--;
1626                        this.validateDishSenarioToppingConfigsRealTime();
1627                    }
1628                }
1629            }
1630            this.calcSelectedDishTotal();
1631        });
1632    }
1633    /**
1634     * Oldfunction modified to use scenario object instead of indexes
1635     * @param evt select event
1636     * @param sc scenario object
1637     */
1638    selectTopingOp2(evt, sc) {
1639        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1640            // console.log('hereeee', evt);
1641            // console.log('sc : ' , sc);
1642            let s = this.selectedDish.size_index;
1643            let toping = [];
1644            let found = false;
1645            //check this optional group exist in the selected array, if remove it or add
1646            // let tt_each = [];
1647            // if (this.selectedDish.fullDishInfo.is_size == 'true') {
1648            //   tt_each = sc.topings;
1649            // } else {
1650            //   tt_each = sc.topings;
1651            // }
1652            let tt_each = sc.topings;
1653            let type = 'checkbox';
1654            if (typeof evt.detail.checked === 'undefined') {
1655                type = 'dropdown';
1656            }
1657            // console.log('tt_each : ' , tt_each);
1658            for (let findex = 0; findex < tt_each.length; findex++) {
1659                if (type == 'dropdown') {
1660                    let top_id = tt_each[findex].id;
1661                    for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1662                        // console.log('found val', this.selectedDish.selectedTopings[index].topping_id);
1663                        if (top_id == this.selectedDish.selectedTopings[index].topping_id) {
1664                            //exist and remove 
1665                            // console.log('found and removed');
1666                            this.selectedDish.selectedTopings.splice(index, 1);
1667                            found = true;
1668                        }
1669                    }
1670                }
1671                if (tt_each[findex].id == evt.detail.value) {
1672                    if (this.selectedDish.fullDishInfo.is_size == 'true') {
1673                        toping = sc.topings[findex];
1674                    }
1675                    else {
1676                        toping = sc.topings[findex];
1677                    }
1678                }
1679            }
1680            if (!evt.detail.checked) {
1681                //remove toping
1682                for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1683                    if (evt.detail.value == this.selectedDish.selectedTopings[index].topping_id) {
1684                        //exist and remove 
1685                        this.selectedDish.selectedTopings.splice(index, 1);
1686                        found = true;
1687                    }
1688                }
1689                // console.log('selected topings : ' , this.selectedDish.selectedTopings);
1690            }
1691            if (evt.detail.checked || type == 'dropdown') {
1692                let top = [];
1693                top['topping_id'] = toping['id'];
1694                top['count'] = 1;
1695                top['price'] = toping[this.appObject.selectedDeliveryMethod];
1696                //for future use
1697                top['delivery'] = toping['delivery'];
1698                top['pickup'] = toping['pickup'];
1699                top['dine_in'] = toping['dine_in'];
1700                top['name'] = toping['name'];
1701                //end for future use
1702                // console.log('top : ' , top);
1703                // if(top['price'] > 0){
1704                //   top['total'] = top['count'] * top['price'];
1705                // }else{
1706                //   top['total'] = 0;
1707                // }
1708                top['total'] = (top['count'] > 0 && top['price'] > 0) ? top['count'] * top['price'] : 0;
1709                // console.log('top[topping_id] : ' , toping);
1710                this.selectedDish.selectedTopings.push({
1711                    'topping_id': top['topping_id'],
1712                    'count': top['count'],
1713                    'price': top['price'],
1714                    'delivery': top['delivery'],
1715                    'pickup': top['pickup'],
1716                    'dine_in': top['dine_in'],
1717                    'total': top['total'],
1718                    'name': top['name'],
1719                    'senario_position': sc.position,
1720                    'topping_position': toping['position'],
1721                    'topping_tax': sc.toppingTax,
1722                });
1723                this.selectedDish.selectedTopings.sort((a, b) => {
1724                    // return +(a['senario_position'] + '' + a['topping_position']) - +(b['senario_position'] + '' + b['topping_position']);
1725                    if (a.senario_position === b.senario_position) {
1726                        return a.topping_position - b.topping_position;
1727                    }
1728                    return a.senario_position - b.senario_position;
1729                });
1730            }
1731            // console.log('selected', this.selectedDish.selectedTopings);
1732            this.calcSelectedDishTotal();
1733        });
1734    }
1735    selectTopingOp(evt, sc) {
1736        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1737            // console.log('hereeee', evt);
1738            let s = this.selectedDish.size_index;
1739            let toping = [];
1740            let found = false;
1741            //check this optional group exist in the selected array, if remove it or add
1742            let tt_each = [];
1743            if (this.selectedDish.fullDishInfo.is_size == 'true') {
1744                tt_each = this.selectedDish.fullDishInfo.sizes[s].scenarios[sc].topings;
1745            }
1746            else {
1747                tt_each = this.selectedDish.fullDishInfo.scenarios[sc].topings;
1748            }
1749            let type = 'checkbox';
1750            if (typeof evt.detail.checked === 'undefined') {
1751                type = 'dropdown';
1752            }
1753            for (let findex = 0; findex < tt_each.length; findex++) {
1754                if (type == 'dropdown') {
1755                    let top_id = tt_each[findex].id;
1756                    for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1757                        // console.log('found val', this.selectedDish.selectedTopings[index].topping_id);
1758                        if (top_id == this.selectedDish.selectedTopings[index].topping_id) {
1759                            //exist and remove 
1760                            // console.log('found and removed');
1761                            this.selectedDish.selectedTopings.splice(index, 1);
1762                            found = true;
1763                        }
1764                    }
1765                }
1766                if (tt_each[findex].id == evt.detail.value) {
1767                    if (this.selectedDish.fullDishInfo.is_size == 'true') {
1768                        toping = this.selectedDish.fullDishInfo.sizes[s].scenarios[sc].topings[findex];
1769                    }
1770                    else {
1771                        toping = this.selectedDish.fullDishInfo.scenarios[sc].topings[findex];
1772                    }
1773                }
1774            }
1775            if (!evt.detail.checked) {
1776                //remove toping
1777                for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1778                    if (evt.detail.value == this.selectedDish.selectedTopings[index].topping_id) {
1779                        //exist and remove 
1780                        this.selectedDish.selectedTopings.splice(index, 1);
1781                        found = true;
1782                    }
1783                }
1784            }
1785            if (evt.detail.checked || type == 'dropdown') {
1786                let top = [];
1787                top['topping_id'] = toping['id'];
1788                top['count'] = 1;
1789                top['price'] = toping[this.appObject.selectedDeliveryMethod];
1790                //for future use
1791                top['delivery'] = toping['delivery'];
1792                top['pickup'] = toping['pickup'];
1793                top['dine_in'] = toping['dine_in'];
1794                top['name'] = toping['name'];
1795                //end for future use
1796                this.selectedDish.selectedTopings.push({
1797                    'topping_id': top['topping_id'],
1798                    'count': top['count'],
1799                    'price': top['price'],
1800                    'delivery': top['delivery'],
1801                    'pickup': top['pickup'],
1802                    'dine_in': top['dine_in'],
1803                    'total': top['total'],
1804                    'name': top['name'],
1805                    'senario_position': sc.position,
1806                    'topping_position': toping['position'],
1807                    'topping_tax': sc.toppingTax,
1808                });
1809                this.selectedDish.selectedTopings.sort((a, b) => {
1810                    // return +(a['senario_position'] + '' + a['topping_position']) - +(b['senario_position'] + '' + b['topping_position']);
1811                    if (a.senario_position === b.senario_position) {
1812                        return a.topping_position - b.topping_position;
1813                    }
1814                    return a.senario_position - b.senario_position;
1815                });
1816            }
1817            // console.log('selected', this.selectedDish.selectedTopings);
1818            this.calcSelectedDishTotal();
1819        });
1820    }
1821    /**
1822     * COPIED FROM TOPPINGS PAGE by Pumayk26 at 2024-04-23 in order to fix an issue with topping select lists
1823   * Will return status active topping list
1824   * @param toppingList topping list to filter from
1825   * @returns filtered topping list that status is active
1826   */
1827    getActiveToppings(toppingList) {
1828        if (toppingList && toppingList.length) {
1829            return toppingList.filter((topping) => {
1830                return topping.status === 'true';
1831            });
1832        }
1833        else {
1834            return [];
1835        }
1836    }
1837    selectTopingAddon(evt, toping, sc, t) {
1838        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1839            // console.log('aaa:', sc);
1840            let s = this.selectedDish.size_index;
1841            // get only active toppings of the senario coz in the topping select list index get from the active toppings
1842            // the "t" (topping index) is not compatible with "sc.topings" array
1843            let activeToppings = this.getActiveToppings(sc.topings);
1844            if ((this.selectedDish.fullDishInfo.is_size == 'true' && (typeof activeToppings[t].checked === 'undefined' ||
1845                !activeToppings[t].checked))
1846                ||
1847                    (this.selectedDish.fullDishInfo.is_customise == 'true' && (typeof activeToppings[t].checked === 'undefined' ||
1848                        !activeToppings[t].checked))) {
1849                //add toping
1850                let found = false;
1851                for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1852                    if (toping.id == this.selectedDish.selectedTopings[index].topping_id) {
1853                        found = true;
1854                    }
1855                }
1856                if (!found) {
1857                    let top = [];
1858                    top['topping_id'] = toping.id;
1859                    top['count'] = 1;
1860                    top['price'] = toping[this.appObject.selectedDeliveryMethod];
1861                    //for future use
1862                    top['delivery'] = toping['delivery'];
1863                    top['pickup'] = toping['pickup'];
1864                    top['dine_in'] = toping['dine_in'];
1865                    top['name'] = toping['name'];
1866                    //end for future use
1867                    top['total'] = top['count'] * top['price'];
1868                    if (this.selectedDish.fullDishInfo.is_size == 'true') {
1869                        activeToppings[t].checked = true;
1870                    }
1871                    else {
1872                        activeToppings[t].checked = true;
1873                    }
1874                    toping.count_selected = 1;
1875                    this.selectedDish.selectedTopings.push({
1876                        'topping_id': top['topping_id'],
1877                        'count': top['count'],
1878                        'price': top['price'],
1879                        'delivery': top['delivery'],
1880                        'pickup': top['pickup'],
1881                        'dine_in': top['dine_in'],
1882                        'total': top['total'],
1883                        'name': top['name'],
1884                        'senario_position': sc.position,
1885                        'topping_position': toping.position,
1886                        'topping_tax': sc.toppingTax,
1887                    });
1888                    this.selectedDish.selectedTopings.sort((a, b) => {
1889                        // return +(a['senario_position'] + '' + a['topping_position']) - +(b['senario_position'] + '' + b['topping_position']);
1890                        if (a.senario_position === b.senario_position) {
1891                            return a.topping_position - b.topping_position;
1892                        }
1893                        return a.senario_position - b.senario_position;
1894                    });
1895                    // console.log('ads : ' , ads);
1896                }
1897            }
1898            else {
1899                //remove toping
1900                for (let index = 0; index < this.selectedDish.selectedTopings.length; index++) {
1901                    if (toping.id == this.selectedDish.selectedTopings[index].topping_id) {
1902                        //delete
1903                        this.selectedDish.selectedTopings.splice(index, 1);
1904                        if (this.selectedDish.fullDishInfo.is_size == 'true') {
1905                            activeToppings[t].checked = false;
1906                        }
1907                        else {
1908                            activeToppings[t].checked = false;
1909                        }
1910                    }
1911                }
1912            }
1913            this.validateDishSenarioToppingConfigsRealTime();
1914            this.calcSelectedDishTotal();
1915        });
1916    }
1917    topingPopupOpen(dish, isFromCrossSelling = false) {
1918        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1919            dish.progressing = true;
1920            if (dish.is_size == 'true') {
1921                this.selectedDish.size_id = dish.sizes[0].id;
1922            }
1923            else {
1924                this.selectedDish.size_id = null;
1925            }
1926            this.selectedDish.selectedTopings = [];
1927            this.selectedDish.fullDishInfo = JSON.parse(JSON.stringify(dish));
1928            // if selected restaurant settings avoid size auto select is enabled then dont set a size index
1929            if (this.appObject.selectedRestaurantDetails.is_size_auto_select === 'true') {
1930                this.selectedDish.size_index = null;
1931                // make the price of selected dish to 0, otherwise the add to cart button price 
1932                // will display the previously selected dish total value
1933                // bug fixed 2023-01-21 by Pumayk26
1934                this.selectedDish.total = 0;
1935            }
1936            else
1937                this.selectedDish.size_index = 0;
1938            if (this.selectedDish.size_index !== null)
1939                this.calcSelectedDishTotal();
1940            if (!this.isWebVersion) {
1941                const modal = yield this.modalController.create({
1942                    component: _views_modals_toppings_toppings_page__WEBPACK_IMPORTED_MODULE_8__.ToppingsPage,
1943                    cssClass: 'custom-popup',
1944                    componentProps: {
1945                        'isFromCrossSelling': isFromCrossSelling
1946                    }
1947                });
1948                yield modal.present();
1949            }
1950            else {
1951                const modal = yield this.modalController.create({
1952                    component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_12__.ModalPopoverPage,
1953                    componentProps: {
1954                        'type': this.POPOVER_TYPES.TOPPINGS.TYPE,
1955                        'title': dish.name,
1956                        'isFromCrossSelling': isFromCrossSelling
1957                    }
1958                });
1959                yield modal.present();
1960                modal.onDidDismiss().then((data) => {
1961                    dish.progressing = false;
1962                });
1963            }
1964        });
1965    }
1966    showAlert(type, title = (type === 'success' ? 'Success' : 'Error'), message, autoClose = true) {
1967        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1968            const modal = yield this.modalController.create({
1969                component: _views_modals_alert_alert_page__WEBPACK_IMPORTED_MODULE_11__.AlertPage,
1970                cssClass: 'custom-popup',
1971                componentProps: {
1972                    'type': type,
1973                    'message': message,
1974                    'autoClose': autoClose,
1975                    'title': title
1976                }
1977            });
1978            yield modal.present();
1979        });
1980    }
1981    setDeliveryMethod(method, orderProcess = false) {
1982        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
1983            this.appObject.selectedDeliveryMethod = method;
1984            if (method == 'delivery') {
1985                if (orderProcess) {
1986                    this.router.navigate(['find-near-by-me'], {
1987                        queryParams: {
1988                            isOrderProcess: orderProcess
1989                        }
1990                    });
1991                }
1992                else {
1993                    this.router.navigate(['find-near-by-me']);
1994                }
1995            }
1996            else {
1997                if (orderProcess) {
1998                    yield this.calculateCartAmounts();
1999                    yield this.updateAppObject();
2000                    this.routeToSelectedRestaurant();
2001                }
2002                else {
2003                    this.router.navigate(['restaurant-list']);
2004                }
2005            }
2006        });
2007    }
2008    loginOrCheckout() {
2009        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
2010            yield this.calculateCartAmounts();
2011            yield this.updateAppObject();
2012            if (this.appObject.isAuthed) {
2013                this.router.navigateByUrl('checkout');
2014            }
2015            else {
2016                this.router.navigate(['login'], {
2017                    queryParams: {
2018                        isOrderProcess: true
2019                    }
2020                });
2021            }
2022        });
2023    }
2024    calculateCartAmountsV2() {
2025        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
2026            return new Promise((resolve, reject) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
2027                var _a, _b, _c, _d, _e, _f, _g, _h;
2028                let dishTotalTaxExclusive = 0;
2029                let dishTotalTaxInclusive = 0;
2030                let dishNetTotal = 0;
2031                let dishNetTotalWithDiscount = 0;
2032                let dishNetTotalWithoutTax = 0;
2033                let dishTotalDiscount = 0;
2034                let totalDishCount = 0;
2035                let deliveryTaxInclusive = 0;
2036                let deliveryTaxExclusive = 0;
2037                // ------- Topping tax feature
2038                // _v2 variables added with topping tax feature
2039                let dishTotalDiscount_v2 = 0;
2040                let dishToppingTotalDiscount_v2 = 0;
2041                let dishNetTotal_v2 = 0;
2042                let dishToppingNetTotal_v2 = 0;
2043                let dishTotalTaxExclusive_v2 = 0;
2044                let dishTotalTaxInclusive_v2 = 0;
2045                let dishToppingTotalTaxExclusive_v2 = 0;
2046                let dishToppingTotalTaxInclusive_v2 = 0;
2047                let orderDeliveryTaxExclusive_v2 = 0;
2048                let orderDeliveryTaxInclusive_v2 = 0;
2049                // ------- 
2050                let orderMainDiscountOb = null;
2051                // will check this value with restaurant min order amount 
2052                let totalForMinOrderAmount = 0;
2053                // these deliveryTaxHelper is to calculate tax for the delivery cost
2054                // will be used in few places,
2055                // the new way to calculate this delivery tax is as below,
2056                // Find the most valuable item in the cart (x cost 10 and qty is 1, y cost 5 and qty is 3, so the most valuble one is y because qty is 3 and it cost 15 so we take the tax of dish y)
2057                let deliveryCostAvailable = false;
2058                if (((_c = (_b = (_a = this.appObject) === null || _a === void 0 ? void 0 : _a.orderObject) === null || _b === void 0 ? void 0 : _b.cart_summery) === null || _c === void 0 ? void 0 : _c.delivery_cost) > 0)
2059                    deliveryCostAvailable = true;
2060                let deliveryTaxHelper = {
2061                    maximumAmountDish: null,
2062                    tax: null,
2063                    deliveryTax: 0
2064                };
2065                // get order taxes array filled up
2066                // we need all taxes in dishes as a summary
2067                // all 7% included, all 7% excluded like that
2068                let taxes = [];
2069                let taxes_v2 = [];
2070                if (((_e = (_d = this.appObject) === null || _d === void 0 ? void 0 : _d.orderObject) === null || _e === void 0 ? void 0 : _e.cart.length) > 0) {
2071                    let dailySpecialAvailability = this.checkDailySpecialDiscountEligibility([...this.appObject.orderObject.cart]);
2072                    for (let index = 0; index < this.appObject.orderObject.cart.length; index++) {
2073                        let dish = this.appObject.orderObject.cart[index];
2074                        // _v2 variables added with topping tax feature
2075                        dish.net_total_v2 = 0;
2076                        dish.net_topping_total_v2 = 0;
2077                        dish.discounted_amount_v2 = 0;
2078                        dish.total_discount_v2 = 0;
2079                        // findout dish category for future uses 
2080                        let dishesCategory = this.selectedRestaurantCategories.categories.find((category) => category.id === this.appObject.orderObjectDup.cart[index].menu_categories_id.id);
2081                        // check dishes are available for current ordering type
2082                        dish.not_available = false;
2083                        if (dishesCategory && dishesCategory['disabled_for_' + this.appObject.selectedDeliveryMethod] === 'true')
2084                            dish.not_available = true;
2085                        // clear previously calculated data
2086                        dish.discount = [];
2087                        dish.total_discount = 0;
2088                        dish.tax = [];
2089                        dish.tax_v2 = [];
2090                        // total dish count of the order
2091                        totalDishCount += dish.count;
2092                        // calculate basic dish amounts
2093                        if (this.appObject.orderObjectDup.cart[index].is_customise == 'false' && this.appObject.orderObjectDup.cart[index].is_size == 'false') {
2094                            dish.dish_price = this.appObject.orderObjectDup.cart[index][this.appObject.selectedDeliveryMethod];
2095                            dish.total = dish.dish_price;
2096                            dish.net_total = dish.dish_price * dish.count;
2097                            // for topping tax
2098                            dish.net_total_v2 = dish.dish_price * dish.count;
2099                        }
2100                        // calculations for toppings / if the dish is customizable
2101                        if (this.appObject.orderObjectDup.cart[index].is_customise == 'true' && dish.size_info) {
2102                            dish.dish_price = this.appObject.orderObjectDup.cart[index][this.appObject.selectedDeliveryMethod];
2103                            //TOPING FOREACH // Topping calculatons 
2104                            let sctoping_total = 0;
2105                            for (let stindex = 0; stindex < dish.size_info.topping_info.length; stindex++) {
2106                                dish.size_info.topping_info[stindex]['price'] = dish.size_info.topping_info[stindex][this.appObject.selectedDeliveryMethod];
2107                                dish.size_info.topping_info[stindex]['total'] = dish.size_info.topping_info[stindex]['price'] * dish.size_info.topping_info[stindex]['count'];
2108                                sctoping_total += dish.size_info.topping_info[stindex]['total'];
2109                            }
2110                            dish['topping_price'] = sctoping_total;
2111                            dish['total'] = dish['dish_price'] + dish['topping_price'];
2112                            dish.net_total = dish.total * dish['count'];
2113                            // for topping tax
2114                            dish.net_topping_total_v2 += sctoping_total;
2115                            dish.net_total_v2 = dish.dish_price * dish['count'];
2116                        }
2117                        // Check if the dish has sizes enabled, diffrent sizes has diffrent prices..
2118                        // sizes calculations goes here
2119                        if (this.appObject.orderObjectDup.cart[index].is_size == 'true') {
2120                            //for each to find correct size values
2121                            for (let sindex = 0; sindex < this.appObject.orderObjectDup.cart[index].sizes.length; sindex++) {
2122                                if (dish.size_info && dish.size_info.size_id == this.appObject.orderObjectDup.cart[index].sizes[sindex].id) {
2123                                    //this is correct size
2124                                    //re get size value
2125                                    dish['dish_price'] = this.appObject.orderObjectDup.cart[index].sizes[sindex][this.appObject.selectedDeliveryMethod];
2126                                    //TOPING FOREACH
2127                                    let toping_total = 0;
2128                                    for (let stindex = 0; stindex < dish.size_info.topping_info.length; stindex++) {
2129                                        dish.size_info.topping_info[stindex]['price'] = dish.size_info.topping_info[stindex][this.appObject.selectedDeliveryMethod];
2130                                        dish.size_info.topping_info[stindex]['total'] = dish.size_info.topping_info[stindex]['price'] * dish.size_info.topping_info[stindex]['count'];
2131                                        toping_total += dish.size_info.topping_info[stindex]['total'];
2132                                    }
2133                                    //END TOPING
2134                                    dish['topping_price'] = toping_total;
2135                                    dish['total'] = dish['dish_price'] + dish['topping_price'];
2136                                    dish['net_total'] = dish['total'] * dish['count'];
2137                                    // for topping tax
2138                                    dish.net_total_v2 = dish.dish_price * dish['count'];
2139                                    dish.net_topping_total_v2 += toping_total;
2140                                }
2141                            }
2142                        }
2143                        dish.total_discount = 0;
2144                        // as the default discounted amount
2145                        dish.discounted_amount = dish.net_total;
2146                        let minOrderTotalClaAmountForThisDish = 0;
2147                        let finalDishNetTotalWithDiscount = 0;
2148                        // calculate discounts, if dish category has discounts enabled
2149                        if (dishesCategory && dishesCategory.discounts_disabled !== 'true') {
2150                            // only one discount can be applied for an order, so to check that use this variable
2151                            let appliedAnyDiscount = false;
2152                            /*if (this.appObject.selectedCoupon.length) {
2153                              // oscoup['discount_id'] = this.appObject.selectedCoupon[0].id;
2154                              // oscoup['amount'] = this.appObject.selectedCoupon[0].amount;
2155                              // oscoup['type'] = this.appObject.selectedCoupon[0].apply_as;
2156                              // oscoup['coupon_code'] = this.appObject.selectedCoupon[0].coupon_code;
2157                              // oscoup['name'] =
2158                
2159                              let disc = [];
2160                              disc['discount_id'] = this.appObject.selectedCoupon[0].id;
2161                              disc['amount'] = this.appObject.selectedCoupon[0].amount;
2162                              disc['type'] = this.appObject.selectedCoupon[0].apply_as;
2163                              disc['name'] = this.appObject.selectedCoupon[0].title;
2164                              disc['coupon'] = this.appObject.selectedCoupon[0].coupon_code;
2165                
2166                
2167                              // let discountCalculations = await this.getDiscount(dish.gross_total, disc['type'], disc['amount']);
2168                              let discountCalculations = await this.getDiscount(dish.net_total, disc['type'], disc['amount']);
2169                
2170                              if (disc['type'] == "fixed") {
2171                                discountCalculations['dis_amoount'] = discountCalculations['dis_amoount'] * dish['count'];
2172                              }
2173                
2174                              dish.discounted_amount = dish.net_total - discountCalculations['dis_amoount'];
2175                
2176                              // dishNetTotalWithDiscount += dis
2176h.discounted_amount;
2177                              finalDishNetTotalWithDiscount = dish.discounted_amount;
2178                
2179                              // if the menu category has excluded from getting calculated for min order amount, this won't calculate for min order amount check
2180                              // if (dishesCategory.exclude_min_order_amount_cal !== 'true') totalForMinOrderAmount += dish.discounted_amount;
2181                              minOrderTotalClaAmountForThisDish = dish.discounted_amount;
2182                
2183                              disc['discount_amount'] = discountCalculations['dis_amoount'];
2184                
2185                              dish.total_discount += discountCalculations['dis_amoount'];
2186                              dishTotalDiscount += discountCalculations['dis_amoount'];
2187                              dish.discount.push({
2188                                'discount_id': disc['discount_id'],
2189                                'amount': disc['amount'],
2190                                'type': disc['type'],
2191                                'name': disc['name'],
2192                                'discount_amount': disc['discount_amount'],
2193                                'coupon': disc['coupon']
2194                              });
2195                
2196                              appliedAnyDiscount = true;
2197                
2198                            }*/
2199                            // 1st Discounts available for menu category
2200                            if (!appliedAnyDiscount && ((_g = (_f = this.appObject.orderObjectDup.cart[index]) === null || _f === void 0 ? void 0 : _f.discounts) === null || _g === void 0 ? void 0 : _g.length) > 0) {
2201                                for (let dindex = 0; dindex < this.appObject.orderObjectDup.cart[index].discounts.length; dindex++) {
2202                                    if (this.appObject.orderObjectDup.cart[index].discounts[dindex].apply_platform == 'both' || this.appObject.orderObjectDup.cart[index].discounts[dindex].apply_platform == config.plf) {
2203                                        let disc = [];
2204                                        disc['discount_id'] = this.appObject.orderObjectDup.cart[index].discounts[dindex].id;
2205                                        disc['amount'] = this.appObject.orderObjectDup.cart[index].discounts[dindex].amount;
2206                                        disc['type'] = this.appObject.orderObjectDup.cart[index].discounts[dindex].apply_as;
2207                                        disc['name'] = this.appObject.orderObjectDup.cart[index].discounts[dindex].title;
2208                                        // let discountCalculations = await this.getDiscount(dish.gross_total, disc['type'], disc['amount']);
2209                                        let discountCalculations = yield this.getDiscount(dish.net_total, disc['type'], disc['amount']);
2210                                        if (disc['type'] == "fixed") {
2211                                            discountCalculations['dis_amoount'] = discountCalculations['dis_amoount'] * dish['count'];
2212                                        }
2213                                        // implemented v2 with topping tax calculation feature
2214                                        let discountCalculations_v2 = yield this.getDiscount(dish.net_total_v2, disc['type'], disc['amount']);
2215                                        dish.discounted_amount_v2 = dish.net_total_v2 - discountCalculations_v2['dis_amoount'];
2216                                        dishTotalDiscount_v2 += discountCalculations_v2['dis_amoount'];
2217                                        dish.total_discount_v2 += discountCalculations_v2['dis_amoount'];
2218                                        // ------
2219                                        dish.discounted_amount = dish.net_total - discountCalculations['dis_amoount'];
2220                                        // dishNetTotalWithDiscount += dis
2220h.discounted_amount;
2221                                        finalDishNetTotalWithDiscount = dish.discounted_amount;
2222                                        // if the menu category has excluded from getting calculated for min order amount, this won't calculate for min order amount check
2223                                        // if (dishesCategory.exclude_min_order_amount_cal !== 'true') totalForMinOrderAmount += dish.discounted_amount;
2224                                        minOrderTotalClaAmountForThisDish = dish.discounted_amount;
2225                                        disc['discount_amount'] = discountCalculations['dis_amoount'];
2226                                        dish.total_discount += discountCalculations['dis_amoount'];
2227                                        dishTotalDiscount += discountCalculations['dis_amoount'];
2228                                        dish.discount.push({
2229                                            'discount_id': disc['discount_id'],
2230                                            'amount': disc['amount'],
2231                                            'type': disc['type'],
2232                                            'name': disc['name'],
2233                                            'discount_amount': disc['discount_amount']
2234                                        });
2235                                        appliedAnyDiscount = true;
2236                                    }
2237                                    else {
2238                                        minOrderTotalClaAmountForThisDish = dish.net_total;
2239                                        finalDishNetTotalWithDiscount = dish.net_total;
2240                                    }
2241                                }
2242                            }
2243                            // daily special discounts
2244                            if (!appliedAnyDiscount && this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.discountRestaurant && this.appObject.selectedRestaurantDetails.discountRestaurant.isActive && this.appObject.selectedRestaurantDetails.discountRestaurant.isActive == "true") {
2245                                let apply = dailySpecialAvailability.apply;
2246                                let amount = dailySpecialAvailability.amount;
2247                                // console.log('amount : ' , amount && apply , ' | ' , amount);
2248                                if (amount > 0 && apply) {
2249                                    //check is reached minimum details
2250                                    // if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.discountRestaurant.minimumDishes <= totalDishCount && dish.net_total >= this.appObject.selectedRestaurantDetails.discountRestaurant.minimumAmount) {
2251                                    if (dailySpecialAvailability.eligible) {
2252                                        let olddis = [];
2253                                        olddis['amount'] = amount;
2254                                        olddis['type'] = 'percentage';
2255                                        olddis['name'] = this.appObject.selectedRestaurantDetails.discountRestaurant.displayText;
2256                                        let ldiscountCalculations = yield this.getDiscount(dish.net_total, olddis['type'], olddis['amount']);
2257                                        olddis['discount_amount'] = ldiscountCalculations['dis_amoount'];
2258                                        // console.log('Toda : ' , olddis);
2259                                        // _ototal_discount += olddis['discount_amount'];
2260                                        dish.total_discount += olddis['discount_amount'];
2261                                        dishTotalDiscount += olddis['discount_amount'];
2262                                        dish.discounted_amount = dish.net_total - olddis['discount_amount'];
2263                                        // implemented v2 with topping tax calculation feature
2264                                        let discountCalculations_v2 = yield this.getDiscount(dish.net_total_v2, olddis['type'], olddis['amount']);
2265                                        dish.discounted_amount_v2 = dish.net_total_v2 - discountCalculations_v2['dis_amoount'];
2266                                        dishTotalDiscount_v2 += discountCalculations_v2['dis_amoount'];
2267                                        dish.total_discount_v2 += discountCalculations_v2['dis_amoount'];
2268                                        // ------
2269                                        // dishNetTotalWithDiscount += dis
2269h.discounted_amount;
2270                                        finalDishNetTotalWithDiscount = dish.discounted_amount;
2271                                        // if the menu category has excluded from getting calculated for min order amount, this won't calculate for min order amount check
2272                                        // if (dishesCategory.exclude_min_order_amount_cal !== 'true') totalForMinOrderAmount += dish.discounted_amount;
2273                                        minOrderTotalClaAmountForThisDish = dish.discounted_amount;
2274                                        // this.appObject.orderObject.discounts.push({
2275                                        //   'amount': olddis['amount'],
2276                                        //   'type': olddis['type'],
2277                                        //   'name': olddis['name'],
2278                                        //   'discount_amount': olddis['discount_amount']
2279                                        // });
2280                                        let discount = {
2281                                            'amount': olddis['amount'],
2282                                            'type': olddis['type'],
2283                                            'name': olddis['name'],
2284                                            'discount_amount': olddis['discount_amount'],
2285                                            'is_daily_discount': 'true'
2286                                        };
2287                                        dish.discount.push(discount);
2288                                        orderMainDiscountOb = discount;
2289                                        appliedAnyDiscount = true;
2290                                    }
2291                                    else {
2292                                        // if the menu category has excluded from getting calculated for min order amount, this won't calculate for min order amount check
2293                                        // if (dishesCategory.exclude_min_order_amount_cal !== 'true') totalForMinOrderAmount += dish.net_total;
2294                                        minOrderTotalClaAmountForThisDish = dish.net_total;
2295                                        finalDishNetTotalWithDiscount = dish.net_total;
2296                                    }
2297                                }
2298                            }
2299                            // calculate restaurant anytime discounts for the item
2300                            if (!appliedAnyDiscount) {
2301                                let delm = 'deliver';
2302                                switch (this.appObject.selectedDeliveryMethod) {
2303                                    case 'pickup':
2304                                        delm = 'pickup';
2305                                        break;
2306                                    case 'dine_in':
2307                                        delm = 'dinein';
2308                                        break;
2309                                }
2310                                if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails[delm + '_discount']) {
2311                                    let oddis = [];
2312                                    oddis['amount'] = this.appObject.selectedRestaurantDetails[delm + '_discount'];
2313                                    oddis['type'] = 'percentage';
2314                                    oddis['name'] = 'anytime ' + oddis['amount'] + '%';
2315                                    let discountCalculations = yield this.getDiscount(dish.net_total, oddis['type'], oddis['amount']);
2316                                    dishTotalDiscount += discountCalculations['dis_amoount'];
2317                                    dish.discounted_amount = dish.net_total - discountCalculations['dis_amoount'];
2318                                    dish.total_discount = discountCalculations['dis_amoount'];
2319                                    // dishNetTotalWithDiscount += dis
2319h.discounted_amount;
2320                                    finalDishNetTotalWithDiscount = dish.discounted_amount;
2321                                    // if the menu category has excluded from getting calculated for min order amount, this won't calculate for min order amount check
2322                                    // if (dishesCategory.exclude_min_order_amount_cal !== 'true') totalForMinOrderAmount += dish.discounted_amount;
2323                                    minOrderTotalClaAmountForThisDish = dish.discounted_amount;
2324                                    // implemented v2 with topping tax calculation feature
2325                                    let discountCalculations_v2 = yield this.getDiscount(dish.net_total_v2, oddis['type'], oddis['amount']);
2326                                    dish.discounted_amount_v2 = dish.net_total_v2 - discountCalculations_v2['dis_amoount'];
2327                                    dishTotalDiscount_v2 += discountCalculations_v2['dis_amoount'];
2328                                    dish.total_discount_v2 = discountCalculations_v2['dis_amoount'];
2329                                    // ------
2330                                    // console.log('oddis : ' , oddis);
2331                                    dish.discount.push({
2332                                        'amount': oddis['amount'],
2333                                        'type': oddis['type'],
2334                                        'name': oddis['name'],
2335                                        'discount_amount': discountCalculations['dis_amoount'],
2336                                        'is_anytime_discount': 'true'
2337                                    });
2338                                    appliedAnyDiscount = true;
2339                                }
2340                                else {
2341                                    // if the menu category has excluded from getting calculated for min order amount, this won't calculate for min order amount check
2342                                    // if (dishesCategory.exclude_min_order_amount_cal !== 'true') totalForMinOrderAmount += dish.net_total;
2343                                    minOrderTotalClaAmountForThisDish = dish.net_total;
2344                                    // dishNetTotalWithDiscount += dis
2344h.net_total;
2345                                    finalDishNetTotalWithDiscount = dish.net_total;
2346                                }
2347                            }
2348                        }
2349                        else {
2350                            minOrderTotalClaAmountForThisDish = dish.net_total;
2351                            finalDishNetTotalWithDiscount = dish.net_total;
2352                        }
2353                        dishNetTotal += dish.net_total;
2354                        // for topping tax
2355                        dishNetTotal_v2 += dish.net_total_v2;
2356                        // multiply topping total by dish count
2357                        dishToppingNetTotal_v2 += dish.net_topping_total_v2 * dish.count;
2358                        // get final value and add it to dishNetTotalWithDiscount
2359                        dishNetTotalWithDiscount += finalDishNetTotalWithDiscount;
2360                        // add value for min order amount check value 
2361                        if (dishesCategory.exclude_min_order_amount_cal !== 'true')
2362                            totalForMinOrderAmount += minOrderTotalClaAmountForThisDish;
2363                        // calculate menu category tax for selected dish 
2364                        let taxOb = this.appObject.orderObjectDup.cart[index].tax ? this.appObject.orderObjectDup.cart[index].tax : null;
2365                        // console.log('this.appObject.orderObjectDup.cart[index]  : ' , this.appObject.orderObjectDup.cart[index]);
2366                        // get dish menu category id
2367                        if (dishesCategory)
2368                            dish.menu_category_id = dishesCategory.id;
2369                        if (dishesCategory && dishesCategory.tax && dishesCategory.categoryTaxDetails) {
2370                            taxOb = dishesCategory.categoryTaxDetails;
2371                            // delivery tax calculations
2372                            if (deliveryTaxHelper.maximumAmountDish < dish.net_total) {
2373                                deliveryTaxHelper.maximumAmountDish = dish.net_total;
2374                                deliveryTaxHelper.tax = taxOb;
2375                            }
2376                        }
2377                        dish.total_tax_exclusive = 0;
2378                        dish.total_tax_inclusive = 0;
2379                        // for topping tax
2380                        dish.total_topping_tax_exclusive_v2 = 0;
2381                        dish.total_topping_tax_inclusive_v2 = 0;
2382                        dish.topping_discounted_total_v2 = 0;
2383                        dish.total_topping_discount_v2 = 0;
2384                        // calculate the discounts and taxes for toppings
2385                        // this part of the code is realted with topping tax feature implementation
2386                        if (dish.size_info && dish.size_info && dish.size_info.topping_info) {
2387                            for (let tIndex = 0; tIndex < dish.size_info.topping_info.length; tIndex++) {
2388                                const topping = dish.size_info.topping_info[tIndex];
2389                                // assign total amount by default into discounted_price
2390                                topping.discounted_total = topping.total;
2391                                topping.discount_amount = 0;
2392                                // get the topping total amount by multiply from dish count
2393                                topping.total_v2 = topping.total * dish.count;
2394                                // if discounts available in the dish, apply them to toppings as well
2395                                // CONSIDER ONLY ONE DISCOUNT APPLIED TO THE DISH
2396                                if (dish.discount && dish.discount.length) {
2397                                    for (let tDIndex = 0; tDIndex < dish.discount.length; tDIndex++) {
2398                                        const tDiscount = dish.discount[tDIndex];
2399                                        let toppingDiscount = yield this.getDiscount(topping.total_v2, tDiscount['type'], tDiscount['amount']);
2400                                        if (toppingDiscount) {
2401                                            topping.discounted_total = topping.total_v2 - toppingDiscount['dis_amoount'];
2402                                            topping.discount_amount = toppingDiscount['dis_amoount'];
2403                                            dishToppingTotalDiscount_v2 += topping.discount_amount;
2404                                            dish.total_topping_discount_v2 += topping.discount_amount;
2405                                            // store discount details inside topping
2406                                            let discountOb = JSON.parse(JSON.stringify(tDiscount));
2407                                            delete discountOb.discount_amount;
2408                                            topping.discount_details = JSON.stringify(discountOb);
2409                                        }
2410                                    }
2411                                }
2412                                dish.topping_discounted_total_v2 += topping.discounted_total;
2413                                if (topping.topping_tax) {
2414                                    let toppingTax = yield this.getTax(topping.discounted_total, topping.topping_tax.type, topping.topping_tax.apply_as, topping.topping_tax[this.appObject.selectedDeliveryMethod]);
2415                                    if (topping.topping_tax['type'] == 'excluded') {
2416                                        dish.total_topping_tax_exclusive_v2 += toppingTax['tax_amoount'];
2417                                        dishTotalTaxExclusive_v2 += toppingTax['tax_amoount'];
2418                                        dishToppingTotalTaxExclusive_v2 += toppingTax['tax_amoount'];
2419                                    }
2420                                    else {
2421                                        dish.total_topping_tax_inclusive_v2 += toppingTax['tax_amoount'];
2422                                        dishTotalTaxInclusive_v2 += toppingTax['tax_amoount'];
2423                                        dishToppingTotalTaxInclusive_v2 += toppingTax['tax_amoount'];
2424                                    }
2425                                    topping.tax_amount = toppingTax['tax_amoount'];
2426                                    let foundExistingTax_v2 = taxes_v2.find((taxEx) => taxEx['tax_id'] === topping.topping_tax.id);
2427                                    // console.log(topping.topping_tax);
2428                                    if (foundExistingTax_v2) {
2429                                        foundExistingTax_v2['tax_amount_v2'] += toppingTax['tax_amoount'];
2430                                    }
2431                                    else {
2432                                        let tax = {};
2433                                        tax['tax_id'] = topping.topping_tax.id;
2434                                        tax['amount'] = topping.topping_tax[this.appObject.selectedDeliveryMethod];
2435                                        tax['type'] = topping.topping_tax.apply_as;
2436                                        tax['tax_type'] = topping.topping_tax.type;
2437                                        tax['name'] = topping.topping_tax.title;
2438                                        tax['tax_amount_v2'] = toppingTax['tax_amoount'];
2439                                        taxes_v2.push(tax);
2440                                    }
2441                                }
2442                            }
2443                        }
2444                        // ------
2445                        if (taxOb) {
2446                            let tax = {};
2447                            // I had to put this isArray condition
2448                            // I have no idea how this happend, but sometimes taxOb return as an array
2449                            // didn't notice in the last developments before 2023-04-25
2450                            // Applied by Pumayk26
2451                            if (Array.isArray(taxOb)) {
2452                                tax['tax_id'] = taxOb[0].id;
2453                                tax['amount'] = taxOb[0][this.appObject.selectedDeliveryMethod];
2454                                tax['type'] = taxOb[0].apply_as;
2455                                tax['tax_type'] = taxOb[0].type;
2456                                tax['name'] = taxOb[0].title;
2457                            }
2458                            else {
2459                                tax['tax_id'] = taxOb.id;
2460                                tax['amount'] = taxOb[this.appObject.selectedDeliveryMethod];
2461                                tax['type'] = taxOb.apply_as;
2462                                tax['tax_type'] = taxOb.type;
2463                                tax['name'] = taxOb.title;
2464                            }
2465                            // console.log('(dish.net_total - dish.total_discount) : ' , (dish.net_total - dish.total_discount));
2466                            let taxCalculations = yield this.getTax((dish.net_total - dish.total_discount), tax['tax_type'], tax['type'], tax['amount']);
2467                            if (tax['type'] == "fixed") {
2468                                taxCalculations['tax_amoount'] = taxCalculations['tax_amoount'] * dish['count'];
2469                            }
2470                            if (tax['tax_type'] == 'excluded') {
2471                                dish.total_tax_exclusive = taxCalculations['tax_amoount'];
2472                                dishTotalTaxExclusive += dish.total_tax_exclusive;
2473                            }
2474                            else {
2475                                dish.total_tax_inclusive = taxCalculations['tax_amoount'];
2476                                dishTotalTaxInclusive += dish.total_tax_inclusive;
2477                            }
2478                            tax['tax_amount'] = taxCalculations['tax_amoount'];
2479                            dish.tax.push({
2480                                'tax_id': tax['tax_id'],
2481                                'amount': tax['amount'],
2482                                'type': tax['type'],
2483                                'tax_type': tax['tax_type'],
2484                                'name': tax['tax_id'],
2485                                'tax_amount': tax['tax_amount']
2486                            });
2487                            ///------ START ---------- Calculate taxes _v2
2488                            // console.log('(dish.net_total_v2 - dish.total_discount_v2) : ' , (dish.net_total_v2 - dish.total_discount_v2));
2489                            let taxCalculations_v2 = yield this.getTax((dish.net_total_v2 - dish.total_discount_v2), tax['tax_type'], tax['type'], tax['amount']);
2490                            if (tax['type'] == "fixed") {
2491                                taxCalculations_v2['tax_amoount'] = taxCalculations_v2['tax_amoount'] * dish['count'];
2492                            }
2493                            dish.total_tax_exclusive_v2 = 0;
2494                            dish.total_tax_inclusive_v2 = 0;
2495                            dish.dish_total_tax_amount_v2 = 0;
2496                            if (tax['tax_type'] == 'excluded') {
2497                                dish.total_tax_exclusive_v2 = taxCalculations_v2['tax_amoount'];
2498                                dishTotalTaxExclusive_v2 += dish.total_tax_exclusive_v2;
2499                                dish.dish_total_tax_exclusive_amount_v2 = taxCalculations_v2['tax_amoount'];
2500                            }
2501                            else {
2502                                dish.total_tax_inclusive_v2 = taxCalculations_v2['tax_amoount'];
2503                                dish.dish_total_tax_inclusive_amount_v2 = taxCalculations_v2['tax_amoount'];
2504                                dishTotalTaxInclusive_v2 += dish.total_tax_inclusive_v2;
2505                            }
2506                            tax['tax_amount_v2'] = taxCalculations_v2['tax_amoount'];
2507                            dish.tax_v2.push({
2508                                'tax_id': tax['tax_id'],
2509                                'amount': tax['amount'],
2510                                'type': tax['type'],
2511                                'tax_type': tax['tax_type'],
2512                                'name': tax['tax_id'],
2513                                'tax_amount': tax['tax_amount_v2']
2514                            });
2515                            ///------ END ---------- Calculate taxes _v2
2516                            // gather tax information to calculate and check in the backend
2517                            let foundExistingTax = taxes.find((taxEx) => taxEx['tax_id'] === tax['tax_id']);
2518                            if (foundExistingTax) {
2519                                foundExistingTax['tax_amount'] += tax['tax_amount'];
2520                            }
2521                            else {
2522                                taxes.push(tax);
2523                            }
2524                            let foundExistingTax_v2 = taxes_v2.find((taxEx) => taxEx['tax_id'] === tax['tax_id']);
2525                            if (foundExistingTax_v2) {
2526                                foundExistingTax_v2['tax_amount_v2'] += tax['tax_amount_v2'];
2527                            }
2528                            else {
2529                                taxes_v2.push(tax);
2530                            }
2531                            // }
2532                            // console.log('dish : ', this.appObject.orderObject.cart[index]);
2533                            // console.log('Tax : ', this.appObject.orderObject.cart[index].tax);
2534                        }
2535                        dish.gross_without_tax_price = dish.discounted_amount - dish.total_tax_inclusive;
2536                        // console.log('dish.total_tax_inclusive :', dish.total_tax_inclusive);
2537                        // console.log('dish.total_tax_inclusive_v2 :', (dish.total_tax_inclusive_v2 + dish.total_topping_tax_inclusive_v2));
2538                        // console.log('Total Discounted Amount :', dish.discounted_amount_v2 + dish.topping_discounted_total_v2);
2539                        // console.log('Total Tax Inclusive :', dish.total_tax_inclusive_v2 + dish.total_topping_tax_inclusive_v2);
2540                        // for topping tax 
2541                        dish.gross_without_tax_price_v2 = dish.discounted_amount_v2 - dish.total_tax_inclusive_v2;
2542                        dish.gross_without_tax_price_topping_v2 = dish.topping_discounted_total_v2 - dish.total_topping_tax_inclusive_v2;
2543                        dish.gross_without_tax_price_v2 += dish.gross_without_tax_price_topping_v2;
2544                        // console.log('dish.gross_without_tax_price : ' , dish.gross_without_tax_price);
2545                        // console.log('dish.total_tax_inclusive : ' , dish.total_tax_inclusive);
2546                        // console.log('dish.total_tax_exclusive : ' , dish.total_tax_exclusive);
2547                        // dish.gross_total = dish.gross_without_tax_price + dish.total_tax_inclusive + dish.total_tax_exclusive;
2548                        dish.gross_total_with_discount = dish.discounted_amount; // dish.gross_total - this.appObject.orderObject.cart[index].total_discount;
2549                        dish.gross_total_with_discount_v2 = dish.discounted_amount_v2 + dish.topping_discounted_total_v2;
2550                        dish.gross_total = dish.gross_without_tax_price + dish.total_tax_inclusive + dish.total_tax_exclusive;
2551                        // for topping tax
2552                        dish.total_tax_exclusive_v2 += dish.total_topping_tax_exclusive_v2;
2553                        dish.total_tax_inclusive_v2 += dish.total_topping_tax_inclusive_v2;
2554                        dish.gross_total_v2 = dish.gross_without_tax_price_v2 + dish.total_tax_inclusive_v2 + dish.total_tax_exclusive_v2;
2555                        // this.appObject.orderObject.cart[index].gross_without_tax_price = this.appObject.orderObject.cart[index].net_total - this.appObject.orderObject.cart[index].total_tax_inclusive;
2556                        // this.appObject.orderObject.cart[index].gross_total = this.appObject.orderObject.cart[index].gross_without_tax_price + this.appObject.orderObject.cart[index].total_tax_inclusive + this.appObject.orderObject.cart[index].total_tax_exclusive;
2557                        dish.comment = !dish.comment ? "" : dish.comment;
2558                        // console.log('dish : ' , dish);
2559                    }
2560                }
2561                // order taxes
2562                this.appObject.orderObject.order_tax = taxes;
2563                this.appObject.orderObject.order_tax_v2 = taxes_v2;
2564                // calculate discount object again for all the order
2565                // this is anytime discounts, just to display in cart section
2566                if (orderMainDiscountOb)
2567                    this.appObject.orderObject.discounts = [orderMainDiscountOb];
2568                // let delm = 'deliver';
2569                // switch (this.appObject.selectedDeliveryMethod) {
2570                //   case 'pickup':
2571                //     delm = 'pickup';
2572                //     break;
2573                //   case 'dine_in':
2574                //     delm = 'dinein';
2575                //     break;
2576                // }
2577                // if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails[delm + '_discount']) {
2578                //   let oddis = [];
2579                //   oddis['amount'] = this.appObject.selectedRestaurantDetails[delm + '_discount'];
2580                //   oddis['type'] = 'percentage';
2581                //   oddis['name'] = 'anytime ' + oddis['amount'] + '%';
2582                //   let discountCalculations = await this.getDiscount(dishNetTotal, oddis['type'], oddis['amount']);
2583                //   oddis['discount_amount'] = discountCalculations['dis_amoount'];
2584                //   // dishTotalDiscount += oddis['discount_amount'];
2585                //   this.appObject.orderObject.discounts.push({
2586                //     'amount': oddis['amount'],
2587                //     'type': oddis['type'],
2588                //     'name': oddis['name'],
2589                //     'discount_amount': oddis['discount_amount']
2590                //   });
2591                // }
2592                // calculate delivery cost
2593                let delivery_cost = 0;
2594                //by distance
2595                let distance = Math.round(this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.distance_to_location ? this.appObject.selectedRestaurantDetails.distance_to_location : 0);
2596                if (distance == 0) {
2597                    distance = 1;
2598                }
2599                this.appObject.orderObject.cart_summery.min_amount = 0;
2600                if (this.appObject.selectedDeliveryMethod == 'delivery') {
2601                    // new IF came with postal code feature 
2602                    if (this.appObject.settings.is_postalcode === 'true') {
2603                        if (this.appObject.postalCodeDetails) {
2604                            let deliveryCost = this.appObject.postalCodeDetails.price.find((prices) => prices.restaurantId === this.appObject.selectedRestaurantDetails.id);
2605                            if (deliveryCost) {
2606                                // get selected restaurant refreshed postal code details
2607                                // let selectedRestaurantPostalDetails = JSON.parse(this.appObject.selectedRestaurantDetails.postal_code_details);
2608                                let selectedRestaurantPostalDetails = this.appObject.selectedRestaurantDetails.postal_code_details_v2;
2609                                if (selectedRestaurantPostalDetails) {
2610                                    // find selected postal code data in selected restaurant postal code details
2611                                    let postalCodeFound = selectedRestaurantPostalDetails.find((postal) => postal.code === this.appObject.postalCodeDetails.code && postal.name === this.appObject.postalCodeDetails.name);
2612                                    if (postalCodeFound) {
2613                                        // if found, then apply the latest changes to currently selected postal code details
2614                                        let postalChargesOfSelectedRestaurant = this.appObject.postalCodeDetails.price.find((postalCharges) => postalCharges.restaurantId === this.appObject.selectedRestaurantDetails.id);
2615                                        if (postalChargesOfSelectedRestaurant) {
2616                                            // apply latest postal code detail changes to selected postal code object
2617                                            // postalChargesOfSelectedRestaurant.cost = postalCodeFound.cost;
2618                                            // postalChargesOfSelectedRestaurant.minOrderAmount = postalCodeFound.min_order;
2619                                            let currentPrices = this.getGivenPostalCodeCurrentPriceAndMinAmount(postalChargesOfSelectedRestaurant, this.appObject.selectedTimeSlot);
2620                                            if (currentPrices.id)
2621                                                this.appObject.orderObject.selected_postal_code_slot_id = currentPrices.id;
2622                                            else
2623                                                this.appObject.orderObject.selected_postal_code_slot_id = null;
2624                                            // console.log('this.appObject.orderObject.selected_postal_code_slot_id :' ,this.appObject.orderObject.selected_postal_code_slot_id);
2625                                            postalChargesOfSelectedRestaurant.cost = currentPrices.cost;
2626                                            postalChargesOfSelectedRestaurant.minOrderAmount = currentPrices.min_order;
2627                                        }
2628                                    }
2629                                    else {
2630                                        // if there is no postal code details in restaurant postal code details as the selected one,
2631                                        // force user to start over the ordering process
2632                                        this.appObject.postalCodeDetails = null;
2633                                        this.appObject.selectedDeliveryMethod = 'pickup';
2634                                        yield this.updateAppObject();
2635                                        // show error message and redirect into home page
2636                                        this.showToast('Unable to validate postal area details, Please start over ordering process', 'danger');
2637                                        this.router.navigate(['home'], { replaceUrl: true, queryParams: { calculationFailed: true } });
2638                                        return resolve({ calculationFailed: true });
2639                                    }
2640                                    // console.log('postalCodeFound :' , postalCodeFound);
2641                                }
2642                                this.appObject.orderObject.cart_summery.min_amount = +deliveryCost.minOrderAmount;
2643                                delivery_cost = +deliveryCost.cost;
2644                            }
2645                            else {
2646                                console.log('something went wrong when finding delivery cost for selected restaurant');
2647                            }
2648                        }
2649                        else {
2650                            console.log('something went wrong when calculate delivery cost');
2651                        }
2652                    }
2653                    else {
2654                        // moved from outside of the IF, because this value only use when selected delivery method is 'delivery'
2655                        // let minOrderAmounts = JSON.parse(this.appObject.selectedRestaurantDetails.min_order_amounts);
2656                        // set 0 as default value 
2657                        this.appObject.orderObject.cart_summery.min_amount = 0;
2658                        if (this.appObject.selectedRestaurantDetails.delivery_charge_type == "fixed_amount") {
2659                            if (this.appObject.selectedRestaurantDetails.fixed_delivery_amount != null && this.appObject.selectedRestaurantDetails.fixed_delivery_amount_apply_as != null) {
2660                                let dcharge = yield this.getDeliveryCost(dishNetTotal, this.appObject.selectedRestaurantDetails.fixed_delivery_amount_apply_as, this.appObject.selectedRestaurantDetails.fixed_delivery_amount);
2661                                delivery_cost = yield this.getNumberValue(dcharge['del_amoount']);
2662                            }
2663                        }
2664                        else {
2665                            // OLD CODE
2666                            // let byDistance = JSON.parse(this.appObject.selectedRestaurantDetails.delivery_cost);
2667                            // if (byDistance.length >= distance) {
2668                            //   if (byDistance[distance - 1].cost) {
2669                            //     delivery_cost = await this.getNumberValue(byDistance[distance - 1].cost);
2670                            //   }
2671                            // }
2672                            // END OLD CODE
2673                            // console.log('delivery_cost_details : ', this.appObject.selectedRestaurantDetails.delivery_cost_details);
2674                            let currentTimeSlotData = this.getGivenTimeAndDistanceMinOrderAmountAndDeliveryCost(distance, this.appObject.selectedRestaurantDetails, this.appObject.selectedTimeSlot ? this.appObject.selectedTimeSlot : '');
2675                            // keep delivery time slot id, so we can do validations in backend
2676                            if (currentTimeSlotData && currentTimeSlotData.id)
2677                                this.appObject.orderObject.selected_delivery_time_slot_id = currentTimeSlotData.id;
2678                            e
2678lse
2679                                this.appObject.orderObject.selected_delivery_time_slot_id = null;
2680                            if (currentTimeSlotData) {
2681                                delivery_cost = yield this.getNumberValue(currentTimeSlotData.cost);
2682                                this.appObject.orderObject.cart_summery.min_amount = yield this.getNumberValue(currentTimeSlotData.min_order);
2683                            }
2684                            else {
2685                                // keep this console log 
2686                                console.log('There is no any available delivery time slots');
2687                                // there is no currently available time slots , so set 0
2688                                delivery_cost = 0;
2689                                this.appObject.orderObject.cart_summery.min_amount = 0;
2690                            }
2691                        }
2692                        // this.appObject.orderObject.cart_summery.min_amount = await this.getNumberValue(minOrderAmounts[distance - 1].amount);
2693                        if (Number.isNaN(this.appObject.orderObject.cart_summery.min_amount)) {
2694                            this.appObject.orderObject.cart_summery.min_amount = 0;
2695                        }
2696                    }
2697                    // set the delivery cost and minimum order amount 0, when there is no cart items
2698                    if (this.appObject.orderObject.cart && !this.appObject.orderObject.cart.length) {
2699                        delivery_cost = 0;
2700                        this.appObject.orderObject.cart_summery.min_amount = 0;
2701                    }
2702                    //check min order amount is reached
2703                    if (this.appObject.selectedRestaurantDetails.free_delivery_amount_status !== 'true' && this.appObject.selectedRestaurantDetails.is_free_delivery == 'true') {
2704                        if (this.appObject.orderObject.cart_summery.min_reached) {
2705                            delivery_cost = 0;
2706                        }
2707                    }
2708                    // new feature, this will overwrite above feature... Added new option to add minimum order amount for free delivery
2709                    if (this.appObject.selectedRestaurantDetails.free_delivery_amount_status && this.appObject.selectedRestaurantDetails.free_delivery_amount_status === 'true' && this.appObject.selectedRestaurantDetails.free_delivery_amount) {
2710                        if (this.appObject.selectedRestaurantDetails.free_delivery_amount <= totalForMinOrderAmount) {
2711                            // to display savings
2712                            this.appObject.orderObject.deliveryCostWas = delivery_cost;
2713                            delivery_cost = 0;
2714                            this.appObject.orderObject.specialFreeDeliveryApplied = true;
2715                        }
2716                        else
2717                            this.appObject.orderObject.specialFreeDeliveryApplied = false;
2718                    }
2719                    else
2720                        this.appObject.orderObject.specialFreeDeliveryApplied = false;
2721                    // if there is a delivery cost,
2722                    // let's calculate the tax for delivery cost
2723                    // delivery cost tax values will be the most valuable item's tax in the cart
2724                    this.appObject.orderObject.delivery_tax = [];
2725                    if (this.appObject.selectedDeliveryMethod == 'delivery' && delivery_cost > 0 && deliveryTaxHelper.tax) {
2726                        let dtax = [];
2727                        dtax['tax_id'] = deliveryTaxHelper.tax.id;
2728                        dtax['amount'] = deliveryTaxHelper.tax[this.appObject.selectedDeliveryMethod];
2729                        dtax['type'] = deliveryTaxHelper.tax.apply_as;
2730                        dtax['tax_type'] = 'included';
2731                        dtax['name'] = deliveryTaxHelper.tax.title;
2732                        let ftaxCalculations = yield this.getTax(delivery_cost, dtax['tax_type'], dtax['type'], dtax['amount']);
2733                        dtax['tax_amount'] = ftaxCalculations['tax_amoount'];
2734                        if (dtax['tax_type'] == 'excluded') {
2735                            deliveryTaxExclusive += dtax['tax_amount'];
2736                            // add to dish total tax exclusive
2737                            dishTotalTaxExclusive += deliveryTaxExclusive;
2738                            dishTotalTaxExclusive_v2 += deliveryTaxExclusive;
2739                            orderDeliveryTaxExclusive_v2 = deliveryTaxExclusive;
2740                        }
2741                        else {
2742                            deliveryTaxInclusive += dtax['tax_amount'];
2743                            // add to dish total tax inclusinve
2744                            dishTotalTaxInclusive += deliveryTaxInclusive;
2745                            dishTotalTaxInclusive_v2 += deliveryTaxInclusive;
2746                            orderDeliveryTaxInclusive_v2 = deliveryTaxInclusive;
2747                        }
2748                        this.appObject.orderObject.delivery_tax.push({
2749                            'tax_id': dtax['tax_id'],
2750                            'amount': dtax['amount'],
2751                            'type': dtax['type'],
2752                            'tax_type': dtax['tax_type'],
2753                            'name': dtax['name'],
2754                            'tax_amount': dtax['tax_amount']
2755                        });
2756                    }
2757                }
2758                // this.appObject.orderObject.cart_summery.total_tax_inclusive = _dtotal_tax_inclusive;
2759                // this.appObject.orderObject.cart_summery.total_tax_exclusive = _dtotal_tax_exclusive;
2760                // this.appObject.orderObject.cart_summery.net_total_without_tax = _dnet_total_without_tax;
2761                this.appObject.orderObject.cart_summery.total_tax_inclusive = dishTotalTaxInclusive; //_dtotal_tax_inclusive;
2762                this.appObject.orderObject.cart_summery.total_tax_exclusive = dishTotalTaxExclusive; //_dtotal_tax_exclusive;
2763                this.appObject.orderObject.cart_summery.net_total = dishNetTotal; // _ot_net_total;
2764                this.appObject.orderObject.cart_summery.total_discount = dishTotalDiscount; // _ototal_discount;
2765                this.appObject.orderObject.cart_summery.total_dish_count = totalDishCount;
2766                this.appObject.orderObject.cart_summery.delivery_cost = delivery_cost; //  + _dt_total_tax_exclusive;
2767                // Topping tax feature 
2768                // ------------
2769                this.appObject.orderObject.cart_summery.total_tax_inclusive_v2 = dishTotalTaxInclusive_v2; //_dtotal_tax_inclusive;
2770                this.appObject.orderObject.cart_summery.total_tax_exclusive_v2 = dishTotalTaxExclusive_v2; //_dtotal_tax_exclusive;
2771                this.appObject.orderObject.cart_summery.total_topping_tax_inclusive_v2 = dishToppingTotalTaxInclusive_v2; //_dtotal_tax_inclusive;
2772                this.appObject.orderObject.cart_summery.total_topping_tax_exclusive_v2 = dishToppingTotalTaxExclusive_v2; //_dtotal_tax_exclusive;
2773                this.appObject.orderObject.cart_summery.net_total_v2 = dishNetTotal_v2 + dishToppingNetTotal_v2; // _ot_net_total;
2774                this.appObject.orderObject.cart_summery.total_discount_v2 = dishTotalDiscount_v2 + dishToppingTotalDiscount_v2; // _ototal_discount;
2775                this.appObject.orderObject.cart_summery.order_delivery_tax_exclusive_v2 = orderDeliveryTaxExclusive_v2;
2776                this.appObject.orderObject.cart_summery.order_delivery_tax_inclusive_v2 = orderDeliveryTaxInclusive_v2;
2777                // ------------
2778                this.appObject.orderObject.cart_summery.total_with_discount_price = this.appObject.orderObject.cart_summery.net_total - this.appObject.orderObject.cart_summery.total_discount;
2779                this.appObject.orderObject.cart_summery.gross_total = this.appObject.orderObject.cart_summery.total_with_discount_price + this.appObject.orderObject.cart_summery.delivery_cost;
2780                this.appObject.orderObject.cart_summery.dish_net_total_with_discount = dishNetTotalWithDiscount;
2781                this.appObject.orderObject.cart_summery.total_with_discount_price_v2 = this.appObject.orderObject.cart_summery.net_total_v2 - this.appObject.orderObject.cart_summery.total_discount_v2;
2782                this.appObject.orderObject.cart_summery.gross_total_v2 = this.appObject.orderObject.cart_summery.total_with_discount_price_v2 + this.appObject.orderObject.cart_summery.delivery_cost;
2783                // console.log('this.appObject.orderObject.cart :', this.appObject.orderObject.cart);
2784                // console.log('this.appObject.orderObject.cart_summery :', this.appObject.orderObject);
2785                //////// OLD VALUES 
2786                // this.appObject.orderObject.cart_summery.total_tax_inclusive = _dtotal_tax_inclusive;
2787                // this.appObject.orderObject.cart_summery.total_tax_exclusive = _dtotal_tax_exclusive;
2788                // this.appObject.orderObject.cart_summery.net_total_without_tax = _dnet_total_without_tax;
2789                // this.appObject.orderObject.cart_summery.net_total = _ot_net_total;
2790                // this.appObject.orderObject.cart_summery.total_discount = _ototal_discount;
2791                // this.appObject.orderObject.cart_summery.total_with_discount_price = this.appObject.orderObject.cart_summery.net_total - this.appObject.orderObject.cart_summery.total_discount;
2792                // this.appObject.orderObject.cart_summery.delivery_cost = delivery_cost + _dt_total_tax_exclusive;
2793                // this.appObject.orderObject.cart_summery.gross_total = this.appObject.orderObject.cart_summery.total_with_discount_price + this.appObject.orderObject.cart_summery.delivery_cost;
2794                // this.appObject.orderObject.cart_summery.total_dish_count = _total_dish_count;
2795                // Payment method transaction fee calculation
2796                let selectedPaymentConfig = this.appObject.selectedRestaurantDetails.payment_methods.find((method) => method.id === this.appObject.orderObject.selectedPaymentMethod);
2797                let feeAmount = 0;
2798                let fixedFeeAmount = 0;
2799                // if transaction fee enabled for selected payment option
2800                if (selectedPaymentConfig && selectedPaymentConfig.config && (selectedPaymentConfig.config.transactionFeeStatus === 'true' || selectedPaymentConfig.config.transactionFeeStatus === true)) {
2801                    if (selectedPaymentConfig.config.feeType === 'percentage') {
2802                        feeAmount = (this.appObject.orderObject.cart_summery.gross_total / 100) * (+selectedPaymentConfig.config.feeAmount);
2803                    }
2804                    else if (selectedPaymentConfig.config.feeType === 'fixed') {
2805                        feeAmount = (+selectedPaymentConfig.config.feeAmount);
2806                    }
2807                    if (selectedPaymentConfig.config.fixedFeeStatus
2808                        && (selectedPaymentConfig.config.fixedFeeStatus === 'true' || selectedPaymentConfig.config.fixedFeeStatus === true)
2809                        && selectedPaymentConfig.config.fixedFee && !isNaN(+selectedPaymentConfig.config.fixedFee)) {
2810                        fixedFeeAmount = +selectedPaymentConfig.config.fixedFee;
2811                    }
2812                }
2813                // console.log('feeAmount : ' ,feeAmount);
2814                this.appObject.orderObject.cart_summery.transactionFee = feeAmount;
2815                this.appObject.orderObject.cart_summery.fixedTransactionFee = fixedFeeAmount;
2816                // this.appObject.orderObject.cart_summery.gross_total += feeAmount;
2817                // // moved from top to bottom
2818                // // and changed the value checking minimum order amount to total_with_discount_price instead of gross_total
2819                // was
2820                // if (this.appObject.orderObject.cart_summery.min_amount <= this.appObject.orderObject.cart_summery.total_with_discount_price) {if (this.appObject.orderObject.cart_summery.min_amount <= this.appObject.orderObject.cart_summery.total_with_discount_price) {
2821                if (this.appObject.orderObject.cart_summery.min_amount <= totalForMinOrderAmount) {
2822                    this.appObject.orderObject.cart_summery.min_reached = true;
2823                }
2824                else {
2825                    this.appObject.orderObject.cart_summery.min_reached = false;
2826                }
2827                console.log('this.appObject.orderObject.cart_summery.min_reached :', this.appObject.orderObject.cart_summery.min_reached);
2828                //apply coupon if available
2829                if (this.appObject.selectedCoupon.length) {
2830                    let disc = {};
2831                    disc['discount_id'] = this.appObject.selectedCoupon[0].id;
2832                    disc['amount'] = this.appObject.selectedCoupon[0].amount;
2833                    disc['type'] = this.appObject.selectedCoupon[0].apply_as;
2834                    disc['name'] = this.appObject.selectedCoupon[0].title;
2835                    disc['coupon'] = this.appObject.selectedCoupon[0].coupon_code;
2836                    let discountCalculations = yield this.getDiscountForCoupon((_h = this.appObject) === null || _h === void 0 ? void 0 : _h.orderObject.cart_summery.gross_total, disc['type'], disc['amount']);
2837                    // console.log('discountCalculations:', discountCalculations);
2838                    // console.log('disc:', disc);
2839                    // console.log('cart_summery:', this.appObject.orderObject.cart_summery);
2840                    this.appObject.orderObject.cart_summery['coupon_discount'] = discountCalculations['dis_amoount'];
2841                    this.appObject.orderObject.cart_summery['gross_total'] = discountCalculations['amount_after_dis'];
2842                    this.appObject.orderObject.cart_summery['coupon_details'] = disc;
2843                }
2844                else {
2845                    this.appObject.orderObject.cart_summery.coupon_details = null;
2846                }
2847                //console.log('Order Object : ', this.appObject?.orderObject);
2848                this.updateAppObject();
2849                return resolve('calculation is done');
2850            }));
2851        });
2852    }
2853    /**
2854     * Check if the cart items are elegible for daily special discount
2855     * @param cart cart items array
2856     * @returns Object special discount details
2857     */
2858    checkDailySpecialDiscountEligibility(cart) {
2859        let totalAmount = 0;
2860        let totalDishCount = 0;
2861        for (let index = 0; index < cart.length; index++) {
2862            let dish = cart[index];
2863            totalDishCount += dish.count;
2864            // calculate basic dish amounts
2865            if (this.appObject.orderObjectDup.cart[index].is_customise == 'false' && this.appObject.orderObjectDup.cart[index].is_size == 'false') {
2866                dish.dish_price = this.appObject.orderObjectDup.cart[index][this.appObject.selectedDeliveryMethod];
2867                dish.total = dish.dish_price;
2868                dish.net_total = dish.dish_price * dish.count;
2869            }
2870            // calculations for toppings / if the dish is customizable
2871            if (this.appObject.orderObjectDup.cart[index].is_customise == 'true' && dish.size_info) {
2872                dish.dish_price = this.appObject.orderObjectDup.cart[index][this.appObject.selectedDeliveryMethod];
2873                //TOPING FOREACH // Topping calculatons 
2874                let sctoping_total = 0;
2875                for (let stindex = 0; stindex < dish.size_info.topping_info.length; stindex++) {
2876                    dish.size_info.topping_info[stindex]['price'] = dish.size_info.topping_info[stindex][this.appObject.selectedDeliveryMethod];
2877                    dish.size_info.topping_info[stindex]['total'] = dish.size_info.topping_info[stindex]['price'] * dish.size_info.topping_info[stindex]['count'];
2878                    sctoping_total += dish.size_info.topping_info[stindex]['total'];
2879                }
2880                dish['topping_price'] = sctoping_total;
2881                dish['total'] = dish['dish_price'] + dish['topping_price'];
2882                dish.net_total = dish.total * dish['count'];
2883            }
2884            // Check if the dish has sizes enabled, diffrent sizes has diffrent prices..
2885            // sizes calculations goes here
2886            if (this.appObject.orderObjectDup.cart[index].is_size == 'true') {
2887                //for each to find correct size values
2888                for (let sindex = 0; sindex < this.appObject.orderObjectDup.cart[index].sizes.length; sindex++) {
2889                    if (dish.size_info && dish.size_info.size_id == this.appObject.orderObjectDup.cart[index].sizes[sindex].id) {
2890                        //this is correct size
2891                        //re get size value
2892                        dish['dish_price'] = this.appObject.orderObjectDup.cart[index].sizes[sindex][this.appObject.selectedDeliveryMethod];
2893                        //TOPING FOREACH
2894                        let toping_total = 0;
2895                        for (let stindex = 0; stindex < dish.size_info.topping_info.length; stindex++) {
2896                            dish.size_info.topping_info[stindex]['price'] = dish.size_info.topping_info[stindex][this.appObject.selectedDeliveryMethod];
2897                            dish.size_info.topping_info[stindex]['total'] = dish.size_info.topping_info[stindex]['price'] * dish.size_info.topping_info[stindex]['count'];
2898                            toping_total += dish.size_info.topping_info[stindex]['total'];
2899                        }
2900                        //END TOPING
2901                        dish['topping_price'] = toping_total;
2902                        dish['total'] = dish['dish_price'] + dish['topping_price'];
2903                        dish['net_total'] = dish['total'] * dish['count'];
2904                    }
2905                }
2906            }
2907            totalAmount += dish.net_total;
2908        }
2909        let details = {
2910            apply: false,
2911            amount: 0,
2912            method: '',
2913            eligible: false
2914        };
2915        switch (this.appObject.selectedDeliveryMethod) {
2916            case 'delivery':
2917                if (this.appObject.selectedRestaurantDetails.discountRestaurant.isDeliveryAvailable == 'true') {
2918                    details.apply = true;
2919                    details.amount = this.appObject.selectedRestaurantDetails.discountRestaurant.deliveryCost;
2920                    details.method = 'delivery';
2921                }
2922                break;
2923            case 'pickup':
2924                if (this.appObject.selectedRestaurantDetails.discountRestaurant.isPickUpAvailable == 'true') {
2925                    details.apply = true;
2926                    details.amount = this.appObject.selectedRestaurantDetails.discountRestaurant.pickUpCost;
2927                    details.method = 'pickup';
2928                }
2929                break;
2930            case 'dine_in':
2931                if (this.appObject.selectedRestaurantDetails.discountRestaurant.isDineInAvailable == 'true') {
2932                    details.apply = true;
2933                    details.amount = this.appObject.selectedRestaurantDetails.discountRestaurant.dineInCost;
2934                    details.method = 'dine_in';
2935                }
2936                break;
2937        }
2938        if (details.amount > 0 && details.apply) {
2939            //check is reached minimum details
2940            if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.discountRestaurant.minimumDishes <= totalDishCount && totalAmount >= this.appObject.selectedRestaurantDetails.discountRestaurant.minimumAmount) {
2941                details.eligible = true;
2942            }
2943        }
2944        // console.log('Daily Special  : ', details);
2945        return details;
2946    }
2947    calculateCartAmounts() {
2948        var _a, _b, _c, _d, _e, _f, _g;
2949        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
2950            return this.calculateCartAmountsV2();
2951            // return;
2952            let _dtotal_tax_exclusive = 0;
2953            let _dtotal_tax_inclusive = 0;
2954            let _dnet_total_without_tax = 0;
2955            let _dnet_total = 0;
2956            let _dtotal_discount = 0;
2957            let _total_dish_count = 0;
2958            let _dgross_total_with_discount = 0;
2959            // these deliveryTaxHelper is to calculate tax for the delivery cost
2960            // will be used in few places,
2961            // the new way to calculate this delivery tax is as below,
2962            // Find the most valuable item in the cart (x cost 10 and qty is 1, y cost 5 and qty is 3, so the most valuble one is y because qty is 3 and it cost 15 so we take the tax of dish y)
2963            let deliveryCostAvailable = false;
2964            if (((_c = (_b = (_a = this.appObject) === null || _a === void 0 ? void 0 : _a.orderObject) === null || _b === void 0 ? void 0 : _b.cart_summery) === null || _c === void 0 ? void 0 : _c.delivery_cost) > 0)
2965                deliveryCostAvailable = true;
2966            let deliveryTaxHelper = {
2967                maximumAmountDish: null,
2968                tax: null,
2969                deliveryTax: 0
2970            };
2971            //////////////////////////////GO EACH DISHES
2972            if (((_e = (_d = this.appObject) === null || _d === void 0 ? void 0 : _d.orderObject) === null || _e === void 0 ? void 0 : _e.cart.length) > 0) {
2973                for (let index = 0; index < this.appObject.orderObject.cart.length; index++) {
2974                    //////////////////////////////CLEAR PREVIOUS TAX AND DISCOUNTS
2975                    this.appObject.orderObject.cart[index].tax = [];
2976                    this.appObject.orderObject.cart[index].discount = [];
2977                    //////////////////////////////END CLEAR
2978                    //////
2978////////////////////////COUNT += DISH COUNT
2979                    _total_dish_count += this.appObject.orderObject.cart[index]['count'];
2980                    //////////////////////////////END COUNT
2981                    //////////////////////////////CHECK DISH IS NORMAL / COMBO
2982                    // console.log('its mee called : ' , this.appObject.orderObjectDup.cart);
2983                    if (this.appObject.orderObjectDup.cart[index].is_customise == 'false' && this.appObject.orderObjectDup.cart[index].is_size == 'false') {
2984                        this.appObject.orderObject.cart[index].dish_price = this.appObject.orderObjectDup.cart[index][this.appObject.selectedDeliveryMethod];
2985                        this.appObject.orderObject.cart[index].total = this.appObject.orderObject.cart[index].dish_price;
2986                        this.appObject.orderObject.cart[index].net_total = this.appObject.orderObject.cart[index].dish_price * this.appObject.orderObject.cart[index]['count'];
2987                    }
2988                    //////////////////////////////END CHECKING
2989                    //////////////////////////////CHECK IS CUSTOMIZE
2990                    if (this.appObject.orderObjectDup.cart[index].is_customise == 'true' && this.appObject.orderObject.cart[index].size_info) {
2991                        this.appObject.orderObject.cart[index].dish_price = this.appObject.orderObjectDup.cart[index][this.appObject.selectedDeliveryMethod];
2992                        //TOPING FOREACH
2993                        let sctoping_total = 0;
2994                        for (let stindex = 0; stindex < this.appObject.orderObject.cart[index].size_info.topping_info.length; stindex++) {
2995                            this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['price'] = this.appObject.orderObject.cart[index].size_info.topping_info[stindex][this.appObject.selectedDeliveryMethod];
2996                            this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['total'] = this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['price'] * this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['count'];
2997                            sctoping_total += this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['total'];
2998                        }
2999                        //END TOPING
3000                        // console.log('------------------------------------------------------');
3001                        // console.log('this.appObject.orderObject.cart[index] : ' , this.appObject.orderObject.cart[index]);
3002                        // console.log('this.appObject.orderObject.cart[index].dish_price : ' , this.appObject.orderObject.cart[index]['dish_price']);
3003                        // console.log('this.appObject.orderObject.cart[index][topping_price] : ' , this.appObject.orderObject.cart[index]['topping_price']);
3004                        // console.log('------------------------------------------------------');
3005                        // console.log('');
3006                        this.appObject.orderObject.cart[index]['topping_price'] = sctoping_total;
3007                        this.appObject.orderObject.cart[index]['total'] = this.appObject.orderObject.cart[index]['dish_price'] + this.appObject.orderObject.cart[index]['topping_price'];
3008                        this.appObject.orderObject.cart[index].net_total = this.appObject.orderObject.cart[index].total * this.appObject.orderObject.cart[index]['count'];
3009                    }
3010                    //////////////////////////////END CHECK CUSTOMIZE
3011                    //////////////////////////////CHECK IS SIZE AVAILABLE
3012                    if (this.appObject.orderObjectDup.cart[index].is_size == 'true') {
3013                        //for each to find correct size values
3014                        for (let sindex = 0; sindex < this.appObject.orderObjectDup.cart[index].sizes.length; sindex++) {
3015                            if (this.appObject.orderObject.cart[index].size_info && this.appObject.orderObject.cart[index].size_info.size_id == this.appObject.orderObjectDup.cart[index].sizes[sindex].id) {
3016                                //this is correct size
3017                                //re get size value
3018                                this.appObject.orderObject.cart[index]['dish_price'] = this.appObject.orderObjectDup.cart[index].sizes[sindex][this.appObject.selectedDeliveryMethod];
3019                                //TOPING FOREACH
3020                                let toping_total = 0;
3021                                for (let stindex = 0; stindex < this.appObject.orderObject.cart[index].size_info.topping_info.length; stindex++) {
3022                                    this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['price'] = this.appObject.orderObject.cart[index].size_info.topping_info[stindex][this.appObject.selectedDeliveryMethod];
3023                                    this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['total'] = this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['price'] * this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['count'];
3024                                    toping_total += this.appObject.orderObject.cart[index].size_info.topping_info[stindex]['total'];
3025                                }
3026                                //END TOPING
3027                                this.appObject.orderObject.cart[index]['topping_price'] = toping_total;
3028                                this.appObject.orderObject.cart[index]['total'] = this.appObject.orderObject.cart[index]['dish_price'] + this.appObject.orderObject.cart[index]['topping_price'];
3029                                this.appObject.orderObject.cart[index]['net_total'] = this.appObject.orderObject.cart[index]['total'] * this.appObject.orderObject.cart[index]['count'];
3030                            }
3031                        }
3032                    }
3033                    //////////////////////////////END CHECK SIZE AVAILABLE
3034                    //////////////////////////////CLEAR PREVOUS VARIABLES BEFORE CALCULATE
3035                    this.appObject.orderObject.cart[index].total_tax_inclusive = 0;
3036                    this.appObject.orderObject.cart[index].total_tax_exclusive = 0;
3037                    this.appObject.orderObject.cart[index].gross_without_tax_price = 0;
3038                    this.appObject.orderObject.cart[index].gross_total = 0;
3039                    //////////////////////////////END CLEAR
3040                    //////////////////////////////CHECK TAX IS AVAILABLE FOR THIS DISH
3041                    // if (this.appObject.orderObjectDup.cart[index]?.tax?.length > 0) {
3042                    //   for (let oindex = 0; oindex < this.appObject.orderObjectDup.cart[index].tax.length; oindex++) {
3043                    //     let tax = [];
3044                    //     tax['tax_id'] = this.appObject.orderObjectDup.cart[index].tax[oindex].id;
3045                    //     tax['amount'] = this.appObject.orderObjectDup.cart[index].tax[oindex][this.appObject.selectedDeliveryMethod];
3046                    //     tax['type'] = this.appObject.orderObjectDup.cart[index].tax[oindex].apply_as;
3047                    //     tax['tax_type'] = this.appObject.orderObjectDup.cart[index].tax[oindex].type;
3048                    //     tax['name'] = this.appObject.orderObjectDup.cart[index].tax[oindex].title;
3049                    //     let taxCalculations = await this.getTax(this.appObject.orderObject.cart[index].net_total, tax['tax_type'], tax['type'], tax['amount']);
3050                    //     if (tax['type'] == "fixed") {
3051                    //       taxCalculations['tax_amoount'] = taxCalculations['tax_amoount'] * this.appObject.orderObject.cart[index]['count'];
3052                    //     }
3053                    //     if (tax['tax_type'] == 'excluded') {
3054                    //       this.appObject.orderObject.cart[index].total_tax_exclusive += taxCalculations['tax_amoount'];
3055                    //     } else {
3056                    //       this.appObject.orderObject.cart[index].total_tax_inclusive += taxCalculations['tax_amoount'];
3057                    //     }
3058                    //     tax['tax_amount'] = taxCalculations['tax_amoount'];
3059                    //     this.appObject.orderObject.cart[index].tax.push({
3060                    //       'tax_id': tax['tax_id'],
3061                    //       'amount': tax['amount'],
3062                    //       'type': tax['type'],
3063                    //       'tax_type': tax['tax_type'],
3064                    //       'name': tax['tax_id'],
3065                    //       'tax_amount': tax['tax_amount']
3066                    //     });
3067                    //   }
3068                    // }
3069                    // ------------------------ Dish tax calculation with menu category tax
3070                    let taxOb = this.appObject.orderObjectDup.cart[index].tax ? this.appObject.orderObjectDup.cart[index].tax : null;
3071                    let dishesCategory = this.selectedRestaurantCategories.categories.find((category) => category.id === this.appObject.orderObjectDup.cart[index].menu_categories_id.id);
3072                    if (dishesCategory && dishesCategory.tax && dishesCategory.categoryTaxDetails) {
3073                        taxOb = dishesCategory.categoryTaxDetails;
3074                        // delivery tax calculations
3075                        if (deliveryTaxHelper.maximumAmountDish < this.appObject.orderObject.cart[index].net_total) {
3076                            deliveryTaxHelper.maximumAmountDish = this.appObject.orderObject.cart[index].net_total;
3077                            deliveryTaxHelper.tax = taxOb;
3078                        }
3079                    }
3080                    if (taxOb) {
3081                        let tax = [];
3082                        tax['tax_id'] = taxOb.id;
3083                        tax['amount'] = taxOb[this.appObject.selectedDeliveryMethod];
3084                        tax['type'] = taxOb.apply_as;
3085                        tax['tax_type'] = taxOb.type;
3086                        tax['name'] = taxOb.title;
3087                        let taxCalculations = yield this.getTax(this.appObject.orderObject.cart[index].net_total, tax['tax_type'], tax['type'], tax['amount']);
3088                        if (tax['type'] == "fixed") {
3089                            taxCalculations['tax_amoount'] = taxCalculations['tax_amoount'] * this.appObject.orderObject.cart[index]['count'];
3090                        }
3091                        if (tax['tax_type'] == 'excluded') {
3092                            this.appObject.orderObject.cart[index].total_tax_exclusive += taxCalculations['tax_amoount'];
3093                        }
3094                        else {
3095                            this.appObject.orderObject.cart[index].total_tax_inclusive += taxCalculations['tax_amoount'];
3096                        }
3097                        tax['tax_amount'] = taxCalculations['tax_amoount'];
3098                        this.appObject.orderObject.cart[index].tax.push({
3099                            'tax_id': tax['tax_id'],
3100                            'amount': tax['amount'],
3101                            'type': tax['type'],
3102                            'tax_type': tax['tax_type'],
3103                            'name': tax['tax_id'],
3104                            'tax_amount': tax['tax_amount']
3105                        });
3106                        // }
3107                        // console.log('dish : ', this.appObject.orderObject.cart[index]);
3108                        // console.log('Tax : ', this.appObject.orderObject.cart[index].tax);
3109                    }
3110                    // console.log('this.appObject.orderObject.cart[index].net_total : ' , this.appObject.orderObject.cart[index].net_total);
3111                    // console.log('this.appObject.orderObject.cart[index].total_tax_inclusive : ' , this.appObject.orderObject.cart[index].total_tax_inclusive);
3112                    // console.log('');
3113                    this.appObject.orderObject.cart[index].gross_without_tax_price = this.appObject.orderObject.cart[index].net_total - this.appObject.orderObject.cart[index].total_tax_inclusive;
3114                    // console.log('this.appObject.orderObject.cart[index].gross_without_tax_price : ' , this.appObject.orderObject.cart[index].gross_without_tax_price);
3115                    // console.log('this.appObject.orderObject.cart[index].total_tax_inclusive : ' , this.appObject.orderObject.cart[index].total_tax_inclusive);
3116                    // console.log('this.appObject.orderObject.cart[index].total_tax_exclusive : ' , this.appObject.orderObject.cart[index].total_tax_exclusive);
3117                    // console.log('Total : ' , (this.appObject.orderObject.cart[index].gross_without_tax_price + this.appObject.orderObject.cart[index].total_tax_inclusive + this.appObject.orderObject.cart[index].total_tax_exclusive));
3118                    // console.log('');
3119                    this.appObject.orderObject.cart[index].gross_total = this.appObject.orderObject.cart[index].gross_without_tax_price + this.appObject.orderObject.cart[index].total_tax_inclusive + this.appObject.orderObject.cart[index].total_tax_exclusive;
3120                    //////////////////////////////END CHECK TAX FOR DISH
3121                    //////////////////////////////DISH TAXES +=
3122                    _dtotal_tax_exclusive += this.appObject.orderObject.cart[index].total_tax_exclusive;
3123                    _dtotal_tax_inclusive += this.appObject.orderObject.cart[index].total_tax_inclusive;
3124                    _dnet_total_without_tax += this.appObject.orderObject.cart[index].gross_without_tax_price;
3125                    _dnet_total += this.appObject.orderObject.cart[index].gross_total;
3126                    // console.log('_dtotal_tax_exclusive : ' , _dtotal_tax_exclusive);
3127                    // console.log('_dtotal_tax_inclusive : ' , _dtotal_tax_inclusive);
3128                    //////////////////////////////END DISH TAXES +=
3129                    //////////////////////////////DISCOUNT VARIABLES
3130                    this.appObject.orderObject.cart[index].total_discount = 0;
3131                    this.appObject.orderObject.cart[index].gross_total_with_discount = 0;
3132                    // was : "this.appObject.orderObject.cart[index].comment = ''", have no idea why....
3133                    // this is changed when adding dish note in web version
3134                    this.appObject.orderObject.cart[index].comment = !this.appObject.orderObject.cart[index].comment ? "" : this.appObject.orderObject.cart[index].comment;
3135                    //////////////////////////////CHECK DISCOUNT AVAILABILITY
3136                    if (((_g = (_f = this.appObject.orderObjectDup.cart[index]) === null || _f === void 0 ? void 0 : _f.discounts) === null || _g === void 0 ? void 0 : _g.length) > 0) {
3137                        for (let dindex = 0; dindex < this.appObject.orderObjectDup.cart[index].discounts.length; dindex++) {
3138                            if (this.appObject.orderObjectDup.cart[index].discounts[dindex].apply_platform == 'both' || this.appObject.orderObjectDup.cart[index].discounts[dindex].apply_platform == config.plf) {
3139                                let disc = [];
3140                                disc['discount_id'] = this.appObject.orderObjectDup.cart[index].discounts[dindex].id;
3141                                disc['amount'] = this.appObject.orderObjectDup.cart[index].discounts[dindex].amount;
3142                                disc['type'] = this.appObject.orderObjectDup.cart[index].discounts[dindex].apply_as;
3143                                disc['name'] = this.appObject.orderObjectDup.cart[index].discounts[dindex].title;
3144                                let discountCalculations = yield this.getDiscount(this.appObject.orderObject.cart[index].gross_total, disc['type'], disc['amount']);
3145                                if (disc['type'] == "fixed") {
3146                                    discountCalculations['dis_amoount'] = discountCalculations['dis_amoount'] * this.appObject.orderObject.cart[index]['count'];
3147                                }
3148                                disc['discount_amount'] = discountCalculations['dis_amoount'];
3149                                this.appObject.orderObject.cart[index].total_discount += discountCalculations['dis_amoount'];
3150                                this.appObject.orderObject.cart[index].discount.push({
3151                                    'discount_id': disc['discount_id'],
3152                                    'amount': disc['amount'],
3153                                    'type': disc['type'],
3154                                    'name': disc['name'],
3155                                    'discount_amount': disc['discount_amount']
3156                                });
3157                            }
3158                        }
3159                    }
3160                    this.appObject.orderObject.cart[index].gross_total_with_discount = this.appObject.orderObject.cart[index].gross_total - this.appObject.orderObject.cart[index].total_discount;
3161                    // console.log('this.appObject.orderObject.cart[index].gross_total_with_discount : (' , index , ')   ', this.appObject.orderObject.cart[index].gross_total_with_discount);
3162                    _dgross_total_with_discount += this.appObject.orderObject.cart[index].gross_total_with_discount;
3163                    //////////////////////////////END CHECK DISCOUNT AVAILABILITY
3164                    _dtotal_discount += this.appObject.orderObject.cart[index].total_discount;
3165                }
3166            }
3167            if (deliveryCostAvailable) {
3168                // console.log('this.appObject?.orderObject?.cart_summery?.delivery_cost : ', deliveryTaxHelper);
3169                // let dCost = this.appObject?.orderObject?.cart_summery?.delivery_cost;
3170                // let type = deliveryTaxHelper.tax.type;
3171                // let apply_as = deliveryTaxHelper.tax.apply_as;
3172                // let taxAmount = deliveryTaxHelper.tax.delivery;
3173                // this.appObject.selectedRestaurantDetails.resturent_delivery_tax_ids = [deliveryTaxHelper.tax];
3174                // console.log('dCost : ' ,dCost,' | type: ', type, ' | apply_as : ' ,apply_as, ' | taxAmount : ', taxAmount);
3175                // let tax = await this.getTax(dCost,type,apply_as,taxAmount);
3176                // console.log('Tax : ' , tax);
3177            }
3178            console.log('deliveryTaxHelper : ', deliveryTaxHelper);
3179            //////////////////////////////END GO EACH DISHES
3180            //////////////////////////////ORDER TAX VARIABLES
3181            let _ot_total_tax_exclusive = 0;
3182            let _ot_total_tax_inclusive = 0;
3183            let _ot_net_total_without_tax = 0;
3184            let _ot_net_total = 0;
3185            //////////////////////////////ORDER TAX CHECK
3186            this.appObject.orderObject.order_tax = [];
3187            // if (this.appObject.selectedRestaurantDetails?.resturent_order_tax_ids?.length > 0) {
3188            //   for (let otindex = 0; otindex < this.appObject.selectedRestaurantDetails.resturent_order_tax_ids.length; otindex++) {
3189            //     let otax = [];
3190            //     otax['tax_id'] = this.appObject.selectedRestaurantDetails.resturent_order_tax_ids[otindex].id;
3191            //     otax['amount'] = this.appObject.selectedRestaurantDetails.resturent_order_tax_ids[otindex][this.appObject.selectedDeliveryMethod];
3192            //     otax['type'] = this.appObject.selectedRestaurantDetails.resturent_order_tax_ids[otindex].apply_as;
3193            //     otax['tax_type'] = this.appObject.selectedRestaurantDetails.resturent_order_tax_ids[otindex].type;
3194            //     otax['name'] = this.appObject.selectedRestaurantDetails.resturent_order_tax_ids[otindex].title;
3195            //     let ftaxCalculations = await this.getTax(_dgross_total_with_discount, otax['tax_type'], otax['type'], otax['amount']);
3196            //     otax['tax_amount'] = ftaxCalculations['tax_amoount'];
3197            //     if (otax['tax_type'] == 'excluded') {
3198            //       _ot_total_tax_exclusive += otax['tax_amount'];
3199            //     } else {
3200            //       _ot_total_tax_inclusive += otax['tax_amount'];
3201            //     }
3202            //     this.appObject.orderObject.order_tax.push({
3203            //       'tax_id': otax['tax_id'],
3204            //       'amount': otax['amount'],
3205            //       'type': otax['type'],
3206            //       'tax_type': otax['tax_type'],
3207            //       'name': otax['name'],
3208            //       'tax_amount': otax['tax_amount']
3209            //     });
3210            //   }
3211            // }
3212            // console.log('_dgross_total_with_discount : ' , _dgross_total_with_discount);
3213            // console.log('_ot_total_tax_inclusive : ' , _ot_total_tax_inclusive);
3214            // console.log('_ot_total_tax_inclusive : ' , _ot_total_tax_inclusive);
3215            // console.log('_ot_total_tax_exclusive : ' , _ot_total_tax_exclusive);
3216            // _dtotal_tax_exclusive
3217            // _dtotal_tax_inclusive
3218            _ot_net_total_without_tax = _dgross_total_with_discount - _dtotal_tax_inclusive;
3219            _ot_net_total = _dnet_total_without_tax + _dtotal_tax_inclusive + _dtotal_tax_exclusive;
3220            //////////////////////////////END ORDER TAX CHECK
3221            // console.log('_ot_net_total : ' , _ot_net_total);
3222            // console.log('_ot_net_total_without_tax : ' , _ot_net_total_without_tax);
3223            // console.log('_ot_total_tax_inclusive : ' , _ot_total_tax_inclusive);
3224            // console.log('_ot_total_tax_exclusive : ' , _ot_total_tax_exclusive);
3225            //////////////////////////////DELIVERY  COST
3226            let _ototal_discount = 0;
3227            //////////////////////////////ORDER DEFAULT DISCOUNT CHECK
3228            this.appObject.orderObject.discounts = [];
3229            let delm = 'deliver';
3230            switch (this.appObject.selectedDeliveryMethod) {
3231                case 'pickup':
3232                    delm = 'pickup';
3233                    break;
3234                case 'dine_in':
3235                    delm = 'dinein';
3236                    break;
3237            }
3238            if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails[delm + '_discount']) {
3239                let oddis = [];
3240                oddis['amount'] = this.appObject.selectedRestaurantDetails[delm + '_discount'];
3241                oddis['type'] = 'percentage';
3242                oddis['name'] = 'anytime ' + oddis['amount'] + '%';
3243                let discountCalculations = yield this.getDiscount(_ot_net_total, oddis['type'], oddis['amount']);
3244                oddis['discount_amount'] = discountCalculations['dis_amoount'];
3245                _ototal_discount += oddis['discount_amount'];
3246                this.appObject.orderObject.discounts.push({
3247                    'amount': oddis['amount'],
3248                    'type': oddis['type'],
3249                    'name': oddis['name'],
3250                    'discount_amount': oddis['discount_amount']
3251                });
3252            }
3253            //////////////////////////////END ORDER DEFAULT DISCOUNT CHECK
3254            //////////////////////////////TIME LIMIT DISCOUNT
3255            if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.discountRestaurant && this.appObject.selectedRestaurantDetails.discountRestaurant.isActive && this.appObject.selectedRestaurantDetails.discountRestaurant.isActive == "true") {
3256                let apply = false;
3257                let amount = 0;
3258                switch (this.appObject.selectedDeliveryMethod) {
3259                    case 'delivery':
3260                        if (this.appObject.selectedRestaurantDetails.discountRestaurant.isDeliveryAvailable == 'true') {
3261                            apply = true;
3262                            amount = this.appObject.selectedRestaurantDetails.discountRestaurant.deliveryCost;
3263                        }
3264                        break;
3265                    case 'pickup':
3266                        if (this.appObject.selectedRestaurantDetails.discountRestaurant.isPickUpAvailable == 'true') {
3267                            apply = true;
3268                            amount = this.appObject.selectedRestaurantDetails.discountRestaurant.pickUpCost;
3269                        }
3270                        break;
3271                    case 'dine_in':
3272                        if (this.appObject.selectedRestaurantDetails.discountRestaurant.isDineInAvailable == 'true') {
3273                            apply = true;
3274                            amount = this.appObject.selectedRestaurantDetails.discountRestaurant.dineInCost;
3275                        }
3276                        break;
3277                }
3278                if (apply) {
3279                    //check is reached minimum details
3280                    if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.discountRestaurant.minimumDishes <= _total_dish_count && _dnet_total >= this.appObject.selectedRestaurantDetails.discountRestaurant.minimumAmount) {
3281                        let olddis = [];
3282                        olddis['amount'] = amount;
3283                        olddis['type'] = 'percentage';
3284                        olddis['name'] = this.appObject.selectedRestaurantDetails.discountRestaurant.displayText;
3285                        let ldiscountCalculations = yield this.getDiscount(_ot_net_total, olddis['type'], olddis['amount']);
3286                        olddis['discount_amount'] = ldiscountCalculations['dis_amoount'];
3287                        _ototal_discount += olddis['discount_amount'];
3288                        this.appObject.orderObject.discounts.push({
3289                            'amount': olddis['amount'],
3290                            'type': olddis['type'],
3291                            'name': olddis['name'],
3292                            'discount_amount': olddis['discount_amount']
3293                        });
3294                    }
3295                }
3296            }
3297            //////////////////////////////END TIME LIMIT DISCOUNT
3298            //////////////////////////////CHECK TIME LIMIT DISCOUNT
3299            if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.discountList && this.appObject.selectedRestaurantDetails.discountList.length > 0) {
3300                for (let tlindex = 0; tlindex < this.appObject.selectedRestaurantDetails.discountList.length; tlindex++) {
3301                    let tld = [];
3302                    tld['discount_id'] = this.appObject.selectedRestaurantDetails.discountList[tlindex].id;
3303                    tld['amount'] = this.appObject.selectedRestaurantDetails.discountList[tlindex].amount;
3304                    tld['type'] = this.appObject.selectedRestaurantDetails.discountList[tlindex].apply_as;
3305                    tld['name'] = this.appObject.selectedRestaurantDetails.discountList[tlindex].title;
3306                    let tldiscountCalculations = yield this.getDiscount(_ot_net_total, tld['type'], tld['amount']);
3307                    tld['discount_amount'] = tldiscountCalculations['dis_amoount'];
3308                    _ototal_discount += tld['discount_amount'];
3309                    this.appObject.orderObject.discounts.push({
3310                        'discount_id': tld['discount_id'],
3311                        'amount': tld['amount'],
3312                        'type': tld['type'],
3313                        'name': tld['name'],
3314                        'discount_amount': tld['discount_amount']
3315                    });
3316                }
3317            }
3318            //////////////////////////////END CHECK TIME LIMIT DISCOUNT
3319            //selected coupon
3320            if (typeof this.appObject.selectedCoupon.length !== 'undefined' && this.appObject.selectedCoupon.length > 0) {
3321                let oscoup = [];
3322                oscoup['discount_id'] = this.appObject.selectedCoupon[0].id;
3323                oscoup['amount'] = this.appObject.selectedCoupon[0].amount;
3324                oscoup['type'] = this.appObject.selectedCoupon[0].apply_as;
3325                oscoup['coupon_code'] = this.appObject.selectedCoupon[0].coupon_code;
3326                oscoup['name'] = this.appObject.selectedCoupon[0].title;
3327                let couponCalculations = yield this.getDiscount(_ot_net_total, oscoup['type'], oscoup['amount']);
3328                oscoup['discount_amount'] = couponCalculations['dis_amoount'];
3329                _ototal_discount += oscoup['discount_amount'];
3330                this.appObject.orderObject.discounts.push({
3331                    'discount_id': oscoup['discount_id'],
3332                    'amount': oscoup['amount'],
3333                    'type': oscoup['type'],
3334                    'coupon_code': oscoup['coupon_code'],
3335                    'name': oscoup['name'],
3336                    'discount_amount': oscoup['discount_amount']
3337                });
3338            }
3339            this.appObject.orderObject.cart_summery.min_reached = true;
3340            //delivery charge
3341            let delivery_cost = 0;
3342            //by distance
3343            let distance = Math.round(this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.distance_to_location ? this.appObject.selectedRestaurantDetails.distance_to_location : 0);
3344            if (distance == 0) {
3345                distance = 1;
3346            }
3347            this.appObject.orderObject.cart_summery.min_amount = 0;
3348            if (this.appObject.selectedDeliveryMethod == 'delivery') {
3349                // new IF came with postal code feature 
3350                if (this.appObject.settings.is_postalcode === 'true') {
3351                    if (this.appObject.postalCodeDetails) {
3352                        let deliveryCost = this.appObject.postalCodeDetails.price.find((prices) => prices.restaurantId === this.appObject.selectedRestaurantDetails.id);
3353                        if (deliveryCost) {
3354                            this.appObject.orderObject.cart_summery.min_amount = +deliveryCost.minOrderAmount;
3355                            delivery_cost = +deliveryCost.cost;
3356                        }
3357                        else {
3358                            console.log('something went wrong when finding delivery cost for selected restaurant');
3359                        }
3360                    }
3361                    else {
3362                        console.log('something went wrong when calculate delivery cost');
3363                    }
3364                }
3365                else {
3366                    // moved from outside of the IF, because this value only use when selected delivery method is 'delivery'
3367                    let minOrderAmounts = JSON.parse(this.appObject.selectedRestaurantDetails.min_order_amounts);
3368                    if (this.appObject.selectedRestaurantDetails.delivery_charge_type == "fixed_amount") {
3369                        if (this.appObject.selectedRestaurantDetails.fixed_delivery_amount != null && this.appObject.selectedRestaurantDetails.fixed_delivery_amount_apply_as != null) {
3370                            let dcharge = yield this.getDeliveryCost(_ot_net_total, this.appObject.selectedRestaurantDetails.fixed_delivery_amount_apply_as, this.appObject.selectedRestaurantDetails.fixed_delivery_amount);
3371                            delivery_cost = yield this.getNumberValue(dcharge['del_amoount']);
3372                        }
3373                    }
3374                    else {
3375                        let byDistance = JSON.parse(this.appObject.selectedRestaurantDetails.delivery_cost);
3376                        if (byDistance.length >= distance) {
3377                            if (byDistance[distance - 1].cost) {
3378                                delivery_cost = yield this.getNumberValue(byDistance[distance - 1].cost);
3379                            }
3380                        }
3381                    }
3382                    this.appObject.orderObject.cart_summery.min_amount = yield this.getNumberValue(minOrderAmounts[distance - 1].amount);
3383                    if (Number.isNaN(this.appObject.orderObject.cart_summery.min_amount)) {
3384                        this.appObject.orderObject.cart_summery.min_amount = 0;
3385                    }
3386                    // Moved to below
3387                    // if (this.appObject.orderObject.cart_summery.min_amount <= _ot_net_total) {
3388                    //   this.appObject.orderObject.cart_summery.min_reached = true;
3389                    // } else {
3390                    //   this.appObject.orderObject.cart_summery.min_reached = false;
3391                    // }
3392                }
3393                //check min order amount is reached
3394                if (this.appObject.selectedRestaurantDetails.is_free_delivery == 'true') {
3395                    if (this.appObject.orderObject.cart_summery.min_reached) {
3396                        delivery_cost = 0;
3397                    }
3398                }
3399            }
3400            //////////////////////////////ORDER DELEVERY TAX VARIABLES
3401            let _dt_total_tax_exclusive = 0;
3402            let _dt_total_tax_inclusive = 0;
3403            let _dt_net_total_without_tax = 0;
3404            let _dt_net_total = 0;
3405            //////////////////////////////ORDER DELEVERY TAX CHECK
3406            this.appObject.orderObject.delivery_tax = [];
3407            if (this.appObject.selectedDeliveryMethod == 'delivery' && delivery_cost > 0 && deliveryTaxHelper.tax) {
3408                // if (this.appObject.selectedRestaurantDetails?.resturent_delivery_tax_ids?.length > 0) {
3409                let dtax = [];
3410                dtax['tax_id'] = deliveryTaxHelper.tax.id;
3411                dtax['amount'] = deliveryTaxHelper.tax[this.appObject.selectedDeliveryMethod];
3412                dtax['type'] = deliveryTaxHelper.tax.apply_as;
3413                dtax['tax_type'] = 'included';
3414                dtax['name'] = deliveryTaxHelper.tax.title;
3415                let ftaxCalculations = yield this.getTax(delivery_cost, dtax['tax_type'], dtax['type'], dtax['amount']);
3416                dtax['tax_amount'] = ftaxCalculations['tax_amoount'];
3417                if (dtax['tax_type'] == 'excluded') {
3418                    _dt_total_tax_exclusive += dtax['tax_amount'];
3419                }
3420                else {
3421                    _dt_total_tax_inclusive += dtax['tax_amount'];
3422                }
3423                this.appObject.orderObject.delivery_tax.push({
3424                    'tax_id': dtax['tax_id'],
3425                    'amount': dtax['amount'],
3426                    'type': dtax['type'],
3427                    'tax_type': dtax['tax_type'],
3428                    'name': dtax['name'],
3429                    'tax_amount': dtax['tax_amount']
3430                });
3431            }
3432            //_dt_net_total_without_tax = _dnet_total_without_tax - _dt_total_tax_inclusive;
3433            // _dt_net_total += (_dnet_total_without_tax - _dt_total_tax_inclusive) + _dt_total_tax_exclusive;
3434            //////////////////////////////END ORDER DELEVERY TAX CHECK
3435            //summery net_total
3436            // this.appObject.orderObject.cart_summery.total_tax_inclusive = _ot_total_tax_inclusive;
3437            // this.appObject.orderObject.cart_summery.total_tax_exclusive = _ot_total_tax_exclusive;
3438            // this.appObject.orderObject.cart_summery.net_total_without_tax = _ot_net_total_without_tax;
3439            this.appObject.orderObject.cart_summery.total_tax_inclusive = _dtotal_tax_inclusive;
3440            this.appObject.orderObject.cart_summery.total_tax_exclusive = _dtotal_tax_exclusive;
3441            this.appObject.orderObject.cart_summery.net_total_without_tax = _dnet_total_without_tax;
3442            this.appObject.orderObject.cart_summery.net_total = _ot_net_total;
3443            this.appObject.orderObject.cart_summery.total_discount = _ototal_discount;
3444            this.appObject.orderObject.cart_summery.total_with_discount_price = this.appObject.orderObject.cart_summery.net_total - this.appObject.orderObject.cart_summery.total_discount;
3445            this.appObject.orderObject.cart_summery.delivery_cost = delivery_cost + _dt_total_tax_exclusive;
3446            this.appObject.orderObject.cart_summery.gross_total = this.appObject.orderObject.cart_summery.total_with_discount_price + this.appObject.orderObject.cart_summery.delivery_cost;
3447            this.appObject.orderObject.cart_summery.total_dish_count = _total_dish_count;
3448            // moved from top to bottom
3449            // and changed the value checking minimum order amount to total_with_discount_price instead of gross_total
3450            if (this.appObject.orderObject.cart_summery.min_amount <= this.appObject.orderObject.cart_summery.total_with_discount_price) {
3451                this.appObject.orderObject.cart_summery.min_reached = true;
3452            }
3453            else {
3454                this.appObject.orderObject.cart_summery.min_reached = false;
3455            }
3456            this.updateAppObject();
3457        });
3458    }
3459    getTax(amount, type, apply_as, tax_value) {
3460        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3461            let tax = [];
3462            // console.log('amount : ' , amount);
3463            if (apply_as == 'percentage') {
3464                if (type == 'excluded') {
3465                    tax['tax_amoount'] = (amount / 100) * tax_value;
3466                    tax['amount_before_tax'] = amount;
3467                    tax['amount_after_tax'] = amount + (amount / 100) * tax_value;
3468                }
3469                else {
3470                    tax['tax_amoount'] = amount - (amount * 100) / (100 + tax_value);
3471                    tax['amount_before_tax'] = amount - tax['tax_amoount'];
3472                    tax['amount_after_tax'] = amount;
3473                }
3474            }
3475            else {
3476                if (type == 'excluded') {
3477                    tax['tax_amoount'] = tax_value;
3478                    tax['amount_before_tax'] = amount;
3479                    tax['amount_after_tax'] = amount + tax_value;
3480                }
3481                else {
3482                    tax['tax_amoount'] = tax_value;
3483                    tax['amount_before_tax'] = amount - tax_value;
3484                    tax['amount_after_tax'] = amount;
3485                }
3486            }
3487            return tax;
3488        });
3489    }
3490    getDiscount(amount, apply_as, dis_value) {
3491        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3492            let dis = [];
3493            if (apply_as == 'percentage') {
3494                dis['dis_amoount'] = (amount / 100) * dis_value;
3495                dis['amount_before_dis'] = amount;
3496                dis['amount_after_dis'] = amount + (amount / 100) * dis_value;
3497            }
3498            else {
3499                dis['dis_amoount'] = dis_value;
3500                dis['amount_before_dis'] = amount;
3501                dis['amount_after_dis'] = amount + dis_value;
3502            }
3503            return dis;
3504        });
3505    }
3506    getDiscountForCoupon(amount, apply_as, dis_value) {
3507        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3508            let dis = [];
3509            if (apply_as == 'percentage') {
3510                dis['dis_amoount'] = (amount / 100) * dis_value;
3511                dis['amount_after_dis'] = amount - dis['dis_amoount'];
3512            }
3513            else {
3514                if (amount < dis_value) {
3515                    dis['dis_amoount'] = amount;
3516                    dis['amount_after_dis'] = 0;
3517                }
3518                else {
3519                    dis['dis_amoount'] = dis_value;
3520                    dis['amount_after_dis'] = amount - dis_value;
3521                }
3522            }
3523            return dis;
3524        });
3525    }
3526    getDeliveryCost(amount, apply_as, del_value) {
3527        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3528            let del = [];
3529            if (apply_as == 'percentage') {
3530                del['del_amoount'] = (amount / 100) * del_value;
3531                del['amount_before_del'] = amount;
3532                del['amount_after_del'] = amount + (amount / 100) * del_value;
3533            }
3534            else {
3535                del['del_amoount'] = del_value;
3536                del['amount_before_del'] = amount;
3537                del['amount_after_del'] = amount + del_value;
3538            }
3539            return del;
3540        });
3541    }
3542    changeAddress() {
3543        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3544            this.routeToRestaurantList = true;
3545            this.router.navigate(['/find-near-by-me'], { replaceUrl: true });
3546        });
3547    }
3548    getLanguages() {
3549        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3550            yield this.requestService.post('language/list', {}).then(data => {
3551                if (data.status) {
3552                    this.appObject.langList = data.lang;
3553                }
3554            }, error => {
3555                this.appObject.isLoading = false;
3556            });
3557        });
3558    }
3559    addCoupon(code) {
3560        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3561            return yield this.requestService.post('coupon/status', {
3562                'code': code,
3563                'restaurant_id': this.appObject.selectedRestaurantId,
3564                'customer_id': this.appObject.userId,
3565                'device_type': config.plf,
3566                'device_id': this.appObject.deviceUUID,
3567                'discounts': this.appObject.orderObject.discounts,
3568                'language': this.appObject.currentLang,
3569            });
3570        });
3571    }
3572    changeLanguage(val) {
3573        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3574            this.currentLang = val.detail.value;
3575            this.translate.setDefaultLang(this.currentLang);
3576            this.translate.use(this.currentLang);
3577            yield this.storage.set('lang', this.currentLang);
3578            yield this.getSettings();
3579            this.updateAppObject();
3580        });
3581    }
3582    getSettings() {
3583        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3584            yield this.requestService.post('settings', {
3585                'device_id': this.appObject.deviceUUID,
3586                'language': this.appObject.currentLang,
3587                'device_type': config.plf,
3588                'app_version': src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.APP_VERSION
3589            }).then((data) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3590                if (data.status) {
3591                    let pages_in_side_menu = [];
3592                    data.data.pages.forEach(element => {
3593                        if (element.is_show_on_side_menu == "true") {
3594                            pages_in_side_menu.push(element);
3595                        }
3596                    });
3597                    this.appObject.settings = data.data;
3598                    this.appObject.sideMenuPages = pages_in_side_menu;
3599                    if (this.appObject.settings.app_configuration) {
3600                        this.appObject.settings.app_configuration = JSON.parse(this.appObject.settings.app_configuration);
3601                    }
3602                    // get pages details , extract data that really need and set to the localstorage
3603                    let pageDetails = data.data && data.data.pages && data.data.pages.length ? data.data.pages.reduce((a, o) => (a.push({ id: o.id, slug: o.slug, name: o.name, content: o.content }), a), []) : [];
3604                    this.storage.set(this.STORAGE_KEYS.PAGES_KEY, JSON.stringify(pageDetails));
3605                    // if web version, then get default restaurant details
3606                    if (this.isWebVersion && this.appObject.settings && this.appObject.settings.main_restaurant && this.appObject.settings.main_restaurant.slug) {
3607                        if (!this.doNotFetchMain) {
3608                            yield this.getRestaurantBySlug(this.appObject.settings.main_restaurant.slug);
3609                            // get available discounts to display in web app landing page
3610                            this.getDiscounts();
3611                        }
3612                    }
3613                    // If multiple restaurants has then get delivery options from settings object,
3614                    // otherwise get options from main restaurant open details
3615                    this.findSelectedRestaurantOrderTypes(this.appObject.settings.app_configuration
3616                        && this.appObject.settings.app_configuration.has_multiple_restaurants
3617                        ? this.appObject.settings
3618                        : this.appObject.settings.main_restaurant.openDetails);
3619                    // set favicon from main restaurant 
3620                    this.appObject.favIcon = src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.BASE_URL + '/images/restaurant-favicon/' + this.appObject.settings.main_restaurant.id;
3621                    let favIcon = document.getElementById('appFavIcon');
3622                    if (favIcon)
3623                        favIcon.href = this.appObject.favIcon;
3624                    if (this.appObject.settings.title !== "") {
3625                        this.titleService.setTitle(this.appObject.settings.title);
3626                    }
3627                    if (this.appObject.settings.main_restaurant && this.appObject.settings.main_restaurant.color_configuration) {
3628                        let theme = JSON.parse(this.appObject.settings.main_restaurant.color_configuration);
3629                        this.appObject.theme = theme;
3630                        // this is just for randomize the background image, otherwise it won't 
3630change event image has been changed from the backend
3631                        if (this.appObject.theme[this.themeConfigFor] && this.appObject.theme[this.themeConfigFor].home)
3632                            this.appObject.theme[this.themeConfigFor].home.imageURL = new Date().getTime();
3633                        this.themeOb = this.appObject.theme;
3634                        this.isWebVersion ? this.themeConfigFor = 'web' : '';
3635                    }
3636                    // update app object in storage
3637                    this.updateAppObject();
3638                    // check if mandatory app updates are available
3639                    if (!this.isWebVersion && data.data && data.data.update_required) {
3640                        this.router.navigate(['update-required']);
3641                    }
3642                    // if maintain mode is on, then redirect into maintenance page
3643                    if (this.appObject.settings.maintenance_mode === 'true') {
3644                        this.router.navigate(['maintenance'], { replaceUrl: true });
3645                    }
3646                    else {
3647                        const currentRoute = this.router.url;
3648                        if (currentRoute === '/maintenance') {
3649                            this.router.navigate(['/'], { replaceUrl: true });
3650                        }
3651                    }
3652                    this.isSettingsLoaded = true;
3653                    this.watchSettingsGettingLoaded({ status: 'done' });
3654                }
3655            }), error => {
3656                this.appObject.isLoading = false;
3657            });
3658        });
3659    }
3660    /**
3661     * Find supported order types of selected restaurant
3662     * @param openDetails restaurant open details
3663     * @param justReturnMethods just return methods instead of assigning to availableDeliveryMethods
3664     * @deprecated use findSelectedRestaurantOrderTypesV2 instead
3665     */
3666    findSelectedRestaurantOrderTypes(openDetails, justReturnMethods = false) {
3667        let deliveryMethods = [];
3668        // commented due to show menu even restaurant has no deliery methods requirement
3669        if (openDetails.is_delivery == true || openDetails.is_delivery === 'true') {
3670            deliveryMethods.push("delivery");
3671        }
3672        if (openDetails.is_dine_in == true || openDetails.is_dine_in === 'true') {
3673            deliveryMethods.push("dine_in");
3674        }
3675        if (openDetails.is_pickup == true || openDetails.is_pickup === 'true') {
3676            deliveryMethods.push("pickup");
3677        }
3678        // if restaurant is closed and preorder won't accept, then take service from main restaurant
3679        if (!justReturnMethods && openDetails.current_status === 'closed' && !openDetails.is_pre_order && this.appObject.settings && this.appObject.settings.main_restaurant && this.appObject.settings.main_restaurant.service) {
3680            // if (this.appObject.settings.app_configuration && !this.appObject.settings.app_configuration.has_multiple_restaurants) {
3681            let service = this.appObject.settings.main_restaurant.service.split(',');
3682            deliveryMethods = [];
3683            service.includes("'delivery'") ? deliveryMethods.push('delivery') : '';
3684            service.includes("'dineIn'") ? deliveryMethods.push('dine_in') : '';
3685            service.includes("'pickup'") ? deliveryMethods.push('pickup') : '';
3686            // }
3687        }
3688        // deliveryMethods = ['delivery', 'dine_in', 'pickup'];
3689        // console.log('am caleld : ', deliveryMethods);
3690        if (justReturnMethods)
3691            return deliveryMethods;
3692        else
3693            this.availableDeliveryMethods = deliveryMethods;
3694    }
3695    /**
3696     * V2 : This will accept restauant object instead of openDetails object
3697     * Find supported order types of selected restaurant
3698     * @param restaurant restaurant object to get opendetails
3699     * @param justReturnMethods just return methods instead of assigning to availableDeliveryMethods
3700     */
3701    findSelectedRestaurantOrderTypesV2(restaurant, justReturnMethods = false) {
3702        let openDetails = restaurant.openDetails;
3703        let deliveryMethods = [];
3704        // commented due to show menu even restaurant has no deliery methods requirement
3705        if (openDetails.is_delivery == true || openDetails.is_delivery === 'true') {
3706            deliveryMethods.push("delivery");
3707        }
3708        if (openDetails.is_dine_in == true || openDetails.is_dine_in === 'true') {
3709            deliveryMethods.push("dine_in");
3710        }
3711        if (openDetails.is_pickup == true || openDetails.is_pickup === 'true') {
3712            deliveryMethods.push("pickup");
3713        }
3714        // if restaurant is closed and preorder won't accept, then take service from main restaurant
3715        if (!justReturnMethods && openDetails.current_status === 'closed' && !openDetails.is_pre_order && this.appObject.settings && this.appObject.settings.main_restaurant && this.appObject.settings.main_restaurant.service) {
3716            // if (this.appObject.settings.app_configuration && !this.appObject.settings.app_configuration.has_multiple_restaurants) {
3717            let service = this.appObject.settings.main_restaurant.service.split(',');
3718            deliveryMethods = [];
3719            service.includes("'delivery'") ? deliveryMethods.push('delivery') : '';
3720            service.includes("'dineIn'") ? deliveryMethods.push('dine_in') : '';
3721            service.includes("'pickup'") ? deliveryMethods.push('pickup') : '';
3722            // }
3723        }
3724        /**
3725         * unable to place preorders for feture when desired order option is currently disabled
3726         * below code is related to this issue
3727         * fix by Pumayk26
3728        **/
3729        let preorderHelper = {};
3730        const daysOfWeek = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
3731        const dayName = daysOfWeek[new Date().getDay()];
3732        // find out today's schedule of the restaurant
3733        let openHours = restaurant.openHoursData;
3734        let todaySchedule = openHours.find((dayData) => dayData.day === dayName);
3735        // get current time slot in HH:MM
3736        const now = new Date();
3737        const hours = now.getHours().toString().padStart(2, '0');
3738        const minutes = now.getMinutes().toString().padStart(2, '0');
3739        // current user time slot
3740        let time = `${hours}:${minutes}`;
3741        // if an ordering option not available in ordering methods that means it's not available at the moment, 
3742        // so if restaurant has preorder option enabled for the option that unavailable right now, then check for other timeslots availability
3743        let options = ['delivery', 'dinein', 'pickup'];
3744        for (let i = 0; i < options.length; i++) {
3745            const option = options[i];
3746            // this variable made because of this dine_in option _ not available in values from backend
3747            let includeCheck = option === 'dinein' ? 'dine_in' : option;
3748            // find out each unavailable options at the moment will be available in second timeslot
3749            // if it is available for preorder in second timeslot, display the ordering option
3750            if (!deliveryMethods.includes(includeCheck) && restaurant.openHoursData && restaurant.is_pre_order === 'true' && restaurant['is_pre_order_' + option] === 'true') {
3751                if (todaySchedule.slot_two_first && (todaySchedule['slot_two_' + option] === 'true' || todaySchedule['slot_two_' + option] === true)) {
3752                    // get string today yyyy-mm-dd to use in calculations below
3753                    let todayDate = this.formatDateObject(new Date(), false);
3754                    let currentTime = new Date(todayDate + ' ' + time);
3755                    let slotTwoFirst = new Date(todayDate + ' ' + todaySchedule.slot_two_first);
3756                    let slot_two_second = new Date(todayDate + ' ' + todaySchedule.slot_two_second);
3757                    // if current time is behind the ordering option available time, then make it available now for preorder
3758                    if (currentTime.getTime() <= slotTwoFirst.getTime() || currentTime.getTime() <= slot_two_second.getTime()) {
3759                        deliveryMethods.push(includeCheck);
3760                        preorderHelper[includeCheck] = true;
3761                    }
3762                }
3763            }
3764        }
3765        if (justReturnMethods)
3766            return { deliveryMethods: deliveryMethods, preorderOptions: preorderHelper };
3767        else
3768            this.availableDeliveryMethods = deliveryMethods;
3769    }
3770    /**
3771     * Watching add to cart from cross selling page when toppings available on selected dish
3772     * @param data
3773     */
3774    watchSettingsGettingLoaded(data) {
3775        this.settingsLoadedCallBack.next(data);
3776    }
3777    triggerSettingsLoadedSuccssfulyCallback() {
3778        return this.settingsLoadedCallBack;
3779    }
3780    openLink(url) {
3781        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3782            const browser = this.iab.create(url);
3783        });
3784    }
3785    openSideMenu() {
3786        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3787            this.menu.enable(true, 'sidemenu');
3788            this.menu.open('sidemenu');
3789        });
3790    }
3791    closeMenu() {
3792        this.menu.close('sidemenu');
3793    }
3794    pageSetup(page) {
3795        switch (page) {
3796            case 'find-near-by-me':
3797                this.isFooterMenu = false;
3798                this.appObject.errors = [];
3799                break;
3800            default:
3801                break;
3802        }
3803    }
3804    goTo(url) {
3805        //  this.menu.close('sidemenu');
3806        //this.navController.navigateRoot(url);
3807        setTimeout(() => {
3808            this.router.navigate(url);
3809        }, 200);
3810        // console.log('here');
3811    }
3812    routeToSelectedRestaurant() {
3813        // console.log('restaurant/' + this.appObject.selectedRestaurant);
3814        this.router.navigate(['restaurant/' + this.appObject.selectedRestaurant]);
3815    }
3816    formataNumero(e, separador = '.', decimais = 2) {
3817        let a = e.value.split('');
3818        let ns = '';
3819        a.forEach((c) => { if (!isNaN(c))
3820            ns = ns + c; });
3821        ns = parseInt(ns).toString();
3822        if (ns.length < (decimais + 1)) {
3823            ns = ('0'.repeat(decimais + 1) + ns);
3824            ns = ns.slice((decimais + 1) * -1);
3825        }
3826        let ans = ns.split('');
3827        let r = '';
3828        for (let i = 0; i < ans.length; i++)
3829            if (i == ans.length - decimais)
3830                r = r + separador + ans[i];
3831            else
3832                r = r + ans[i];
3833        e.value = r;
3834    }
3835    openCart() {
3836        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3837            // console.log(this.appObject);
3838            this.animationDrop = true;
3839            this.className = 'animating';
3840            let response = yield this.calculateCartAmounts();
3841            // console.log(response);
3842            if (response && !response.calculationFailed) {
3843                setTimeout(() => {
3844                    this.className = '';
3845                    this.animationDrop = false;
3846                    this.openCartPopup();
3847                }, 1500);
3848            }
3849            else {
3850                this.animationDrop = false;
3851                this.className = '';
3852            }
3853        });
3854    }
3855    openCartPopup() {
3856        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3857            this.hideCartButton = true;
3858            const cartModal = yield this.modalController.create({
3859                component: _views_modals_cart_cart_page__WEBPACK_IMPORTED_MODULE_9__.CartPage,
3860                cssClass: 'custom-popup'
3861            });
3862            yield cartModal.present();
3863            cartModal.onDidDismiss().then((data) => {
3864                this.hideCartButton = false;
3865            });
3866        });
3867    }
3868    placeOrder(isWebVersion = false) {
3869        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3870            // check the minimum order amount
3871            if (this.appObject.orderObject && this.appObject.orderObject.cart_summery && !this.appObject.orderObject.cart_summery.min_reached) {
3872                yield this.translate.get(['key.minimum_order_amount_', 'key.is_not_reached']).subscribe((response) => {
3873                    // check just in case lang keys are missing, then trigger the hard coded toast
3874                    if (response['key.minimum_order_amount_'] && response['key.is_not_reached']) {
3875                        this.showToast((response['key.minimum_order_amount_'] + ' ' + response['key.is_not_reached']), 'danger');
3876                    }
3877                    else {
3878                        this.showToast('Minimum Order Amount is Not Reached', 'danger');
3879                    }
3880                });
3881                return;
3882            }
3883            /*
3884             let order_details = {
3885               delivery_type: this.appObject.selectedDeliveryMethod,
3886               delivery_time: '',
3887               delivery_address: {
3888                 name: this.appObject.myAddress.name,
3889                 lat: this.appObject.myAddress.lat,
3890                 lng: this.appObject.myAddress.lng,
3891        
3892            this.appObject.orderObject.order_details.delivery_address.name = this.appObject.myAddress.name;
3893            this.appObject.orderObject.order_details.delivery_address.lat = this.appObject.myAddress.lat;
3894            this.appObject.orderObject.order_details.delivery_address.lng = this.appObject.myAddress.lng;
3895               },
3896               payment_type: 'cod',
3897               name: 'viraj harshana',
3898               email: '[email protected]',
3899               mobile_number: '071958475543',
3900               backyard: '',
3901               special_note:''
3902             };
3903             */
3904            //store user details in cache
3905            if (this.appObject.user.type == 'guest') {
3906                let full_name = this.appObject.orderObject.order_details.name;
3907                let name = full_name.split(" ");
3908                this.appObject.user.fname = name[0];
3909                this.appObject.user.lname = name.length > 2 ? name[1] + ' ' + name[2] : name[1];
3910                this.appObject.user.email = this.appObject.orderObject.order_details.email;
3911                this.appObject.user.telephone = this.appObject.orderObject.order_details.mobile_number;
3912            }
3913            this.appObject.orderObject.order_details.delivery_address.name = this.appObject.myAddress.name;
3914            this.appObject.orderObject.order_details.delivery_address.lat = this.appObject.myAddress.lat;
3915            this.appObject.orderObject.order_details.delivery_address.lng = this.appObject.myAddress.lng;
3916            this.appObject.orderObject['order_details'] = this.appObject.orderObject.order_details;
3917            this.appObject.orderObject['device_id'] = this.appObject.deviceUUID;
3918            this.appObject.orderObject['lang'] = this.appObject.currentLang;
3919            this.appObject.orderObject['resturent_id'] = this.appObject.selectedRestaurantId;
3920            this.appObject.orderObject['device_type'] = config.plf;
3921            this.appObject.orderObject['customer_id'] = this.appObject.userId;
3922            // console.log('this.appObject.orderObject : ', this.appObject.orderObject);
3923            // Do menu category visibility validation here before placing the order
3924            let menuCategoryValidation = {
3925                menuCategories: [],
3926                delivery_time: this.appObject.orderObject.order_details.delivery_time,
3927                delivery_type: this.appObject.orderObject.order_details.delivery_type,
3928                delivery_date: this.appObject.orderObject.order_details.delivery_date,
3929                lang: this.appObject.currentLang,
3930                device_id: this.appObject.deviceUUID,
3931                device_type: config.plf
3932            };
3933            for (let i = 0; i < this.appObject.orderObject.cart.length; i++) {
3934                const cartItem = this.appObject.orderObject.cart[i];
3935                let exists = menuCategoryValidation.menuCategories.find((cat) => cat.id === cartItem.menu_category_id);
3936                if (!exists) {
3937                    menuCategoryValidation.menuCategories.push(cartItem.menu_category_id);
3938                }
3939            }
3940            this.appObject.isLoading = true;
3941            this.menusNotAvailable = [];
3942            let stopProcess = false;
3943            yield this.requestService.post('menu-category/validate', menuCategoryValidation).then((data) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
3944                if (data.status) {
3945                    let validationResult = data.data;
3946                    // find out what menus are not available for selected time slot
3947                    for (let i = 0; i < validationResult.length; i++) {
3948                        const element = validationResult[i];
3949                        if (element && element.visibility && !element.visibility.availableForTime)
3950                            this.menusNotAvailable.push(element);
3951                    }
3952                    if (this.menusNotAvailable.length) {
3953                        // console.log('show that popup');
3954                        this.tempDeliveryDate = menuCategoryValidation.delivery_date === 'asap' ? this.formatDateObject(new Date(), false) : menuCategoryValidation.delivery_date;
3955                        if (this.isWebVersion) {
3956                            const modal = yield this.modalController.create({
3957                                component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_12__.ModalPopoverPage,
3958                                cssClass: 'custom-popup',
3959                                componentProps: {
3960                                    'type': this.POPOVER_TYPES.UNABLE_TO_COMPLETE_ORDER.TYPE,
3961                                    'title': this.POPOVER_TYPES.UNABLE_TO_COMPLETE_ORDER.TITLE
3962                                },
3963                                keyboardClose: false,
3964                            });
3965                            // this.modalController.dismiss();
3966                            modal.present();
3967                        }
3968                        else {
3969                            const modal = yield this.modalController.create({
3970                                component: _views_modals_popup_popup_page__WEBPACK_IMPORTED_MODULE_5__.PopupPage,
3971                                cssClass: 'custom-popup',
3972                                componentProps: {
3973                                    'currentUI': 'unable-to-complete-order'
3974                                }
3975                            });
3976                            modal.present();
3977                            this.hideCartButton = true;
3978                        }
3979                        // stop the process
3980                        this.appObject.isLoading = false;
3981                        stopProcess = true;
3982                    }
3983                }
3984            })).catch((error) => {
3985                console.log('menucategory validation error : ', error);
3986            }).finally(() => {
3987                this.appObject.isLoading = false;
3988            });
3989            if (stopProcess)
3990                return;
3991            // await this.calculateCartAmounts();
3992            // rebuild order details object (to avoid duplicated dishes) 
3993            if (this.appObject.orderObject.selectedTable) {
3994                let re_orderObject = JSON.parse(JSON.stringify(this.appObject.orderObject));
3995                let itemsWithSize = re_orderObject.cart.filter((item) => item.size_info);
3996                let itemsWithoutSize = re_orderObject.cart.filter((item) => !item.size_info);
3997                let recreated = [];
3998                for (let i = 0; i < itemsWithoutSize.length; i++) {
3999                    const element = itemsWithoutSize[i];
4000                    let existing = recreated.find((existingDish) => existingDish.dish_id === element.dish_id);
4001                    if (existing) {
4002                        existing.points_per_dish += element.points_per_dish;
4003                        existing.count += element.count;
4004                        existing.gross_total += element.gross_total;
4005                        existing.gross_total_with_discount += element.gross_total_with_discount;
4006                        existing.gross_without_tax_price += element.gross_without_tax_price;
4007                        existing.net_total += element.net_total;
4008                    }
4009                    else
4010                        recreated.push(element);
4011                }
4012                // find duplicates in itemsWithoutSize
4013                let cartItems = itemsWithSize;
4014                cartItems = cartItems.concat(recreated);
4015                this.appObject.orderObject.cart = cartItems;
4016                this.updateAppObject();
4017            }
4018            yield this.calculateCartAmounts();
4019            // console.log(this.appObject.orderObject.cart);
4020            // return;
4021            //console.log('DAD : ' , this.appObject.orderObject);
4022            // return;
4023            this.appObject.isLoading = true;
4024            return new Promise((resolve, reject) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4025                // add the app version, so we can know the user app version
4026                this.appObject.orderObject.appVersion = this.appObject.appVersion;
4027                // send currntly selected restaurant distance to the selected address
4028                this.appObject.orderObject.distanceToLocation = this.appObject.selectedRestaurantDetails.distance_to_location;
4029                yield this.requestService.post('order/add_v3', this.appObject.orderObject).then(data => {
4030                    // console.log('inside:', data);
4031                    if (data.status) {
4032                        // reset the selected time slot to calculate cart amounts
4033                        this.appObject.selectedTimeSlot = '';
4034                        this.updateAppObject();
4035                        if (data.points) {
4036                            this.showToast('Huray! You just earned ' + data.points + ' points!', 'success');
4037                        }
4038                        if (this.appObject.orderObject.order_details.payment_type == 'points' || this.appObject.orderObject.order_details.payment_type == 'cod' || this.appObject.orderObject.order_details.payment_type == 'ecCard') {
4039                            //success
4040                            this.clearCart();
4041                            // if not the web version, then redirect to order summary page
4042                            if (!isWebVersion)
4043                                this.router.navigate(['/order-summery/' + data.payment_id]);
4044                            else {
4045                                this.appObject.isLoading = false;
4046                                return resolve(data);
4047                            }
4048                        }
4049                        else {
4050                            //open payments
4051                            const url = data.url;
4052                            if (isWebVersion || this.isMobileWeb()) {
4053                                // console.log('am called : ', url);
4054                                // this.router.navigateByUrl(url);
4055                                if (this.isMobileWeb())
4056                                    window.open(url, "_self");
4057                                else
4058                                    window.location = url;
4059                                // var Int = setInterval(() => {
4060                                //   if (windoeRef.closed) {
4061                                //     clearInterval(Int);
4062                                //     Int = null;
4063                                //     //order status check
4064                                //     this.requestService.post('order/payment/status', { payment_id: data.payment_id, device_id: this.appObject.deviceUUID, lang: this.appObject.currentLang }).then(paymentStatus => {
4065                                //       if (paymentStatus.status && paymentStatus.data.status === "paid") {
4066                                //         //payment done
4067                                //         this.clearCart();
4068                                //         this.appObject.isLoading = false;
4069                                //         return resolve(data);
4070                                //       } else {
4071                                //         //err
4072                                //         this.translate.get('key.payment_faild_msg').toPromise().then((response) => {
4073                                //           this.showAlert('error', '', response);
4074                                //         });
4075                                //       }
4076                                //     });
4077                                //   } else {
4078                                //     //order status check
4079                                //     this.requestService.post('order/payment/status', { payment_id: data.payment_id, device_id: this.appObject.deviceUUID, lang: this.appObject.currentLang }).then(paymentStatus => {
4080                                //       this.appObject.isLoading = false;
4081                                //       if (paymentStatus.status && paymentStatus.data.status === "paid") {
4082                                //         //payment done
4083                                //         clearInterval(Int);
4084                                //         windoeRef.close();
4085                                //         windoeRef = null;
4086                                //         this.clearCart();
4087                                //         return resolve(data);
4088                                //       } else if (paymentStatus.status && paymentStatus.data.status === "cancelled") {
4089                                //         //payment cancelled
4090                                //         clearInterval(Int);
4091                                //         windoeRef.close();
4092                                //         windoeRef = null;
4093                                //         //err
4094                                //         this.translate.get('key.payment_faild_msg').toPromise().then((response) => {
4095                                //           this.showAlert('error', '', response);
4096                                //         });
4097                                //         return reject(data);
4098                                //       } else {
4099                                //         //err
4100                                //         this.translate.get('key.payment_faild_msg').toPromise().then((response) => {
4101                                //           this.showAlert('error', '', response);
4102                                //         });
4103                                //       }
4104                                //     });
4105                                //   }
4106                                // }, 2000);
4107                                // this.appObject.isLoading = false;
4108                                // return resolve(data);
4109                            }
4110                            else {
4111                                //app start
4112                                const options = {
4113                                    location: 'no',
4114                                    clearcache: 'yes',
4115                                    zoom: 'yes',
4116                                    toolbar: 'yes',
4117                                    closebuttoncaption: 'close'
4118                                };
4119                                //open in app
4120                                const browser = this.iab.create(url, '_blank', options);
4121                                //event subscribe
4122                                browser.on('loadstop').subscribe(event => {
4123                                    //order status check
4124                                    this.requestService.post('order/payment/status', { payment_id: data.payment_id, device_id: this.appObject.deviceUUID, lang: this.appObject.currentLang }).then(paymentStatus => {
4125                                        if (paymentStatus.status && paymentStatus.data.status === "paid") {
4126                                            setTimeout(() => {
4127                                                //payment done
4128                                                browser.close();
4129                                                this.clearCart();
4130                                                this.router.navigate(['/order-summery/' + data.payment_id]);
4131                                            }, 3000);
4132                                        }
4133                                        else if (paymentStatus.status && paymentStatus.data.status === "cancelled") {
4134                                            setTimeout(() => {
4135                                                //payment cancelled
4136                                                browser.close();
4137                                                //err
4138                                                this.translate.get('key.payment_faild_msg').toPromise().then((response) => {
4139                                                    this.showAlert('error', '', response);
4140                                                });
4141                                            }, 3000);
4142                                        }
4143                                        else {
4144                                            //payment cancelled
4145                                            const navUrl = event.url;
4146                                            if (navUrl.includes('return')) {
4147                                                setTimeout(() => {
4148                                                    // browser.close();
4149                                                    this.showAlert('error', 'status missing', paymentStatus.data.status);
4150                                                    //err
4151                                                    this.translate.get('key.payment_faild_msg').toPromise().then((response) => {
4152                                                        // this.showAlert('error', '', response);
4153                                                    });
4154                                                }, 3000);
4155                                            }
4156                                        }
4157                                    });
4158                                });
4159                                //end
4160                            }
4161                        }
4162                        // remove coupons after placing the order
4163                        // this.appObject.couponWeb = '';
4164                        // this.appObject.couponWebAdded = false;
4165                        // this.appObject.selectedCoupon = [];
4166                        // this.updateAppObject();
4167                    }
4168                    else {
4169                        if (data.msg)
4170                            this.showToast(data.msg, 'danger', '', 5000);
4171                        // new delivery range feature errors
4172                        if (data.availability_error && data.availability_error.showError && data.availability_error.error) {
4173                            this.showToast(data.availability_error.error, 'danger', '', 10000);
4174                        }
4175                        if (isWebVersion) {
4176                            this.appObject.isLoading = false;
4177                            return reject(data);
4178                        }
4179                    }
4180                    this.appObject.isLoading = false;
4181                }, error => {
4182                    this.appObject.isLoading = false;
4183                });
4184            }));
4185        });
4186    }
4187    /**
4188     * Show toast
4189     * @param msg string message to display
4190     * @param colorArg toast color ('primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark')
4191     * @param positionArg toast appearing position ('top' | 'bottom' | 'middle')
4192     * @param duration duration in miliseconds
4193     */
4194    showToast(msg, colorArg = 'dark', positionArg = 'bottom', duration = 3000, cssClass = '') {
4195        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4196            let options = {
4197                message: msg,
4198                duration: duration,
4199                position: positionArg,
4200            };
4201            if (cssClass) {
4202                options.cssClass = cssClass;
4203            }
4204            else {
4205                options.color = colorArg;
4206            }
4207            const toast = yield this.toastController.create(options);
4208            toast.present();
4209        });
4210    }
4211    checkout() {
4212        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4213            // Check if there are not available dishes in the cart added previously
4214            let unavailableDishes = [];
4215            if (this.appObject.orderObject.cart && this.appObject.orderObject.cart.length) {
4216                unavailableDishes = this.appObject.orderObject.cart.filter((dish) => dish.not_available);
4217                if (unavailableDishes.length) {
4218                    this.translate.get('key.one_or_more_dishes_not_available_for').toPromise().then((translation) => {
4219                        this.showToast(translation + ' ' + this.appObject.selectedDeliveryMethod, 'danger', '', 5000);
4220                    });
4221                    return;
4222                }
4223            }
4224            this.modalController.dismiss();
4225            if (this.appObject.isAuthed) {
4226                // if (!this.isWebVersion && (this.appObject.selectedDeliveryMethod === 'delivery' && (!this.appObject.myAddress.name || this.appObject.myAddress.lat || this.appObject.myAddress.lng))) {
4227                //   console.log('Address Invalid');
4228                // }
4229                this.router.navigateByUrl('checkout');
4230            }
4231            else {
4232                this.router.navigate(['login'], {
4233                    queryParams: {
4234                        isOrderProcess: true
4235                    }
4236                });
4237            }
4238        });
4239    }
4240    checkoutAsGuest() {
4241        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4242            this.appObject.user.type = 'guest';
4243            this.router.navigateByUrl('checkout');
4244        });
4245    }
4246    getOpenTimes() {
4247        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4248            let preOrderAvailability = this.findSelectedRestaurantOrderTypesV2(this.appObject.selectedRestaurantDetails, true).preorderOptions;
4249            let onlyAvailableForPreorder = preOrderAvailability && preOrderAvailability[this.appObject.selectedDeliveryMethod] ? true : false;
4250            return yield this.requestService.post('checkout/delivery-time/list', {
4251                'restaurant_id': this.appObject.selectedRestaurantId,
4252                'device_id': this.appObject.deviceUUID,
4253                'device_type': config.plf,
4254                'delivery_method': this.appObject.selectedDeliveryMethod,
4255                'lang': this.appObject.currentLang,
4256                'is_special_preorder': onlyAvailableForPreorder
4257            });
4258        });
4259    }
4260    forgotPasswordEmail(value) {
4261        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4262            this.appObject.errors = [];
4263            this.requestService.post('forgot/password', value).then(data => {
4264                if (data.status) {
4265                    this.email_content = false;
4266                    this.code_content = true;
4267                }
4268                else {
4269                    this.appObject.errors = data.msg[0];
4270                }
4271            }, error => {
4272                this.appObject.isLoading = false;
4273            });
4274        });
4275    }
4276    confirmVerifyCode(value) {
4277        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4278            this.appObject.errors = [];
4279            this.requestService.post('reset/password/verify', value).then(data => {
4280                if (data.status) {
4281                    this.repeatpass_content = true;
4282                    this.email_content = false;
4283                    this.code_content = false;
4284                }
4285                else {
4286                    this.appObject.errors = data.msg;
4287                }
4288            }, error => {
4289                this.appObject.isLoading = false;
4290            });
4291        });
4292    }
4293    resetOldPassword(value) {
4294        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4295            return new Promise((resolve, reject) => {
4296                this.appObject.errors = [];
4297                this.requestService.post('reset/password', value).then(data => {
4298                    if (data.status) {
4299                        this.repeatpass_content = false;
4300                        this.email_content = true;
4301                        this.code_content = false;
4302                        return resolve('true');
4303                    }
4304                    else {
4305                        this.appObject.errors = data.msg.password[0];
4306                        return resolve('false');
4307                    }
4308                }, error => {
4309                    this.appObject.isLoading = false;
4310                });
4311            });
4312        });
4313    }
4314    /**
4315     * update Profile
4316    */
4317    updateProfile(profile_details) {
4318        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4319            this.appObject.errors = [];
4320            profile_details['lang'] = this.appObject.currentLang;
4321            profile_details['device_id'] = this.appObject.deviceUUID;
4322            profile_details['device_type'] = config.plf;
4323            return yield this.requestService.post('customer/edit', profile_details);
4324        });
4325    }
4326    /**
4327     * update Profile password
4328    */
4329    updatePassword(passwordDetails) {
4330        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4331            this.appObject.errors = [];
4332            passwordDetails['lang'] = this.appObject.currentLang;
4333            passwordDetails['device_id'] = this.appObject.deviceUUID;
4334            passwordDetails['device_type'] = config.plf;
4335            return yield this.requestService.post('customer/password/edit', passwordDetails);
4336        });
4337    }
4338    /**
4339     * get user Details
4340    */
4341    getUserDetails(profile_details) {
4342        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4343            this.appObject.errors = [];
4344            profile_details['lang'] = this.appObject.currentLang;
4345            profile_details['device_id'] = this.appObject.deviceUUID;
4346            profile_details['device_type'] = config.plf;
4347            return yield this.requestService.post('customer/details', profile_details);
4348        });
4349    }
4350    getNumberValue(data) {
4351        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4352            return parseFloat(data);
4353        });
4354    }
4355    /**
4356     * get user orders
4357    */
4358    customerOrderList(customerDetails) {
4359        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4360            this.appObject.errors = [];
4361            customerDetails['lang'] = this.appObject.currentLang;
4362            customerDetails['device_id'] = this.appObject.deviceUUID;
4363            customerDetails['device_type'] = config.plf;
4364            return yield this.requestService.post('order/list', customerDetails);
4365        });
4366    }
4367    getOrderInfo(orderUnique) {
4368        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4369            return yield this.requestService.post('order/details', {
4370                lang: this.appObject.currentLang,
4371                device_id: this.appObject.deviceUUID,
4372                device_type: config.plf,
4373                payment_id: orderUnique
4374            });
4375        });
4376    }
4377    /**
4378     * Save user review from order summary
4379     * @param reviewData user review details
4380     * @returns promise
4381     */
4382    insertUserReview(reviewData) {
4383        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4384            reviewData['lang'] = this.appObject.currentLang;
4385            reviewData['device_id'] = this.appObject.deviceUUID;
4386            reviewData['device_type'] = config.plf;
4387            return new Promise((resolve, reject) => {
4388                this.requestService.post('order/review', reviewData).then((response) => {
4389                    return resolve(response);
4390                }).catch((error) => {
4391                    return reject(error);
4392                });
4393            });
4394        });
4395    }
4396    /**
4397     * Will return given date formatted as yyyy-mm-dd hh:mm am/pm
4398     * @param dateObject date object to format
4399     * @returns string formated date
4400     */
4401    formatDateObject(dateObject, includeTime = true) {
4402        let month = dateObject.getMonth() + 1;
4403        month = month <= 9 ? '0' + month : month;
4404        let day = dateObject.getDate() <= 9 ? '0' + dateObject.getDate() : dateObject.getDate();
4405        let year = dateObject.getFullYear();
4406        let hour = dateObject.getHours() <= 9 ? '0' + dateObject.getHours() : dateObject.getHours();
4407        let minute = dateObject.getMinutes() <= 9 ? '0' + dateObject.getMinutes() : dateObject.getMinutes();
4408        return year + '-' + month + '-' + day + (includeTime ? (' ' + hour + ':' + minute) : '');
4409    }
4410    /**
4411     * Fetch opening hours of give restaurant id
4412     * @param restaurantID restaurant id to fetch data
4413     * @returns promise
4414     */
4415    getRestaurantOpeningHours(restaurantID) {
4416        return new Promise((resolve, reject) => {
4417            let data = {
4418                lang: this.appObject.currentLang,
4419                device_id: this.appObject.deviceUUID,
4420                device_type: config.plf
4421            };
4422            this.requestService.post('open-hours/restaurant/' + restaurantID, data).then((response) => {
4423                return resolve(response);
4424            }).catch((error) => {
4425                return reject(error);
4426            });
4427        });
4428    }
4429    // ------------------------------------- WEB API CALLS ONLY -----------------------------------
4430    /**
4431     * Get most popular dishes to display on home page
4432     * @returns promise
4433     */
4434    web_getPopularDishesHome() {
4435        return new Promise((resolve, reject) => {
4436            let data = {
4437                lang: this.appObject.currentLang,
4438                device_id: this.appObject.deviceUUID,
4439                device_type: config.plf
4440            };
4441            this.requestService.post('home/favourite-list', data).then((response) => {
4442                return resolve(response);
4443            }).catch((error) => {
4444                return reject(error);
4445            });
4446        });
4447    }
4448    clearSelectedRestaurant() {
4449        this.appObject.selectedRestaurant = null;
4450        this.appObject.selectedRestaurantDetails = [];
4451        this.appObject.selectedRestaurantId = null;
4452    }
4453    routeToOrder() {
4454        this.clearSelectedRestaurant();
4455        this.router.navigate(['/delivery-method']);
4456    }
4457    getAdditivesAndSub() {
4458        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4459            this.appObject.isLoading = true;
4460            if (this.appObject.deviceUUID == "") {
4461                setTimeout(() => {
4462                    this.getAdditivesAndSub();
4463                }, 100);
4464            }
4465            else {
4466                // empty data before request 
4467                this.alagic_list = [];
4468                yield this.requestService.post('home/additive-list', {
4469                    'lang': this.appObject.currentLang,
4470                    'device_id': this.appObject.deviceUUID,
4471                    'device_type': config.plf
4472                }).then(data => {
4473                    if (data.status) {
4474                        this.AddNsUB = data.data;
4475                    }
4476                }, error => {
4477                    console.log(error);
4478                });
4479                yield this.requestService.post('home/alagic-list', {
4480                    'lang': this.appObject.currentLang,
4481                    'device_id': this.appObject.deviceUUID,
4482                    'device_type': config.plf
4483                }).then(data => {
4484                    if (data.status) {
4485                        this.alagic_list = data.data;
4486                    }
4487                }, error => {
4488                    console.log(error);
4489                });
4490                this.appObject.isLoading = false;
4491            }
4492        });
4493    }
4494    getHomePromo() {
4495        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4496            this.appObject.isLoading = true;
4497            if (this.appObject.deviceUUID == "") {
4498                setTimeout(() => {
4499                    this.getHomePromo();
4500                }, 100);
4501            }
4502            else {
4503                this.requestService.post('new-promotion/list', {
4504                    'lang': this.appObject.currentLang,
4505                    'device_id': this.appObject.deviceUUID,
4506                    'device_type': config.plf,
4507                    'restaurant_id': 'main'
4508                }).then(data => {
4509                    if (data.status) {
4510                        this.appObject.new_promotions = data.data;
4511                    }
4512                    this.appObject.isLoading = false;
4513                }, error => {
4514                    this.appObject.isLoading = false;
4515                });
4516            }
4517        });
4518    }
4519    isMobileWeb() {
4520        return this.platform.is('mobileweb');
4521    }
4522    /**
4523     * Fetch web app landing page meta details
4524     */
4525    getWebAppLandingPageMetaData() {
4526        return new Promise((resolve, reject) => {
4527            this.requestService.post('web-meta/restaurant/main', {
4528                'lang': this.appObject.currentLang,
4529                'device_id': this.appObject.deviceUUID,
4530                'device_type': config.plf,
4531                'restaurant_id': 'main'
4532            }).then(data => {
4533                return resolve(data);
4534            }, error => {
4535                this.appObject.isLoading = false;
4536                return reject(error);
4537            });
4538        });
4539    }
4540    getDishesOfTheGivenCategory(cat_id) {
4541        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4542            return new Promise((resolve, reject) => {
4543                //this.appObject.isLoading = true;
4544                this.activeMenu = cat_id;
4545                this.requestService.post('dish/list', {
4546                    'device_id': this.appObject.deviceUUID,
4547                    'language': this.appObject.currentLang,
4548                    'device_type': config.plf,
4549                    'menu_categorie_id': cat_id,
4550                    'restaurant_id': this.appObject.selectedRestaurantDetails.id
4551                }).then(data => {
4552                    //this.appObject.isLoading = false;
4553                    return resolve(data);
4554                }, error => {
4555                    //this.appObject.isLoading = false;
4556                    return reject(error);
4557                });
4558            });
4559        });
4560    }
4561    /**
4562     * Watching add to cart from cross selling page when toppings available on selected dish
4563     * @param data
4564     */
4565    watchAddToCartFromCrossSelling(data) {
4566        this.addToCartSuccessfulyCallBack.next(data);
4567    }
4568    triggerAddToCartSuccssfulyCallback() {
4569        return this.addToCartSuccessfulyCallBack;
4570    }
4571    /**
4572     * Display alergies and additives popup
4573     * @param dish dish object
4574     */
4575    displayAlergies(dish) {
4576        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4577            let htmlContent = '';
4578            let translatedContent = '';
4579            // additives dataset
4580            if (dish && dish.additives && dish.additives.length) {
4581                yield this.translate.get('key.additives').toPromise().then((response) => {
4582                    if (response)
4583                        translatedContent = response;
4584                    else
4585                        translatedContent = 'key.additives';
4586                });
4587                htmlContent += '<strong><p>' + translatedContent + '</p></strong><ul>';
4588                for (let i = 0; i < dish.additives.length; i++) {
4589                    const additive = dish.additives[i];
4590                    htmlContent += '<li>' + additive.letter + '<br>'
4591                        + additive.description + ' </li>';
4592                }
4593                htmlContent += '</ul>';
4594            }
4595            // alagics dataset
4596            if (dish && dish.alagics && dish.alagics.length) {
4597                yield this.translate.get('key.allergies').toProm
4597ise().then((response) => {
4598                    if (response)
4599                        translatedContent = response;
4600                    else
4601                        translatedContent = 'key.allergies';
4602                });
4603                htmlContent += '<strong><p>' + translatedContent + '</p></strong><ul>';
4604                for (let i = 0; i < dish.alagics.length; i++) {
4605                    const alagic = dish.alagics[i];
4606                    htmlContent += '<li>' + alagic.letter + '<br>'
4607                        + alagic.description + ' </li>';
4608                }
4609                htmlContent += '</ul>';
4610            }
4611            // no data to display message
4612            // if (!htmlContent) {
4613            //   await this.translate.get('key.no_allergies_and_additives_data_to_display').toPromise().then((response) => {
4614            //     if (response) translatedContent = response;
4615            //     else translatedContent = 'key.no_allergies_and_additives_data_to_display';
4616            //   })
4617            //   htmlContent += '<span><strong>' + translatedContent + '</strong></span>'
4618            // }
4619            if (this.isWebVersion && event) {
4620                const popover = yield this.modalController.create({
4621                    component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_12__.ModalPopoverPage,
4622                    cssClass: 'my-custom-class',
4623                    componentProps: {
4624                        "htmlContent": htmlContent,
4625                        'type': this.POPOVER_TYPES.ALLERGY.TYPE,
4626                        'title': this.POPOVER_TYPES.ALLERGY.TITLE,
4627                    }
4628                });
4629                yield popover.present();
4630            }
4631            else {
4632                this.showAlert('alergy-info', 'key.allergies_and_additives', htmlContent, false);
4633            }
4634        });
4635    }
4636    /**
4637     * Submit table reservation data
4638     * @param dataSet table reservation details
4639     * @returns promise
4640     */
4641    placeTableReservation(dataSet) {
4642        dataSet.device_id = this.appObject.deviceUUID;
4643        dataSet.language = this.appObject.currentLang;
4644        dataSet.device_type = config.plf;
4645        // this.appObject.isLoading = true;
4646        return new Promise((resolve, reject) => {
4647            this.requestService.post('table-reservation/add', dataSet).then(data => {
4648                // this.appObject.isLoading = false;
4649                return resolve(data);
4650            }, error => {
4651                // this.appObject.isLoading = false;
4652                return reject(error);
4653            });
4654        });
4655    }
4656    /**
4657     * Fetch restaurant list for table reservation form
4658     * @returns a promise
4659     */
4660    fetchRestaurantListForTableReservation() {
4661        return new Promise((resolve, reject) => {
4662            this.requestService.post('table-reservation/restaurant/list', {
4663                'device_id': this.appObject.deviceUUID,
4664                'language': this.appObject.currentLang,
4665                'device_type': config.plf,
4666            }).then(data => {
4667                return resolve(data);
4668            }, error => {
4669                return reject(error);
4670            });
4671        });
4672    }
4673    /**
4674     * Fetch restaurant list for table reservation form
4675     * @param restaurantId restaurant id to fetch action list
4676     * @returns a promise
4677     */
4678    fetchHighlightProducts(restaurantId = null) {
4679        return new Promise((resolve, reject) => {
4680            this.requestService.post('restaurant/action-list/' + (restaurantId ? restaurantId : 'main'), {
4681                'device_id': this.appObject.deviceUUID,
4682                'language': this.appObject.currentLang,
4683                'device_type': config.plf,
4684            }).then(data => {
4685                return resolve(data);
4686            }, error => {
4687                return reject(error);
4688            });
4689        });
4690    }
4691    /**
4692     * Fetch all restaurants
4693     */
4694    fetchAllRestaurants(isInitCall = false) {
4695        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4696            return new Promise((resolve, reject) => {
4697                let sending = {
4698                    'device_id': this.appObject.deviceUUID,
4699                    'lang': this.appObject.currentLang,
4700                    'delivery_method': this.appObject.selectedDeliveryMethod
4701                };
4702                this.requestService.post('restaurant/list', sending).then(data => {
4703                    if (data.status) {
4704                        if (isInitCall) {
4705                            this.appObject.ourBranches = data.data;
4706                            for (let i = 0; i < this.appObject.ourBranches.length; i++) {
4707                                const branch = this.appObject.ourBranches[i];
4708                                let splitedAddress = branch.address ? branch.address.split(',') : [];
4709                                if (splitedAddress.length >= 2) {
4710                                    branch.address_1 = splitedAddress[0];
4711                                    branch.address_2 = splitedAddress[1] + ', ' + splitedAddress[2];
4712                                }
4713                            }
4714                        }
4715                        this.appObject.restaurants = data.data;
4716                    }
4717                    else {
4718                        this.appObject.restaurants = [];
4719                    }
4720                    this.updateAppObject();
4721                    this.appObject.isLoading = false;
4722                    return resolve('done');
4723                }, error => {
4724                    this.appObject.isLoading = false;
4725                    return reject(error);
4726                });
4727            });
4728        });
4729    }
4730    /**
4731     * Navigate user to ordering page from home page and footer btns
4732     */
4733    navigateToOrderingPage() {
4734        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4735            if (this.appObject.settings && this.appObject.settings.app_configuration) {
4736                if (this.appObject.settings.app_configuration.has_multiple_restaurants) {
4737                    if (!this.appObject.selectedDeliveryMethod) {
4738                        yield this.openOrderTypeChooser(null);
4739                    }
4740                    if (this.appObject.selectedDeliveryMethod)
4741                        this.router.navigate(['restaurant-list']);
4742                }
4743                else if (this.appObject.settings.main_restaurant && this.appObject.settings.main_restaurant.slug) {
4744                    if (!this.appObject.selectedDeliveryMethod) {
4745                        yield this.openOrderTypeChooser(this.appObject.settings.main_restaurant);
4746                    }
4747                    if (this.appObject.selectedDeliveryMethod)
4748                        this.router.navigate(['restaurant', this.appObject.settings.main_restaurant.slug]);
4749                }
4750            }
4751        });
4752    }
4753    openOrderTypeChooser(branch) {
4754        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4755            return new Promise((resolve, reject) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4756                let componentProps = {
4757                    'currentUI': 'order-type',
4758                    'selected_branch': branch
4759                };
4760                const cartModal = yield this.modalController.create({
4761                    component: _views_modals_select_order_type_select_order_type_page__WEBPACK_IMPORTED_MODULE_14__.SelectOrderTypePage,
4762                    cssClass: 'custom-popup',
4763                    componentProps: componentProps
4764                });
4765                yield cartModal.present();
4766                yield cartModal.onDidDismiss().then((response) => {
4767                    return resolve('done');
4768                });
4769            }));
4770        });
4771    }
4772    /**
4773     * Fetch all notifications of the logged in user
4774     */
4775    fetchNotifications() {
4776        this.appObject.isLoading = true;
4777        this.requestService.post('notification/list', {
4778            'device_id': this.appObject.deviceUUID,
4779            'device_type': config.plf,
4780            'lang': this.appObject.currentLang,
4781            'customer_id': this.appObject.userId
4782        }).then((response) => {
4783            this.appObject.notifications = [];
4784            if (response && response.status) {
4785                for (let i = 0; i < response.data.length; i++) {
4786                    const notification = response.data[i];
4787                    if (notification.created_at) {
4788                        let createdAt = new Date(notification.created_at);
4789                        notification.createdDate = createdAt.getFullYear() + '-' + ((createdAt.getMonth() + 1) <= 9 ? ('0' + (createdAt.getMonth() + 1)) : (createdAt.getMonth() + 1)) + '-' + +((createdAt.getDate() + 1) <= 9 ? ('0' + (createdAt.getDate() + 1)) : (createdAt.getDate() + 1));
4790                        notification.createdTime = this.formatAMPM(createdAt); // (createdAt.getHours() <= 9 ? ('0' + createdAt.getHours()) : createdAt.getHours()) + ':' + (createdAt.getMinutes() <= 9 ? ('0' + createdAt.getMinutes()) : createdAt.getMinutes()) + ':' + (createdAt.getSeconds() <= 9 ? ('0' + createdAt.getSeconds()) : createdAt.getSeconds());
4791                    }
4792                    if (notification.data)
4793                        notification.data = JSON.parse(notification.data);
4794                    this.appObject.notifications.push(notification);
4795                }
4796            }
4797            console.log(this.appObject.notifications);
4798            this.appObject.isLoading = false;
4799        }).catch((error) => {
4800            console.log('fetching notification occoured an error ', error);
4801            this.appObject.isLoading = false;
4802        });
4803    }
4804    formatAMPM(date) {
4805        var hours = date.getHours();
4806        var minutes = date.getMinutes();
4807        var seconds = date.getSeconds();
4808        var ampm = hours >= 12 ? 'pm' : 'am';
4809        hours = hours % 12;
4810        hours = hours ? hours : 12; // the hour '0' should be '12'
4811        minutes = minutes < 10 ? '0' + minutes : minutes;
4812        seconds = seconds < 10 ? '0' + seconds : seconds;
4813        var strTime = hours + ':' + minutes + ':' + seconds + ' ' + ampm;
4814        return strTime;
4815    }
4816    /**
4817     * Mark notification as read
4818     * @param notification notification object
4819     * @returns promise
4820     */
4821    markNotificationAsRead(notification) {
4822        return new Promise((resolve, reject) => {
4823            this.appObject.isLoading = true;
4824            this.requestService.post('notification/mark-as-read', {
4825                'device_id': this.appObject.deviceUUID,
4826                'device_type': config.plf,
4827                'lang': this.appObject.currentLang,
4828                'customer_id': notification.customers_id,
4829                'notification_id': notification.id
4830            }).then((response) => {
4831                if (response && response.status) {
4832                }
4833                this.appObject.isLoading = false;
4834                return resolve('done');
4835            }).catch((error) => {
4836                console.log('reading notification ', error);
4837                this.appObject.isLoading = false;
4838                return reject('error');
4839            });
4840        });
4841    }
4842    /**
4843     * Get Dishes Of Given Category
4844     * @param index index of category
4845     * @returns promise
4846     */
4847    get_dishes(index) {
4848        if (this.menuList[index])
4849            this.menuList[index].isLoading = true;
4850        this.dishFetchTimeoutList.push(setTimeout(() => {
4851            if (typeof this.menuList[index] !== "undefined" && !this.menuList[index].dishes.length) {
4852                this.getDishesOfTheGivenCategory(this.menuList[index].id).then((data) => {
4853                    if (this.menuList[index])
4854                        this.menuList[index].isLoading = false;
4855                    if (data.status) {
4856                        this.menuList[index].dishes = data.data;
4857                    }
4858                }).catch(err => {
4859                    console.log("err :", err);
4860                    this.menuList[index].isLoading = false;
4861                });
4862            }
4863        }, 500 * index));
4864    }
4865    /**
4866     * Will retrive all the tables in selected restaurant
4867     * @param id restaurant id
4868     * @returns a promise
4869     */
4870    fetchAllTablesOfRestaurant(id) {
4871        return new Promise((resolve, reject) => {
4872            this.requestService.post('table-number/list', {
4873                'device_id': this.appObject.deviceUUID,
4874                'device_type': config.plf,
4875                'lang': this.appObject.currentLang,
4876                'restaurant_id': id
4877            }).then((response) => {
4878                this.appObject.isLoading = false;
4879                return resolve(response);
4880            }).catch((error) => {
4881                this.appObject.isLoading = false;
4882                return reject(error);
4883            });
4884        });
4885    }
4886    /**
4887     * Open select table popup
4888     * @param restaurant selected restaurant object
4889     * @param isAlreadyInMenuPage a boolean to know if the user is already in menu page
4890     */
4891    openTableSelect(restaurant, isAlreadyInMenuPage = false) {
4892        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
4893            this.appObject.isLoading = true;
4894            // get user unpaid orders if availabel to avoid placing orders on table else
4895            yield this.getUserUnpaidActiveOrders(isAlreadyInMenuPage);
4896            let componentProps = {
4897                'currentUI': 'select-table',
4898                'tableSelectRestaurant': restaurant
4899            };
4900            if (isAlreadyInMenuPage) {
4901                componentProps['isFromMenuPage'] = true;
4902            }
4903            const model = yield this.modalController.create({
4904                component: _views_modals_select_order_type_select_order_type_page__WEBPACK_IMPORTED_MODULE_14__.SelectOrderTypePage,
4905                cssClass: 'custom-popup',
4906                componentProps: componentProps
4907            });
4908            yield model.present();
4909            this.appObject.isLoading = false;
4910            model.onDidDismiss().then((data) => {
4911                // console.log('am Here : ', data)
4912            });
4913        });
4914    }
4915    /**
4916     * Send dishes to kitchen order
4917     * @param closeModal close modal after process (boolean)
4918     * @returns a promise
4919     */
4920    sendToKitchen(closeModal = true) {
4921        if (this.appObject.orderObject.selectedTable) {
4922            // maintain a variable that the selected table has a pending payment order
4923            this.appObject.orderObject.selectedTable.saved = true;
4924        }
4925        if (!this.isWebVersion && this.appObject.orderObject && !this.appObject.orderObject.selectedTable) {
4926            this.modalController.dismiss();
4927            this.openTableSelect(this.appObject.selectedRestaurantDetails, true);
4928            return;
4929        }
4930        this.appObject.orderObject['device_id'] = this.appObject.deviceUUID;
4931        this.appObject.orderObject['lang'] = this.appObject.currentLang;
4932        this.appObject.orderObject['resturent_id'] = this.appObject.selectedRestaurantId;
4933        this.appObject.orderObject['device_type'] = config.plf;
4934        this.appObject.orderObject['customer_id'] = this.appObject.userId;
4935        let parameters = {
4936            'device_id': this.appObject.deviceUUID,
4937            'device_type': config.plf,
4938            'lang': this.appObject.currentLang,
4939            resturent_id: this.appObject.selectedRestaurantId,
4940            customer_id: this.appObject.userId,
4941            cart: this.appObject.orderObject.cart,
4942            table_number_id: this.appObject.orderObject.selectedTable.id,
4943            cart_save: this.appObject.orderObject
4944        };
4945        this.appObject.isLoading = true;
4946        return this.requestService.post('table-order/save', parameters).then(data => {
4947            if (data.status) {
4948                this.appObject.orderObject.table_order_id = data.table_order_id;
4949                this.appObject.orderObject.save_items = data.save_items;
4950                this.updateAppObject();
4951                // show success message 
4952                this.translate.get('key.your_order_has_been_sent_to_kitchen').toPromise().then((response) => {
4953                    if (response)
4954                        this.showToast(response, 'success');
4955                });
4956            }
4957            if (closeModal)
4958                this.modalController.dismiss();
4959            this.appObject.isLoading = false;
4960        }).catch((error) => {
4961            console.log('error :', error);
4962            this.appObject.isLoading = false;
4963        });
4964    }
4965    /**
4966     * Update existing kitchen order
4967     * @returns a promise
4968     */
4969    updateKitchenOrder() {
4970        if (this.appObject.orderObject.save_items) {
4971            let newItems = this.appObject.orderObject.cart.slice(this.appObject.orderObject.save_items);
4972            if (!newItems.length)
4973                return;
4974            this.appObject.orderObject['device_id'] = this.appObject.deviceUUID;
4975            this.appObject.orderObject['lang'] = this.appObject.currentLang;
4976            this.appObject.orderObject['resturent_id'] = this.appObject.selectedRestaurantId;
4977            this.appObject.orderObject['device_type'] = config.plf;
4978            this.appObject.orderObject['customer_id'] = this.appObject.userId;
4979            let parameters = {
4980                'device_id': this.appObject.deviceUUID,
4981                'device_type': config.plf,
4982                'lang': this.appObject.currentLang,
4983                customer_id: this.appObject.userId,
4984                resturent_id: this.appObject.selectedRestaurantId,
4985                cart: newItems,
4986                table_order_id: this.appObject.orderObject.table_order_id,
4987                cart_save: this.appObject.orderObject
4988            };
4989            return this.requestService.post('table-order/change', parameters).then(data => {
4990                if (data.status) {
4991                    this.appObject.orderObject.save_items = data.save_items;
4992                    // console.log('this.appObject.orderObject : ', this.appObject.orderObject);
4993                    this.appObject.orderObjectDup = {
4994                        cart: [...this.appObject.orderObject.cart]
4995                    };
4996                    // console.log('this.appObject.orderObjectDup : ' , this.appObject.orderObjectDup);
4997                    this.updateAppObject();
4998                }
4999            }).catch((error) => {
5000                console.log('error :', error);
5001            });
5002        }
5003    }
5004    /**
5005     * Check if new dishes been added to the cart
5006     * @returns boolean
5007     */
5008    hasNewDishesInCart() {
5009        let newItems = this.appObject.orderObject.cart.slice(this.appObject.orderObject.save_items);
5010        return newItems.length ? true : false;
5011    }
5012    /**
5013     * Fetch if logged in user has any unpaid in kitchen orders
5014     * @param isAlreadyInMenuPage accept this parameter to check if the user already in menu page, then do not clear the cart
5015     * @returns a promise
5016     */
5017    getUserUnpaidActiveOrders(isAlreadyInMenuPage = false) {
5018        let parameters = {
5019            'device_id': this.appObject.deviceUUID,
5020            'device_type': config.plf,
5021            'lang': this.appObject.currentLang,
5022            customer_id: this.appObject.userId,
5023        };
5024        return this.requestService.post('table-order/status', parameters).then((data) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
5025            if (data.status) {
5026                this.appObject.orderObject = JSON.parse(data.data.cart);
5027                // console.log('this.appObject.orderObject : ', this.appObject.orderObject);
5028                this.appObject.orderObject.table_order_id = data.data.id;
5029                this.appObject.orderObject.save_items = data.data.save_items;
5030                this.appObject.orderObjectDup = {
5031                    cart: [...this.appObject.orderObject.cart]
5032                };
5033                yield this.calculateCartAmounts();
5034                // console.log('this.appObject.orderObjectDup : ' , this.appObject.orderObjectDup);
5035                this.updateAppObject();
5036            }
5037            else {
5038                this.appObject.orderObject.table_order_id = null;
5039                this.appObject.orderObject.selectedTable = null;
5040                this.appObject.orderObject.save_items = 0;
5041                if (!isAlreadyInMenuPage)
5042                    this.clearCart();
5043            }
5044        })).catch((error) => {
5045            console.log('error :', error);
5046        });
5047    }
5048    /* This will find out what discounts should display in web landing page
5049    * @returns discount list
5050    */
5051    getDiscounts() {
5052        let discountList = [];
5053        if (this.appObject && this.appObject.settings && this.appObject.settings.main_restaurant) {
5054            let restaurant = this.appObject.settings.main_restaurant;
5055            let options = [];
5056            if (restaurant.dinein_discount) {
5057                options.push({ value: restaurant.dinein_discount, label: 'key.discount_for_dinein' });
5058            }
5059            if (restaurant.pickup_discount) {
5060                options.push({ value: restaurant.pickup_discount, label: 'key.discount_for_pickup' });
5061            }
5062            if (restaurant.deliver_discount) {
5063                options.push({ value: restaurant.deliver_discount, label: 'key.discount_for_delivery' });
5064            }
5065            if (options.length) {
5066                let largestDiscount = this.findLargestDiscount(options);
5067                if (largestDiscount.value === restaurant.deliver_discount) {
5068                    discountList = [{ value: restaurant.deliver_discount, label: 'key.discount_for_delivery' }];
5069                }
5070                else {
5071                    // console.log('an empty array N : ', largestDiscount);
5072                    if (largestDiscount.value === restaurant.pickup_discount) {
5073                        discountList = [{ value: restaurant.pickup_discount, label: 'key.discount_for_pickup' }];
5074                    }
5075                    discountList = [largestDiscount];
5076                }
5077            }
5078            else {
5079                // console.log('an empty array 1');
5080                discountList = [];
5081            }
5082        }
5083        // console.log('an empty array');
5084        this.discountListWeb = discountList;
5085        // console.log('this.discountList : ' , this.discountListWeb);
5086        return discountList;
5087    }
5088    /**
5089     * Find out the most valuable discount from all the available discounts
5090     * @param arr discount array
5091     * @returns the largest discount object
5092     */
5093    findLargestDiscount(arr) {
5094        let i;
5095        // Initialize maximum element
5096        let max = arr[0].value;
5097        let ob = arr[0];
5098        // Traverse array elements 
5099        // from second and compare
5100        // every element with current max 
5101        for (i = 1; i < arr.length; i++) {
5102            if (arr[i].value > max) {
5103                max = arr[i].value;
5104                ob = arr[i];
5105            }
5106        }
5107        return ob;
5108    }
5109    /**
5110     * Will rerurn default theme color object, these colors settings are predefined
5111     * @returns default theme color configurations
5112     */
5113    getDefaultThemeColors() {
5114        let primaryColor = src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.DEFAULT_PRIMARY_COLOR || '#98cc1f'; //'#059aeb';
5115        let primaryTextColor = src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.DEFAULT_PRIMARY_COLOR || '#ffffff';
5116        // this.storage.get('appObject').then(((appObject) =>{
5117        //   if (appObject && appObject.theme) {
5118        //     this.appObject.theme = appObject.theme;
5119        //   }
5120        // }));
5121        return {
5122            app: {
5123                advance: false,
5124                primaryColor: primaryColor,
5125                primaryTextColor: 'white',
5126                headerBackground: 'black',
5127                headerText: 'white',
5128                footerMenuBackground: 'black',
5129                footerMenuText: 'white',
5130                orderNowButtonArrowActiveColor: primaryTextColor,
5131                orderNowButtonArrowInactiveColor: primaryColor,
5132                spinnerColor: primaryColor,
5133                favouriteRestaurantButtonBackground: primaryColor,
5134                favouriteRestaurantButtonIcon: primaryTextColor,
5135                downloadAppBannerBackgroundColor: primaryColor,
5136                downloadAppBannerTextColor: primaryTextColor,
5137                home: {
5138                    secondaryButtons: 'white',
5139                    secondaryButtonsText: 'black',
5140                    backgroundType: 'gradiant',
5141                    color: 'yellow',
5142                    gradiant: 'linear-gradient(#5d5e5e,#363738)',
5143                    imageURL: 'https://i.stack.imgur.com/uD9js.png',
5144                    orderNowArrowActiveColor: primaryTextColor,
5145                    orderNowArrowInactiveColor: primaryColor,
5146                },
5147                sideMenu: {
5148                    textColor: primaryTextColor,
5149                    background: primaryColor
5150                },
5151                advanced: {
5152                    orderNowButton: primaryColor,
5153                    orderNowButtonText: 'white',
5154                    gotItButton: primaryColor,
5155                    deliveryMethodTypeButton: primaryColor,
5156                    deliveryMethodTypeButtonText: 'white',
5157                    popupTitleIcon: primaryColor,
5158                    // login page
5159                    loginBtn: primaryColor,
5160                    loginBtnText: 'white',
5161                    createAccountButton: primaryColor,
5162                    createAccountButtonText: 'white',
5163                    orderAsGuestButton: primaryColor,
5164                    orderAsGuestButtonText: 'white',
5165                    // menu page
5166                    menuTitle: primaryColor,
5167                    cartIconColor: primaryColor,
5168                    floatingCartButton: primaryColor,
5169                    floatingCartButtonText: 'white',
5170                    // cart 
5171                    checkoutButton: primaryColor,
5172                    checkoutButtonText: 'white',
5173                    proceedOrderButton: primaryColor,
5174                    proceedOrderButtonText: 'white',
5175                    orderAgainButton: primaryColor,
5176                    orderAgainButtonText: 'white',
5177                    registerButton: primaryColor,
5178                    registerButtonText: 'white',
5179                    addToCartButton: primaryColor,
5180                    addToCartButtonText: 'white',
5181                    openHourDayHeader: primaryColor,
5182                    openHourDayHeaderText: 'white',
5183                    addReviewButton: primaryColor,
5184                    addReviewButtonText: primaryTextColor,
5185                    reviewStarColor: primaryColor,
5186                }
5187            },
5188            web: {
5189                advance: false,
5190                primaryColor: primaryColor,
5191                primaryTextColor: primaryTextColor,
5192                footerBackground: 'darkgray',
5193                footerText: primaryTextColor,
5194                navigationLinkText: primaryColor,
5195                navigationBackground: primaryTextColor,
5196                spinnerColor: primaryColor,
5197                home: {
5198                    titleText: primaryColor,
5199                    subTitleText: 'black',
5200                    orderNowButton: primaryColor,
5201                    orderNowButtonText: primaryTextColor,
5202                    stepIconBackground: primaryColor,
5203                    stepIconText: primaryTextColor,
5204                    stepTitleColor: '#273c75',
5205                    stepSubtitleColor: 'black',
5206                    mobileAppAdBackground: primaryColor,
5207                    mobileAppAdBackgroundText: primaryTextColor
5208                },
5209                menu: {
5210                    headerButtonBackground: primaryColor,
5211                    headerButtonText: primaryTextColor,
5212                    categoriesHeaderBackground: primaryColor,
5213                    categoriesHeaderText: primaryTextColor,
5214                    activeCategoryText: primaryColor,
5215                    shoppingCartHeaderBackground: primaryColor,
5216                    shoppingCartHeaderText: primaryTextColor,
5217                    shoppingCartHeaderIcon: primaryColor,
5218                    checkoutButtonBackground: primaryColor,
5219                    checkoutButtonText: primaryTextColor,
5220                    grandTotalText: primaryColor,
5221                    dishQuntityChangeButton: primaryColor,
5222                    dishQuntityChangeButtonText: primaryTextColor,
5223                    addToCartButton: primaryColor,
5224                    sendToKitchenButton: primaryColor,
5225                    sendToKitchenButtonText: primaryTextColor,
5226                    sendToKitchenButtonDisabled: 'lightgray',
5227                    sendToKitchenButtonTextDisabled: 'black',
5228                    restaurantTitleBrushColor: primaryColor,
5229                    restaurantTitleText: primaryTextColor
5230                },
5231                advanced: {
5232                    gotItButton: primaryColor,
5233                    deliveryMethodTypeButton: primaryColor,
5234                    deliveryMethodTypeButtonText: primaryTextColor,
5235                    restaurantListCardBackground: primaryColor,
5236                    restaurantListCardText: primaryTextColor,
5237                    popupTitleText: primaryColor,
5238                    popupTitleBackground: 'white',
5239                    // login page
5240                    loginBtn: primaryColor,
5241                    loginBtnText: 'white',
5242                    createAccountButton: primaryColor,
5243                    createAccountButtonText: 'white',
5244                    orderAsGuestButton: primaryColor,
5245                    orderAsGuestButtonText: 'white',
5246                    // menu page
5247                    menuTitle: primaryColor,
5248                    // cart 
5249                    checkoutButton: primaryColor,
5250                    checkoutButtonText: primaryTextColor,
5251                    proceedOrderButton: primaryColor,
5252                    proceedOrderButtonText: primaryTextColor,
5253                    orderAgainButton: primaryColor,
5254                    orderAgainButtonText: primaryTextColor,
5255                    registerButton: primaryColor,
5256                    registerButtonText: primaryTextColor,
5257                    openHourDayHeader: primaryColor,
5258                    openHourDayHeaderText: primaryTextColor,
5259                    addToCartButton: primaryColor,
5260                    addToCartButtonText: primaryTextColor,
5261                    addReviewButton: primaryColor,
5262                    addReviewButtonText: primaryTextColor,
5263                    reviewStarColor: primaryColor,
5264                }
5265            }
5266        };
5267    }
5268    /**
5269     * Refresh favourite restaurant data
5270     * @param slug restaurant slug to retrive data
5271     */
5272    getFavouriteRestaurantData(slug) {
5273        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
5274            // console.log('called multiple times');
5275            yield this.requestService.post('restaurant/' + slug, {
5276                'device_id': this.appObject.deviceUUID,
5277                'language': this.appObject.currentLang,
5278                'device_type': config.plf,
5279                'delivery_type': this.appObject.selectedDeliveryMethod,
5280                'lat': this.appObject.myAddress.lat,
5281                'lng': this.appObject.myAddress.lng
5282            }).then(data => {
5283                if (data.status) {
5284                    this.appObject.favouriteRestaurant = data.data;
5285                }
5286            }, error => {
5287                this.appObject.isLoading = false;
5288            });
5289        });
5290    }
5291    /*
5292    * Send Account Delete Email
5293    */
5294    sendAccountDeleteEmail(profile_details) {
5295        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
5296            profile_details['lang'] = this.appObject.currentLang;
5297            profile_details['device_id'] = this.appObject.deviceUUID;
5298            profile_details['device_type'] = config.plf;
5299            return yield this.requestService.post('customer/delete/send', profile_details);
5300        });
5301    }
5302    /**
5303     * Account Delete Email
5304    */
5305    sendAccountDelete(profile_details) {
5306        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
5307            profile_details['lang'] = this.appObject.currentLang;
5308            profile_details['device_id'] = this.appObject.deviceUUID;
5309            profile_details['device_type'] = config.plf;
5310            return yield this.requestService.post('customer/delete', profile_details);
5311        });
5312    }
5313    /**
5314     * Modal Dismiss
5315    */
5316    modalDismiss() {
5317        this.modalController.dismiss();
5318    }
5319    /**
5320     * Return available delivery methods from all the branches in restaurant
5321     */
5322    getAvailableOrderMethodsFromBranches() {
5323        let availableMethods = [];
5324        if (this.appObject.ourBranches && this.appObject.ourBranches.length) {
5325            for (let i = 0; i < this.appObject.ourBranches.length; i++) {
5326                const element = this.appObject.ourBranches[i];
5327                let methods = this.findSelectedRestaurantOrderTypesV2(element, true).deliveryMethods;
5328                methods.forEach(method => {
5329                    if (!availableMethods.find(methodEx => methodEx === method))
5330                        availableMethods.push(method);
5331                });
5332            }
5333        }
5334        return availableMethods;
5335    }
5336    checkSecialOpenCloseDay(details) {
5337        return new Promise((resolve, reject) => {
5338            details['lang'] = this.appObject.currentLang;
5339            details['device_id'] = this.appObject.deviceUUID;
5340            this.appObject.isLoading = true;
5341            this.requestService.post('special-open-close-days/check', details).then(data => {
5342                this.appObject.isLoading = false;
5343                return resolve(data);
5344            }, error => {
5345                this.appObject.isLoading = false;
5346                return reject(error);
5347            });
5348        });
5349    }
5350    checkHasSecialOpenCloseDayNear(details) {
5351        return new Promise((resolve, reject) => {
5352            details['lang'] = this.appObject.currentLang;
5353            details['device_id'] = this.appObject.deviceUUID;
5354            this.appObject.isLoading = true;
5355            this.requestService.post('special-open-close-days/check/near', details).then(data => {
5356                this.appObject.isLoading = false;
5357                return resolve(data);
5358            }, error => {
5359                this.appObject.isLoading = false;
5360                return reject(error);
5361            });
5362        });
5363    }
5364    /**
5365     *
5366     * @param dateToFormat date object or date string to format
5367     * @param includeTime boolean true/false to include time
5368     * @param includeSeconds boolean true/false to include seconds in time
5369     * @returns
5370     */
5371    formatDateTime(dateToFormat = new Date(), includeTime = false, includeSeconds = false) {
5372        const date = typeof dateToFormat === 'string' ? new Date(dateToFormat) : dateToFormat;
5373        const year = date.getFullYear().toString();
5374        const month = (date.getMonth() + 1).toString().padStart(2, '0');
5375        const day = date.getDate().toString().padStart(2, '0');
5376        let settings = this.appObject.settings;
5377        let dateFormat = settings.date_format ? settings.date_format : 'DD-MM-YYYY';
5378        let timeFormat = settings.time_format ? settings.time_format : '24_HOURS';
5379        let monthName = '';
5380        if (dateFormat.includes('mmmm')) {
5381            const monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
5382            monthName = monthNames[date.getMonth()];
5383        }
5384        if (dateFormat.includes('MON')) {
5385            const monthNames = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];
5386            monthName = monthNames[date.getMonth()];
5387        }
5388        let formattedDate = dateFormat
5389            .replace('YYYY', year)
5390            .replace('MM', month)
5391            .replace('DD', day)
5392            .replace('mmmm', monthName)
5393            .replace('MON', monthName);
5394        if (includeTime) {
5395            let hours = '';
5396            let minutes = date.getMinutes().toString().padStart(2, '0');
5397            let seconds = date.getSeconds().toString().padStart(2, '0');
5398            let period = '';
5399            if (timeFormat === '12_HOURS') {
5400                // Determine whether it's AM or PM
5401                period = date.getHours() >= 12 ? 'PM' : 'AM';
5402                // Convert 24-hour format to 12-hour format
5403                let formattedHours = date.getHours() % 12;
5404                formattedHours = formattedHours ? formattedHours : 12;
5405                hours = formattedHours.toString().padStart(2, '0');
5406            }
5407            else {
5408                hours = date.getHours().toString().padStart(2, '0');
5409            }
5410            formattedDate += ` ${hours}:${minutes}`;
5411            if (includeSeconds) {
5412                formattedDate += `:${seconds}`;
5413            }
5414            formattedDate += ` ${period}`;
5415        }
5416        return formattedDate.trim();
5417    }
5418    /**
5419     * Will return min order amount and delivery cost for the given time or current time
5420     * @param postalCodeData postal code details object
5421     */
5422    getGivenPostalCodeCurrentPriceAndMinAmount(postalCodeData, time = '') {
5423        if (postalCodeData) {
5424            let currentTimeSlot = time;
5425            // if there is no any specified time, the get current HH:mm
5426            if (!currentTimeSlot) {
5427                let currentTime = new Date();
5428                const hours = currentTime.getHours().toString().padStart(2, '0');
5429                const minutes = currentTime.getMinutes().toString().padStart(2, '0');
5430                currentTimeSlot = hours + ':' + minutes;
5431            }
5432            // get the pricing for the time slot
5433            let currentTimeSlotDetails = postalCodeData.time_slots.find((slot) => {
5434                if (slot.status === 'true') {
5435                    if (slot.time_from !== 'All Day') {
5436                        let slotStartTime = new Date('2024-01-01 ' + slot.time_from);
5437                        let slotEndTime = new Date('2024-01-01 ' + slot.time_to);
5438                        let currentTime = new Date('2024-01-01 ' + currentTimeSlot);
5439                        // if the end time is set to 00:00 means tomorrow early morning
5440                        // so increase the day by 1
5441                        if (slot.time_to === '00:00') {
5442                            slotEndTime.setDate(slotEndTime.getDate() + 1);
5443                        }
5444                        if (currentTime >= slotStartTime && currentTime <= slotEndTime) {
5445                            return true;
5446                        }
5447                        else {
5448                            return false;
5449                        }
5450                    }
5451                    else {
5452                        return true;
5453                    }
5454                }
5455                return false;
5456            });
5457            return currentTimeSlotDetails ? currentTimeSlotDetails : { min_order: 0, cost: 0 };
5458        }
5459        return { min_order: 0, cost: 0 };
5460    }
5461    /**
5462     * Will return when only require single topping option, there is enable disable option in backend to display dropdown or checkboxes to topping select
5463     * @returns boolean
5464     */
5465    getSelectedRestaurantSingleOptionSelectCondition() {
5466        if (this.appObject.selectedRestaurantDetails && this.appObject.selectedRestaurantDetails.display_checkboxes_for_single_topping_select_option === 'true') {
5467            return true;
5468        }
5469        return false;
5470    }
5471    /**
5472     * Try again from maintenance mode
5473     */
5474    tryAgainMaintenance() {
5475        return (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
5476            yield this.requestService.post('settings', {
5477                'device_id': this.appObject.deviceUUID,
5478                'language': this.appObject.currentLang,
5479                'device_type': config.plf,
5480                'app_version': src_environments_environment__WEBPACK_IMPORTED_MODULE_6__.environment.APP_VERSION
5481            }).then((data) => (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__awaiter)(this, void 0, void 0, function* () {
5482                // if maintain mode is on, then redirect into maintenance page
5483                if (data.data && data.data.maintenance_mode === 'false') {
5484                    this.router.navigate(['/'], { replaceUrl: true });
5485                    // when go back to home page, refresh the settings for real
5486                    this.getSettings();
5487                }
5488            }));
5489        });
5490    }
5491    /**
5492     * Will return min order amount and delivery cost for given distance + restaurant + timeslot
5493     * @param distance distance in km
5494     * @param restaurant selected restaurant / or if unavailable get the selectedRestaurantObject in appObject
5495     * @param time time slot in string as "HH:MM" / or if not available get current time
5496     */
5497    getGivenTimeAndDistanceMinOrderAmountAndDeliveryCost(distance, restaurant = null, time = '') {
5498        let baseRestaurant = restaurant;
5499        if (!baseRestaurant)
5500            baseRestaurant = this.appObject.selectedRestaurantDetails;
5501        if (!time) {
5502            let currentTime = new Date();
5503            const hours = currentTime.getHours().toString().padStart(2, '0');
5504            const minutes = currentTime.getMinutes().toString().padStart(2, '0');
5505            time = hours + ':' + minutes;
5506        }
5507        if (baseRestaurant.delivery_cost_details && baseRestaurant.delivery_cost_details.length) {
5508            let deliveryCostDetails = baseRestaurant.delivery_cost_details.find((costDetailObject) => costDetailObject.range_km === distance);
5509            // get the pricing for the time slot
5510            return deliveryCostDetails.time_slots.find((slot) => {
5511                if (slot.time_from !== 'All Day' && slot.status === 'true') {
5512                    let slotStartTime = new Date('2024-01-01 ' + slot.time_from);
5513                    let slotEndTime = new Date('2024-01-01 ' + slot.time_to);
5514                    let currentTime = new Date('2024-01-01 ' + time);
5515                    // if the end time is set to 00:00 means tomorrow early morning
5516                    // so increase the day by 1
5517                    if (slot.time_to === '00:00') {
5518                        slotEndTime.setDate(slotEndTime.getDate() + 1);
5519                    }
5520                    if (currentTime >= slotStartTime && currentTime <= slotEndTime) {
5521                        return true;
5522                    }
5523                    else {
5524                        return false;
5525                    }
5526                }
5527                else if (slot.time_from === 'All Day') {
5528                    return true;
5529                }
5530                else {
5531                    return false;
5532                }
5533            });
5534        }
5535        else {
5536            console.log('There is no delivery configurations defined');
5537            return null;
5538        }
5539    }
5540};
5541AppServiceService.ctorParameters = () => [
5542    { type: _core_storage_service__WEBPACK_IMPORTED_MODULE_0__.StorageService },
5543    { type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_17__.TranslateService },
5544    { type: _angular_router__WEBPACK_IMPORTED_MODULE_18__.Router },
5545    { type: _ionic_native_geolocation_ngx__WEBPACK_IMPORTED_MODULE_1__.Geolocation },
5546    { type: _core_request_service__WEBPACK_IMPORTED_MODULE_2__.RequestService },
5547    { type: _ionic_native_onesignal_ngx__WEBPACK_IMPORTED_MODULE_3__.OneSignal },
5548    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_19__.Platform },
5549    { type: _ionic_native_globalization_ngx__WEBPACK_IMPORTED_MODULE_4__.Globalization },
5550    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_19__.ModalController },
5551    { type: _ionic_native_in_app_browser_ngx__WEBPACK_IMPORTED_MODULE_7__.InAppBrowser },
5552    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_19__.MenuController },
5553    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_19__.NavController },
5554    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_19__.ToastController },
5555    { type: _angular_core__WEBPACK_IMPORTED_MODULE_20__.NgZone },
5556    { type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_21__.Title },
5557    { type: _angular_router__WEBPACK_IMPORTED_MODULE_18__.ActivatedRoute }
5558];
5559AppServiceService = (0,tslib__WEBPACK_IMPORTED_MODULE_16__.__decorate)([
5560    (0,_angular_core__WEBPACK_IMPORTED_MODULE_20__.Injectable)({
5561        providedIn: 'root'
5562    })
5563], AppServiceService);
5564
5565
5566
5567/***/ }),
5568
5569/***/ 90158:
5570/*!***************************************!*\
5571  !*** ./src/app/app-routing.module.ts ***!
5572  \***************************************/
5573/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5574
5575"use strict";
5576__webpack_require__.r(__webpack_exports__);
5577/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5578/* harmony export */   "AppRoutingModule": function() { return /* binding */ AppRoutingModule; }
5579/* harmony export */ });
5580/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 64762);
5581/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716);
5582/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ 39895);
5583/* harmony import */ var _core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/auth-guard.service */ 73048);
5584
5585
5586
5587
5588var routes = [];
5589if (config.viewpltf && config.viewpltf == 'mobile') {
5590    var routes = [
5591        {
5592            path: '',
5593            redirectTo: 'home',
5594            pathMatch: 'full'
5595        },
5596        {
5597            path: 'home',
5598            loadChildren: () => Promise.all(/*! import() */[__webpack_require__.e("default-src_app_views_modals_table-reservation_table-reservation_page_ts"), __webpack_require__.e("common"), __webpack_require__.e("src_app_views_home-single_home-single_module_ts")]).then(__webpack_require__.bind(__webpack_require__, /*! ./views/home-single/home-single.module */ 19143)).then(m => m.HomeSinglePageModule),
5599            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5600            data: {
5601                needAuth: false,
5602                sideMenu: true,
5603                footerMenu: true
5604            }
5605        },
5606        {
5607            path: 'login',
5608            loadChildren: () => __webpack_require__.e(/*! import() */ "default-src_app_views_login_login_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/login/login.module */ 50265)).then(m => m.LoginPageModule),
5609            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5610            data: {
5611                needAuth: false,
5612                sideMenu: true,
5613                footerMenu: true
5614            }
5615        },
5616        {
5617            path: 'register',
5618            loadChildren: () => __webpack_require__.e(/*! import() */ "default-src_app_views_register_register_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/register/register.module */ 73779)).then(m => m.RegisterPageModule),
5619            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5620            data: {
5621                needAuth: false,
5622                sideMenu: false,
5623                footerMenu: true
5624            }
5625        },
5626        {
5627            path: 'modals/popup',
5628            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_modals_popup_popup_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/popup/popup.module */ 66693)).then(m => m.PopupPageModule)
5629        },
5630        {
5631            path: 'modals/cart',
5632            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_modals_cart_cart_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/cart/cart.module */ 76034)).then(m => m.CartPageModule)
5633        },
5634        {
5635            path: 'modals/toppings',
5636            loadChildren: () => __webpack_require__.e(/*! import() */ "common").then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/toppings/toppings.module */ 86636)
5636).then(m => m.ToppingsPageModule)
5637        },
5638        {
5639            path: 'modals/cross-selling',
5640            loadChildren: () => __webpack_require__.e(/*! import() */ "common").then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/cross-selling/cross-selling.module */ 15914)).then(m => m.CrossSellingPageModule)
5641        },
5642        {
5643            path: 'modals/table-reservation',
5644            loadChildren: () => Promise.all(/*! import() */[__webpack_require__.e("default-src_app_views_modals_table-reservation_table-reservation_page_ts"), __webpack_require__.e("common")]).then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/table-reservation/table-reservation.module */ 90197)).then(m => m.TableReservationPageModule)
5645        },
5646        {
5647            path: 'modals/select-order-type',
5648            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_modals_select-order-type_select-order-type_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/select-order-type/select-order-type.module */ 81339)).then(m => m.SelectOrderTypePageModule)
5649        },
5650        {
5651            path: 'restaurant/:slug',
5652            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_ordering-main2_ordering-main2_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/ordering-main2/ordering-main2.module */ 89197)).then(m => m.OrderingMain2PageModule),
5653            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5654            data: {
5655                needAuth: false,
5656                sideMenu: true,
5657                footerMenu: true
5658            }
5659        },
5660        {
5661            path: 'branches-map',
5662            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_branches-map_branches-map_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/branches-map/branches-map.module */ 46979)).then(m => m.BranchesMapPageModule),
5663            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5664            data: {
5665                needAuth: false,
5666                sideMenu: true,
5667                footerMenu: true
5668            }
5669        },
5670        {
5671            path: 'pages/:slug',
5672            loadChildren: () => __webpack_require__.e(/*! import() */ "common").then(__webpack_require__.bind(__webpack_require__, /*! ./views/pages/pages.module */ 21244)).then(m => m.PagesPageModule)
5673        },
5674        {
5675            path: 'model/tour',
5676            loadChildren: () => Promise.all(/*! import() */[__webpack_require__.e("common"), __webpack_require__.e("src_app_views_modals_tour_tour_module_ts")]).then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/tour/tour.module */ 57833)).then(m => m.TourPageModule)
5677        },
5678        {
5679            path: 'model/delivery-times',
5680            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_modals_delivery-times_delivery-times_module_ts-_92480").then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/delivery-times/delivery-times.module */ 59912)).then(m => m.DeliveryTimesPageModule)
5681        },
5682        {
5683            path: 'restaurant-list',
5684            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_restaurant-list_restaurant-list_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/restaurant-list/restaurant-list.module */ 41178)).then(m => m.RestaurantListPageModule),
5685            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5686            data: {
5687                needAuth: false,
5688                sideMenu: true,
5689                footerMenu: true
5690            }
5691        },
5692        {
5693            path: 'checkout',
5694            loadChildren: () => Promise.all(/*! import() */[__webpack_require__.e("default-src_app_views_checkout_checkout_module_ts"), __webpack_require__.e("src_app_views_modals_delivery-times_delivery-times_module_ts-_92481")]).then(__webpack_require__.bind(__webpack_require__, /*! ./views/checkout/checkout.module */ 72478)).then(m => m.CheckoutPageModule),
5695            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5696            data: {
5697                needAuth: false,
5698                sideMenu: true,
5699                footerMenu: true
5700            }
5701        },
5702        {
5703            path: 'alert',
5704            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_modals_alert_alert_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/modals/alert/alert.module */ 90065)).then(m => m.AlertPageModule)
5705        },
5706        {
5707            path: 'profile',
5708            loadChildren: () => __webpack_require__.e(/*! import() */ "default-src_app_views_profile-update_profile-update_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/profile-update/profile-update.module */ 3557)).then(m => m.ProfileUpdatePageModule),
5709            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5710            data: {
5711                needAuth: false,
5712                sideMenu: true,
5713                footerMenu: true
5714            }
5715        }, {
5716            path: 'forgot-password',
5717            loadChildren: () => __webpack_require__.e(/*! import() */ "default-src_app_views_forgot-password_forgot-password_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/forgot-password/forgot-password.module */ 6465)).then(m => m.ForgotPasswordPageModule),
5718            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5719            data: {
5720                needAuth: false,
5721                sideMenu: true,
5722                footerMenu: true
5723            }
5724        },
5725        {
5726            path: 'my-orders',
5727            loadChildren: () => __webpack_require__.e(/*! import() */ "default-src_app_views_past-order_past-order_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/past-order/past-order.module */ 80363)).then(m => m.PastOrderPageModule),
5728            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5729            data: {
5730                needAuth: false,
5731                sideMenu: true,
5732                footerMenu: true
5733            }
5734        }, {
5735            path: 'branches-map/:slug/review',
5736            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_restaurant-review_restaurant-review_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/restaurant-review/restaurant-review.module */ 46645)).then(m => m.RestaurantReviewPageModule),
5737            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5738            data: {
5739                needAuth: false,
5740                sideMenu: true,
5741                footerMenu: true
5742            }
5743        },
5744        {
5745            path: 'order-summery/:unique',
5746            loadChildren: () => __webpack_require__.e(/*! import() */ "default-src_app_views_order-summery_order-summery_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/order-summery/order-summery.module */ 75991)).then(m => m.OrderSummeryPageModule),
5747            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5748            data: {
5749                needAuth: false,
5750                sideMenu: true,
5751                footerMenu: true
5752            }
5753        },
5754        {
5755            path: 'imprint/:slug',
5756            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_imprint_imprint_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/imprint/imprint.module */ 49410)).then(m => m.ImprintPageModule),
5757            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5758            data: {
5759                needAuth: false,
5760                sideMenu: true,
5761                footerMenu: true
5762            }
5763        },
5764        {
5765            path: 'open-hours/:restaurant_id',
5766            loadChildren: () => __webpack_require__.e(/*! import() */ "default-src_app_views_open-hours_open-hours_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/open-hours/open-hours.module */ 30547)).then(m => m.OpenHoursPageModule),
5767            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5768            data: {
5769                needAuth: false,
5770                sideMenu: true,
5771                footerMenu: true
5772            }
5773        },
5774        {
5775            path: 'register-via',
5776            loadChildren: () => __webpack_require__.e(/*! import() */ "default-src_app_views_register-via_register-via_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/register-via/register-via.module */ 51564)).then(m => m.RegisterViaPageModule),
5777            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5778            data: {
5779                needAuth: false,
5780                sideMenu: true,
5781                footerMenu: true
5782            }
5783        },
5784        {
5785            path: 'additives-and-substances',
5786            loadChildren: () => __webpack_require__.e(/*! import() */ "common").then(__webpack_require__.bind(__webpack_require__, /*! ./views/additives-and-substances/additives-and-substances.module */ 44619)).then(m => m.AdditivesAndSubstancesPageModule),
5787            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5788            data: {
5789                needAuth: false,
5790                sideMenu: true,
5791                footerMenu: true
5792            }
5793        },
5794        {
5795            path: 'inbox',
5796            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_notifications_notifications_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/notifications/notifications.module */ 9181)).then(m => m.NotificationsPageModule),
5797            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5798            data: {
5799                needAuth: true,
5800                sideMenu: true,
5801                footerMenu: true
5802            }
5803        },
5804        {
5805            path: 'notification',
5806            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_notification-content_notification-content_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/notification-content/notification-content.module */ 52239)).then(m => m.NotificationContentPageModule),
5807            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5808            data: {
5809                needAuth: true,
5810                sideMenu: true,
5811                footerMenu: true
5812            }
5813        },
5814        {
5815            path: 'update-required',
5816            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_app-update_app-update_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/app-update/app-update.module */ 37594)).then(m => m.AppUpdatePageModule),
5817            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5818            data: {
5819                needAuth: false,
5820                sideMenu: false,
5821                footerMenu: false
5822            }
5823        },
5824        {
5825            path: 'maintenance',
5826            loadChildren: () => __webpack_require__.e(/*! import() */ "src_app_views_under-maintenance-mob_under-maintenance_module_ts").then(__webpack_require__.bind(__webpack_require__, /*! ./views/under-maintenance-mob/u
5826nder-maintenance.module */ 80770)).then(m => m.UnderMaintenanceMobPageModule),
5827            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5828            data: {
5829                needAuth: false,
5830                sideMenu: false,
5831                footerMenu: false
5832            }
5833        }
5834    ];
5835}
5836if (config.viewpltf && config.viewpltf == 'web') {
5837    var routes = [
5838        {
5839            path: '',
5840            redirectTo: 'home',
5841            pathMatch: 'full'
5842        },
5843        {
5844            path: 'home',
5845            loadChildren: () => Promise.all(/*! import() */[__webpack_require__.e("default-src_app_views_modals_table-reservation_table-reservation_page_ts"), __webpack_require__.e("default-src_app_views_modals_delivery-times_delivery-times_module_ts-src_app_views_web-views_-6cf62c"), __webpack_require__.e("default-src_app_views_checkout_checkout_module_ts"), __webpack_require__.e("default-src_app_views_order-summery_order-summery_module_ts"), __webpack_require__.e("default-src_app_views_login_login_module_ts"), __webpack_require__.e("default-src_app_views_profile-update_profile-update_module_ts"), __webpack_require__.e("default-src_app_views_register-via_register-via_module_ts"), __webpack_require__.e("default-src_app_views_register_register_module_ts"), __webpack_require__.e("default-src_app_views_open-hours_open-hours_module_ts"), __webpack_require__.e("default-src_app_views_forgot-password_forgot-password_module_ts"), __webpack_require__.e("default-src_app_views_past-order_past-order_module_ts"), __webpack_require__.e("common"), __webpack_require__.e("src_app_views_web-views_weblanding_weblanding_module_ts")]).then(__webpack_require__.bind(__webpack_require__, /*! ./views/web-views/weblanding/weblanding.module */ 36928)).then(m => m.WeblandingPageModule),
5846            canActivate: [_core_auth_guard_service__WEBPACK_IMPORTED_MODULE_0__.AuthGuardService],
5847            data: {
5848                needAuth: false,
5849                sideMenu: false,
5850                footerMenu: false
5851            }
5852        },
5853        {
5854            path: 'menu/:slug',
5855            loadChildren: () => Promise.all(/*! import() */[__webpack_require__.e("default-src_app_views_modals_delivery-times_delivery-times_module_ts-src_app_views_web-views_-6cf62c"), __webpack_require__.e("src_app_views_web-views_web-menu_web-menu_module_ts")]).then(__webpack_require__.bind(__webpack_require__, /*! ./views/web-views/web-menu/web-menu.module */ 26164)).then(m => m.WebMenuPageModule),
5856            data: {
5857                needAuth: false,
5858                sideMenu: false,
5859                footerMenu: true
5860            }
5861        },
5862        {
5863            path: 'maintenance',
5864            loadChildren: () => Promise.all(/*! import() */[__webpack_require__.e("default-src_app_views_modals_delivery-times_delivery-times_module_ts-src_app_views_web-views_-6cf62c"), __webpack_require__.e("src_app_views_web-views_under-maintenance_under-maintenance_module_ts")]).then(__webpack_require__.bind(__webpack_require__, /*! ./views/web-views/under-maintenance/under-maintenance.module */ 76023)).then(m => m.UnderMaintenancePageModule),
5865            data: {
5866                needAuth: false,
5867                sideMenu: false,
5868                footerMenu: false
5869            }
5870        }
5871    ];
5872}
5873let AppRoutingModule = class AppRoutingModule {
5874};
5875AppRoutingModule = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
5876    (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.NgModule)({
5877        imports: [
5878            _angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterModule.forRoot(routes, { preloadingStrategy: _angular_router__WEBPACK_IMPORTED_MODULE_3__.PreloadAllModules })
5879        ],
5880        exports: [_angular_router__WEBPACK_IMPORTED_MODULE_3__.RouterModule]
5881    })
5882], AppRoutingModule);
5883
5884
5885
5886/***/ }),
5887
5888/***/ 55041:
5889/*!**********************************!*\
5890  !*** ./src/app/app.component.ts ***!
5891  \**********************************/
5892/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5893
5894"use strict";
5895__webpack_require__.r(__webpack_exports__);
5896/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5897/* harmony export */   "AppComponent": function() { return /* binding */ AppComponent; }
5898/* harmony export */ });
5899/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! tslib */ 64762);
5900/* harmony import */ var _raw_loader_app_component_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./app.component.html */ 91106);
5901/* harmony import */ var _app_component_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.component.scss */ 43069);
5902/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/core */ 37716);
5903/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ionic/angular */ 80476);
5904/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/router */ 39895);
5905/* harmony import */ var _api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./api/app-service.service */ 95670);
5906/* harmony import */ var _ionic_native_call_number_ngx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic-native/call-number/ngx */ 64687);
5907/* harmony import */ var _ionic_native_onesignal_ngx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic-native/onesignal/ngx */ 61779);
5908/* harmony import */ var _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic-native/splash-screen/ngx */ 51524);
5909/* harmony import */ var _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ionic-native/status-bar/ngx */ 73494);
5910/* harmony import */ var src_app_core_request_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! src/app/core/request.service */ 25094);
5911/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! src/environments/environment */ 92340);
5912/* harmony import */ var _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./views/web-views/shared/modal-popover/modal-popover.page */ 65524);
5913/* harmony import */ var _ionic_native_network_ngx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ionic-native/network/ngx */ 75592);
5914/* harmony import */ var _views_modals_popup_popup_page__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./views/modals/popup/popup.page */ 79979);
5915/* harmony import */ var _app_views_web_views_shared_constatnts_json__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../app/views/web-views/shared/constatnts.json */ 20991);
5916/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/platform-browser */ 39075);
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926//For One Signal Fix
5927
5928
5929
5930
5931
5932
5933// Network
5934
5935
5936// import { StylishAlertPage } from './views/modals/stylish-alert/stylish-alert.page';
5937
5938
5939let AppComponent = class AppComponent {
5940    constructor(appService, platform, callNumber, splashScreen, statusBar, oneSignal, requestService, router, modalController, route, zone, network, alertController, metaService) {
5941        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
5942        this.appService = appService;
5943        this.platform = platform;
5944        this.callNumber = callNumber;
5945        this.splashScreen = splashScreen;
5946        this.statusBar = statusBar;
5947        this.oneSignal = oneSignal;
5948        this.requestService = requestService;
5949        this.router = router;
5950        this.modalController = modalController;
5951        this.route = route;
5952        this.zone = zone;
5953        this.network = network;
5954        this.alertController = alertController;
5955        this.metaService = metaService;
5956        this.baseURL = src_environments_environment__WEBPACK_IMPORTED_MODULE_8__.environment.BASE_URL;
5957        this.appVersion = src_environments_environment__WEBPACK_IMPORTED_MODULE_8__.environment.APP_VERSION;
5958        this.pages = {};
5959        this.PRIVACY_POLICY_SLUG = 'pnp';
5960        this.TERMS_AND_CONDITIONS_SLUG = 'tnc';
5961        this.targetPage = '';
5962        this.internetConnection = true;
5963        this.POPOVER_TYPES = _app_views_web_views_shared_constatnts_json__WEBPACK_IMPORTED_MODULE_12__.POPOVER_TYPES;
5964        this.colorSpinner = ((_b = (_a = this.appService.appObject) === null || _a === void 0 ? void 0 : _a.theme[this.appService.themeConfigFor]) === null || _b === void 0 ? void 0 : _b.spinnerColor) ? (_d = (_c = this.appService.appObject) === null || _c === void 0 ? void 0 : _c.theme[this.appService.themeConfigFor]) === null || _d === void 0 ? void 0 : _d.spinnerColor : '255, 7, 28';
5965        this.sideMenuBackground = ((_g = (_f = (_e = this.appService.appObject) === null || _e === void 0 ? void 0 : _e.theme[this.appService.themeConfigFor]) === null || _f === void 0 ? void 0 : _f.sideMenu) === null || _g === void 0 ? void 0 : _g.background) ? (_k = (_j = (_h = this.appService.appObject) === null || _h === void 0 ? void 0 : _h.theme[this.appService.themeConfigFor]) === null || _j === void 0 ? void 0 : _j.sideMenu) === null || _k === void 0 ? void 0 : _k.background : '#ff071c';
5966        this.selectListColor = ((_m = (_l = this.appService.appObject) === null || _l === void 0 ? void 0 : _l.theme[this.appService.themeConfigFor]) === null || _m === void 0 ? void 0 : _m.primaryColor) ? (_p = (_o = this.appService.appObject) === null || _o === void 0 ? void 0 : _o.theme[this.appService.themeConfigFor]) === null || _p === void 0 ? void 0 : _p.primaryColor : '';
5967        this.deliveryCostChangedToast = ((_r = (_q = this.appService.appObject) === null || _q === void 0 ? void 0 : _q.theme[this.appService.themeConfigFor]) === null || _r === void 0 ? void 0 : _r.primaryColor) ? (_t = (_s = this.appService.appObject) === null || _s === void 0 ? void 0 : _s.theme[this.appService.themeConfigFor]) === null || _t === void 0 ? void 0 : _t.primaryColor : '';
5968        this.deliveryCostChangedToastText = ((_v = (_u = this.appService.appObject) === null || _u === void 0 ? void 0 : _u.theme[this.appService.themeConfigFor]) === null || _v === void 0 ? void 0 : _v.primaryTextColor) ? (_x = (_w = this.appService.appObject) === null || _w === void 0 ? void 0 : _w.theme[this.appService.themeConfigFor]) === null || _x === void 0 ? void 0 : _x.primaryTextColor : '';
5969        this.isFavoriteRestaurantPopUpOpen = false;
5970        this.isCookieBannerClosed = true;
5971        // mobile app download banner popup links
5972        this.iOsLink = '';
5973        this.androidLink = '';
5974        this.appName = '';
5975        this.appIcon = '';
5976        this.network.onDisconnect().subscribe(() => {
5977            // this.appService.showToast('No internet connection', 'danger', 'top', 1000);
5978            this.zone.run(() => {
5979                this.getTranslateText();
5980                this.internetConnection = false;
5981            });
5982        });
5983        // watch network for a connection
5984        this.network.onConnect().subscribe(() => {
5985            // this.appService.showToast('Internet connected', 'success', 'top', 500);
5986            this.zone.run(() => {
5987                this.internetConnection = true;
5988            });
5989        });
5990        route.queryParams.subscribe((parameters) => {
5991            // console.log('parameters : ' , parameters);
5992            if (parameters.target) {
5993                this.targetPage = parameters.target;
5994            }
5995        });
5996        //For One Signal Fix
5997        this.initializeApp();
5998        let watcher = setInterval(() => (0,tslib__WEBPACK_IMPORTED_MODULE_13__.__awaiter)(this, void 0, void 0, function* () {
5999            var _y;
6000            if (this.appService.isSettingsLoaded) {
6001                // open slug if request contain 
6002                if (this.targetPage && this.appService.isWebVersion && this.appService.appObject.settings && this.appService.appObject.settings.pages) {
6003                    let page = this.appService.appObject.settings.pages.find((page) => page.slug === this.targetPage);
6004                    if (page) {
6005                        this.openPage(page.slug, page.name);
6006                    }
6007                }
6008                // get ios and android app store links
6009                if (this.appService.appObject.settings && this.appService.appObject.settings.ios_link)
6010                    this.iOsLink = this.appService.appObject.settings.ios_link;
6011                if (this.appService.appObject.settings && this.appService.appObject.settings.android_link)
6012                    this.androidLink = this.appService.appObject.settings.android_link;
6013                if (this.appService.appObject.settings.main_restaurant && this.appService.appObject.settings.main_restaurant.web_meta) {
6014                    let webMeta = JSON.parse(this.appService.appObject.settings.main_restaurant.web_meta);
6015                    this.appName = webMeta && webMeta.appName ? webMeta.appName : '';
6016                    this.appIcon = webMeta && webMeta.appIcon ? webMeta.appIcon : '';
6017                }
6018                // Set meta tags from backend data
6019                if (this.appService.appObject.settings.main_restaurant) {
6020                    if (this.appService.appObject.settings.main_restaurant.meta_description)
6021                        this.metaService.addTag({ name: 'description', content: this.appService.appObject.settings.main_restaurant.meta_description });
6022                    if (this.appService.appObject.settings.main_restaurant.meta_keywords)
6023                        this.metaService.addTag({ name: 'keywords', content: this.appService.appObject.settings.main_restaurant.meta_keywords });
6024                }
6025                if (this.appService.appObject.settings.is_franchise === 'true' && ((_y = this.appService.appObject.settings.app_configuration) === null || _y === void 0 ? void 0 : _y.has_multiple_restaurants) && !this.appService.appObject.favouriteRestaurant) {
6026                    // console.log('document.location.pathname : ', document.location.pathname);
6027                    if (!this.appService.isWebVersion) {
6028                        const modal = yield this.modalController.create({
6029                            component: _views_modals_popup_popup_page__WEBPACK_IMPORTED_MODULE_11__.PopupPage,
6030                            cssClass: 'custom-popup',
6031                            componentProps: {
6032                                'currentUI': 'favourite-restaurant'
6033                            }
6034                        });
6035                        if (!this.isFavoriteRestaurantPopUpOpen) {
6036                            yield modal.present();
6037                            this.isFavoriteRestaurantPopUpOpen = true;
6038                        }
6039                        else {
6040                            // console.log('else called');
6041                        }
6042                    }
6043                    else {
6044                        if (document.location.pathname === '/home') {
6045                            const modal = yield this.modalController.create({
6046                                component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_9__.ModalPopoverPage,
6047                                cssClass: 'custom-popup',
6048                                componentProps: {
6049                                    'type': this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECT.TYPE,
6050                                    'title': this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECT.TIT
6050LE
6051                                },
6052                                keyboardClose: false,
6053                            });
6054                            if (!this.isFavoriteRestaurantPopUpOpen) {
6055                                yield modal.present();
6056                                modal.onDidDismiss().then((response) => (0,tslib__WEBPACK_IMPORTED_MODULE_13__.__awaiter)(this, void 0, void 0, function* () {
6057                                    if (response.data && response.data.status) {
6058                                        const cmodal = yield this.modalController.create({
6059                                            component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_9__.ModalPopoverPage,
6060                                            cssClass: 'my-custom-class',
6061                                            componentProps: {
6062                                                'title': this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH.TITLE,
6063                                                'type': this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH.TYPE,
6064                                                'selectfavouriteRestaurant': true
6065                                            }
6066                                        });
6067                                        yield cmodal.present();
6068                                    }
6069                                }));
6070                                this.isFavoriteRestaurantPopUpOpen = true;
6071                            }
6072                            else {
6073                                // console.log('else called');
6074                            }
6075                        }
6076                    }
6077                }
6078                clearInterval(watcher);
6079            }
6080        }), 1000);
6081        // set spinner color from backend
6082        let spinnerColor = setInterval(() => {
6083            var _a, _b, _c, _d, _e, _f;
6084            if (this.appService.isSettingsLoaded) {
6085                if ((_a = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _a === void 0 ? void 0 : _a.spinnerColor) {
6086                    // transform hexa value to RGB
6087                    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec((_b = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _b === void 0 ? void 0 : _b.spinnerColor);
6088                    this.colorSpinner = (parseInt(result[1], 16) + ',' + parseInt(result[2], 16) + ',' + parseInt(result[3], 16));
6089                }
6090                if ((_d = (_c = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _c === void 0 ? void 0 : _c.sideMenu) === null || _d === void 0 ? void 0 : _d.background) {
6091                    this.sideMenuBackground = (_f = (_e = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _e === void 0 ? void 0 : _e.sideMenu) === null || _f === void 0 ? void 0 : _f.background;
6092                }
6093                clearInterval(spinnerColor);
6094            }
6095        }, 1000);
6096    }
6097    ngDoCheck() {
6098        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
6099        if ((_a = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _a === void 0 ? void 0 : _a.spinnerColor) {
6100            // transform hexa value to RGB
6101            var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec((_b = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _b === void 0 ? void 0 : _b.spinnerColor);
6102            this.colorSpinner = (parseInt(result[1], 16) + ',' + parseInt(result[2], 16) + ',' + parseInt(result[3], 16));
6103        }
6104        if ((_d = (_c = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _c === void 0 ? void 0 : _c.sideMenu) === null || _d === void 0 ? void 0 : _d.background) {
6105            this.sideMenuBackground = (_f = (_e = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _e === void 0 ? void 0 : _e.sideMenu) === null || _f === void 0 ? void 0 : _f.background;
6106        }
6107        this.deliveryCostChangedToast = ((_h = (_g = this.appService.appObject) === null || _g === void 0 ? void 0 : _g.theme[this.appService.themeConfigFor]) === null || _h === void 0 ? void 0 : _h.primaryColor) ? (_k = (_j = this.appService.appObject) === null || _j === void 0 ? void 0 : _j.theme[this.appService.themeConfigFor]) === null || _k === void 0 ? void 0 : _k.primaryColor : '';
6108        this.deliveryCostChangedToastText = ((_m = (_l = this.appService.appObject) === null || _l === void 0 ? void 0 : _l.theme[this.appService.themeConfigFor]) === null || _m === void 0 ? void 0 : _m.primaryTextColor) ? (_p = (_o = this.appService.appObject) === null || _o === void 0 ? void 0 : _o.theme[this.appService.themeConfigFor]) === null || _p === void 0 ? void 0 : _p.primaryTextColor : '';
6109    }
6110    initializeApp() {
6111        return (0,tslib__WEBPACK_IMPORTED_MODULE_13__.__awaiter)(this, void 0, void 0, function* () {
6112            this.platform.ready().then(() => (0,tslib__WEBPACK_IMPORTED_MODULE_13__.__awaiter)(this, void 0, void 0, function* () {
6113                this.splashScreen.show();
6114                yield this.appService.appInit();
6115                // open slug if request contain 
6116                // if (this.targetPage && this.appService.isWebVersion && this.appService.appObject.settings && this.appService.appObject.settings.pages) {
6117                //   let page = this.appService.appObject.settings.pages.find((page) => page.slug === this.targetPage);
6118                //   if (page) {
6119                //     this.openPage(page.slug, page.name);
6120                //   }
6121                // }
6122                let favIcon = document.getElementById('appFavIcon');
6123                if (favIcon && this.appService.appObject.favIcon)
6124                    favIcon.href = this.appService.appObject.favIcon;
6125                this.splashScreen.hide();
6126                // this.statusBar.overlaysWebView(true);
6127                // setTimeout(() => {
6128                //   this.splashScreen.hide();
6129                // }, 3000);
6130                this.requestService.post('onesignal/key?device_type=' + config.plf, []).then(data => {
6131                    if (data.status) {
6132                        //set one signal id for web to init
6133                        config.osid = data.onesignal_key;
6134                        this.appService.appObject.oneSignalConfig.key = data.onesignal_key;
6135                        this.appService.appObject.oneSignalConfig.fireid = data.firebase_id;
6136                        //For One Signal Fix
6137                        if ((this.platform.is('android') || this.platform.is('ios')) && !this.appService.isMobileWeb()) {
6138                            window.plugins.OneSignal.setAppId((this.appService.appObject.oneSignalConfig.key));
6139                            window.plugins.OneSignal.promptForPushNotificationsWithUserResponse();
6140                            window.plugins.OneSignal.getDeviceState((stateChanges) => {
6141                                if (stateChanges.hasNotificationPermission && stateChanges.userId) {
6142                                    this.appService.appObject.deviceUUID = stateChanges.userId;
6143                                    this.doUpdate();
6144                                }
6145                            });
6146                            // ............... OLD Method ..............
6147                            // this.oneSignal.startInit(this.appService.appObject.oneSignalConfig.key, this.appService.appObject.oneSignalConfig.fireid);
6148                            // this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.None);
6149                            // this.oneSignal.handleNotificationReceived().subscribe(data => {
6150                            //   // do something when notification is received 
6151                            // });
6152                            // this.oneSignal.handleNotificationOpened().subscribe(data => {
6153                            //   // do something when a notification is opened
6154                            // });
6155                            // this.oneSignal.endInit();
6156                            // this.oneSignal.getIds().then(identity => {
6157                            //   //this.appService.showAlert('success','success',JSON.stringify(identity));
6158                            //   this.appService.appObject.deviceUUID = identity.userId;
6159                            //   this.doUpdate();
6160                            // }, err => {
6161                            //   //this.appService.showAlert('error','error',err);
6162                            // });
6163                        }
6164                    }
6165                });
6166            }));
6167        });
6168    }
6169    call() {
6170        // console.log('this.appService.appObject.selectedRestaurantDetails.order_mobile_number_1 : ', this.appService.appObject.selectedRestaurantDetails.order_mobile_number_1);
6171        // console.log('this.appService.appObject.selectedRestaurantDetails.order_mobile_number_1 : ', this.appService.appObject.settings.main_restaurant.order_mobile_number_1);
6172        let mobileNumber = '';
6173        if (this.appService.appObject) {
6174            if (this.appService.appObject.selectedRestaurantDetails && this.appService.appObject.selectedRestaurantDetails.order_mobile_number_1) {
6175                mobileNumber = this.appService.appObject.selectedRestaurantDetails.order_mobile_number_1;
6176            }
6177            else if (this.appService.appObject.settings && this.appService.appObject.settings.main_restaurant && this.appService.appObject.settings.main_restaurant.order_mobile_number_1) {
6178                mobileNumber = this.appService.appObject.settings.main_restaurant.order_mobile_number_1;
6179            }
6180        }
6181        // removes all white spaces from mobile number string  
6182        if (mobileNumber) {
6183            mobileNumber = mobileNumber.replace(/\s/g, '');
6184        }
6185        if (mobileNumber) {
6186            this.callNumber.callNumber(mobileNumber, true)
6187                .then(res => console.log('Launched dialer!', res))
6188                .catch(err => console.log('Error launching dialer', err));
6189        }
6190        else {
6191            console.log('mobile number not found');
6192        }
6193    }
6194    doUpdate() {
6195        return (0,tslib__WEBPACK_IMPORTED_MODULE_13__.__awaiter)(this, void 0, void 0, function* () {
6196            // console.log('DO_UPDATEEEEE');
6197            yield this.appService.deviceRegister(true);
6198            yield this.appService.updateAppObject();
6199        });
6200    }
6201    cookiesAccepted() {
6202        this.appService.appObject.isCookiesAccepted = true;
6203        this.isCookieBannerClosed = true;
6204        this.appService.updateAppObject();
6205    }
6206    cookiesBannerDismissed() {
6207        var _a, _b, _c;
6208        if ((_c = (_b = (_a = this.appService) === null || _a === void 0 ? void 0 : _a.appObject) === null || _b === void 0 ? void 0 : _b.settings) === null || _c === void 0 ? void 0 : _c.pages) {
6209            var page = this.appService.appObject.settings.pages.filter(function (el) {
6210                return el.slug == "pnp";
6211            });
6212            if (typeof page[0] !== "undefined") {
6213                page = page[0];
6214                this.openPage(page.slug, page.name || 'Privacy Policy');
6215            }
6216            else {
6217                this.cookiesBannerDismissedNotPage();
6218            }
6219        }
6220        else {
6221            this.cookiesBannerDismissedNotPage();
6222        }
6223    }
6224    cookiesBannerDismissedNotPage() {
6225        let cookiesBanner = document.getElementById('cookies-banner');
6226        if (cookiesBanner) {
6227            cookiesBanner.remove();
6228            this.isCookieBannerClosed = true;
6229        }
6230    }
6231    displayCookieBanner() {
6232        if ((this.appService.isWebVersion || ((this.platform.is('android') || this.platform.is('ios')) && this.appService.isMobileWeb())) && (this.appService.appObject && !this.appService.appObject.isCookiesAccepted)) {
6233            this.isCookieBannerClosed = false;
6234            return true;
6235        }
6236        this.isCookieBannerClosed = true;
6237        return false;
6238    }
6239    displayAppDownloadBanner() {
6240        if (!this.appService.isWebVersion && ((this.platform.is('android') || this.platform.is('ios')) && this.appService.isMobileWeb() && (this.appService.appObject && !this.appService.appObject.isAppDownloadBannerDismissed))) {
6241            if (this.platform.is('android') && this.androidLink)
6242                return true;
6243            else if (this.platform.is('ios') && this.iOsLink)
6244                return true;
6245        }
6246        return false;
6247    }
6248    getAppBannerDismissed() {
6249        this.appService.appObject.isAppDownloadBannerDismissed = true;
6250        this.appService.updateAppObject();
6251    }
6252    getAppInstalled() {
6253        if (this.platform.is('android')) {
6254            window.open(this.androidLink);
6255        }
6256        else if (this.platform.is('ios')) {
6257            window.open(this.iOsLink);
6258        }
6259    }
6260    displayLinks(slug) {
6261        if (this.appService.appObject && this.appService.appObject.settings && this.appService.appObject.settings.pages) {
6262            if (this.appService.appObject.settings.pages.length) {
6263                // console.log('this.appService.appObject.currentLang : ', slug + '-' + this.appService.appObject.currentLang);
6264                let page = this.appService.appObject.settings.pages.find((page) => page.slug === (slug + '-' + this.appService.appObject.currentLang) && page.status === 'true');
6265                if (page) {
6266                    this.pages[slug] = page;
6267                    return true;
6268                }
6269                else
6270                    return false;
6271            }
6272        }
6273    }
6274    openSlug(slug, title) {
6275        return (0,tslib__WEBPACK_IMPORTED_MODULE_13__.__awaiter)(this, void 0, void 0, function* () {
6276            if (this.appService.isWebVersion) {
6277                const modal = yield this.modalController.create({
6278                    component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_9__.ModalPopoverPage,
6279                    cssClass: 'order-popup',
6280                    componentProps: {
6281                        'type': 'pages',
6282                        'title': title,
6283                        'slug': (slug + '-' + this.appService.appObject.currentLang)
6284                    }
6285                });
6286                yield modal.present();
6287            }
6288            else {
6289                this.router.navigate(['pages/' + (slug + '-' + this.appService.appObject.currentLang)]);
6290            }
6291        });
6292    }
6293    openPage(slug, title) {
6294        return (0,tslib__WEBPACK_IMPORTED_MODULE_13__.__awaiter)(this, void 0, void 0, function* () {
6295            // if app or mobile web, then navigate into page
6296            if (!this.appService.isWebVersion) {
6297                if (slug)
6298                    this.router.navigate(['pages', slug]);
6299                this.cookiesBannerDismissedNotPage();
6300                return;
6301            }
6302            const modal = yield this.modalController.create({
6303                component: _views_web_views_shared_modal_popover_modal_popover_page__WEBPACK_IMPORTED_MODULE_9__.ModalPopoverPage,
6304                cssClass: 'order-popup',
6305                componentProps: {
6306                    'type': 'pages',
6307                    'title': title,
6308                    'slug': slug
6309                }
6310            });
6311            yield modal.present();
6312        });
6313    }
6314    triggerHomeRefresh() {
6315        this.appService.getSettings();
6316    }
6317    getTranslateText() {
6318        let lang = {
6319            en: {
6320                woops: "Oops!",
6321                msg: "Please check your connection and try again"
6322            },
6323            de: {
6324                woops: "Hoppla!",
6325                msg: "Bitte überprüfen Sie Ihre Verbindung und versuchen Sie es erneut"
6326            }
6327        };
6328        if (this.appService.appObject.currentLang == 'en')
6329            this.noInternet = lang.en;
6330        if (this.appService.appObject.currentLang == 'de')
6331            this.noInternet = lang.de;
6332    }
6333};
6334AppComponent.ctorParameters = () => [
6335    { type: _api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService },
6336    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_14__.Platform },
6337    { type: _ionic_native_call_number_ngx__WEBPACK_IMPORTED_MODULE_3__.CallNumber },
6338    { type: _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_5__.SplashScreen },
6339    { type: _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_6__.StatusBar },
6340    { type: _ionic_native_onesignal_ngx__WEBPACK_IMPORTED_MODULE_4__.OneSignal },
6341    { type: src_app_core_request_service__WEBPACK_IMPORTED_MODULE_7__.RequestService },
6342    { type: _angular_router__WEBPACK_IMPORTED_MODULE_15__.Router },
6343    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_14__.ModalController },
6344    { type: _angular_router__WEBPACK_IMPORTED_MODULE_15__.ActivatedRoute },
6345    { type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.NgZone },
6346    { type: _ionic_native_network_ngx__WEBPACK_IMPORTED_MODULE_10__.Network },
6347    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_14__.AlertController },
6348    { type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_17__.Meta }
6349];
6350AppComponent.propDecorators = {
6351    colorSpinner: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.HostBinding, args: ['style.--loading-spinner-rgb',] }],
6352    sideMenuBackground: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.HostBinding, args: ['style.--side-menu-bakcground',] }],
6353    selectListColor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.HostBinding, args: ['style.--select-list-primary',] }],
6354    deliveryCostChangedToast: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.HostBinding, args: ['style.--delivery-cost-changed-toast-bg',] }],
6355    deliveryCostChangedToastText: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_16__.HostBinding, args: ['style.--delivery-cost-changed-toast-text',] }]
6356};
6357AppComponent = (0,tslib__WEBPACK_IMPORTED_MODULE_13__.__decorate)([
6358    (0,_angular_core__WEBPACK_IMPORTED_MODULE_16__.Component)({
6359        selector: 'app-root',
6360        template: _raw_loader_app_component_html__WEBPACK_IMPORTED_MODULE_0__.default,
6361        styles: [_app_component_scss__WEBPACK_IMPORTED_MODULE_1__.default]
6362    })
6363], AppComponent);
6364
6365
6366
6367/***/ }),
6368
6369/***/ 36747:
6370/*!*******************************!*\
6371  !*** ./src/app/app.module.ts ***!
6372  \*******************************/
6373/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6374
6375"use strict";
6376__webpack_require__.r(__webpack_exports__);
6377/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6378/* harmony export */   "createTranslateLoader": function() { return /* binding */ createTranslateLoader; },
6379/* harmony export */   "AppModule": function() { return /* binding */ AppModule; }
6380/* harmony export */ });
6381/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! tslib */ 64762);
6382/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/core */ 37716);
6383/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @angular/platform-browser */ 39075);
6384/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @angular/router */ 39895);
6385/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @ionic/angular */ 80476);
6386/* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app-routing.module */ 90158);
6387/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.component */ 55041);
6388/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/common/http */ 91841);
6389/* harmony import */ var _ngx_translate_http_loader__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @ngx-translate/http-loader */ 32472);
6390/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @ngx-translate/core */ 29790);
6391/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/environments/environment */ 92340);
6392/* harmony import */ var _ionic_storage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic/storage */ 61628);
6393/* harmony import */ var _ionic_native_http_ngx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic-native/http/ngx */ 68589);
6394/* harmony import */ var _ionic_native_geolocation_ngx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic-native/geolocation/ngx */ 87152);
6395/* harmony import */ var _ionic_native_onesignal_ngx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ionic-native/onesignal/ngx */ 61779);
6396/* harmony import */ var _ionic_native_globalization_ngx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ionic-native/globalization/ngx */ 25145);
6397/* harmony import */ var _ionic_native_in_app_browser_ngx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ionic-native/in-app-browser/ngx */ 53760);
6398/* harmony import */ var _ionic_native_google_plus_ngx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ionic-native/google-plus/ngx */ 19342);
6399/* harmony import */ var _ionic_native_facebook_ngx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ionic-native/facebook/ngx */ 30222);
6400/* harmony import */ var _ionic_native_sign_in_with_apple_ngx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ionic-native/sign-in-with-apple/ngx */ 9980);
6401/* harmony import */ var _component_animatedloading_animatedloading_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./component/animatedloading/animatedloading.component */ 7920);
6402/* harmony import */ var _angular_cdk_drag_drop__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @angular/cdk/drag-drop */ 77310);
6403/* harmony import */ var _ionic_native_call_number_ngx__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @ionic-native/call-number/ngx */ 64687);
6404/* harmony import */ var angularx_social_login__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! angularx-social-login */ 32707);
6405/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @angular/common */ 38583);
6406/* harmony import */ var _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ionic-native/splash-screen/ngx */ 51524);
6407/* harmony import */ var _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ionic-native/status-bar/ngx */ 73494);
6408/* harmony import */ var _core_pipe_module__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./core/pipe.module */ 82222);
6409/* harmony import */ var _ionic_native_network_ngx__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @ionic-native/network/ngx */ 75592);
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435//For One Signal Fix
6436
6437
6438//Production Build Bug Fix
6439
6440// Network
6441
6442function createTranslateLoader(http) {
6443    return new _ngx_translate_http_loader__WEBPACK_IMPORTED_MODULE_18__.TranslateHttpLoader(http, src_environments_environment__WEBPACK_IMPORTED_MODULE_2__.environment.API_URL + 'language?lang=', '');
6444}
6445//enableProdMode();
6446let AppModule = class AppModule {
6447};
6448AppModule = (0,tslib__WEBPACK_IMPORTED_MODULE_19__.__decorate)([
6449    (0,_angular_core__WEBPACK_IMPORTED_MODULE_20__.NgModule)({
6450        declarations: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent, _component_animatedloading_animatedloading_component__WEBPACK_IMPORTED_MODULE_12__.AnimatedloadingComponent],
6451        entryComponents: [],
6452        imports: [
6453            _angular_common_http__WEBPACK_IMPORTED_MODULE_21__.HttpClientModule,
6454            _angular_platform_browser__WEBPACK_IMPORTED_MODULE_22__.BrowserModule,
6455            _ngx_translate_core__WEBPACK_IMPORTED_MODULE_23__.TranslateModule.forRoot({
6456                loader: {
6457                    provide: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_23__.TranslateLoader,
6458                    useFactory: (createTranslateLoader),
6459                    deps: [_angular_common_http__WEBPACK_IMPORTED_MODULE_21__.HttpClient]
6460                }
6461            }),
6462            _ionic_angular__WEBPACK_IMPORTED_MODULE_24__.IonicModule.forRoot({
6463                rippleEffect: false,
6464                mode: 'md'
6465            }),
6466            _app_routing_module__WEBPACK_IMPORTED_MODULE_0__.AppRoutingModule,
6467            _angular_cdk_drag_drop__WEBPACK_IMPORTED_MODULE_25__.DragDropModule,
6468            angularx_social_login__WEBPACK_IMPORTED_MODULE_26__.SocialLoginModule,
6469            _core_pipe_module__WEBPACK_IMPORTED_MODULE_16__.PipeModule
6470        ],
6471        providers: [
6472            { provide: _angular_router__WEBPACK_IMPORTED_MODULE_27__.RouteReuseStrategy, useClass: _ionic_angular__WEBPACK_IMPORTED_MODULE_24__.IonicRouteStrategy },
6473            _ionic_storage__WEBPACK_IMPORTED_MODULE_3__.Storage,
6474            _ionic_native_http_ngx__WEBPACK_IMPORTED_MODULE_4__.HTTP,
6475            _ionic_native_geolocation_ngx__WEBPACK_IMPORTED_MODULE_5__.Geolocation,
6476            _ionic_native_onesignal_ngx__WEBPACK_IMPORTED_MODULE_6__.OneSignal,
6477            _ionic_native_globalization_ngx__WEBPACK_IMPORTED_MODULE_7__.Globalization,
6478            _ionic_native_in_app_browser_ngx__WEBPACK_IMPORTED_MODULE_8__.InAppBrowser,
6479            _ionic_native_google_plus_ngx__WEBPACK_IMPORTED_MODULE_9__.GooglePlus,
6480            _ionic_native_facebook_ngx__WEBPACK_IMPORTED_MODULE_10__.Facebook,
6481            _ionic_native_sign_in_with_apple_ngx__WEBPACK_IMPORTED_MODULE_11__.SignInWithApple,
6482            _ionic_native_call_number_ngx__WEBPACK_IMPORTED_MODULE_13__.CallNumber,
6483            _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_14__.SplashScreen,
6484            _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_15__.StatusBar,
6485            {
6486                provide: 'SocialAuthServiceConfig',
6487                useValue: {
6488                    autoLogin: false,
6489                    providers: [
6490                        {
6491                            id: angularx_social_login__WEBPACK_IMPORTED_MODULE_26__.GoogleLoginProvider.PROVIDER_ID,
6492                            provider: new angularx_social_login__WEBPACK_IMPORTED_MODULE_26__.GoogleLoginProvider(src_environments_environment__WEBPACK_IMPORTED_MODULE_2__.environment.GOOGLE_LOGIN_WEB_CLIENT_ID)
6493                        },
6494                        {
6495                            id: angularx_social_login__WEBPACK_IMPORTED_MODULE_26__.FacebookLoginProvider.PROVIDER_ID,
6496                            provider: new angularx_social_login__WEBPACK_IMPORTED_MODULE_26__.FacebookLoginProvider(src_environments_environment__WEBPACK_IMPORTED_MODULE_2__.environment.FACEBOOK_LOGIN_APP_ID)
6497                        }
6498                    ]
6499                },
6500            },
6501            _angular_common__WEBPACK_IMPORTED_MODULE_28__.DatePipe,
6502            _ionic_native_network_ngx__WEBPACK_IMPORTED_MODULE_17__.Network,
6503            _angular_platform_browser__WEBPACK_IMPORTED_MODULE_22__.Meta
6504        ],
6505        bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent]
6506    })
6507], AppModule);
6508
6509
6510
6511/***/ }),
6512
6513/***/ 7920:
6514/*!************************************************************************!*\
6515  !*** ./src/app/component/animatedloading/animatedloading.component.ts ***!
6516  \************************************************************************/
6517/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6518
6519"use strict";
6520__webpack_require__.r(__webpack_exports__);
6521/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6522/* harmony export */   "AnimatedloadingComponent": function() { return /* binding */ AnimatedloadingComponent; }
6523/* harmony export */ });
6524/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ 64762);
6525/* harmony import */ var _raw_loader_animatedloading_component_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./animatedloading.component.html */ 80628);
6526/* harmony import */ var _animatedloading_component_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./animatedloading.component.scss */ 33420);
6527/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 37716);
6528
6529
6530
6531
6532let AnimatedloadingComponent = class AnimatedloadingComponent {
6533    constructor() { }
6534    ngOnInit() { }
6535};
6536AnimatedloadingComponent.ctorParameters = () => [];
6537AnimatedloadingComponent = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__decorate)([
6538    (0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({
6539        selector: 'app-animatedloading',
6540        template: _raw_loader_animatedloading_component_html__WEBPACK_IMPORTED_MODULE_0__.default,
6541        styles: [_animatedloading_component_scss__WEBPACK_IMPORTED_MODULE_1__.default]
6542    })
6543], AnimatedloadingComponent);
6544
6545
6546
6547/***/ }),
6548
6549/***/ 73048:
6550/*!********************************************!*\
6551  !*** ./src/app/core/auth-guard.service.ts ***!
6552  \********************************************/
6553/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6554
6555"use strict";
6556__webpack_require__.r(__webpack_exports__);
6557/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6558/* harmony export */   "AuthGuardService": function() { return /* binding */ AuthGuardService; }
6559/* harmony export */ });
6560/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ 64762);
6561/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 37716);
6562/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ 39895);
6563/* harmony import */ var _api_app_service_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api/app-service.service */ 95670);
6564/* harmony import */ var _core_storage_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/storage.service */ 66498);
6565
6566
6567
6568
6569
6570let AuthGuardService = class AuthGuardService {
6571    constructor(storage, router, appService) {
6572        this.storage = storage;
6573        this.router = router;
6574        this.appService = appService;
6575    }
6576    canActivate(route) {
6577        // console.log(route);
6578        //set side menu status 
6579        this.appService.isSideMenu = route.data.sideMenu;
6580        this.appService.isFooterMenu = route.data.footerMenu;
6581        this.appService.appObject.errors = [];
6582        //no need to login can access
6583        return true;
6584    }
6585};
6586AuthGuardService.ctorParameters = () => [
6587    { type: _core_storage_service__WEBPACK_IMPORTED_MODULE_1__.StorageService },
6588    { type: _angular_router__WEBPACK_IMPORTED_MODULE_2__.Router },
6589    { type: _api_app_service_service__WEBPACK_IMPORTED_MODULE_0__.AppServiceService }
6590];
6591AuthGuardService = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
6592    (0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({
6593        providedIn: 'root'
6594    })
6595], AuthGuardService);
6596
6597
6598
6599/***/ }),
6600
6601/***/ 82222:
6602/*!*************************************!*\
6603  !*** ./src/app/core/pipe.module.ts ***!
6604  \*************************************/
6605/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6606
6607"use strict";
6608__webpack_require__.r(__webpack_exports__);
6609/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6610/* harmony export */   "PipeModule": function() { return /* binding */ PipeModule; }
6611/* harmony export */ });
6612/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tslib */ 64762);
6613/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 37716);
6614/* harmony import */ var _pipes_PastOrderPricePipe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipes/PastOrderPricePipe */ 99930);
6615/* harmony import */ var _pipes_PricePipe__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pipes/PricePipe */ 62110);
6616/* harmony import */ var _pipes_TaxPipe__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pipes/TaxPipe */ 12042);
6617/* harmony import */ var _pipes_dishPricePipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pipes/dishPricePipe */ 69120);
6618/* harmony import */ var _pipes_sizePricePipe__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pipes/sizePricePipe */ 15934);
6619/* harmony import */ var _pipes_topingPricePipe__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pipes/topingPricePipe */ 78342);
6620
6621
6622
6623
6624
6625
6626
6627
6628let PipeModule = class PipeModule {
6629};
6630PipeModule = (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([
6631    (0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.NgModule)({
6632        declarations: [
6633            _pipes_PastOrderPricePipe__WEBPACK_IMPORTED_MODULE_0__.PastOrderPricePipe,
6634            _pipes_PricePipe__WEBPACK_IMPORTED_MODULE_1__.PricePipe,
6635            _pipes_TaxPipe__WEBPACK_IMPORTED_MODULE_2__.TaxPipe,
6636            _pipes_dishPricePipe__WEBPACK_IMPORTED_MODULE_3__.dishPricePipe,
6637            _pipes_sizePricePipe__WEBPACK_IMPORTED_MODULE_4__.sizePricePipe,
6638            _pipes_topingPricePipe__WEBPACK_IMPORTED_MODULE_5__.topingPricePipe
6639        ], exports: [
6640            _pipes_PastOrderPricePipe__WEBPACK_IMPORTED_MODULE_0__.PastOrderPricePipe,
6641            _pipes_PricePipe__WEBPACK_IMPORTED_MODULE_1__.PricePipe,
6642            _pipes_TaxPipe__WEBPACK_IMPORTED_MODULE_2__.TaxPipe,
6643            _pipes_dishPricePipe__WEBPACK_IMPORTED_MODULE_3__.dishPricePipe,
6644            _pipes_sizePricePipe__WEBPACK_IMPORTED_MODULE_4__.sizePricePipe,
6645            _pipes_topingPricePipe__WEBPACK_IMPORTED_MODULE_5__.topingPricePipe
6646        ],
6647    })
6648], PipeModule);
6649
6650
6651
6652/***/ }),
6653
6654/***/ 99930:
6655/*!**************************************************!*\
6656  !*** ./src/app/core/pipes/PastOrderPricePipe.ts ***!
6657  \**************************************************/
6658/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6659
6660"use strict";
6661__webpack_require__.r(__webpack_exports__);
6662/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6663/* harmony export */   "PastOrderPricePipe": function() { return /* binding */ PastOrderPricePipe; }
6664/* harmony export */ });
6665/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 64762);
6666/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716);
6667
6668
6669let PastOrderPricePipe = class PastOrderPricePipe {
6670    transform(price, currency, showin, dtype) {
6671        let p = '';
6672        price = (Math.round(price * 100) / 100).toFixed(2);
6673        if (showin == 'after') {
6674            p = price + ' ' + currency;
6675        }
6676        else {
6677            p = currency + ' ' + price;
6678        }
6679        return p;
6680    }
6681    formataNumero(e, separador = '.', decimais = 2) {
6682        let a = e.value.split('');
6683        let ns = '';
6684        a.forEach((c) => { if (!isNaN(c))
6685            ns = ns + c; });
6686        ns = parseInt(ns).toString();
6687        if (ns.length < (decimais + 1)) {
6688            ns = ('0'.repeat(decimais + 1) + ns);
6689            ns = ns.slice((decimais + 1) * -1);
6690        }
6691        let ans = ns.split('');
6692        let r = '';
6693        for (let i = 0; i < ans.length; i++)
6694            if (i == ans.length - decimais)
6695                r = r + separador + ans[i];
6696            else
6697                r = r + ans[i];
6698        e.value = r;
6699    }
6700};
6701PastOrderPricePipe = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
6702    (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Pipe)({
6703        name: 'poprice'
6704    })
6705], PastOrderPricePipe);
6706
6707
6708
6709/***/ }),
6710
6711/***/ 62110:
6712/*!*****************************************!*\
6713  !*** ./src/app/core/pipes/PricePipe.ts ***!
6714  \*****************************************/
6715/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6716
6717"use strict";
6718__webpack_require__.r(__webpack_exports__);
6719/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6720/* harmony export */   "PricePipe": function() { return /* binding */ PricePipe; }
6721/* harmony export */ });
6722/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 64762);
6723/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716);
6724
6725
6726let PricePipe = class PricePipe {
6727    transform(price, currency, showin, dtype) {
6728        let p = '';
6729        price = (Math.round(price * 100) / 100).toFixed(2);
6730        if (showin == 'after') {
6731            p = price + ' ' + currency;
6732        }
6733        else {
6734            p = currency + ' ' + price;
6735        }
6736        return p;
6737    }
6738    formataNumero(e, separador = '.', decimais = 2) {
6739        let a = e.value.split('');
6740        let ns = '';
6741        a.forEach((c) => { if (!isNaN(c))
6742            ns = ns + c; });
6743        ns = parseInt(ns).toString();
6744        if (ns.length < (decimais + 1)) {
6745            ns = ('0'.repeat(decimais + 1) + ns);
6746            ns = ns.slice((decimais + 1) * -1);
6747        }
6748        let ans = ns.split('');
6749        let r = '';
6750        for (let i = 0; i < ans.length; i++)
6751            if (i == ans.length - decimais)
6752                r = r + separador + ans[i];
6753            else
6754                r = r + ans[i];
6755        e.value = r;
6756    }
6757};
6758PricePipe = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
6759    (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Pipe)({
6760        name: 'price'
6761    })
6762], PricePipe);
6763
6764
6765
6766/***/ }),
6767
6768/***/ 12042:
6769/*!***************************************!*\
6770  !*** ./src/app/core/pipes/TaxPipe.ts ***!
6771  \***************************************/
6772/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6773
6774"use strict";
6775__webpack_require__.r(__webpack_exports__);
6776/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6777/* harmony export */   "TaxPipe": function() { return /* binding */ TaxPipe; }
6778/* harmony export */ });
6779/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 64762);
6780/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716);
6781
6782
6783let TaxPipe = class TaxPipe {
6784    transform(price, currency, showin, dtype, type) {
6785        let p = '';
6786        if (type == 'fixed') {
6787            price = (Math.round(price * 100) / 100).toFixed(2);
6788            if (showin == 'after') {
6789                p = price + ' ' + currency;
6790            }
6791            else {
6792                p = currency + ' ' + price;
6793            }
6794        }
6795        else {
6796            p = price + '%';
6797        }
6798        return p;
6799    }
6800    formataNumero(e, separador = '.', decimais = 2) {
6801        let a = e.value.split('');
6802        let ns = '';
6803        a.forEach((c) => { if (!isNaN(c))
6804            ns = ns + c; });
6805        ns = parseInt(ns).toString();
6806        if (ns.length < (decimais + 1)) {
6807            ns = ('0'.repeat(decimais + 1) + ns);
6808            ns = ns.slice((decimais + 1) * -1);
6809        }
6810        let ans = ns.split('');
6811        let r = '';
6812        for (let i = 0; i < ans.length; i++)
6813            if (i == ans.length - decimais)
6814                r = r + separador + ans[i];
6815            else
6816                r = r + ans[i];
6817        e.value = r;
6818    }
6819};
6820TaxPipe = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
6821    (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Pipe)({
6822        name: 'tax'
6823    })
6824], TaxPipe);
6825
6826
6827
6828/***/ }),
6829
6830/***/ 69120:
6831/*!*********************************************!*\
6832  !*** ./src/app/core/pipes/dishPricePipe.ts ***!
6833  \*********************************************/
6834/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6835
6836"use strict";
6837__webpack_require__.r(__webpack_exports__);
6838/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6839/* harmony export */   "dishPricePipe": function() { return /* binding */ dishPricePipe; }
6840/* harmony export */ });
6841/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 64762);
6842/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716);
6843
6844
6845let dishPricePipe = class dishPricePipe {
6846    transform(dish, currency, showin, dtype, base = false) {
6847        let p = '';
6848        let price = dish[dtype];
6849        if (dish.is_size == 'true') {
6850            price = dish.sizes[0][dtype];
6851        }
6852        price = (Math.round(price * 100) / 100).toFixed(2);
6853        if (showin == 'after') {
6854            p = price + ' ' + currency;
6855        }
6856        else {
6857            p = currency + ' ' + price;
6858        }
6859        return p;
6860    }
6861    formataNumero(e, separador = '.', decimais = 2) {
6862        let a = e.value.split('');
6863        let ns = '';
6864        a.forEach((c) => { if (!isNaN(c))
6865            ns = ns + c; });
6866        ns = parseInt(ns).toString();
6867        if (ns.length < (decimais + 1)) {
6868            ns = ('0'.repeat(decimais + 1) + ns);
6869            ns = ns.slice((decimais + 1) * -1);
6870        }
6871        let ans = ns.split('');
6872        let r = '';
6873        for (let i = 0; i < ans.length; i++)
6874            if (i == ans.length - decimais)
6875                r = r + separador + ans[i];
6876            else
6877                r = r + ans[i];
6878        e.value = r;
6879    }
6880};
6881dishPricePipe = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
6882    (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Pipe)({
6883        name: 'dishprice'
6884    })
6885], dishPricePipe);
6886
6887
6888
6889/***/ }),
6890
6891/***/ 15934:
6892/*!*********************************************!*\
6893  !*** ./src/app/core/pipes/sizePricePipe.ts ***!
6894  \*********************************************/
6895/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6896
6897"use strict";
6898__webpack_require__.r(__webpack_exports__);
6899/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6900/* harmony export */   "sizePricePipe": function() { return /* binding */ sizePricePipe; }
6901/* harmony export */ });
6902/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 64762);
6903/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716);
6904
6905
6906let sizePricePipe = class sizePricePipe {
6907    transform(size, currency, showin, dtype) {
6908        let p = '';
6909        let price = size[dtype];
6910        price = (Math.round(price * 100) / 100).toFixed(2);
6911        if (showin == 'after') {
6912            p = price + ' ' + currency;
6913        }
6914        else {
6915            p = currency + ' ' + price;
6916        }
6917        return p;
6918    }
6919    formataNumero(e, separador = '.', decimais = 2) {
6920        let a = e.value.split('');
6921        let ns = '';
6922        a.forEach((c) => { if (!isNaN(c))
6923            ns = ns + c; });
6924        ns = parseInt(ns).toString();
6925        if (ns.length < (decimais + 1)) {
6926            ns = ('0'.repeat(decimais + 1) + ns);
6927            ns = ns.slice((decimais + 1) * -1);
6928        }
6929        let ans = ns.split('');
6930        let r = '';
6931        for (let i = 0; i < ans.length; i++)
6932            if (i == ans.length - decimais)
6933                r = r + separador + ans[i];
6934            else
6935                r = r + ans[i];
6936        e.value = r;
6937    }
6938};
6939sizePricePipe = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
6940    (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Pipe)({
6941        name: 'sizeprice'
6942    })
6943], sizePricePipe);
6944
6945
6946
6947/***/ }),
6948
6949/***/ 78342:
6950/*!***********************************************!*\
6951  !*** ./src/app/core/pipes/topingPricePipe.ts ***!
6952  \***********************************************/
6953/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6954
6955"use strict";
6956__webpack_require__.r(__webpack_exports__);
6957/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6958/* harmony export */   "topingPricePipe": function() { return /* binding */ topingPricePipe; }
6959/* harmony export */ });
6960/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 64762);
6961/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 37716);
6962
6963
6964let topingPricePipe = class topingPricePipe {
6965    transform(toping, currency, showin, dtype) {
6966        let p = '';
6967        let price = toping[dtype];
6968        price = (Math.round(price * 100) / 100).toFixed(2);
6969        if (showin == 'after') {
6970            p = price + ' ' + currency;
6971        }
6972        else {
6973            p = currency + ' ' + price;
6974        }
6975        return p;
6976    }
6977    formataNumero(e, separador = '.', decimais = 2) {
6978        let a = e.value.split('');
6979        let ns = '';
6980        a.forEach((c) => { if (!isNaN(c))
6981            ns = ns + c; });
6982        ns = parseInt(ns).toString();
6983        if (ns.length < (decimais + 1)) {
6984            ns = ('0'.repeat(decimais + 1) + ns);
6985            ns = ns.slice((decimais + 1) * -1);
6986        }
6987        let ans = ns.split('');
6988        let r = '';
6989        for (let i = 0; i < ans.length; i++)
6990            if (i == ans.length - decimais)
6991                r = r + separador + ans[i];
6992            else
6993                r = r + ans[i];
6994        e.value = r;
6995    }
6996};
6997topingPricePipe = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
6998    (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Pipe)({
6999        name: 'topingprice'
7000    })
7001], topingPricePipe);
7002
7003
7004
7005/***/ }),
7006
7007/***/ 25094:
7008/*!*****************************************!*\
7009  !*** ./src/app/core/request.service.ts ***!
7010  \*****************************************/
7011/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7012
7013"use strict";
7014__webpack_require__.r(__webpack_exports__);
7015/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7016/* harmony export */   "RequestService": function() { return /* binding */ RequestService; }
7017/* harmony export */ });
7018/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ 64762);
7019/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ 91841);
7020/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 37716);
7021/* harmony import */ var _ionic_native_http_ngx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ionic-native/http/ngx */ 68589);
7022/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ 80476);
7023/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! src/environments/environment */ 92340);
7024
7025
7026
7027
7028
7029
7030let RequestService = class RequestService {
7031    constructor(http, httpClient, platform) {
7032        this.http = http;
7033        this.httpClient = httpClient;
7034        this.platform = platform;
7035    }
7036    // /
7037    //  * Returns http promiss request
7038    //  *
7039    //  * @param {string} url The api path
7040    //  * @param {any} data The data which posting
7041    //  * @return {HttpClient or http} http request.
7042    //  */
7043    get(url, data) {
7044        return (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__awaiter)(this, void 0, void 0, function* () {
7045            if ((this.platform.is('android') || this.platform.is('ios')) && !this.platform.is('mobileweb')) {
7046                this.http.setDataSerializer("json");
7047                return yield this.http.get(src_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.API_URL + url, data, {}).then(response => {
7048                    return JSON.parse(response.data);
7049                }).catch(error => {
7050                    return {};
7051                });
7052            }
7053            else {
7054                return yield this.httpClient.get(src_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.API_URL + url, data).toPromise();
7055            }
7056        });
7057    }
7058    // /
7059    //  * Returns http promiss request
7060    //  *
7061    //  * @param {string} url The api path
7062    //  * @param {any} data The data which posting
7063    //  * @return {HttpClient or http} http request.
7064    //  */
7065    post(url, data) {
7066        return (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__awaiter)(this, void 0, void 0, function* () {
7067            if ((this.platform.is('android') || this.platform.is('ios')) && !this.platform.is('mobileweb')) {
7068                this.http.setDataSerializer("json");
7069                return yield this.http.post(src_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.API_URL + url, data, {}).then(response => {
7070                    return JSON.parse(response.data);
7071                }).catch(error => {
7072                    return {};
7073                });
7074            }
7075            else {
7076                return yield this.httpClient.post(src_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.API_URL + url, data).toPromise();
7077            }
7078        });
7079    }
7080};
7081RequestService.ctorParameters = () => [
7082    { type: _ionic_native_http_ngx__WEBPACK_IMPORTED_MODULE_0__.HTTP },
7083    { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__.HttpClient },
7084    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_4__.Platform }
7085];
7086RequestService = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__decorate)([
7087    (0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Injectable)({
7088        providedIn: 'root'
7089    })
7090], RequestService);
7091
7092
7093
7094/***/ }),
7095
7096/***/ 66498:
7097/*!*****************************************!*\
7098  !*** ./src/app/core/storage.service.ts ***!
7099  \*****************************************/
7100/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7101
7102"use strict";
7103__webpack_require__.r(__webpack_exports__);
7104/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7105/* harmony export */   "StorageService": function() { return /* binding */ StorageService; }
7106/* harmony export */ });
7107/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 64762);
7108/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716);
7109/* harmony import */ var _ionic_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ionic/storage */ 61628);
7110
7111
7112
7113let StorageService = class StorageService {
7114    constructor(storage) {
7115        this.storage = storage;
7116        this._storage = null;
7117        this.init();
7118    }
7119    /**
7120  *  Init database
7121  */
7122    init() {
7123        return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () {
7124            const storage = new _ionic_storage__WEBPACK_IMPORTED_MODULE_0__.Storage({
7125                name: '__gastro_master',
7126                driverOrder: [_ionic_storage__WEBPACK_IMPORTED_MODULE_0__.Drivers.SecureStorage, _ionic_storage__WEBPACK_IMPORTED_MODULE_0__.Drivers.IndexedDB, _ionic_storage__WEBPACK_IMPORTED_MODULE_0__.Drivers.LocalStorage]
7127            });
7128            storage.create();
7129            this._storage = storage;
7130        });
7131    }
7132    /**
7133   * Returns nothing
7134   *
7135   * @param {string} key The key
7136   * @param {any} value The data which need to store
7137   */
7138    set(key, value) {
7139        var _a;
7140        return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () {
7141            (_a = this._storage) === null || _a === void 0 ? void 0 : _a.set(key, value);
7142        });
7143    }
7144    /**
7145  * Returns storage value
7146  *
7147  * @param {string} key The key
7148  * @return {Storage} return value
7149  */
7150    get(key) {
7151        var _a;
7152        return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function* () {
7153            return yield ((_a = this._storage) === null || _a === void 0 ? void 0 : _a.get(key));
7154        });
7155    }
7156};
7157StorageService.ctorParameters = () => [
7158    { type: _ionic_storage__WEBPACK_IMPORTED_MODULE_0__.Storage }
7159];
7160StorageService = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
7161    (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable)({
7162        providedIn: 'root'
7163    })
7164], StorageService);
7165
7166
7167
7168/***/ }),
7169
7170/***/ 60307:
7171/*!**************************************************!*\
7172  !*** ./src/app/views/modals/alert/alert.page.ts ***!
7173  \**************************************************/
7174/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7175
7176"use strict";
7177__webpack_require__.r(__webpack_exports__);
7178/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7179/* harmony export */   "AlertPage": function() { return /* binding */ AlertPage; }
7180/* harmony export */ });
7181/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ 64762);
7182/* harmony import */ var _raw_loader_alert_page_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./alert.page.html */ 90602);
7183/* harmony import */ var _alert_page_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./alert.page.scss */ 70022);
7184/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 37716);
7185/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ 80476);
7186/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/platform-browser */ 39075);
7187/* harmony import */ var _api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../api/app-service.service */ 95670);
7188/* harmony import */ var _select_order_type_select_order_type_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../select-order-type/select-order-type.page */ 84640);
7189
7190
7191
7192
7193
7194
7195
7196
7197let AlertPage = class AlertPage {
7198    constructor(modalController, sanitizer, appService) {
7199        this.modalController = modalController;
7200        this.sanitizer = sanitizer;
7201        this.appService = appService;
7202        this.alertDismissAfter = 3000;
7203    }
7204    ngOnInit() {
7205        // if the autoClose true, then close alert after defined seconds 
7206        if (this.autoClose) {
7207            setTimeout(() => {
7208                this.modalController.dismiss();
7209            }, this.alertDismissAfter);
7210        }
7211    }
7212    go() {
7213        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
7214            this.modalController.dismiss();
7215            let componentProps = {
7216                'currentUI': 'order-type',
7217                'selectFavoriteRestaurant': true
7218            };
7219            const cartModal = yield this.modalController.create({
7220                component: _select_order_type_select_order_type_page__WEBPACK_IMPORTED_MODULE_3__.SelectOrderTypePage,
7221                cssClass: 'custom-popup',
7222                componentProps: componentProps
7223            });
7224            yield cartModal.present();
7225        });
7226    }
7227    close() {
7228        this.modalController.dismiss();
7229    }
7230};
7231AlertPage.ctorParameters = () => [
7232    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__.ModalController },
7233    { type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__.DomSanitizer },
7234    { type: _api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService }
7235];
7236AlertPage.propDecorators = {
7237    type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
7238    message: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
7239    autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
7240    title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }]
7241};
7242AlertPage = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([
7243    (0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({
7244        selector: 'app-alert',
7245        template: _raw_loader_alert_page_html__WEBPACK_IMPORTED_MODULE_0__.default,
7246        styles: [_alert_page_scss__WEBPACK_IMPORTED_MODULE_1__.default]
7247    })
7248], AlertPage);
7249
7250
7251
7252/***/ }),
7253
7254/***/ 728:
7255/*!************************************************!*\
7256  !*** ./src/app/views/modals/cart/cart.page.ts ***!
7257  \************************************************/
7258/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7259
7260"use strict";
7261__webpack_require__.r(__webpack_exports__);
7262/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7263/* harmony export */   "CartPage": function() { return /* binding */ CartPage; },
7264/* harmony export */   "InlinePopoverComponent": function() { return /* binding */ InlinePopoverComponent; },
7265/* harmony export */   "InlinePopoverComponentDe": function() { return /* binding */ InlinePopoverComponentDe; }
7266/* harmony export */ });
7267/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tslib */ 64762);
7268/* harmony import */ var _raw_loader_cart_page_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./cart.page.html */ 84410);
7269/* harmony import */ var _cart_page_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cart.page.scss */ 3760);
7270/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/core */ 37716);
7271/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ionic/angular */ 80476);
7272/* harmony import */ var src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/api/app-service.service */ 95670);
7273/* harmony import */ var _toppings_toppings_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../toppings/toppings.page */ 85300);
7274/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ngx-translate/core */ 29790);
7275/* harmony import */ var src_app_core_storage_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! src/app/core/storage.service */ 66498);
7276/* harmony import */ var _delivery_times_delivery_times_page__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../delivery-times/delivery-times.page */ 97966);
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287let CartPage = class CartPage {
7288    constructor(modalController, appService, translate, popoverCtrl, storage) {
7289        this.modalController = modalController;
7290        this.appService = appService;
7291        this.translate = translate;
7292        this.popoverCtrl = popoverCtrl;
7293        this.storage = storage;
7294        this.highlightUnavailableDishes = false;
7295        this.couponAdded = false;
7296        this.isheighok = true;
7297        this.coupon = '';
7298        this.isCouponStatusChecking = false;
7299        // bar mode system properties
7300        this.isDineInSelected = false;
7301        this.isBarModeEnabled = false;
7302        this.makePayment = false;
7303        // unavailable dishes to display highlight when not available for selected order time
7304        this.unavailableDishesIds = [];
7305        if (this.appService.appObject.selectedCoupon.length > 0) {
7306            this.coupon = this.appService.appObject.selectedCoupon[0]['coupon_code'];
7307            this.couponAdded = true;
7308        }
7309    }
7310    ngOnInit() {
7311        this.appService.cartIsOpen = true;
7312        // console.log(this.appService.appObject.selectedRestaurantDetails);
7313        // bar mode changes
7314        if (this.appService.appObject.selectedRestaurantDetails && this.appService.appObject.selectedRestaurantDetails.is_bar_mode === 'true') {
7315            this.isBarModeEnabled = true;
7316            if (this.appService.appObject.selectedDeliveryMethod === 'dine_in')
7317                this.isDineInSelected = true;
7318        }
7319        // end bar mode changes
7320        const newThis = this;
7321        setInterval(() => {
7322            newThis.isheight();
7323        }, 500);
7324        // this will trigger when user click on categories unavailable error card in checkout page
7325        // this will highlight dishes in cart which are not available for the order date and time
7326        if (this.highlightUnavailableDishes) {
7327            this.appService.unavailableDishes.forEach((dish) => {
7328                this.unavailableDishesIds.push(dish.dish_id);
7329            });
7330        }
7331        // setTimeout(() => {
7332        //   if(!this.appService.appObject.tourEndDeliveryMobile){
7333        //     let cl = document.getElementById('open-tour-delivery');
7334        //     if(cl) cl.click();
7335        //   }
7336        // }, 800);
7337    }
7338    isheight() {
7339        if (document.querySelectorAll('.popup-container').length) {
7340            const element = document.querySelectorAll('.popup-container')[0];
7341            const element2 = document.querySelectorAll('.popup-container-inner')[0];
7342            if ((element && element2) && element.offsetHeight < element2.offsetHeight) {
7343                this.isheighok = false;
7344            }
7345            else {
7346                this.isheighok = true;
7347            }
7348        }
7349    }
7350    dismiss() {
7351        this.appService.cartIsOpen = false;
7352        this.appService.hideCartButton = false;
7353        //this.appService.getRestaurantBySlug(this.appService.appObject.selectedRestaurant);
7354        // using the injected ModalController this page
7355        // can "dismiss" itself and optionally pass back data
7356        if (!this.appService.appObject.orderObject.cart_summery.min_reached && this.appService.appObject.orderObject.cart_summery.min_amount > 0) {
7357            this.appService.routeToSelectedRestaurant();
7358        }
7359        this.modalController.dismiss({
7360            'dismissed': true,
7361            'array': 'kk'
7362        });
7363    }
7364    removeCoupon() {
7365        return (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__awaiter)(this, void 0, void 0, function* () {
7366            this.couponAdded = false;
7367            this.coupon = '';
7368            this.appService.appObject.selectedCoupon = [];
7369            this.appService.calculateCartAmounts();
7370        });
7371    }
7372    addCoupon() {
7373        return (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__awaiter)(this, void 0, void 0, function* () {
7374            if (this.coupon === "") {
7375                return false;
7376            }
7377            if (!this.appService.appObject.user || this.appService.appObject.user.type !== 'registered') {
7378                this.translate.get('key.in_order_to_user_coupons').toPromise().then((response) => {
7379                    this.appService.showToast(response, 'danger');
7380                });
7381                return;
7382            }
7383            this.isCouponStatusChecking = true;
7384            yield this.appService.addCoupon(this.coupon).then(data => {
7385                if (data.status) {
7386                    this.couponAdded = true;
7387                    //set coupon details
7388                    this.appService.appObject.selectedCoupon = [];
7389                    data.data['coupon_code'] = this.coupon;
7390                    this.appService.appObject.selectedCoupon.push(data.data);
7391                    this.appService.calculateCartAmounts();
7392                }
7393                else {
7394                    this.couponAdded = false;
7395                    this.coupon = '';
7396                    this.appService.showAlert('error', '', data.msg);
7397                }
7398                this.isCouponStatusChecking = false;
7399            }, error => {
7400                this.isCouponStatusChecking = false;
7401                this.appService.appObject.isLoading = false;
7402            });
7403        });
7404    }
7405    incDish(dish) {
7406        return (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__awaiter)(this, void 0, void 0, function* () {
7407            dish.count++;
7408            this.appService.calculateCartAmounts();
7409        });
7410    }
7411    decDish(dish) {
7412        return (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__awaiter)(this, void 0, void 0, function* () {
7413            if (dish.count > 1) {
7414                dish.count--;
7415                this.appService.calculateCartAmounts();
7416            }
7417        });
7418    }
7419    remove(index) {
7420        return (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__awaiter)(this, void 0, void 0, function* () {
7421            this.appService.appObject.orderObject.cart.splice(index, 1);
7422            this.appService.appObject.orderObjectDup.cart.splice(index, 1);
7423            this.appService.calculateCartAmounts();
7424            if (this.appService.appObject.orderObject.cart.length == 0) {
7425                this.dismiss();
7426            }
7427        });
7428    }
7429    edit(index, dish) {
7430        return (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__awaiter)(this, void 0, void 0, function* () {
7431            this.appService.selectedDish.size_id = dish.size_info.size_id;
7432            this.appService.editing_cart_item = index;
7433            this.appService.selectedDish.selectedTopings = dish.size_info.topping_info;
7434            this.appService.selectedDish.fullDishInfo = JSON.parse(JSON.stringify(this.appService.appObject.orderObjectDup.cart[index]));
7435            this.modalController.dismiss({
7436                'dismissed': true,
7437                'array': 'kk'
7438            });
7439            this.appService.hideCartButton = true;
7440            const modal = yield this.modalController.create({
7441                component: _toppings_toppings_page__WEBPACK_IMPORTED_MODULE_3__.ToppingsPage,
7442                cssClass: 'custom-popup'
7443            });
7444            yield modal.present();
7445        });
7446    }
7447    onclickAny() {
7448        console.log('hi');
7449    }
7450    makeFinalPayment() {
7451        return (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__awaiter)(this, void 0, void 0, function* () {
7452            if (this.appService.hasNewDishesInCart()) {
7453                if (this.appService.appObject.orderObject.save_items && this.appService.appObject.orderObject.table_order_id) {
7454                    yield this.appService.updateKitchenOrder();
7455                    // console.log('Kitchen Order Updated');
7456                }
7457                else {
7458                    yield this.appService.sendToKitchen(false);
7459                    // console.log('Kitchen Order Created');
7460                }
7461            }
7462            this.makePayment = true;
7463        });
7464    }
7465    openDeliveryTimeSlotDetails(event, openDetailComponent = false) {
7466        return (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__awaiter)(this, void 0, void 0, function* () {
7467            // let lang = await this.storage.get('lang');
7468            const popover = yield this.popoverCtrl.create({
7469                // component: !openDetailComponent ? (lang === 'en' ? InlinePopoverComponent : InlinePopoverComponentDe) : DeliveryTimesPage,
7470                component: _delivery_times_delivery_times_page__WEBPACK_IMPORTED_MODULE_5__.DeliveryTimesPage,
7471                cssClass: 'delivery-cost-tour-class',
7472                event: event,
7473                translucent: true,
7474                mode: 'ios',
7475                showBackdrop: true,
7476                backdropDismiss: true
7477            });
7478            yield popover.present();
7479            // this.appService.appObject.tourEndDeliveryMobile = true;
7480            // this.appService.updateAppObject();
7481        });
7482    }
7483};
7484CartPage.ctorParameters = () => [
7485    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_7__.ModalController },
7486    { type: src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService },
7487    { type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__.TranslateService },
7488    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_7__.PopoverController },
7489    { type: src_app_core_storage_service__WEBPACK_IMPORTED_MODULE_4__.StorageService }
7490];
7491CartPage.propDecorators = {
7492    highlightUnavailableDishes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_9__.Input }]
7493};
7494CartPage = (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([
7495    (0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({
7496        selector: 'app-cart',
7497        template: _raw_loader_cart_page_html__WEBPACK_IMPORTED_MODULE_0__.default,
7498        styles: [_cart_page_scss__WEBPACK_IMPORTED_MODULE_1__.default]
7499    })
7500], CartPage);
7501
7502// Define the inline popover component
7503let InlinePopoverComponent = class InlinePopoverComponent {
7504};
7505InlinePopoverComponent = (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([
7506    (0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({
7507        template: `
7508    <div style="padding: 5px;text-align: center;font-size: 12px;font-weight: 600;">
7509      Click Here to see delivery times and prices for selected postal code.
7510    </div>
7511  `
7512    })
7513], InlinePopoverComponent);
7514
7515let InlinePopoverComponentDe = class InlinePopoverComponentDe {
7516};
7517InlinePopoverComponentDe = (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([
7518    (0,_angular_core__WEBPACK_IMPORTED_MODULE_9__.Component)({
7519        template: `
7520    <div style="padding: 5px;text-align: center;font-size: 12px;font-weight: 600;">
7521      Klicken Sie hier, um Lieferzeiten und Preise anzuzeigen.
7522    </div>
7523  `
7524    })
7525], InlinePopoverComponentDe);
7526
7527
7528
7529/***/ }),
7530
7531/***/ 45577:
7532/*!******************************************************************!*\
7533  !*** ./src/app/views/modals/cross-selling/cross-selling.page.ts ***!
7534  \******************************************************************/
7535/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7536
7537"use strict";
7538__webpack_require__.r(__webpack_exports__);
7539/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7540/* harmony export */   "CrossSellingPage": function() { return /* binding */ CrossSellingPage; }
7541/* harmony export */ });
7542/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ 64762);
7543/* harmony import */ var _raw_loader_cross_selling_page_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./cross-selling.page.html */ 69665);
7544/* harmony import */ var _cross_selling_page_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cross-selling.page.scss */ 9698);
7545/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 37716);
7546/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ 80476);
7547/* harmony import */ var src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/api/app-service.service */ 95670);
7548/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 29790);
7549
7550
7551
7552
7553
7554
7555
7556let CrossSellingPage = class CrossSellingPage {
7557    constructor(modalController, appService, translate) {
7558        this.modalController = modalController;
7559        this.appService = appService;
7560        this.translate = translate;
7561        this.crossSellingProducts = [];
7562        this.title = '';
7563        this.openQuestionDishPage = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter();
7564        this.selectedQuestion = null;
7565        this.navigationHistory = [];
7566        this.currentUI = 'questions';
7567        this.dishes = [];
7568        this.isDishesLoading = false;
7569        // this.title = appService.selectedDish.fullDishInfo.name;
7570    }
7571    ngOnInit() {
7572    }
7573    dismiss() {
7574        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
7575            // console.log(this.appService.hideCartButton);
7576            this.appService.hideCartButton = false;
7577            this.modalController.dismiss({
7578                'dismissed': true
7579            });
7580        });
7581    }
7582    /**
7583     * Fetch products of the selected category id
7584     * @param category selected category
7585     */
7586    fetchProductList(category) {
7587        this.dishes = [];
7588        this.isDishesLoading = true;
7589        this.appService.getDishesOfTheGivenCategory(category.id).then((response) => {
7590            this.isDishesLoading = false;
7591            if (response.status) {
7592                this.dishes = response.data;
7593            }
7594            if (this.dishes.length) {
7595                // keep navigation history to navigate backwards
7596                this.navigationHistory.push('questions');
7597                this.currentUI = 'dishes';
7598                if (this.appService.isWebVersion)
7599                    this.openQuestionDishPage.emit([category]);
7600            }
7601            // console.log('selectedQuestionIndex : ', this.selectedQuestion);
7602        }).catch((error) => {
7603            this.isDishesLoading = false;
7604            console.log('Dish error : ', error);
7605        });
7606    }
7607    /**
7608     * This will listen till the dish successfuly adding to the cart and mark the question as user responded
7609     * @param dish Selected dish
7610     */
7611    addToCart(dish) {
7612        this.appService.addToCart(dish, true).then((response) => {
7613            if (response.status === 'done' && this.selectedQuestion) {
7614                this.selectedQuestion.done = true;
7615                // display toast after adding items into cart
7616                this.translate.get('item_successfuly_added_to_the_cart').subscribe(value => {
7617                    this.appService.showToast(value);
7618                });
7619            }
7620        }).catch((error) => {
7621            console.log('response error : ', error);
7622        });
7623    }
7624    /**
7625       * This will listen till the dish successfuly adding to the cart and mark the question as user responded
7626       * @param dish Selected dish
7627       */
7628    openToppingPopUp(dish) {
7629        this.appService.topingPopupOpen(dish, true);
7630        let callbackResponsse = this.appService.triggerAddToCartSuccssfulyCallback().subscribe((response) => {
7631            if (response && response.status === 'done') {
7632                this.selectedQuestion.done = true;
7633                // display toast after adding items into cart
7634                this.translate.get('item_successfuly_added_to_the_cart').subscribe(value => {
7635                    this.appService.showToast(value);
7636                });
7637            }
7638            callbackResponsse.unsubscribe();
7639        });
7640    }
7641    /**
7642     * Will trigger when user click back button in web app
7643     */
7644    navigateBackInWebVersion() {
7645        this.currentUI = 'questions';
7646    }
7647};
7648CrossSellingPage.ctorParameters = () => [
7649    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__.ModalController },
7650    { type: src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService },
7651    { type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateService }
7652];
7653CrossSellingPage.propDecorators = {
7654    crossSellingProducts: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input }],
7655    selectedDishCategory: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input }],
7656    title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Input }],
7657    openQuestionDishPage: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_3__.Output }]
7658};
7659CrossSellingPage = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([
7660    (0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({
7661        selector: 'app-cross-selling',
7662        template: _raw_loader_cross_selling_page_html__WEBPACK_IMPORTED_MODULE_0__.default,
7663        styles: [_cross_selling_page_scss__WEBPACK_IMPORTED_MODULE_1__.default]
7664    })
7665], CrossSellingPage);
7666
7667
7668
7669/***/ }),
7670
7671/***/ 97966:
7672/*!********************************************************************!*\
7673  !*** ./src/app/views/modals/delivery-times/delivery-times.page.ts ***!
7674  \********************************************************************/
7675/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7676
7677"use strict";
7678__webpack_require__.r(__webpack_exports__);
7679/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7680/* harmony export */   "DeliveryTimesPage": function() { return /* binding */ DeliveryTimesPage; }
7681/* harmony export */ });
7682/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ 64762);
7683/* harmony import */ var _raw_loader_delivery_times_page_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./delivery-times.page.html */ 79201);
7684/* harmony import */ var _delivery_times_page_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./delivery-times.page.scss */ 30822);
7685/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 37716);
7686/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic/angular */ 80476);
7687/* harmony import */ var src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/api/app-service.service */ 95670);
7688
7689
7690
7691
7692
7693
7694let DeliveryTimesPage = class DeliveryTimesPage {
7695    constructor(popover, appService) {
7696        this.popover = popover;
7697        this.appService = appService;
7698        this.prices = [];
7699        this.currentSlotId = null;
7700    }
7701    ngOnInit() {
7702        let postalCodeDetails = this.appService.appObject.postalCodeDetails;
7703        let selectedRestaurantPricing = postalCodeDetails.price.find((prices) => prices.restaurantId === this.appService.appObject.selectedRestaurantId);
7704        if (selectedRestaurantPricing && selectedRestaurantPricing.time_slots) {
7705            this.prices = selectedRestaurantPricing.time_slots.filter((slot) => slot.status === 'true');
7706        }
7707        else {
7708            this.prices = [];
7709        }
7710        let currentTimeSlot = this.appService.getGivenPostalCodeCurrentPriceAndMinAmount(selectedRestaurantPricing);
7711        // console.log('currentTimeSlot :', currentTimeSlot);
7712        if (currentTimeSlot && currentTimeSlot.id)
7713            this.currentSlotId = currentTimeSlot.id;
7714        else
7715            this.currentSlotId = null;
7716    }
7717    ngDoCheck() {
7718        // display touchable area to change favourite restaurant
7719        // let ele = document.getElementById('enable-tour-container');
7720        // if (ele) {
7721        //   let bounding = ele.getBoundingClientRect();
7722        //   if (bounding) {
7723        //     let holeEle = document.getElementById('secret-div-web-menu');
7724        //     if (holeEle) holeEle.setAttribute('style', 'top:' + ((bounding.top) + 'px;left : ' + (bounding.left + 'px;width:') + ((bounding.width + 1) + 'px; height: ') + ((bounding.height + 1) + 'px')));
7725        //   }
7726        // }
7727    }
7728    dismiss() {
7729        this.popover.dismiss();
7730    }
7731};
7732DeliveryTimesPage.ctorParameters = () => [
7733    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_3__.PopoverController },
7734    { type: src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService }
7735];
7736DeliveryTimesPage = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([
7737    (0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({
7738        selector: 'app-delivery-times',
7739        template: _raw_loader_delivery_times_page_html__WEBPACK_IMPORTED_MODULE_0__.default,
7740        styles: [_delivery_times_page_scss__WEBPACK_IMPORTED_MODULE_1__.default]
7741    })
7742], DeliveryTimesPage);
7743
7744
7745
7746/***/ }),
7747
7748/***/ 79979:
7749/*!**************************************************!*\
7750  !*** ./src/app/views/modals/popup/popup.page.ts ***!
7751  \**************************************************/
7752/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7753
7754"use strict";
7755__webpack_require__.r(__webpack_exports__);
7756/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7757/* harmony export */   "PopupPage": function() { return /* binding */ PopupPage; }
7758/* harmony export */ });
7759/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ 64762);
7760/* harmony import */ var _raw_loader_popup_page_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./popup.page.html */ 75814);
7761/* harmony import */ var _popup_page_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./popup.page.scss */ 64054);
7762/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 37716);
7763/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ 80476);
7764/* harmony import */ var src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/api/app-service.service */ 95670);
7765/* harmony import */ var _select_order_type_select_order_type_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../select-order-type/select-order-type.page */ 84640);
7766
7767
7768
7769
7770
7771
7772
7773let PopupPage = class PopupPage {
7774    constructor(modalController, appService) {
7775        this.modalController = modalController;
7776        this.appService = appService;
7777        this.currentUI = '';
7778    }
7779    ngOnInit() {
7780    }
7781    langSelect(event) {
7782        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
7783            yield this.appService.changeLanguage(event);
7784            // this.dismiss();
7785        });
7786    }
7787    dismiss() {
7788        // using the injected ModalController this page
7789        // can "dismiss" itself and optionally pass back data
7790        this.modalController.dismiss();
7791    }
7792    /**
7793     * Choose favourite restaurant
7794     */
7795    chooseFavouriteRestaurant() {
7796        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
7797            this.dismiss();
7798            let componentProps = {
7799                'currentUI': 'order-type',
7800                'selectFavouriteRestaurant': true
7801            };
7802            const cartModal = yield this.modalController.create({
7803                component: _select_order_type_select_order_type_page__WEBPACK_IMPORTED_MODULE_3__.SelectOrderTypePage,
7804                cssClass: 'custom-popup',
7805                componentProps: componentProps
7806            });
7807            yield cartModal.present();
7808        });
7809    }
7810    closeUnavailableNote() {
7811        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
7812            (yield this.modalController.getTop()).dismiss();
7813            this.appService.hideCartButton = false;
7814        });
7815    }
7816};
7817PopupPage.ctorParameters = () => [
7818    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__.ModalController },
7819    { type: src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService }
7820];
7821PopupPage.propDecorators = {
7822    currentUI: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input }]
7823};
7824PopupPage = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([
7825    (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({
7826        selector: 'app-popup',
7827        template: _raw_loader_popup_page_html__WEBPACK_IMPORTED_MODULE_0__.default,
7828        styles: [_popup_page_scss__WEBPACK_IMPORTED_MODULE_1__.default]
7829    })
7830], PopupPage);
7831
7832
7833
7834/***/ }),
7835
7836/***/ 84640:
7837/*!**************************************************************************!*\
7838  !*** ./src/app/views/modals/select-order-type/select-order-type.page.ts ***!
7839  \**************************************************************************/
7840/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7841
7842"use strict";
7843__webpack_require__.r(__webpack_exports__);
7844/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7845/* harmony export */   "SelectOrderTypePage": function() { return /* binding */ SelectOrderTypePage; }
7846/* harmony export */ });
7847/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ 64762);
7848/* harmony import */ var _raw_loader_select_order_type_page_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./select-order-type.page.html */ 69081);
7849/* harmony import */ var _select_order_type_page_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select-order-type.page.scss */ 3858);
7850/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 37716);
7851/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ 80476);
7852/* harmony import */ var src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/api/app-service.service */ 95670);
7853/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 29790);
7854/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/router */ 39895);
7855var SelectOrderTypePage_1;
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865let SelectOrderTypePage = SelectOrderTypePage_1 = class SelectOrderTypePage {
7866    constructor(modalController, appService, translate, router) {
7867        this.modalController = modalController;
7868        this.appService = appService;
7869        this.translate = translate;
7870        this.router = router;
7871        this.just_select_address = false;
7872        this.just_select_order_type = false;
7873        this.currentUI = 'order-type';
7874        this.selected_branch = null;
7875        this.selectFavouriteRestaurant = false;
7876        this.showAll = false;
7877        this.tableSelectRestaurant = null;
7878        this.tableListOfRestaurant = [];
7879        this.selectedTable = null;
7880        this.remaningTime = 3;
7881        this.previousRestaurant = '';
7882        this.is_from_checkout_page = false;
7883        this.addressTemp = '';
7884        this.hasMultipleRestaurants = false;
7885        this.favouriteRedirectCountDown = 10;
7886        this.redirectIntervel = null;
7887        this.loadingFavourite = false;
7888        /**
7889         * when user already has a favourite restauratn and select delivery as order method
7890         * so need to select where to deliver
7891         */
7892        this.isFavouriteRestaurantDeliverySearch = false;
7893        // when franchise mode is on, there is a special way to get available delivery methods
7894        // check all the branches and get all available delivery methods
7895        this.availableDeliveryMethodsFranchise = [];
7896        this.isFromMenuPage = false;
7897        // is postal code feature enabled
7898        this.isPostalCodeEnabled = false;
7899        this.postalCodeRestaurantList = [];
7900        this.postalCodeList = [];
7901        this.selectedArea = null;
7902        this.restaurantList = [];
7903        this.postalFilterItem = [];
7904        this.isPostalItemAvailable = false;
7905        this.selected_postal = '';
7906        // Loading spinner display till load restaurants list
7907        // in postal code select section
7908        this.displaySpinnerSection = false;
7909        this.hasMultipleRestaurants = this.appService.appObject.settings && this.appService.appObject.settings.app_configuration && this.appService.appObject.settings.app_configuration.has_multiple_restaurants;
7910    }
7911    ngOnInit() {
7912        var _a, _b, _c;
7913        return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () {
7914            if (!this.selected_branch && this.appService.appObject.settings.is_franchise === 'true' && this.currentUI === 'order-type') {
7915                this.availableDeliveryMethodsFranchise = this.appService.getAvailableOrderMethodsFromBranches();
7916            }
7917            // check postal code feature enabled
7918            if (this.appService.appObject.settings.is_franchise === 'false' && this.appService.appObject.settings.main_restaurant && this.appService.appObject.settings.is_postalcode === 'true') {
7919                this.isPostalCodeEnabled = true;
7920            }
7921            // if user has already selected favourite restaurant, then redirect into favourite restaurant 
7922            if (!this.tableSelectRestaurant && !this.showAll && !this.selected_branch && !this.just_select_order_type && this.appService.appObject.settings.is_franchise === 'true' && ((_a = this.appService.appObject.settings.app_configuration) === null || _a === void 0 ? void 0 : _a.has_multiple_restaurants) && this.appService.appObject.favouriteRestaurant) {
7923                // console.log('has favourite');
7924                this.currentUI = 'redirect-to_favourite';
7925                this.loadingFavourite = true;
7926                yield this.appService.getFavouriteRestaurantData(this.appService.appObject.favouriteRestaurant.slug);
7927                this.availableDeliveryMethodsFranchise = this.appService.findSelectedRestaurantOrderTypesV2(this.appService.appObject.favouriteRestaurant, true).deliveryMethods;
7928                this.loadingFavourite = false;
7929                // this.redirectIntervel = setInterval(() => {
7930                //   this.favouriteRedirectCountDown--;
7931                //   if (this.favouriteRedirectCountDown === 0) {
7932                //     this.clearRedirectInterval();
7933                //     this.redirectTofavouriteRestaurant();
7934                //   }
7935                // }, 1000);
7936                return;
7937            }
7938            if (this.selectFavouriteRestaurant) {
7939                if (this.appService.appObject.myAddress.name == "" && this.appService.appObject.myAddress.lat == "" && this.appService.appObject.myAddress.lng == "") {
7940                    this.appService.getCurrentLocation();
7941                }
7942                // initialize google places auto complete input once delivery selected
7943                // set timeout to avoid expressionchangedafter exception for loading spinner
7944                setTimeout(() => { this.appService.appObject.isLoading = true; }, 10);
7945                setTimeout(() => {
7946                    this.appService.initGoogle(this.googleaddress);
7947                    this.appService.appObject.isLoading = false;
7948                }, 2000);
7949                this.currentUI = 'location-for-favourite';
7950                return;
7951            }
7952            // get available ordering type of selected branch
7953            if (!this.just_select_order_type && this.selected_branch && this.selected_branch.openDetails) {
7954                this.appService.findSelectedRestaurantOrderTypesV2(this.selected_branch);
7955            }
7956            else if (!this.just_select_order_type && ((_c = (_b = this.appService.appObject.settings) === null || _b === void 0 ? void 0 : _b.main_restaurant) === null || _c === void 0 ? void 0 : _c.openDetails)) {
7957                this.appService.findSelectedRestaurantOrderTypesV2(this.appService.appObject.settings.main_restaurant);
7958            }
7959            if (this.tableSelectRestaurant) {
7960                // If user has already pending payment order on another restaurant, redirect into that restaurant menu instead of selected restaurant
7961                if (this.appService.appObject.orderObject.selectedTable && this.appService.appObject.orderObject.selectedTable.restaurants_id && this.tableSelectRestaurant.id !== this.appService.appObject.orderObject.selectedTable.restaurants_id) {
7962                    // console.log('redirect into that restaurant');
7963                    if (this.appService.appObject.restaurants) {
7964                        let previouslySelectedRestaurant = this.appService.appObject.restaurants.find((rest) => rest.id === this.appService.appObject.orderObject.selectedTable.restaurants_id);
7965                        if (previouslySelectedRestaurant) {
7966                            this.previousRestaurant = previouslySelectedRestaurant.name;
7967                            this.appService.appObject.selectedRestaurantId = previouslySelectedRestaurant.id;
7968                            this.startCountDown(previouslySelectedRestaurant.slug);
7969                        }
7970                    }
7971                }
7972                else {
7973                    // this.appService.getUserUnpaidActiveOrders();
7974                    this.tableListOfRestaurant = [];
7975                    this.appService.fetchAllTablesOfRestaurant(this.tableSelectRestaurant.id).then((response) => {
7976                        if (response.status && response.data) {
7977                            this.tableListOfRestaurant = response.data;
7978                            this.appService.appObject.selectedRestaurantId = this.tableSelectRestaurant.id;
7979                            if (this.appService.appObject.orderObject && this.appService.appObject.orderObject.selectedTable && this.appService.appObject.orderObject.selectedTable.saved) {
7980                                // console.log('this.appService.appObject.orderObject.selectedTable : ' , this.appService.appObject.orderObject.selectedTable);
7981                                this.startCountDown(this.tableSelectRestaurant.slug);
7982                            }
7983                        }
7984                    }).catch((error) => {
7985                        console.log('error while fetching tables : ', error);
7986                    });
7987                }
7988            }
7989            if (this.is_from_checkout_page) {
7990                this.addressTemp = this.appService.appObject.myAddress ? this.appService.appObject.myAddress.name : '';
7991                // initialize google places auto complete input once delivery selected
7992                setTimeout(() => {
7993                    this.appService.appObject.isLoading = true;
7994                }, 10);
7995                setTimeout(() => {
7996                    this.appService.initGoogle(this.googleaddress);
7997                    this.appService.appObject.isLoading = false;
7998                }, 2000);
7999            }
8000        });
8001    }
8002    /**
8003     * Clear user redirect to favourite restaurant interval
8004     * @param dismiss dismiss after clear interval
8005     */
8006    clearRedirectInterval(dismiss = false) {
8007        if (this.redirectIntervel) {
8008            clearInterval(this.redirectIntervel);
8009            this.redirectIntervel = null;
8010        }
8011        if (dismiss)
8012            this.dismiss();
8013    }
8014    dismiss() {
8015        return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () {
8016            this.modalController.dismiss({
8017                'dismissed': true,
8018            });
8019        });
8020    }
8021    /**
8022     * Trigger when user click choose address
8023     * @param orderType order type 'delivery', 'pickup', 'dine_in'
8024     */
8025    selectTypeAsDelivery(orderType = 'delivery') {
8026        return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () {
8027            this.appService.appObject.errors.address = '';
8028            // console.log('this.appService.appObject.myAddress : ', this.appService.appObject.myAddress);
8029            if (this.appService.appObject.myAddress.name != "" && this.appService.appObject.myAddress.lat != "" && this.appService.appObject.myAddress.lng != "") {
8030                this.appService.appObject.selectedDeliveryMethod = this.appService.appObject.selectedDeliveryMethod;
8031                // if the user want to change the ordering type and select the address
8032                // then stop once user had it
8033                // if (this.just_select_order_type) {
8034                //   this.dismiss();
8035                //   return;
8036                // }
8037                this.appService.findNearByRestaurants((this.selected_branch ? 'branch-selected' : 'do-not-redirect'), false).then((response) => (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () {
8038                    var _a, _b;
8039                    // if the user is from checkout page, for just change the address
8040                    // must calculate the order amount
8041                    if (this.selected_branch || this.is_from_checkout_page || this.just_select_order_type) {
8042                        // console.log('this.appService.appObject.selectedRestaurantDetails.id : ' , this.appService.appObject.selectedRestaurantDetails.id);
8043                        // console.log('this.appService.appObject.restaurants : ', this.appService.appObject.restaurants);
8044                        let selectedBranch = this.appService.appObject.restaurants.find((restaurant) => {
8045                            return restaurant.id === (this.selected_branch ? this.selected_branch.id : this.appService.appObject.selectedRestaurantDetails.id);
8046                        }); // this.selected_branch.id
8047                        // console.log('selectedBranch : ' , selectedBranch)
8048                        if (selectedBranch) {
8049                            if (this.selected_branch)
8050                                this.router.navigate(['restaurant', selectedBranch.slug]);
8051                            // else if from checkout page or ordering main 2 page order type change popup
8052                            // then calculate cart amount and close popup
8053                            else if (this.is_from_checkout_page || this.just_select_order_type) {
8054                                yield this.appService.getRestaurantBySlug(selectedBranch.slug);
8055                                yield this.appService.calculateCartAmounts();
8056                            }
8057                            this.dismiss();
8058                        }
8059                        else {
8060                            // console.log('selected restaurant won\'t delivery to the selected address');
8061                            if (this.is_from_checkout_page || this.just_select_order_type)
8062                                this.appService.clearAddress('selected_restaurant_cannot_delivery_to_selected_address');
8063                            this.appService.appObject.errors['address'] 
8063= ['selected_restaurant_cannot_delivery_to_selected_address'];
8064                        }
8065                    }
8066                    else {
8067                        if (this.isFavouriteRestaurantDeliverySearch) {
8068                            let favouriteBranch = this.appService.appObject.restaurants.find((restaurant) => {
8069                                return restaurant.id === this.appService.appObject.favouriteRestaurant.id;
8070                            });
8071                            if (favouriteBranch) {
8072                                this.dismiss();
8073                                this.router.navigate(['restaurant', favouriteBranch.slug]);
8074                            }
8075                            else {
8076                                this.appService.appObject.errors['address'] = ['your_favourite_restaurant_cannot_delivery_to_selected_address'];
8077                            }
8078                        }
8079                        else {
8080                            if (this.appService.appObject.restaurants.length === 1 && this.appService.appObject.restaurants[0].slug && (!this.appService.appObject.settings.is_franchise || this.appService.appObject.settings.is_franchise === 'false' || !((_a = this.appService.appObject.settings.app_configuration) === null || _a === void 0 ? void 0 : _a.has_multiple_restaurants))) {
8081                                this.dismiss();
8082                                this.router.navigate(['restaurant', this.appService.appObject.restaurants[0].slug]);
8083                            }
8084                            else if (this.appService.appObject.restaurants && this.appService.appObject.restaurants.length > 0 || (this.appService.appObject.settings.is_franchise === 'true' && ((_b = this.appService.appObject.settings.app_configuration) === null || _b === void 0 ? void 0 : _b.has_multiple_restaurants))) {
8085                                this.dismiss();
8086                                this.router.navigate(['restaurant-list']);
8087                            }
8088                            else {
8089                                this.appService.appObject.errors['address'] = ['selected_restaurant_cannot_delivery_to_selected_address'];
8090                            }
8091                        }
8092                    }
8093                }));
8094            }
8095            else {
8096                // if lat lng address not availbale then mark as invalid
8097                this.appService.appObject.errors['address'] = ['address_is_not_valid'];
8098            }
8099        });
8100    }
8101    /**
8102     * Will trigger when user select an option from order type select popup
8103     * @param option selected order type option
8104     */
8105    selectOrderType(option) {
8106        var _a;
8107        return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () {
8108            // if the selected ordering type is "Delivery" and postal code feature is enabled 
8109            if (option === 'delivery' && this.isPostalCodeEnabled) {
8110                this.postalCodeRestaurantList = [];
8111                this.postalCodeList = [];
8112                this.selectedArea = null;
8113                if (this.selected_branch) {
8114                    let postalCodes = this.selected_branch.postal_code_details_v2 ? this.selected_branch.postal_code_details_v2 : [];
8115                    if (!Array.isArray(postalCodes))
8116                        postalCodes = JSON.parse(postalCodes);
8117                    for (let index = 0; index < postalCodes.length; index++) {
8118                        const element = postalCodes[index];
8119                        element.price = [{ restaurantId: this.selected_branch.id, cost: element.cost, minOrderAmount: element.min_order }];
8120                    }
8121                    this.postalCodeList = [...postalCodes];
8122                }
8123                else {
8124                    this.displaySpinnerSection = true;
8125                    this.appService.getAllRestaurants().then((response) => {
8126                        if (response.status) {
8127                            this.postalCodeRestaurantList = response.data.filter((restaurant) => restaurant.postal_code_details_v2);
8128                            for (let index = 0; index < this.postalCodeRestaurantList.length; index++) {
8129                                const element = this.postalCodeRestaurantList[index];
8130                                // convert into json object 
8131                                // element.postal_code_details = element.postal_code_details ? JSON.parse(element.postal_code_details) : []
8132                                element.postal_code_details = element.postal_code_details_v2;
8133                                for (let index1 = 0; index1 < element.postal_code_details.length; index1++) {
8134                                    // get each postal code data and put into postalCodeList global array
8135                                    // if multiple restaurants deliver to the same postal code, all prices will be available in 
8136                                    // selected postal code object
8137                                    const postalCodeData = element.postal_code_details[index1];
8138                                    let found = this.postalCodeList.find((post) => post.code === postalCodeData.code && post.name === postalCodeData.name);
8139                                    // to avoid duplicates, check by postal code and prices
8140                                    if (found) {
8141                                        found.price.push({ restaurantId: element.i
8141d, postalId: postalCodeData.id, cost: postalCodeData.cost, minOrderAmount: postalCodeData.min_order, time_slots: postalCodeData.time_slots });
8142                                    }
8143                                    else {
8144                                        let postalData = {
8145                                            code: postalCodeData.code,
8146                                            name: postalCodeData.name,
8147                                            price: [{ restaurantId: element.id, postalId: postalCodeData.id, cost: postalCodeData.cost, minOrderAmount: postalCodeData.min_order, time_slots: postalCodeData.time_slots }]
8148                                        };
8149                                        this.postalCodeList.push(postalData);
8150                                    }
8151                                }
8152                                // this.postalCodeList = this.postalCodeList.concat(element.postal_code_details);
8153                            }
8154                            // remove duplicated postal codes
8155                            // this.postalCodeList = [...new Map(this.postalCodeList.map((m) => [m.code, m])).values()];
8156                        }
8157                        // console.log('this.postalCodeList : ', this.postalCodeList);
8158                    }).catch((error) => {
8159                        console.log('error : ', error);
8160                    }).finally(() => {
8161                        this.displaySpinnerSection = false;
8162                    });
8163                }
8164                this.currentUI = 'select-postalcode';
8165                // set if already has selected postal area in app object
8166                if (this.appService.appObject.postalCodeDetails) {
8167                    this.selectedArea = this.appService.appObject.postalCodeDetails;
8168                    this.selected_postal = this.selectedArea.code + ' - ' + this.selectedArea.name;
8169                }
8170                return;
8171            }
8172            // if came from the order main page and not delivery (we must select the address if delivery)
8173            // just let the user to select ordering type
8174            if (option !== 'delivery' && (this.just_select_order_type || this.selected_branch)) {
8175                this.appService.appObject.selectedDeliveryMethod = option;
8176                // if user came from branches slider, then redirect into branch menu after selecting order type
8177                if (this.selected_branch) {
8178                    // if bar mode is enabled and user choosed dine_in, then open table selecter, otherwise redirect into menu page
8179                    if (option === 'dine_in' && this.selected_branch.is_bar_mode && this.selected_branch.is_bar_mode === 'true') {
8180                        this.appService.openTableSelect(this.selected_branch);
8181                    }
8182                    else {
8183                        this.router.navigate(['restaurant', this.selected_branch.slug]);
8184                    }
8185                }
8186                // calculate cart total when user change ordering type
8187                this.appService.calculateCartAmounts();
8188                this.dismiss();
8189                return;
8190            }
8191            // // if franchise mode is enabled
8192            // if (this.appService.appObject.settings.is_franchise === 'true') {
8193            //   setTimeout(() => {
8194            //     this.appService.initGoogle(this.googleaddress);
8195            //     this.appService.appObject.isLoading = false;
8196            //   }, 2000);
8197            //   if(this.appService.appObject.favouriteRestaurant){
8198            //   }else{
8199            //     this.currentUI = (option === 'delivery' ? 'delivery-address' : (option === 'pickup' ? 'pickup-address' : (option === 'dine_in') ? 'dinein-address' : ''));
8200            //     if (this.appService.appObject.myAddress.name == "" && this.appService.appObject.myAddress.lat == "" && this.appService.appObject.myAddress.lng == "") {
8201            //       this.appService.getCurrentLocation();
8202            //     }
8203            //   }
8204            // } else {
8205            // }
8206            if (option === 'delivery' || (this.appService.appObject.settings.is_franchise === 'true' && ((_a = this.appService.appObject.settings.app_configuration) === null || _a === void 0 ? void 0 : _a.has_multiple_restaurants))) {
8207                this.currentUI = (option === 'delivery' ? 'delivery-address' : (option === 'pickup' ? 'pickup-address' : (option === 'dine_in') ? 'dinein-address' : ''));
8208                // this.currentUI = 'delivery-address';
8209                if (this.appService.appObject.myAddress.name == "" && this.appService.appObject.myAddress.lat == "" && this.appService.appObject.myAddress.lng == "") {
8210                    this.appService.getCurrentLocation();
8211                }
8212                this.appService.appObject.selectedDeliveryMethod = option;
8213                this.appService.updateAppObject();
8214                // initialize google places auto complete input once delivery selected
8215                this.appService.appObject.isLoading = true;
8216                setTimeout(() => {
8217                    this.appService.initGoogle(this.googleaddress);
8218                    this.appService.appObject.isLoading = false;
8219                }, 2000);
8220            }
8221            else {
8222                this.appService.appObject.selectedDeliveryMethod = option;
8223                yield this.appService.clearSelectedRestaurant();
8224                yield this.appService.findNearByRestaurants('', true);
8225                this.appService.updateAppObject();
8226                // console.log('rest : ', this.appService.appObject.restaurants);
8227                // if (this.hasMultipleRestaurants) {
8228                //   this.router.navigate(['restaurant-list']);
8229                // } else if (!this.hasMultipleRestaurants) {
8230                //   if (this.appService.appObject.settings.main_restaurant.slug) this.router.navigate(['restaurant', this.appService.appObject.settings.main_restaurant.slug]);
8231                // }
8232                // if multiple restaurants is disabled then navigate directly into main restaurant menu page
8233                // this is a tricky solution. If has multiple option is disabled, then replace restaurant list with main restaurant
8234                if (this.appService.appObject.settings && this.appService.appObject.settings.app_configuration && !this.appService.appObject.settings.app_configuration.has_multiple_restaurants) {
8235                    this.appService.appObject.restaurants = [this.appService.appObject.settings.main_restaurant];
8236                    this.router.navigate(['restaurant', this.appService.appObject.restaurants[0].slug]);
8237                    this.dismiss();
8238                    return;
8239                }
8240                if (this.appService.appObject.restaurants && this.appService.appObject.restaurants.length > 1) {
8241                    this.router.navigate(['restaurant-list']);
8242                }
8243                else if (this.appService.appObject.restaurants && this.appService.appObject.restaurants.length === 1) {
8244                    this.router.navigate(['restaurant-list']);
8245                    // if bar mode is on, then redirect to table select ui
8246                    /* Commented this code, from now on user won't redirect to menu page without selecting restaurant  */
8247                    // if (option === 'dine_in' && this.appService.appObject.restaurants[0].is_bar_mode && this.appService.appObject.restaurants[0].is_bar_mode === 'true') {
8248                    //   this.appService.openTableSelect(this.appService.appObject.restaurants[0]);
8249                    // } else {
8250                    //   if (this.appService.appObject.restaurants[0].slug) this.router.navigate(['restaurant', this.appService.appObject.restaurants[0].slug]);
8251                    // }
8252                }
8253                else if (!this.appService.appObject.restaurants || !this.appService.appObject.restaurants.length) {
8254                    if (this.appService.appObject.settings && this.appService.appObject.settings.app_configuration && !this.appService.appObject.settings.app_configuration.has_multiple_restaurants) {
8255                        this.router.navigate(['restaurant', this.appService.appObject.settings.main_restaurant.slug]);
8256                    }
8257                    else {
8258                        this.translate.get('key.there_is_no_' + this.appService.appObject.selectedDeliveryMethod + '_available_restaurants_at_the_moment').toPromise().then((data) => {
8259                            this.appService.showToast(data, 'danger', 'bottom', 5000);
8260                        }).catch((err) => {
8261                            console.log('error while fetching not available : ', err);
8262                        });
8263                    }
8264                }
8265                this.dismiss();
8266            }
8267        });
8268    }
8269    /**
8270     * Clear selected postal data
8271     */
8272    clearPostalArea() {
8273        this.selectedArea = null;
8274        this.selected_postal = '';
8275        this.appService.appObject.postalCodeDetails = null;
8276        this.appService.updateAppObject();
8277    }
8278    /**
8279     * Triggers when user select a postal area to get delivered
8280     */
8281    onPostalCodeSelect() {
8282        return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () {
8283            if (this.selectedArea) {
8284                this.appService.appObject.selectedDeliveryMethod = 'delivery';
8285                this.appService.appObject.postalCodeDetails = this.selectedArea;
8286                yield this.appService.updateAppObject();
8287                if (this.selected_branch) {
8288                    this.router.navigate(['restaurant', this.selected_branch.slug]);
8289                    this.dismiss();
8290                }
8291                else {
8292                    let availableRestaurants = this.postalCodeRestaurantList.filter((restaurant) => restaurant.postal_code_details_v2.find((postal) => postal.code === this.selectedArea.code && postal.name === this.selectedArea.name));
8293                    if (availableRestaurants.length === 1) {
8294                        this.router.navigate(['restaurant', availableRestaurants[0].slug]);
8295                        this.dismiss();
8296                    }
8297                    else {
8298                        // console.log('Available List : ', availableRestaurants);
8299                        this.appService.appObject.restaurants = [...availableRestaurants];
8300                        this.router.navigate(['restaurant-list']);
8301                        this.dismiss();
8302                    }
8303                }
8304            }
8305            else {
8306                this.appService.appObject.errors['postalCode'] = ['select_postal_code'];
8307            }
8308        });
8309    }
8310    cancelTableSelect() {
8311        this.dismiss();
8312    }
8313    selectATable() {
8314        if (this.selectedTable && this.tableSelectRestaurant && this.tableSelectRestaurant.slug) {
8315            this.appService.appObject.orderObject.selectedTable = this.selectedTable;
8316            // console.log('this.appService.appObject.orderObject.selectedTable : ' , this.appService.appObject.orderObject.selectedTable);
8317            this.appService.updateAppObject();
8318            if (!this.isFromMenuPage) {
8319                this.router.navigate(['restaurant', this.tableSelectRestaurant.slug]);
8320            }
8321            // this.dismiss();
8322            this.modalController.dismiss({
8323                'dismissed': true,
8324            });
8325        }
8326    }
8327    /**
8328     * Start countdown when user has already unpaid kitchen order
8329     * @param slug slug to redirect after countdown
8330     */
8331    startCountDown(slug) {
8332        let int = setInterval(() => {
8333            this.remaningTime--;
8334            if (!this.remaningTime) {
8335                clearInterval(int);
8336                this.router.navigate(['restaurant', slug]);
8337                this.dismiss();
8338            }
8339        }, 1000);
8340    }
8341    /**
8342     * Redirect user to favourite
8343     */
8344    redirectTofavouriteRestaurant() {
8345        if (this.appService.appObject.favouriteRestaurant && this.appService.appObject.favouriteRestaurant.slug) {
8346            this.router.navigate(['restaurant', this.appService.appObject.favouriteRestaurant.slug]);
8347            if (this.redirectIntervel) {
8348                clearInterval(this.redirectIntervel);
8349                this.redirectIntervel = null;
8350            }
8351            this.dismiss();
8352        }
8353    }
8354    changeFavouriteRestaurant() {
8355        return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () {
8356            this.appService.appObject.favouriteRestaurant = null;
8357            this.appService.updateAppObject();
8358            this.modalController.dismiss();
8359            let componentProps = {
8360                'currentUI': 'order-type',
8361                'selectFavouriteRestaurant': true
8362            };
8363            const cartModal = yield this.modalController.create({
8364                component: SelectOrderTypePage_1,
8365                cssClass: 'custom-popup',
8366                componentProps: componentProps
8367            });
8368            yield cartModal.present();
8369        });
8370    }
8371    goToNearbyRestaurantList() {
8372        return (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__awaiter)(this, void 0, void 0, function* () {
8373            yield this.appService.getRestaurantListForFavourite();
8374            if (!this.appService.appObject.restaurants.length) {
8375                this.appService.appObject.errors['address'] = ['there_are_no_restaurants_available_around_selected_address_at_the_moment'];
8376                return;
8377            }
8378            this.router.navigate(['restaurant-list'], { queryParams: { selectfavourite: true } });
8379            this.dismiss();
8380        });
8381    }
8382    /**
8383     * When user select delivery type from favourite restaurant
8384     * @param option selected option
8385     */
8386    onFavoriteModeDeliveryMethodSelect(option) {
8387        this.appService.appObject.selectedDeliveryMethod = option;
8388        this.appService.updateAppObject();
8389        if (option !== 'delivery') {
8390            this.router.navigate(['restaurant', this.appService.appObject.favouriteRestaurant.slug]);
8391            this.dismiss();
8392        }
8393        else {
8394            // console.log('delivery selected');
8395            this.currentUI = 'delivery-address';
8396            // this.currentUI = 'delivery-address';
8397            if (this.appService.appObject.myAddress.name == "" && this.appService.appObject.myAddress.lat == "" && this.appService.appObject.myAddress.lng == "") {
8398                this.appService.getCurrentLocation();
8399            }
8400            this.appService.appObject.selectedDeliveryMethod = option;
8401            this.appService.updateAppObject();
8402            this.isFavouriteRestaurantDeliverySearch = true;
8403            // initialize google places auto complete input once delivery selected
8404            this.appService.appObject.isLoading = true;
8405            setTimeout(() => {
8406                this.appService.initGoogle(this.googleaddress);
8407                this.appService.appObject.isLoading = false;
8408            }, 2000);
8409        }
8410    }
8411    /**
8412     *
8413     * @param ev event
8414     */
8415    getPostalItems(ev) {
8416        this.appService.appObject.errors = [];
8417        const val = ev.target.value;
8418        if (val && val.trim() !== '') {
8419            this.isPostalItemAvailable = true;
8420            this.postalFilterItem = this.postalCodeList.filter((item) => item.name.toLowerCase().startsWith(val.toLowerCase()) || item.code.toLowerCase().startsWith(val.toLowerCase()));
8421            // this.postalFilterItem = this.postalFilterItem.slice(0, 2)
8422        }
8423        else {
8424            this.isPostalItemAvailable = false;
8425            this.selectedArea = null;
8426        }
8427    }
8428    /**
8429     *
8430     * @param Obj selected postal obj
8431     */
8432    selectPostalCode(Obj) {
8433        this.selectedArea = Obj;
8434        this.selected_postal = Obj.code + ' - ' + Obj.name;
8435    }
8436};
8437SelectOrderTypePage.ctorParameters = () => [
8438    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_4__.ModalController },
8439    { type: src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService },
8440    { type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateService },
8441    { type: _angular_router__WEBPACK_IMPORTED_MODULE_6__.Router }
8442];
8443SelectOrderTypePage.propDecorators = {
8444    just_select_address: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
8445    just_select_order_type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
8446    currentUI: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
8447    selected_branch: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
8448    selectFavouriteRestaurant: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
8449    showAll: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
8450    tableSelectRestaurant: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
8451    is_from_checkout_page: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }],
8452    googleaddress: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.ViewChild, args: ['googleaddress', { read: _ionic_angular__WEBPACK_IMPORTED_MODULE_4__.IonInput },] }],
8453    isFromMenuPage: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_7__.Input }]
8454};
8455SelectOrderTypePage = SelectOrderTypePage_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
8456    (0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({
8457        selector: 'app-select-order-type',
8458        template: _raw_loader_select_order_type_page_html__WEBPACK_IMPORTED_MODULE_0__.default,
8459        styles: [_select_order_type_page_scss__WEBPACK_IMPORTED_MODULE_1__.default]
8460    })
8461], SelectOrderTypePage);
8462
8463
8464
8465/***/ }),
8466
8467/***/ 85300:
8468/*!********************************************************!*\
8469  !*** ./src/app/views/modals/toppings/toppings.page.ts ***!
8470  \********************************************************/
8471/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8472
8473"use strict";
8474__webpack_require__.r(__webpack_exports__);
8475/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8476/* harmony export */   "ToppingsPage": function() { return /* binding */ ToppingsPage; }
8477/* harmony export */ });
8478/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ 64762);
8479/* harmony import */ var _raw_loader_toppings_page_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./toppings.page.html */ 2614);
8480/* harmony import */ var _toppings_page_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toppings.page.scss */ 75423);
8481/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 37716);
8482/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ 80476);
8483/* harmony import */ var src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/api/app-service.service */ 95670);
8484/* harmony import */ var _cart_cart_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../cart/cart.page */ 728);
8485
8486
8487
8488
8489
8490
8491
8492let ToppingsPage = class ToppingsPage {
8493    constructor(modalController, appService, cdRef) {
8494        var _a, _b, _c, _d;
8495        this.modalController = modalController;
8496        this.appService = appService;
8497        this.cdRef = cdRef;
8498        this.autoSelected = [];
8499        this.radioColor = (((_b = (_a = this.appService.appObject) === null || _a === void 0 ? void 0 : _a.theme[this.appService.themeConfigFor]) === null || _b === void 0 ? void 0 : _b.primaryColor) ? (_d = (_c = this.appService.appObject) === null || _c === void 0 ? void 0 : _c.theme[this.appService.themeConfigFor]) === null || _d === void 0 ? void 0 : _d.primaryColor : '') + ' !important;';
8500        // console.log(this.appService.selectedDish);
8501        this.appService.appObject.errors = [];
8502        this.appService.hideCartButton = true;
8503    }
8504    ngOnInit() {
8505    }
8506    ngDoCheck() {
8507        var _a;
8508        this.radioColor = ((_a = this.appService.appObject.theme[this.appService.themeConfigFor]) === null || _a === void 0 ? void 0 : _a.primaryColor) || '';
8509    }
8510    // solution for ngCheckedAfterExpressionChanged exception, check it again 
8511    ngAfterViewInit() {
8512        this.cdRef.detectChanges();
8513    }
8514    dismiss() {
8515        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
8516            // console.log(this.appService.hideCartButton);
8517            this.modalController.dismiss({
8518                'dismissed': true
8519            });
8520            if (this.appService.cartIsOpen) {
8521                const modal = yield this.modalController.create({
8522                    component: _cart_cart_page__WEBPACK_IMPORTED_MODULE_3__.CartPage,
8523                    cssClass: 'custom-popup'
8524                });
8525                yield modal.present();
8526            }
8527            else {
8528                this.appService.hideCartButton = false;
8529            }
8530        });
8531    }
8532    /**
8533     * Will return only active scenarios
8534     * @param scenarioList scenario list to filter from
8535     * @returns filtered scenario list
8536     */
8537    getActiveScenarios(scenarioList) {
8538        if (scenarioList && scenarioList.length) {
8539            let activeScenarios = scenarioList.filter((scenario) => scenario.status === 'true');
8540            return activeScenarios.sort((a, b) => a.position - b.position);
8541        }
8542        else {
8543            return [];
8544        }
8545    }
8546    /**
8547     * Will return status active topping list
8548     * @param toppingList topping list to filter from
8549     * @returns filtered topping list that status is active
8550     */
8551    getActiveToppings(toppingList) {
8552        if (toppingList && toppingList.length) {
8553            return toppingList.filter((topping) => {
8554                return topping.status === 'true';
8555            });
8556        }
8557        else {
8558            return [];
8559        }
8560    }
8561    autoSelect(topings, index, fun) {
8562        switch (fun) {
8563            case 'selectTopingOp':
8564                this.appService.selectTopingOp(null, index);
8565                break;
8566            default:
8567                break;
8568        }
8569        // console.log('auto', topings[0]['id']);
8570        return topings[0]['id'];
8571    }
8572    addFirstToping(id, index) {
8573        var ex = this.autoSelected.indexOf(id);
8574        if (ex == -1) {
8575            this.autoSelected.push(id);
8576            // console.log(id, index);
8577            this.appService.selectTopingOp2({ detail: { value: id } }, index);
8578        }
8579    }
8580};
8581ToppingsPage.ctorParameters = () => [
8582    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__.ModalController },
8583    { type: src_app_api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService },
8584    { type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.ChangeDetectorRef }
8585];
8586ToppingsPage.propDecorators = {
8587    isFromCrossSelling: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.Input }],
8588    radioColor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_6__.HostBinding, args: ['style.--radio-color',] }]
8589};
8590ToppingsPage = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([
8591    (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Component)({
8592        selector: 'app-toppings',
8593        template: _raw_loader_toppings_page_html__WEBPACK_IMPORTED_MODULE_0__.default,
8594        styles: [_toppings_page_scss__WEBPACK_IMPORTED_MODULE_1__.default]
8595    })
8596], ToppingsPage);
8597
8598
8599
8600/***/ }),
8601
8602/***/ 65524:
8603/*!****************************************************************************!*\
8604  !*** ./src/app/views/web-views/shared/modal-popover/modal-popover.page.ts ***!
8605  \****************************************************************************/
8606/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8607
8608"use strict";
8609__webpack_require__.r(__webpack_exports__);
8610/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8611/* harmony export */   "ModalPopoverPage": function() { return /* binding */ ModalPopoverPage; }
8612/* harmony export */ });
8613/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ 64762);
8614/* harmony import */ var _raw_loader_modal_popover_page_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !raw-loader!./modal-popover.page.html */ 10167);
8615/* harmony import */ var _modal_popover_page_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modal-popover.page.scss */ 47167);
8616/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/core */ 37716);
8617/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/router */ 39895);
8618/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ 80476);
8619/* harmony import */ var _api_app_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../api/app-service.service */ 95670);
8620/* harmony import */ var _constatnts_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constatnts.json */ 20991);
8621/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/platform-browser */ 39075);
8622/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ngx-translate/core */ 29790);
8623/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/common/http */ 91841);
8624var ModalPopoverPage_1;
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637let ModalPopoverPage = ModalPopoverPage_1 = class ModalPopoverPage {
8638    constructor(modalCtr, appService, router, httpClient, sanitizer, translate) {
8639        this.modalCtr = modalCtr;
8640        this.appService = appService;
8641        this.router = router;
8642        this.httpClient = httpClient;
8643        this.sanitizer = sanitizer;
8644        this.translate = translate;
8645        this.POPOVER_TYPES = _constatnts_json__WEBPACK_IMPORTED_MODULE_3__.POPOVER_TYPES;
8646        // This will keep records while navigate between components inside popover
8647        // Used to manage navigateBackward function
8648        this.historyStack = [];
8649        // when page click, slug need to be sent
8650        this.slug = null;
8651        this.isOrderProcessing = false;
8652        // Dish image preview url for DISH_IMAGE_PREVIEW
8653        this.dishImageURL = '';
8654        // cross selling component data set
8655        this.crossSellingProducts = [];
8656        this.isInQuestionDishesPage = false;
8657        this.selectedQuestionCategory = null;
8658        this.justSelectDeliveryAddress = false;
8659        // close popup after selecting delivery address
8660        // @Input() closeAfterSelection: boolean = false;
8661        this.isContentLoading = false;
8662        this.isRestaurantsAvailable = true;
8663        this.address = '';
8664        this.htmlContent = '';
8665        // payment id after placing order in checkout
8666        this.uniqueId = '';
8667        // reservation success message html content
8668        this.reservationSuccess = '';
8669        this.selectedBranch = null;
8670        this.previousAddressData = null;
8671        this.addressInputChanged = false;
8672        this.isFromCheckoutToLocationSelect = false;
8673        this.backFromAddressSelect = false;
8674        // dine in available table list of selected restaurant
8675        this.selectedRestaurantTableList = [];
8676        this.justToSelectATable = false;
8677        this.origin = '';
8678        this.loadingTables = false;
8679        this.selectedTable = null;
8680        this.selectedRestaurant = null;
8681        this.showPreviousPendingPaymentOrder = false;
8682        this.previousRestaurant = null;
8683        // select favourite restaurant modal status
8684        this.selectfavouriteRestaurant = false;
8685        // keep temp selected ordering type to use when franchise mode is on
8686        this.tempSelectedOrderType = '';
8687        this.loadingFavourite = false;
8688        this.redirectIntervel = null;
8689        this.favouriteRedirectCountDown = 10;
8690        // when franchise mode is on, there is a special way to get available delivery methods
8691        // check all the branches and get all available delivery methods
8692        this.availableDeliveryMethodsFranchise = [];
8693        // select just order type from menu page
8694        this.justSelectOrderType = false;
8695        this.favouriteRestaurantDeliveryMethods = [];
8696        this.fromFavouriteIcon = false;
8697        /**
8698         * when user already has a favourite restauratn and select delivery as order method
8699         * so need to select where to deliver
8700         */
8701        this.isFavouriteRestaurantDeliverySearch = false;
8702        //postal code 
8703        this.postalCodeRestaurantList = [];
8704        this.postalCodeList = [];
8705        this.selectedArea = null;
8706        this.postalFilterItem = [];
8707        this.isPostalItemAvailable = false;
8708        this.isPostalModeEnable = false;
8709        this.selected_postal = '';
8710        this.lang = null;
8711        this.todayDate = new Date();
8712    }
8713    ngOnInit() {
8714        var _a;
8715        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
8716            if (!this.selectedBranch && this.appService.appObject.settings && this.appService.appObject.settings.is_franchise === 'true' && this.type === this.POPOVER_TYPES.DELIVERY_TYPE.TYPE) {
8717                this.availableDeliveryMethodsFranchise = this.appService.getAvailableOrderMethodsFromBranches();
8718            }
8719            else if (this.selectedBranch) {
8720                this.appService.findSelectedRestaurantOrderTypesV2(this.selectedBranch);
8721            }
8722            else if (this.justSelectOrderType) {
8723                this.availableDeliveryMethodsFranchise = this.appService.findSelectedRestaurantOrderTypesV2(this.appService.appObject.selectedRestaurantDetails, true).deliveryMethods;
8724            }
8725            if (this.type === 'delivery-type' && !this.selectedBranch && !this.justToSelectATable && this.appService.appObject.settings.is_franchise === 'true' && ((_a = this.appService.appObject.settings.app_configuration) === null || _a === void 0 ? void 0 : _a.has_multiple_restaurants) && this.appService.appObject.favouriteRestaurant) {
8726                // console.log('has favourite');
8727                this.type = this.POPOVER_TYPES.FAVOURITE_RESTAURANT.TYPE;
8728                this.title = this.POPOVER_TYPES.FAVOURITE_RESTAURANT.TITLE;
8729                // this.currentUI = 'redirect-to_favourite';
8730                this.loadingFavourite = true;
8731                yield this.appService.getFavouriteRestaurantData(this.appService.appObject.favouriteRestaurant.slug);
8732                this.favouriteRestaurantDeliveryMethods = this.appService.findSelectedRestaurantOrderTypesV2(this.appService.appObject.favouriteRestaurant, true).deliveryMethods;
8733                this.loadingFavourite = false;
8734                // this.redirectIntervel = setInterval(() => {
8735                //   this.favouriteRedirectCountDown--;
8736                //   if (this.favouriteRedirectCountDown === 0) {
8737                //     this.clearRedirectInterval();
8738                //     this.redirectTofavouriteRestaurant();
8739                //   }
8740                // },1000);
8741                return;
8742            }
8743            // enable google auto complete for search near by restaurants for make favourite
8744            if (this.selectfavouriteRestaurant) {
8745                if (navigator.geolocation && !this.appService.appObject.isAddressHave) {
8746                    this.getCurrentLocation();
8747                }
8748                else if (!this.appService.appObject.myAddress || !this.appService.appObject.myAddress.name) {
8749                    this.address = '';
8750                }
8751                setTimeout(() => {
8752                    this.appService.initGoogle(this.googleaddress);
8753                }, 1000);
8754            }
8755            // set custom size to modal when restaurant select or restaurant selected message popup open
8756            if (this.type === this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECT.TYPE) {
8757                let elem = document.getElementsByClassName('modal-wrapper');
8758                if (elem && elem.length)
8759                    elem.item(0).setAttribute('style', 'width:350px;height:125px;');
8760            }
8761            else if (this.type === this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECT.TYPE || this.type === this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECTED.TYPE) {
8762                let elem = document.getElementsByClassName('modal-wrapper');
8763                if (elem && elem.length)
8764                    elem.item(0).setAttribute('style', 'width:350px;height:150px;');
8765            }
8766            if (this.appService.appObject.settings.is_postalcode === 'true') {
8767                this.getPostalCodeList();
8768                // set if already has selected postal area in app object
8769                if (this.justSelectDeliveryAddress && this.appService.appObject.postalCodeDetails) {
8770                    this.selectedArea = this.appService.appObject.postalCodeDetails;
8771                    this.selected_postal = this.selectedArea.code + ' - ' + this.selectedArea.name;
8772                }
8773            }
8774            this.getLang();
8775        });
8776    }
8777    /**
8778     * Ask to select favourite restaurant accept triggering function
8779     */
8780    chooseFavouriteRestaurant() {
8781        this.modalCtr.dismiss({ status: true });
8782    }
8783    /**
8784     * After entering address search restaurants for mark as favourites
8785     */
8786    favouriteRestaurantSearch() {
8787        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
8788            yield this.appService.getRestaurantListForFavourite();
8789            this.selectfavouriteRestaurant = true;
8790            this.type = this.POPOVER_TYPES.RESTAURANT_SELECT.TYPE;
8791            this.title = this.POPOVER_TYPES.RESTAURANT_SELECT.TIT
8791LE;
8792            this.historyStack.push(this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH);
8793        });
8794    }
8795    /**
8796    * Clear user redirect to favourite restaurant interval
8797    * @param dismiss dismiss after clear interval
8798    */
8799    clearRedirectInterval(dismiss = false) {
8800        if (this.redirectIntervel) {
8801            clearInterval(this.redirectIntervel);
8802            this.redirectIntervel = null;
8803        }
8804        if (dismiss)
8805            this.close();
8806    }
8807    /**
8808     * Redirect user to favourite
8809     */
8810    redirectTofavouriteRestaurant() {
8811        if (this.appService.appObject.favouriteRestaurant && this.appService.appObject.favouriteRestaurant.slug) {
8812            this.router.navigate(['/menu', this.appService.appObject.favouriteRestaurant.slug]);
8813            if (this.redirectIntervel) {
8814                clearInterval(this.redirectIntervel);
8815                this.redirectIntervel = null;
8816            }
8817            this.close();
8818        }
8819    }
8820    changeFavouriteRestaurant() {
8821        this.appService.appObject.favouriteRestaurant = null;
8822        this.appService.updateAppObject();
8823        this.selectfavouriteRestaurant = true;
8824        this.type = this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH.TYPE;
8825        this.title = this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH.TITLE;
8826        this.clearRedirectInterval();
8827        if (navigator.geolocation && !this.appService.appObject.isAddressHave) {
8828            this.getCurrentLocation();
8829        }
8830        else if (!this.appService.appObject.myAddress || !this.appService.appObject.myAddress.name) {
8831            this.address = '';
8832        }
8833        else if (this.appService.appObject.myAddress && this.appService.appObject.myAddress.name) {
8834            this.address = this.appService.appObject.myAddress.name;
8835        }
8836        setTimeout(() => {
8837            this.appService.initGoogle(this.googleaddress);
8838        }, 1000);
8839    }
8840    ngAfterViewInit() {
8841        if (this.type === this.POPOVER_TYPES.LOCATION_SELECT.TYPE || this.type === this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH.TYPE) {
8842            setTimeout(() => (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
8843                yield this.appService.initGoogle(this.googleaddress);
8844                // get existing address from app object each time go to the address select ui
8845                // if (this.type === this.POPOVER_TYPES.LOCATION_SELECT.TYPE) {
8846                // }
8847                this.address = this.appService.appObject.myAddress && this.appService.appObject.myAddress.name ? this.appService.appObject.myAddress.name : '';
8848            }), 1000);
8849        }
8850    }
8851    close(closingData = null) {
8852        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
8853            // if user close without choosing an address, previous address data will reassigned
8854            if (this.historyStack.length && this.historyStack[this.historyStack.length - 1].TYPE === this.POPOVER_TYPES.CHECKOUT.TYPE && this.type === this.POPOVER_TYPES.LOCATION_SELECT.TYPE && this.addressInputChanged) {
8855                this.appService.appObject.myAddress = Object.assign({}, this.previousAddressData);
8856            }
8857            yield this.modalCtr.dismiss(closingData);
8858        });
8859    }
8860    /**
8861     * Will trigger when user click back btn from the view delivery address select
8862     */
8863    navigateBackward() {
8864        if (this.historyStack.length) {
8865            // if user came back from location select ui to checkout page this will trigger
8866            if (this.historyStack[this.historyStack.length - 1].TYPE === this.POPOVER_TYPES.CHECKOUT.TYPE && this.type === this.POPOVER_TYPES.LOCATION_SELECT.TYPE) {
8867                if (this.addressInputChanged)
8868                    this.appService.appObject.myAddress = Object.assign({}, this.previousAddressData);
8869                this.backFromAddressSelect = true;
8870            }
8871            // get previous page and navigate
8872            this.navigateTo(this.historyStack[this.historyStack.length - 1], null, true);
8873            // remove the last record each time user navigate to previous page
8874            this.historyStack.splice(this.historyStack.length - 1, 1);
8875        }
8876    }
8877    /**
8878     * Navigate to another modal content or a page in web version
8879     * @param location the location to navigate
8880     * @param extraData extra data set if want to
8881     * @param isBackwardNavigating check wether user navigating backward (this one use to manage historyStack array)
8882     */
8883    navigateTo(location, extraData = null, isBackwardNavigating = false) {
8884        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
8885            if (location === 'restaurant-list') {
8886                // clear error messages
8887                this.appService.appObject.errors = [];
8888                // clear my address data when user need all restaurants to select
8889                let getAllRestaurants = false;
8890                if (extraData === 'all') {
8891                    getAllRestaurants = true;
8892                }
8893                setTimeout(() => {
8894                    this.appService.appObject.isLoading = true;
8895                }, 100);
8896                // find restaurants
8897                this.appService.findNearByRestaurants(false, getAllRestaurants).then((response) => (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
8898                    setTimeout(() => {
8899                        this.appService.appObject.isLoading = false;
8900                    }, 100);
8901                    // if has selected branch, check it's avialble for selected address to delivery
8902                    // if it is then go to menu page, otherwise display an errror message
8903                    if (this.selectedBranch) {
8904                        let restaurant = this.appService.appObject.restaurants.find((restaurant) => restaurant.id === this.selectedBranch.id); // this.selectedBranch.id
8905                        if (restaurant) {
8906                            this.router.navigate(['/menu', restaurant.slug]);
8907                            this.close();
8908                            // await this.appService.getRestaurantBySlug(restaurant.slug).then((response) => {
8909                            //   this.router.navigate(['/menu']);
8910                            //   this.close();
8911                            // });
8912                        }
8913                        else {
8914                            this.appService.appObject.errors['address'] = ['selected_restaurant_cannot_delivery_to_selected_address'];
8915                            return;
8916                        }
8917                    }
8918                    // if multiple restaurants is disabled then navigate directly into main restaurant menu page
8919                    if (this.appService.appObject.settings && this.appService.appObject.settings.app_configuration && !this.appService.appObject.settings.app_configuration.has_multiple_restaurants) {
8920                        /**
8921                         * 2022-10-07 9.18 p.m by Pumayk26
8922                           * the restaurant won't deliver to the user selected location
8923                           * haven't receive any restaurant nearby entered location this is a patch for an issue found in 'gusto bonn'
8924                           * user entered an invalid address / not delivery location address, but still navigate into menu page
8925                           * to avoid this issue added below if condition and check delivery method is 'delivery' but no restaurants returned by
8926                           * 'findNearByRestaurants()' function
8927                          **/
8928                        /* PATCH START */
8929                        if (this.appService.appObject.selectedDeliveryMethod === 'delivery' && !this.appService.appObject.restaurants.length) {
8930                            this.appService.appObject.errors['address'] = ['sorry_we_are_not_delivery_to_this_location'];
8931                            return;
8932                        }
8933                        /* PATCH END */
8934                        if (this.appService.appObject.settings.main_restaurant && this.appService.appObject.settings.main_restaurant.slug)
8935                            this.navigateTo('menu-page', this.appService.appObject.settings.main_restaurant);
8936                        return;
8937                    }
8938                    if (this.appService.appObject.restaurants && this.appService.appObject.restaurants.length > 1) {
8939                        // keep navigation history to navigate backward (just like in angular routing)
8940                        if (getAllRestaurants) {
8941                            this.historyStack.push(this.POPOVER_TYPES.DELIVERY_TYPE);
8942                        }
8943                        else {
8944                            this.historyStack.push(this.POPOVER_TYPES.LOCATION_SELECT);
8945                        }
8946                        this.type = this.POPOVER_TYPES.RESTAURANT_SELECT.TYPE;
8947                        // always send the title as language key
8948                        this.title = this.POPOVER_TYPES.RESTAURANT_SELECT.TIT
8948LE;
8949                    }
8950                    else if (this.appService.appObject.restaurants && this.appService.appObject.restaurants.length === 1) {
8951                        // keep navigation history to navigate backward (just like in angular routing)
8952                        if (getAllRestaurants) {
8953                            this.historyStack.push(this.POPOVER_TYPES.DELIVERY_TYPE);
8954                        }
8955                        else {
8956                            this.historyStack.push(this.POPOVER_TYPES.LOCATION_SELECT);
8957                        }
8958                        this.type = this.POPOVER_TYPES.RESTAURANT_SELECT.TYPE;
8959                        // always send the title as language key
8960                        this.title = this.POPOVER_TYPES.RESTAURANT_SELECT.TITLE;
8961                        // old code before 
8962                        // if (this.appService.appObject.restaurants[0].slug) this.navigateTo('menu-page', this.appService.appObject.restaurants[0]);
8963                    }
8964                    else if (!this.appService.appObject.restaurants || !this.appService.appObject.restaurants.length) {
8965                        this.appService.appObject.errors['address'] = ['selected_restaurant_cannot_delivery_to_selected_address'];
8966                        this.translate.get('key.there_is_no_' + this.appService.appObject.selectedDeliveryMethod + '_available_restaurants_at_the_moment').toPromise().then((data) => {
8967                            this.appService.showToast(data, 'danger', 'bottom', 5000);
8968                        }).catch((err) => {
8969                            console.log('error while fetching not available : ', err);
8970                        });
8971                    }
8972                }));
8973            }
8974            else if (location === 'menu-page') {
8975                if (extraData) {
8976                    // if bar mode enabled and selected order type is dine_in, then allow user to select a table before ordering
8977                    if (extraData.is_bar_mode === 'true' && this.appService.appObject.selectedDeliveryMethod === 'dine_in') {
8978                        this.handleBarModeNavigations(extraData);
8979                        // this.appService.appObject.isLoading = true;
8980                        // this.selectedRestaurantTableList = [];
8981                        // this.selectedTable = null;
8982                        // // get user unpaid orders if availabel to avoid placing orders on table else
8983                        // await this.appService.getUserUnpaidActiveOrders();
8984                        // // check if user have a pending order in kitchen, otherwise allow user to select a table and procced order
8985                        // if (this.appService.appObject.orderObject && this.appService.appObject.orderObject.selectedTable) {
8986                        //   // get unpaid order restaurant details
8987                        //   let selectedRestaurant = this.appService.appObject.restaurants.find((rest) => rest.id === this.appService.appObject.orderObject.resturent_id);
8988                        //   // if the current selected restaurant and the previously ordered restaurnt is the same, Then proceed
8989                        //   // otherwise show a message to the user that he has an pending payment order in another restaurant and redirect into that restaurant
8990                        //   if (this.appService.appObject.orderObject.resturent_id === extraData.id) {
8991                        //     this.appService.appObject.selectedRestaurantId = extraData.id;
8992                        //     await this.appService.updateAppObject();
8993                        //     this.router.navigate(['/menu', selectedRestaurant.slug]);
8994                        //     this.close();
8995                        //   } else if (this.appService.appObject.orderObject.resturent_id === selectedRestaurant.id) {
8996                        //     this.type = this.POPOVER_TYPES.TABLE_SELECT.TYPE;
8997                        //     this.title = this.POPOVER_TYPES.TABLE_SELECT.TITLE;
8998                        //     this.showPreviousPendingPaymentOrder = true;
8999                        //     this.previousRestaurant = {
9000                        //       name: selectedRestaurant.name,
9001                        //       number: this.appService.appObject.orderObject.selectedTable.number,
9002                        //       countDown: 5,
9003                        //       slug: selectedRestaurant.slug
9004                        //     };
9005                        //     // clear the history stack, no need to navigate back because user will redirect into the restaurant menu and popup will be closed
9006                        //     this.historyStack = [];
9007                        //     this.appService.appObject.isLoading = false;
9008                        //     let interval = setInterval((int) => {
9009                        //       this.previousRestaurant.countDown--;
9010                        //       // console.log('this.previousRestaurant: ' , this.previousRestaurant.count);
9011                        //       if (this.previousRestaurant.countDown === 0) {
9012                        //         clearInterval(interval);
9013                        //         this.router.navigate(['/menu', this.previousRestaurant.slug]);
9014                        //         this.close();
9015                        //       }
9016                        //     }, 1000)
9017                        //   }
9018                        // } else {
9019                        //   this.historyStack.push(this.POPOVER_TYPES.RESTAURANT_SELECT);
9020                        //   this.type = this.POPOVER_TYPES.TABLE_SELECT.TYPE;
9021                        //   this.title = this.POPOVER_TYPES.TABLE_SELECT.TITLE;
9022                        //   // keep restaurant data to navigate after selecting table
9023                        //   this.selectedRestaurant = extraData;
9024                        //   this.appService.fetchAllTablesOfRestaurant(extraData.id).then((response: any) => {
9025                        //     // console.log('table data : ' , response);
9026                        //     if (response.status) this.selectedRestaurantTableList = response.data;
9027                        //     this.appService.appObject.isLoading = false;
9028                        //   }).catch((error) => {
9029                        //     console.log('error while fetching tables : ', error);
9030                        //     this.appService.appObject.isLoading = false;
9031                        //   });
9032                        // }
9033                    }
9034                    else {
9035                        if (this.selectfavouriteRestaurant) {
9036                            this.appService.appObject.favouriteRestaurant = extraData;
9037                            yield this.appService.updateAppObject();
9038                        }
9039                        this.router.navigate(['/menu', extraData.slug], {
9040                            queryParams: {
9041                                markedAsFavourite: this.selectfavouriteRestaurant ? true : false
9042                            }
9043                        });
9044                        this.close();
9045                    }
9046                    // this.appService.getRestaurantBySlug(extraData.slug).then((response) => {
9047                    //   this.router.navigate(['/menu']);
9048                    //   this.close();
9049                    // });
9050                }
9051                else {
9052                    this.router.navigate(['/menu', this.appService.appObject.selectedRestaurant]);
9053                    this.close();
9054                }
9055            }
9056            else if (location && location.TYPE && location.TITLE) {
9057                // keep navigation history to navigate backward (just like in angular routing)
9058                // skip recording when user navigate backward with "isBackwardNavigating" condition
9059                // the second condition will prevent user go back to login form after login in to the user profile
9060                if (!isBackwardNavigating && !(location.TYPE === this.POPOVER_TYPES.USER_PROFILE.TYPE && this.type === this.POPOVER_TYPES.LOGIN.TYPE)) {
9061                    Object.keys(this.POPOVER_TYPES).map((key) => {
9062                        if (this.POPOVER_TYPES[key].TYPE === this.type) {
9063                            this.historyStack.push(this.POPOVER_TYPES[key]);
9064                        }
9065                    });
9066                }
9067                // this will prevent user go back to registration form after successfuly registered and navigate in to the user profile
9068                // or user came to login page from checkout page and redirected into checkout page after logged in (prevent go back to login ui)
9069                // or user came to checkout page from login > register , and checkout, then prevent go back to registration page
9070                // or user came to order summary from checkout page and prevent go back to checkout page from summary page
9071                // or user came to delivery address select from login page prevent go back to login page
9072                if ((location.TYPE === this.POPOVER_TYPES.USER_PROFILE.TYPE && (this.t
9072ype === this.POPOVER_TYPES.REGISTER.TYPE || this.type === this.POPOVER_TYPES.REGISTER_VIA.TYPE))
9073                    || ((this.type === this.POPOVER_TYPES.LOGIN.TYPE
9074                        || this.type === this.POPOVER_TYPES.REGISTER.TYPE
9075                        || this.type === this.POPOVER_TYPES.REGISTER_VIA.TYPE)
9076                        && location.TYPE === this.POPOVER_TYPES.CHECKOUT.TYPE)
9077                    || this.type === this.POPOVER_TYPES.CHECKOUT.TYPE && location.TYPE === this.POPOVER_TYPES.ORDER_SUMMARY.TYPE
9078                    || this.type === this.POPOVER_TYPES.LOGIN.TYPE && location.TYPE === this.POPOVER_TYPES.LOCATION_SELECT.TYPE) {
9079                    this.historyStack = [];
9080                }
9081                // get existing address from app object each time go to the address select ui or search nearby ui
9082                if (location.TYPE === this.POPOVER_TYPES.LOCATION_SELECT.TYPE || location.TYPE === this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH.TYPE) {
9083                    this.address = this.appService.appObject.myAddress && this.appService.appObject.myAddress.name ? this.appService.appObject.myAddress.name : '';
9084                }
9085                // if user navigate to location select from checkout page, keep a record that will return from location select page to checkout page any time
9086                if (this.type === this.POPOVER_TYPES.CHECKOUT.TYPE && location.TYPE === this.POPOVER_TYPES.LOCATION_SELECT.TYPE) {
9087                    // keep if there is an address already selected
9088                    if (this.appService.appObject.myAddress)
9089                        this.previousAddressData = Object.assign({}, this.appService.appObject.myAddress);
9090                    this.isFromCheckoutToLocationSelect = true;
9091                }
9092                else {
9093                    this.isFromCheckoutToLocationSelect = false;
9094                }
9095                this.type = location.TYPE;
9096                this.title = location.TITLE;
9097                // reset history stack if the current page is login, once user reset password successfuly navigate to login
9098                // login is a main page so no need to go back to password reset ui
9099                if (this.type === this.POPOVER_TYPES.LOGIN.TYPE) {
9100                    this.historyStack = [];
9101                }
9102                // if next page is for select locations to find restaurants, then initialize google map service
9103                if (location.TYPE === this.POPOVER_TYPES.LOCATION_SELECT.TYPE || location.TYPE === this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH.TYPE) {
9104                    if (!this.isPostalModeEnable) {
9105                        if (navigator.geolocation && !this.appService.appObject.isAddressHave) {
9106                            this.getCurrentLocation();
9107                        }
9108                        else if (!this.appService.appObject.myAddress || !this.appService.appObject.myAddress.name) {
9109                            this.address = '';
9110                        }
9111                        setTimeout(() => {
9112                            this.appService.initGoogle(this.googleaddress);
9113                        }, 1000);
9114                    }
9115                    else {
9116                        // set if already has selected postal area in app object
9117                        if (this.appService.appObject.postalCodeDetails) {
9118                            this.selectedArea = this.appService.appObject.postalCodeDetails;
9119                            this.selected_postal = this.selectedArea.code + ' - ' + this.selectedArea.name;
9120                        }
9121                    }
9122                }
9123            }
9124        });
9125    }
9126    /**
9127     * Clear selected postal data
9128     */
9129    clearPostalArea() {
9130        this.selectedArea = null;
9131        this.selected_postal = '';
9132        this.appService.appObject.postalCodeDetails = null;
9133        this.appService.updateAppObject();
9134    }
9135    getCurrentLocation() {
9136        this.appService.appObject.isLoading = true;
9137        navigator.geolocation.getCurrentPosition((position) => {
9138            const longitude = position.coords.longitude;
9139            const latitude = position.coords.latitude;
9140            this.httpClient.get("https://maps.googleapis.com/maps/api/geocode/json?latlng=" + latitude + "," + longitude + "&sensor=true&key=" + config.gkey).toPromise().then((response) => {
9141                // console.log('response : ', response)
9142                if (response.status === 'OK') {
9143                    let place = null;
9144                    let isAddressValid = false;
9145                    for (let i = 0; i < response.results.length; i++) {
9146                        let validateResult = this.appService.validateAddressComponents(response.results[i].address_components);
9147                        // if place is null, then assign one place object to get formatted address
9148                        place = !place ? response.results[i] : place;
9149                        if (this.appService.isAddressComponentValid(validateResult)) {
9150                            isAddressValid = true;
9151                            place = response.results[i];
9152                            break;
9153                        }
9154                    }
9155                    // console.log('addressValidating : ' , addressValidating);
9156                    if (isAddressValid && place) {
9157                        // console.log('place : ' , place);
9158                        let postal, city, road = '';
9159                        this.address = '';
9160                        for (let i = 0; i < place['address_components'].length; i++) {
9161                            let result = place['address_components'][i];
9162                            if (result['types'][0] == "postal_code") {
9163                                postal = result['short_name'];
9164                            }
9165                            if (result['types'][0] == "locality") {
9166                                city = result['short_name'];
9167                            }
9168                            if (result['types'][0] == "route") {
9169                                road = result['short_name'];
9170                            }
9171                            if (postal && city && road) {
9172                                this.address = road + ', ' + postal + ', ' + city;
9173                            }
9174                        }
9175                        this.appService.appObject.isAddressHave = true;
9176                        // let address_splited = place.formatted_address.split(',');
9177                        // this.address = place.formatted_address;
9178                        // let country = address_splited[address_splited.length - 1];
9179                        // if (country.trim() === 'Germany') {
9180                        //   this.address = this.address.replace(", Germany", "");
9181                        // }
9182                        this.appService.appObject.myAddress.name = this.address;
9183                        // console.log(this.appService.appObject.myAddress.name);
9184                        this.appService.appObject.myAddress.lat = place.geometry.location.lat;
9185                        this.appService.appObject.myAddress.lng = place.geometry.location.lng;
9186                        this.appService.updateAppObject();
9187                        this.appService.appObject.errors = [];
9188                    }
9189                    else {
9190                        this.address = place.formatted_address;
9191                        this.appService.appObject.isAddressHave = false;
9192                        this.appService.appObject.myAddress.name = '';
9193                        this.appService.appObject.myAddress.lat = '';
9194                        this.appService.appObject.myAddress.lng = '';
9195                        this.appService.updateAppObject();
9196                        this.appService.appObject.errors['address'] = ['address_is_not_valid'];
9197                    }
9198                }
9199                this.appService.appObject.isLoading = false;
9200            }).catch((error) => {
9201                console.log('google location error : ', error);
9202                this.appService.appObject.isLoading = false;
9203            });
9204        }, (error) => {
9205            this.appService.appObject.isLoading = false;
9206            if (error && error.code == error.PERMISSION_DENIED) {
9207                this.translate.get(['key.please_allow_location_permission_to_get_your_current_location']).toPromise().then((response) => {
9208                    this.appService.showToast(response['key.please_allow_location_permission_to_get_your_current_location'] ? response['key.please_allow_location_permission_to_get_your_current_location'] : 'key.please_allow_location_permission_to_get_your_current_location');
9209                }).catch((error) => {
9210                    console.log('error : ', error);
9211                    this.appService.showToast('key.please_allow_location_permission_to_get_your_current_location');
9212                });
9213            }
9214        });
9215    }
9216    /**
9217     * This will pass as a callback into login component to trigger once user logged in
9218     * This also used to pass into registration component as a call back to get trigger once user successfuly registered and logged in
9219     * and return login operation response data set
9220     * @param loginResponse after login response object
9221     */
9222    onLoginSuccess(loginResponse) {
9223        var _a, _b;
9224        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9225            yield this.appService.updateAppObject();
9226            if (this.appService.appObject.isOrderProcess) {
9227                if (this.appService.appObject.selectedDeliveryMethod === 'delivery' && this.appService.appObject.settings.is_postalcode === 'true' && (!this.appService.appObject.postalCodeDetails || !this.appService.appObject.postalCodeDetails.code)) {
9228                    this.navigateTo(this.POPOVER_TYPES.LOCATION_SELECT);
9229                    return;
9230                }
9231                if (((_b = (_a = this.appService) === null || _a === void 0 ? void 0 : _a.appObject) === null || _b === void 0 ? void 0 : _b.selectedDeliveryMethod) === 'delivery' && (!this.appService.appObject.myAddress || !this.appService.appObject.myAddress.name
9232                    || !this.appService.appObject.myAddress.lat || !this.appService.appObject.myAddress.lng)) {
9233                    // this.justSelectDeliveryAddress = true;
9234                    if (!this.isPostalModeEnable)
9235                        this.navigateTo(this.POPOVER_TYPES.LOCATION_SELECT);
9236                    // if postal code mode is on, then redirect strait into checkout page
9237                    else
9238                        this.navigateTo(this.POPOVER_TYPES.CHECKOUT);
9239                }
9240                else {
9241                    // if user came to login page from checkout ui, then redirect into checkout page
9242                    this.navigateTo(this.POPOVER_TYPES.CHECKOUT);
9243                }
9244                // make it false once user redirected to the checkout page
9245                this.appService.appObject.isOrderProcess = false;
9246            }
9247            else {
9248                this.navigateTo(this.POPOVER_TYPES.USER_PROFILE);
9249            }
9250        });
9251    }
9252    /**
9253     * Wll call back when user select create an account option from login page
9254     */
9255    onRegisterVia() {
9256        this.navigateTo(this.POPOVER_TYPES.REGISTER_VIA);
9257    }
9258    /**
9259     * This will call back when user select register with email option in register page
9260     */
9261    onRegisterViaEmail() {
9262        this.navigateTo(this.POPOVER_TYPES.REGISTER);
9263    }
9264    /**
9265     * This will call back when user choose forgot password option in login page
9266     */
9267    onForgotPassword() {
9268        this.navigateTo(this.POPOVER_TYPES.FORGOT_PASSWORD);
9269    }
9270    /**
9271     * This will call back when user reset password successfuly
9272     */
9273    onPasswordResetSuccess() {
9274        this.navigateTo(this.POPOVER_TYPES.LOGIN);
9275    }
9276    /**
9277     * This will navigate into dynamic pages slug is required
9278     * used for pnp and tnc
9279     * @param slug page slug
9280     */
9281    onNavigatePages(slug) {
9282        let pages = this.appService && this.appService.appObject && this.appService.appObject.settings && this.appService.appObject.settings.pages ? this.appService.appObject.settings.pages : [];
9283        let page = pages.find((page) => page.slug === slug);
9284        if (page) {
9285            this.slug = page.slug;
9286            this.navigateTo({ TYPE: this.POPOVER_TYPES.PAGES.TYPE, TITLE: page.name });
9287        }
9288    }
9289    /**
9290     * On user change the delivery address from checkout page
9291     */
9292    onChangeDeliveryAddress() {
9293        this.navigateTo(this.POPOVER_TYPES.LOCATION_SELECT);
9294    }
9295    /**
9296     * Will trigger when user checkout as a guest user
9297     * @param paymentId payment id of the placed order
9298     */
9299    onOrderPlaced(paymentId, deliveryType) {
9300        if (paymentId) {
9301            this.uniqueId = paymentId;
9302            this.navigateTo({ TYPE: this.POPOVER_TYPES.ORDER_SUMMARY.TYPE, TITLE: 'key.' + deliveryType });
9303        }
9304    }
9305    /**
9306     * Will trigger when user select ordering type
9307     * @param orderType selected ordering type
9308     */
9309    selectOrderType(orderType) {
9310        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9311            let selectedRestaurant = this.appService.appObject.selectedRestaurantDetails;
9312            if (this.origin === 'web-menu' && orderType === 'dine_in') {
9313                if (selectedRestaurant.is_bar_mode === 'true') {
9314                    this.appService.appObject.isLoading = true;
9315                    yield this.appService.getUserUnpaidActiveOrders();
9316                }
9317            }
9318            else if (this.appService.appObject.selectedDeliveryMethod === 'dine_in' && selectedRestaurant.is_bar_mode === 'true') {
9319                this.appService.clearCart();
9320            }
9321            this.appService.appObject.selectedDeliveryMethod = orderType;
9322            this.appService.updateAppObject();
9323            if (!this.selectedBranch)
9324                yield this.appService.calculateCartAmounts();
9325            this.appService.appObject.isLoading = false;
9326            // this moved from html template page
9327            if (this.type === this.POPOVER_TYPES.ORDERING_TYPE.TYPE)
9328                this.close();
9329        });
9330    }
9331    /**
9332     * Will trigger when user go to question page opening after adding item into cart
9333     * @param categoryData selected category data
9334     */
9335    openQuestionDishPage(categoryData) {
9336        if (categoryData)
9337            this.selectedQuestionCategory = categoryData;
9338    }
9339    /**
9340     * Will trigger when user click back button from cross selling dishes list page
9341     */
9342    navigateBackwardFromQuestionPage() {
9343        this.selectedQuestionCategory = null;
9344        this.crossSelling.navigateBackInWebVersion();
9345    }
9346    /**
9347     * Will trigger when user successfully created a reservation
9348     * @param response response from table reservation form
9349     */
9350    onReservationSuccess(response) {
9351        if (response) {
9352            this.reservationSuccess = response;
9353            this.title = 'key.reservation_request_submitted';
9354            // change the hight of the popup container to get nicer look of the success message
9355            let element = document.getElementsByClassName('modal-wrapper');
9356            // console.log('element : ', element);
9357            if (element && element[0]) {
9358                element[0].classList.add('height-300-px');
9359            }
9360        }
9361    }
9362    /**
9363     * location select page action button
9364     */
9365    addressSelectAction() {
9366        if (this.isFromCheckoutToLocationSelect || this.justSelectDeliveryAddress || this.isFavouriteRestaurantDeliverySearch) {
9367            this.addressInputChanged = false;
9368            this.appService.findNearByRestaurants('do-not-redirect', false).then((response) => (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9369                if (this.isFromCheckoutToLocationSelect || this.justSelectDeliveryAddress) {
9370                    let selectedBranch = this.appService.appObject.restaurants.find((restaurant) => restaurant.id === this.appService.appObject.selectedRestaurantDetails.id);
9371                    if (selectedBranch) {
9372                        // this.address
9373                        yield this.appService.getRestaurantBySlug(selectedBranch.slug);
9374                        yield this.appService.calculateCartAmounts();
9375                        if (!this.justSelectDeliveryAddress && this.isFromCheckoutToLocationSelect)
9376                            this.navigateBackward();
9377                        else
9378                            this.close();
9379                    }
9380                    else {
9381                        this.appService.clearAddress('selected_restaurant_cannot_delivery_to_selected_address');
9382                    }
9383                }
9384                else if (this.isFavouriteRestaurantDeliverySearch) { // when user from selected favourite restaurant delivery type select
9385                    let favouriteBranch = this.appService.appObject.restaurants.find((restaurant) => restaurant.id === this.appService.appObject.favouriteRestaurant.id);
9386                    if (favouriteBranch) {
9387                        this.router.navigate(['menu', this.appService.appObject.favouriteRestaurant.slug]);
9388                        this.close();
9389                    }
9390                    else {
9391                        this.appService.clearAddress('your_favourite_restaurant_cannot_delivery_to_selected_address');
9392                    }
9393                }
9394            })).catch((error) => {
9395                console.log('error : ', error);
9396            });
9397        }
9398        else {
9399            this.navigateTo('restaurant-list');
9400        }
9401    }
9402    /**
9403     * Will trigger when user select a table from table list
9404     * @param selectedTable selected table object
9405     */
9406    onSelectTable(selectedTable) {
9407        // console.log('selectedTable : ', selectedTable);
9408        this.selectedTable = Object.assign({}, selectedTable);
9409        // console.log('justToSelectATable : ' , );
9410        this.appService.appObject.orderObject.selectedTable = this.selectedTable;
9411        if (this.justToSelectATable) {
9412            this.close({ status: true });
9413        }
9414        if (this.selectedRestaurant && this.selectedRestaurant.slug) {
9415            this.appService.updateAppObject();
9416            this.router.navigate(['/menu', this.selectedRestaurant.slug]);
9417            this.close();
9418        }
9419    }
9420    /**
9421     * This function will handle when bar mode is enabled and user select dine_in as ordering option
9422     * @param extraData currently selected restaurant data
9423     */
9424    handleBarModeNavigations(extraData) {
9425        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9426            this.appService.appObject.isLoading = true;
9427            this.selectedRestaurantTableList = [];
9428            this.selectedTable = null;
9429            // get user unpaid orders if availabel to avoid placing orders on table else
9430            yield this.appService.getUserUnpaidActiveOrders();
9431            // check if user have a pending order in kitchen, otherwise allow user to select a table and procced order
9432            if (this.appService.appObject.orderObject && this.appService.appObject.orderObject.selectedTable) {
9433                // get unpaid order restaurant details
9434                let selectedRestaurant = this.appService.appObject.restaurants.find((rest) => rest.id === this.appService.appObject.orderObject.resturent_id);
9435                // if the current selected restaurant and the previously ordered restaurnt is the same, Then proceed
9436                // otherwise show a message to the user that he has an pending payment order in another restaurant and redirect into that restaurant
9437                if (this.appService.appObject.orderObject.resturent_id === extraData.id) {
9438                    this.appService.appObject.selectedRestaurantId = extraData.id;
9439                    yield this.appService.updateAppObject();
9440                    this.router.navigate(['/menu', selectedRestaurant.slug]);
9441                    this.close();
9442                }
9443                else if (this.appService.appObject.orderObject.resturent_id === selectedRestaurant.id) {
9444                    this.type = this.POPOVER_TYPES.TABLE_SELECT.TYPE;
9445                    this.title = this.POPOVER_TYPES.TABLE_SELECT.TIT
9445LE;
9446                    this.showPreviousPendingPaymentOrder = true;
9447                    this.previousRestaurant = {
9448                        name: selectedRestaurant.name,
9449                        number: this.appService.appObject.orderObject.selectedTable.number,
9450                        countDown: 5,
9451                        slug: selectedRestaurant.slug
9452                    };
9453                    // clear the history stack, no need to navigate back because user will redirect into the restaurant menu and popup will be closed
9454                    this.historyStack = [];
9455                    this.appService.appObject.isLoading = false;
9456                    let interval = setInterval((int) => {
9457                        this.previousRestaurant.countDown--;
9458                        // console.log('this.previousRestaurant: ' , this.previousRestaurant.count);
9459                        if (this.previousRestaurant.countDown === 0) {
9460                            clearInterval(interval);
9461                            this.router.navigate(['/menu', this.previousRestaurant.slug]);
9462                            this.close();
9463                        }
9464                    }, 1000);
9465                }
9466            }
9467            else {
9468                this.historyStack.push(this.POPOVER_TYPES.RESTAURANT_SELECT);
9469                this.type = this.POPOVER_TYPES.TABLE_SELECT.TYPE;
9470                this.title = this.POPOVER_TYPES.TABLE_SELECT.TITLE;
9471                // keep restaurant data to navigate after selecting table
9472                this.selectedRestaurant = extraData;
9473                this.appService.fetchAllTablesOfRestaurant(extraData.id).then((response) => {
9474                    // console.log('table data : ' , response);
9475                    if (response.status)
9476                        this.selectedRestaurantTableList = response.data;
9477                    this.appService.appObject.isLoading = false;
9478                }).catch((error) => {
9479                    console.log('error while fetching tables : ', error);
9480                    this.appService.appObject.isLoading = false;
9481                });
9482            }
9483        });
9484    }
9485    /**
9486     * Related to the point system, if user decide to go back and login to account for purchase rewards, this function will call
9487     */
9488    onBackLoginFromCheckout() {
9489        this.historyStack = [];
9490        this.isOrderProcessing = true;
9491        this.type = this.POPOVER_TYPES.LOGIN.TYPE;
9492        this.title = this.POPOVER_TYPES.LOGIN.TITLE;
9493    }
9494    /**
9495     * Mark selected restaurant as favourite
9496     * @param restaurant selected restaurant object
9497     */
9498    markRestaurantAsFavourite(restaurant) {
9499        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9500            this.appService.appObject.favouriteRestaurant = restaurant;
9501            yield this.appService.updateAppObject();
9502            this.modalCtr.dismiss();
9503            const modal = yield this.modalCtr.create({
9504                component: ModalPopoverPage_1,
9505                cssClass: 'custom-popup',
9506                componentProps: {
9507                    'type': this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECTED.TYPE,
9508                    'title': this.POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECTED.TITLE
9509                },
9510                keyboardClose: false
9511            });
9512            setTimeout(() => (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9513                yield modal.present();
9514            }), 1000);
9515        });
9516    }
9517    /**
9518     * When user select delivery type from favourite restaurant
9519     * @param option selected option
9520     */
9521    onFavoriteModeDeliveryMethodSelect(option) {
9522        this.appService.appObject.selectedDeliveryMethod = option;
9523        this.appService.updateAppObject();
9524        if (option === 'delivery') {
9525            this.isFavouriteRestaurantDeliverySearch = true;
9526            this.navigateTo(this.POPOVER_TYPES.LOCATION_SELECT);
9527        }
9528        else {
9529            this.close();
9530            this.router.navigate(['menu', this.appService.appObject.favouriteRestaurant.slug]);
9531        }
9532        // if (this.appService.appObject.favouriteRestaurant.is_bar_mode === 'true' && this.appService.appObject.selectedDeliveryMethod === 'dine_in') {
9533        //   this.handleBarModeNavigations(this.appService.appObject.favouriteRestaurant);
9534        // }else{
9535        //   this.close();
9536        //   this.router.navigate(['menu',this.appService.appObject.favouriteRestaurant.slug]);
9537        // } 
9538    }
9539    /**
9540     * get postal code list
9541     */
9542    getPostalCodeList() {
9543        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9544            this.postalCodeRestaurantList = [];
9545            this.postalCodeList = [];
9546            this.selectedArea = null;
9547            // this.appService.getAllRestaurants().then((response: any) => {
9548            //   if (response.status) {
9549            //     this.postalCodeRestaurantList = response.data.filter((restaurant) => restaurant.is_postalcode === 'true');
9550            //     for (let index = 0; index < this.postalCodeRestaurantList.length; index++) {
9551            //       const element = this.postalCodeRestaurantList[index];
9552            //       // convert into json object 
9553            //       element.postal_code_details = element.postal_code_details ? JSON.parse(element.postal_code_details) : []
9554            //       this.postalCodeList = this.postalCodeList.concat(element.postal_code_details);
9555            //     }
9556            //     // remove duplicated postal codes
9557            //     this.postalCodeList = [...new Map(this.postalCodeList.map((m) => [m.code, m])).values()];
9558            //   }
9559            //   console.log('this.postalCodeList : ', this.postalCodeList);
9560            // }).catch((error) => {
9561            //   console.log('error : ', error);
9562            // });
9563            this.appService.getAllRestaurants().then((response) => {
9564                if (response.status) {
9565                    this.postalCodeRestaurantList = response.data.filter((restaurant) => restaurant.postal_code_details_v2);
9566                    for (let index = 0; index < this.postalCodeRestaurantList.length; index++) {
9567                        const element = this.postalCodeRestaurantList[index];
9568                        // convert into json object 
9569                        // element.postal_code_details = element.postal_code_details ? JSON.parse(element.postal_code_details) : []
9570                        element.postal_code_details = element.postal_code_details_v2;
9571                        for (let index1 = 0; index1 < element.postal_code_details.length; index1++) {
9572                            // get each postal code data and put into postalCodeList global array
9573                            // if multiple restaurants deliver to the same postal code, all prices will be available in 
9574                            // selected postal code object
9575                            const postalCodeData = element.postal_code_details[index1];
9576                            let found = this.postalCodeList.find((post) => post.code === postalCodeData.code && post.name === postalCodeData.name);
9577                            // to avoid duplicates, check by postal code and prices
9578                            if (found) {
9579                                found.price.push({ restaurantId: element.id, postalId: postalCodeData.id, cost: postalCodeData.cost, minOrderAmount: postalCodeData.min_order, time_slots: postalCodeData.time_slots });
9580                            }
9581                            else {
9582                                let postalData = {
9583                                    code: postalCodeData.code,
9584                                    name: postalCodeData.name,
9585                                    price: [{ restaurantId: element.id, postalId: postalCodeData.id, time_slots: postalCodeData.time_slots, cost: postalCodeData.cost, minOrderAmount: postalCodeData.min_order }]
9586                                };
9587                                this.postalCodeList.push(postalData);
9588                            }
9589                        }
9590                    }
9591                }
9592            }).catch((error) => {
9593                console.log('error : ', error);
9594            });
9595            this.isPostalModeEnable = this.appService.appObject.settings.is_franchise === 'true' ? false : this.appService.appObject.settings.is_postalcode == 'true' ? true : false;
9596        });
9597    }
9598    /**
9599     *
9600     * @param ev event
9601     */
9602    getPostalItems(ev) {
9603        this.appService.appObject.errors = [];
9604        const val = ev.target.value;
9605        if (val && val.trim() !== '') {
9606            this.isPostalItemAvailable = true;
9607            this.postalFilterItem = this.postalCodeList.filter((item) => item.name.toLowerCase().startsWith(val.toLowerCase()) || item.code.toLowerCase().startsWith(val.toLowerCase()));
9608            // this.postalFilterItem = this.postalFilterItem.slice(0, 2)
9609        }
9610        else {
9611            this.isPostalItemAvailable = false;
9612            this.selectedArea = null;
9613        }
9614    }
9615    /**
9616     *
9617     * @param item selected postal item
9618     */
9619    selectPostalCode(item) {
9620        this.selectedArea = item;
9621        this.selected_postal = item.code + ' - ' + item.name;
9622    }
9623    /**
9624     * postal code select and click ok btn
9625     */
9626    onPostalCodeSelect() {
9627        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9628            if (this.selectedArea == null) {
9629                this.appService.appObject.errors['postalCode'] = ['select_postal_code'];
9630                return;
9631            }
9632            this.appService.appObject.postalCodeDetails = this.selectedArea;
9633            yield this.appService.updateAppObject();
9634            // if user came to just select address area or already decide which branch to visit
9635            if (this.justSelectDeliveryAddress || this.selectedBranch) {
9636                let postalDetails = [];
9637                if (this.justSelectDeliveryAddress) {
9638                    postalDetails = this.appService.appObject.selectedRestaurantDetails.postal_code_details_v2 ? this.appService.appObject.selectedRestaurantDetails.postal_code_details_v2 : [];
9639                }
9640                else {
9641                    postalDetails = this.selectedBranch.postal_code_details_v2 ? this.selectedBranch.postal_code_details_v2 : [];
9642                }
9643                if (!Array.isArray(postalDetails))
9644                    postalDetails = JSON.parse(postalDetails);
9645                // console.log('postalDetails : ' , postalDetails);
9646                let postalData = postalDetails.find((postal) => postal.code === this.selectedArea.code && postal.name === this.selectedArea.name);
9647                if (!postalData)
9648                    this.appService.showToast(this.lang.selected_restaurent_not_delivery_area, 'danger');
9649                else {
9650                    // if branch already selected then redirect into menu page before dismiss the popup
9651                    if (this.selectedBranch)
9652                        this.router.navigate(['/menu', this.selectedBranch.slug]);
9653                    this.modalCtr.dismiss();
9654                }
9655                return;
9656            }
9657            let restaurent = this.postalCodeRestaurantList.filter((obj) => obj.postal_code_details_v2.some((postal) => postal.code == this.selectedArea.code && postal.name == this.selectedArea.name));
9658            // when user trying to checkout without login and no address area selected 
9659            // once user logged in if there is no address area selected, user will redirect to address area select ui,
9660            // then once user select area do all the validations and move to the checkout page
9661            if (this.isOrderProcessing) {
9662                let postalDetails = this.appService.appObject.selectedRestaurantDetails.postal_code_details_v2 ? this.appService.appObject.selectedRestaurantDetails.postal_code_details_v2 : [];
9663                if (!Array.isArray(postalDetails))
9664                    postalDetails = JSON.parse(postalDetails);
9665                let postalData = postalDetails.find((postal) => postal.code === this.selectedArea.code && postal.name === this.selectedArea.name);
9666                if (!postalData)
9667                    this.appService.showToast('selected restaurant won\'t delivery to selected area', 'danger');
9668                else {
9669                    this.type = this.POPOVER_TYPES.CHECKOUT.TYPE;
9670                    this.title = this.POPOVER_TYPES.CHECKOUT.TITLE;
9671                }
9672                return;
9673            }
9674            if (restaurent.length == 1) {
9675                this.appService.appObject.selectedRestaurantDetails = restaurent[0];
9676                this.appService.appObject.selectedRestaurant = restaurent[0].slug;
9677                this.router.navigate(['/menu', this.appService.appObject.selectedRestaurant]);
9678                this.modalCtr.dismiss();
9679            }
9680            else if (restaurent.length > 1) {
9681                this.appService.appObject.restaurants = restaurent;
9682                this.type = this.POPOVER_TYPES.RESTAURANT_SELECT.TYPE;
9683                this.title = this.POPOVER_TYPES.RESTAURANT_SELECT.TIT
9683LE;
9684            }
9685            else {
9686                console.log("Something wrong with modelpopOver 965");
9687            }
9688        });
9689    }
9690    /**
9691     *
9692     * get languages
9693     */
9694    getLang() {
9695        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9696            yield this.translate.get('key').subscribe(value => {
9697                this.lang = value;
9698            });
9699        });
9700    }
9701    closeUnavailableNote() {
9702        return (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__awaiter)(this, void 0, void 0, function* () {
9703            (yield this.modalCtr.getTop()).dismiss();
9704        });
9705    }
9706};
9707ModalPopoverPage.ctorParameters = () => [
9708    { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__.ModalController },
9709    { type: _api_app_service_service__WEBPACK_IMPORTED_MODULE_2__.AppServiceService },
9710    { type: _angular_router__WEBPACK_IMPORTED_MODULE_6__.Router },
9711    { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_7__.HttpClient },
9712    { type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_8__.DomSanitizer },
9713    { type: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__.TranslateService }
9714];
9715ModalPopoverPage.propDecorators = {
9716    googleaddress: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, args: ['googleaddressweb', { read: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__.IonInput },] }],
9717    crossSelling: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.ViewChild, args: ['crossSelling',] }],
9718    name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9719    type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9720    title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9721    slug: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9722    isOrderProcessing: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9723    dishImageURL: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9724    crossSellingProducts: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9725    selectedDishCategory: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9726    isFromCrossSelling: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9727    justSelectDeliveryAddress: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9728    htmlContent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9729    uniqueId: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9730    selectedBranch: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9731    selectedRestaurantTableList: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9732    justToSelectATable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9733    origin: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9734    selectfavouriteRestaurant: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9735    justSelectOrderType: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }],
9736    fromFavouriteIcon: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_10__.Input }]
9737};
9738ModalPopoverPage = ModalPopoverPage_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([
9739    (0,_angular_core__WEBPACK_IMPORTED_MODULE_10__.Component)({
9740        selector: 'app-modal-popover',
9741        template: _raw_loader_modal_popover_page_html__WEBPACK_IMPORTED_MODULE_0__.default,
9742        styles: [_modal_popover_page_scss__WEBPACK_IMPORTED_MODULE_1__.default]
9743    })
9744], ModalPopoverPage);
9745
9746
9747
9748/***/ }),
9749
9750/***/ 92340:
9751/*!*****************************************!*\
9752  !*** ./src/environments/environment.ts ***!
9753  \*****************************************/
9754/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9755
9756"use strict";
9757__webpack_require__.r(__webpack_exports__);
9758/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9759/* harmony export */   "environment": function() { return /* binding */ environment; }
9760/* harmony export */ });
9761// This file can be replaced during build by using the `fileReplacements` array.
9762// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
9763// The list of file replacements can be found in `angular.json`.
9764const environment = {
9765    production: false,
9766    API_URL: 'https://api.toi-euskirchen.de/api/',
9767    BASE_URL: 'https://api.toi-euskirchen.de',
9768    DEFAULT_LANG: 'de',
9769    APP_VERSION: '4.1.2',
9770    GOOGLE_COUNTRIES: ["de"],
9771    GOOGLE_LOGIN_WEB_CLIENT_ID: '65878389371-fevipp0727iamaaimgfrtqtbo20hcnhv0.apps.googleusercontent.com',
9772    FACEBOOK_LOGIN_APP_ID: '10322122325652334',
9773    // theme configuration
9774    DEFAULT_PRIMARY_COLOR: '#cc1fb5',
9775    DEFAULT_PRIMARY_TEXT_COLOR: '#cc8a1f',
9776    // LAST_MADE_CHANGE:'4.1.0 : Support features implemented for new vacation mode + Maintenance mode'
9777    LAST_MADE_CHANGE: '4.1.2 : Display loading spinner while loading restaurants list in postal code select section'
9778};
9779/*
9780 * For easier debugging in development mode, you can import the following file
9781 * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
9782 *
9783 * This import should be commented out in production mode because it will have a negative impact
9784 * on performance if an error is thrown.
9785 */
9786// import 'zone.js/dist/zone-error';  // Included with Angular CLI.
9787
9788
9789/***/ }),
9790
9791/***/ 14431:
9792/*!*********************!*\
9793  !*** ./src/main.ts ***!
9794  \*********************/
9795/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9796
9797"use strict";
9798__webpack_require__.r(__webpack_exports__);
9799/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 37716);
9800/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ 24608);
9801/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app/app.module */ 36747);
9802/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./environments/environment */ 92340);
9803
9804
9805
9806
9807if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.production) {
9808    (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.enableProdMode)();
9809}
9810(0,_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_3__.platformBrowserDynamic)().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_0__.AppModule)
9811    .catch(err => console.log(err));
9812
9813
9814/***/ }),
9815
9816/***/ 50863:
9817/*!******************************************************************************************************************************************!*\
9818  !*** ./node_modules/@ionic/core/dist/esm/ lazy ^\.\/.*\.entry\.js$ include: \.entry\.js$ exclude: \.system\.entry\.js$ namespace object ***!
9819  \******************************************************************************************************************************************/
9820/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9821
9822var map = {
9823	"./ion-action-sheet.entry.js": [
9824		47321,
9825		"common",
9826		"node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js"
9827	],
9828	"./ion-alert.entry.js": [
9829		36108,
9830		"common",
9831		"node_modules_ionic_core_dist_esm_ion-alert_entry_js"
9832	],
9833	"./ion-app_8.entry.js": [
9834		31489,
9835		"common",
9836		"node_modules_ionic_core_dist_esm_ion-app_8_entry_js"
9837	],
9838	"./ion-avatar_3.entry.js": [
9839		10305,
9840		"common",
9841		"node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js"
9842	],
9843	"./ion-back-button.entry.js": [
9844		15830,
9845		"common",
9846		"node_modules_ionic_core_dist_esm_ion-back-button_entry_js"
9847	],
9848	"./ion-backdrop.entry.js": [
9849		37757,
9850		"node_modules_ionic_core_dist_esm_ion-backdrop_entry_js"
9851	],
9852	"./ion-button_2.entry.js": [
9853		30392,
9854		"common",
9855		"node_modules_ionic_core_dist_esm_ion-button_2_entry_js"
9856	],
9857	"./ion-card_5.entry.js": [
9858		66911,
9859		"common",
9860		"node_modules_ionic_core_dist_esm_ion-card_5_entry_js"
9861	],
9862	"./ion-checkbox.entry.js": [
9863		30937,
9864		"common",
9865		"node_modules_ionic_core_dist_esm_ion-checkbox_entry_js"
9866	],
9867	"./ion-chip.entry.js": [
9868		78695,
9869		"common",
9870		"node_modules_ionic_core_dist_esm_ion-chip_entry_js"
9871	],
9872	"./ion-col_3.entry.js": [
9873		16034,
9874		"node_modules_ionic_core_dist_esm_ion-col_3_entry_js"
9875	],
9876	"./ion-datetime_3.entry.js": [
9877		68837,
9878		"common",
9879		"node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js"
9880	],
9881	"./ion-fab_3.entry.js": [
9882		34195,
9883		"common",
9884		"node_modules_ionic_core_dist_esm_ion-fab_3_entry_js"
9885	],
9886	"./ion-img.entry.js": [
9887		41709,
9888		"node_modules_ionic_core_dist_esm_ion-img_entry_js"
9889	],
9890	"./ion-infinite-scroll_2.entry.js": [
9891		33087,
9892		"node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js"
9893	],
9894	"./ion-input.entry.js": [
9895		84513,
9896		"common",
9897		"node_modules_ionic_core_dist_esm_ion-input_entry_js"
9898	],
9899	"./ion-item-option_3.entry.js": [
9900		58056,
9901		"common",
9902		"node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js"
9903	],
9904	"./ion-item_8.entry.js": [
9905		10862,
9906		"common",
9907		"node_modules_ionic_core_dist_esm_ion-item_8_entry_js"
9908	],
9909	"./ion-loading.entry.js": [
9910		7509,
9911		"common",
9912		"node_modules_ionic_core_dist_esm_ion-loading_entry_js"
9913	],
9914	"./ion-menu_3.entry.js": [
9915		76272,
9916		"common",
9917		"node_modules_ionic_core_dist_esm_ion-menu_3_entry_js"
9918	],
9919	"./ion-modal.entry.js": [
9920		71855,
9921		"common",
9922		"node_modules_ionic_core_dist_esm_ion-modal_entry_js"
9923	],
9924	"./ion-nav_2.entry.js": [
9925		38708,
9926		"common",
9927		"node_modules_ionic_core_dist_esm_ion-nav_2_entry_js"
9928	],
9929	"./ion-popover.entry.js": [
9930		23527,
9931		"common",
9932		"node_modules_ionic_core_dist_esm_ion-popover_entry_js"
9933	],
9934	"./ion-progress-bar.entry.js": [
9935		24694,
9936		"common",
9937		"node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js"
9938	],
9939	"./ion-radio_2.entry.js": [
9940		19222,
9941		"common",
9942		"node_modules_ionic_core_dist_esm_ion-radio_2_entry_js"
9943	],
9944	"./ion-range.entry.js": [
9945		25277,
9946		"common",
9947		"node_modules_ionic_core_dist_esm_ion-range_entry_js"
9948	],
9949	"./ion-refresher_2.entry.js": [
9950		39921,
9951		"common",
9952		"node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js"
9953	],
9954	"./ion-reorder_2.entry.js": [
9955		83122,
9956		"common",
9957		"node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js"
9958	],
9959	"./ion-ripple-effect.entry.js": [
9960		51602,
9961		"node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js"
9962	],
9963	"./ion-route_4.entry.js": [
9964		45174,
9965		"common",
9966		"node_modules_ionic_core_dist_esm_ion-route_4_entry_js"
9967	],
9968	"./ion-searchbar.entry.js": [
9969		7895,
9970		"common",
9971		"node_modules_ionic_core_dist_esm_ion-searchbar_entry_js"
9972	],
9973	"./ion-segment_2.entry.js": [
9974		76164,
9975		"common",
9976		"node_modules_ionic_core_dist_esm_ion-segment_2_entry_js"
9977	],
9978	"./ion-select_3.entry.js": [
9979		20592,
9980		"common",
9981		"node_modules_ionic_core_dist_esm_ion-select_3_entry_js"
9982	],
9983	"./ion-slide_2.entry.js": [
9984		27162,
9985		"node_modules_ionic_core_dist_esm_ion-slide_2_entry_js"
9986	],
9987	"./ion-spinner.entry.js": [
9988		81374,
9989		"common",
9990		"node_modules_ionic_core_dist_esm_ion-spinner_entry_js"
9991	],
9992	"./ion-split-pane.entry.js": [
9993		97896,
9994		"node_modules_ionic_core_dist_esm_ion-split-pane_entry_js"
9995	],
9996	"./ion-tab-bar_2.entry.js": [
9997		25043,
9998		"common",
9999		"node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js"
10000	],
10001	"./ion-tab_2.entry.js": [
10002		77802,
10003		"common",
10004		"node_modules_ionic_core_dist_esm_ion-tab_2_entry_js"
10005	],
10006	"./ion-text.entry.js": [
10007		29072,
10008		"common",
10009		"node_modules_ionic_core_dist_esm_ion-text_entry_js"
10010	],
10011	"./ion-textarea.entry.js": [
10012		32191,
10013		"common",
10014		"node_modules_ionic_core_dist_esm_ion-textarea_entry_js"
10015	],
10016	"./ion-toast.entry.js": [
10017		40801,
10018		"common",
10019		"node_modules_ionic_core_dist_esm_ion-toast_entry_js"
10020	],
10021	"./ion-toggle.entry.js": [
10022		67110,
10023		"common",
10024		"node_modules_ionic_core_dist_esm_ion-toggle_entry_js"
10025	],
10026	"./ion-virtual-scroll.entry.js": [
10027		10431,
10028		"node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js"
10029	]
10030};
10031function webpackAsyncContext(req) {
10032	if(!__webpack_require__.o(map, req)) {
10033		return Promise.resolve().then(function() {
10034			var e = new Error("Cannot find module '" + req + "'");
10035			e.code = 'MODULE_NOT_FOUND';
10036			throw e;
10037		});
10038	}
10039
10040	var ids = map[req], id = ids[0];
10041	return Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {
10042		return __webpack_require__(id);
10043	});
10044}
10045webpackAsyncContext.keys = function() { return Object.keys(map); };
10046webpackAsyncContext.id = 50863;
10047module.exports = webpackAsyncContext;
10048
10049/***/ }),
10050
10051/***/ 43069:
10052/*!************************************!*\
10053  !*** ./src/app/app.component.scss ***!
10054  \************************************/
10055/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10056
10057"use strict";
10058__webpack_require__.r(__webpack_exports__);
10059/* harmony default export */ __webpack_exports__["default"] = ("ion-tabs,\nion-tab-bar,\nion-tab-button {\n  contain: none;\n}\n\n.home-tab {\n  height: 130px;\n  margin-top: -50px;\n  background: transparent;\n}\n\nion-tab-bar {\n  height: 84px;\n}\n\nion-icon {\n  font-size: 25px;\n}\n\nion-label {\n  color: var(--ion-color-custom-black);\n  font-size: 11px;\n  font-weight: bold;\n  margin-top: 10px;\n}\n\n/*menu*/\n\n.mt50 {\n  margin-top: 50px;\n}\n\n.background {\n  background-image: url(\"/assets/img/menubg.jpg\");\n  padding-top: 50px;\n}\n\n.menu-list ion-icon {\n  color: var(--ion-color-custom-fou-red);\n  font-size: 20px;\n  padding-left: 5px;\n  margin-bottom: -5px;\n}\n\n.menu-list ion-item {\n  --border: 0;\n  --inner-border-width: 0;\n  --font-size: 12px;\n}\n\n.menu-list .item:first-child {\n  margin-top: 50px;\n}\n\n.menu-list .menu-item-text {\n  font-size: 15px;\n  margin-left: 10px;\n  color: var(--ion-color-custom-fou-red);\n  font-family: exo;\n  font-weight: 600;\n  margin-top: -5px;\n}\n\n.menu-item {\n  font-size: 12px;\n  display: block;\n  width: 100%;\n  margin-bottom: 25px;\n  position: relative;\n  z-index: 99;\n  text-transform: uppercase;\n}\n\n.item-inner {\n  --border: 0;\n}\n\n.zindex {\n  position: relative;\n  z-index: 99;\n}\n\n.transparent {\n  background-color: var(--ion-color-custom-black);\n}\n\n.transparent .item-native {\n  background-color: var(--ion-color-custom-red);\n}\n\n#background-content {\n  background-color: transparent;\n}
10059\n\nion-content {\n  --background: var(--side-menu-bakcground);\n}\n\n.menu-footer {\n  position: absolute;\n  width: 100%;\n  /*padding: 0 10px; in case ayya request */\n  bottom: 0px;\n}\n\n.menu-footer img {\n  width: 100%;\n}\n\n.close-btn {\n  text-align: right;\n  font-size: 28px;\n  color: var(--ion-color-custom-fou-red);\n  position: absolute;\n  right: 5px;\n  z-index: 100;\n}\n\n.lang-con {\n  width: 22px;\n  height: 15px;\n  display: inline-block;\n  background-size: cover;\n  background-position: center;\n  margin-right: 10px;\n  margin-bottom: -2px;\n  border-radius: 3px;\n}\n\n.lang-con.de {\n  background-image: url(\"/assets/img/languages/de.png\");\n}\n\n.lang-con.en {\n  background-image: url(\"/assets/img/languages/en.png\");\n}\n\n.loading-center-full {\n  display: block;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%) scale(0.9);\n  z-index: 2;\n}\n\n.full-loading-wrapper .backdrop {\n  opacity: 0.5;\n  width: 100%;\n  height: 100%;\n  background-color: var(--ion-color-custom-black);\n  position: absolute;\n}\n\n.footer-menu-gm {\n  bottom: 0px;\n  position: fixed;\n  width: 100%;\n  color: var(--ion-color-white);\n  background-color: var(--ion-color-custom-footer);\n}\n\n.footer-menu-gm button {\n  background-color: transparent;\n  width: 33%;\n  padding: 10px 0px;\n}\n\n.footer-menu-gm button ion-icon {\n  width: 100%;\n  color: var(--ion-color-white);\n}\n\n.footer-menu-gm button ion-label {\n  color: var(--ion-color-white);\n}\n\n.fotter_hei {\n  height: 85px;\n}\n\n.cookies-banner {\n  width: 100%;\n  position: fixed;\n  background: var(--cookie-banner-background);\n  color: var(--cookie-banner-text);\n  bottom: 0;\n  display: flex;\n}\n\n.cookies-banner p {\n  display: block;\n  flex: 1 1 auto;\n  max-width: 100%;\n  margin: 12px;\n  margin-right: 1em;\n  margin-left: 1em;\n}\n\n.cookies-banner p .tnc,\n.cookies-banner p .privacy-policy {\n  text-decoration: underline;\n}\n\n.cookies-banner p .tnc:hover,\n.cookies-banner p .privacy-policy:hover {\n  cursor: pointer;\n}\n\n.cookies-banner .cookie-banner-buttons {\n  display: flex;\n  align-items: center;\n  align-content: space-between;\n}\n\n.cookies-banner .cookie-banner-buttons .banner-buttons {\n  display: block;\n  padding: 10px;\n  font-size: 0.9em;\n  font-weight: 700;\n  border-width: 2px;\n  border-style: solid;\n  text-align: center;\n  white-space: nowrap;\n  height: 100%;\n}\n\n.cookies-banner .cookie-banner-buttons .dismiss {\n  background-color: transparent !important;\n  border-color: transparent;\n  color: var(--cookie-banner-dismiss-text);\n}\n\n.cookies-banner .cookie-banner-buttons .dismiss:hover {\n  text-decoration: underline !important;\n  cursor: pointer;\n}\n\n.cookies-banner .cookie-banner-buttons .got-it {\n  color: var(--cookie-banner-accept-btn-text) !important;\n  border-color: transparent !important;\n  background-color: var(--cookie-banner-accept-btn-background);\n}\n\n.cookies-banner .cookie-banner-buttons .got-it:hover {\n  text-decoration: underline !important;\n  cursor: pointer;\n  background-color: var(--cookie-banner-accept-btn-background-hover);\n}\n\n.main-outlet-content {\n  height: calc(100% - 85px) !important;\n}\n\n.no-internet {\n  z-index: 1;\n  text-align: center;\n  height: 100%;\n  background: white;\n  display: inline-grid;\n  align-content: center;\n  overflow-wrap: anywhere;\n}\n\n.no-internet-icon {\n  font-size: 100px;\n}\n\n.no-internet-title {\n  color: red;\n  font-weight: bold;\n  font-size: 30px;\n}\n\n.connection-msg {\n  padding: 0px 20px;\n}\n\n.secret-div {\n  z-index: 9999;\n  position: absolute;\n  top: 179px;\n  left: 82px;\n  width: 250px;\n  height: 50px;\n  box-shadow: 0 0 0 9999px rgba(9, 9, 9, 0.83);\n  border-radius: 10px;\n}\n\n.app-banner {\n  width: 100%;\n  position: fixed;\n  background: var(--get-app-banner-background);\n  color: var(--cookie-banner-text);\n  bottom: 0;\n  display: flex;\n  padding: 10px;\n}\n\n.app-banner .app-icon {\n  height: 75px;\n  width: 75px;\n  background-repeat: no-repeat;\n  background-size: cover;\n}\n\n.app-banner .text-container {\n  padding-left: 15px;\n}\n\n.app-banner .text-container .app-name {\n  margin-top: 2px !important;\n  font-weight: bold;\n}\n\n.app-banner .close-btn-app-banner {\n  position: absolute;\n  right: 10px;\n  top: -10px;\n  background: #f03f3c;\n  border: 1px #f03f3c solid;\n  border-radius: 50%;\n  font-size: 0px;\n}\n\n.app-banner .close-btn-app-banner ion-icon {\n  color: white !important;\n  font-size: 19px !important;\n}\n\n.app-banner .get-app-btn {\n  background-color: var(--get-app-banner-btn);\n  font-weight: bold;\n  border-radius: 10px;\n  color: black;\n  height: -webkit-fit-content;\n  height: -moz-fit-content;\n  height: fit-content;\n  padding-left: 10px;\n  padding-right: 10px;\n  text-transform: uppercase;\n  position: absolute;\n  right: 6%;\n  top: 40%;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0VBR0UsYUFBQTtBQUNGOztBQUVBO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7QUFDRjs7QUFFQTtFQUNFLFlBQUE7QUFDRjs7QUFFQTtFQUVFLGVBQUE7QUFBRjs7QUFHQTtFQUNFLG9DQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7QUFBRjs7QUFHQSxPQUFBOztBQUVBO0VBQ0UsZ0JBQUE7QUFERjs7QUFJQTtFQUNFLCtD
10059QUFBO0VBQ0EsaUJBQUE7QUFERjs7QUFLRTtFQUNFLHNDQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7QUFGSjs7QUFLRTtFQUNFLFdBQUE7RUFDQSx1QkFBQTtFQUNBLGlCQUFBO0FBSEo7O0FBTUU7RUFDRSxnQkFBQTtBQUpKOztBQU9FO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBRUEsc0NBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUFOSjs7QUFVQTtFQUNFLGVBQUE7RUFFQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EseUJBQUE7QUFSRjs7QUFXQTtFQUNFLFdBQUE7QUFSRjs7QUFXQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtBQVJGOztBQVdBO0VBQ0UsK0NBQUE7QUFSRjs7QUFVRTtFQUNFLDZDQUFBO0FBUko7O0FBWUE7RUFDRSw2QkFBQTtBQVRGOztBQVlBO0VBQ0UseUNBQUE7QUFURjs7QUFZQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLHlDQUFBO0VBQ0EsV0FBQTtBQVRGOztBQVlFO0VBQ0UsV0FBQTtBQVZKOztBQWNBO0VBQ0UsaUJBQUE7RUFDQSxlQUFBO0VBR0Esc0NBQUE7RUFFQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0FBZEY7O0FBaUJBO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUFkRjs7QUFnQkU7RUFDRSxxREFBQTtBQWRKOztBQWlCRTtFQUNFLHFEQUFBO0FBZko7O0FBbUJBO0VBQ0UsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSwyQ0FBQTtFQUNBLFVBQUE7QUFoQkY7O0FBbUJBO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsK0NBQUE7RUFDQSxrQkFBQTtBQWhCRjs7QUFtQ0E7RUFDRSxXQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSw2QkFBQTtFQUNBLGdEQUFBO0FBaENGOztBQW1DQTtFQUNFLDZCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0FBaENGOztBQW1DQTtFQUNFLFdBQUE7RUFDQSw2QkFBQTtBQWhDRjs7QUFtQ0E7RUFDRSw2QkFBQTtBQWhDRjs7QUFtQ0E7RUFDRSxZQUFBO0FBaENGOztBQW1DQTtFQUNFLFdBQUE7RUFDQSxlQUFBO0VBQ0EsMkNBQUE7RUFDQSxnQ0FBQTtFQUNBLFNBQUE7RUFDQSxhQUFBO0FBaENGOztBQWtDRTtFQUNFLGNBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0FBaENKOztBQWtDSTs7RUFFRSwwQkFBQTtBQWhDTjs7QUFrQ007O0VBQ0UsZUFBQTtBQS9CUjs7QUFvQ0U7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSw0QkFBQTtBQWxDSjs7QUFvQ0k7RUFDRSxjQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUFsQ047O0FBcUNJO0VBQ0Usd0NBQUE7RUFDQSx5QkFBQTtFQUNBLHdDQUFBO0FBbkNOOztBQXFDTTtF
10059QUNFLHFDQUFBO0VBQ0EsZUFBQTtBQW5DUjs7QUF1Q0k7RUFDRSxzREFBQTtFQUNBLG9DQUFBO0VBQ0EsNERBQUE7QUFyQ047O0FBdUNNO0VBQ0UscUNBQUE7RUFDQSxlQUFBO0VBQ0Esa0VBQUE7QUFyQ1I7O0FBMkNBO0VBQ0Usb0NBQUE7QUF4Q0Y7O0FBMkNBO0VBQ0UsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxxQkFBQTtFQUNBLHVCQUFBO0FBeENGOztBQTJDQTtFQUNFLGdCQUFBO0FBeENGOztBQTJDQTtFQUNFLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUF4Q0Y7O0FBMkNBO0VBQ0UsaUJBQUE7QUF4Q0Y7O0FBMkNBO0VBVUUsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLDRDQUFBO0VBQ0EsbUJBQUE7QUFqREY7O0FBb0RBO0VBQ0UsV0FBQTtFQUNBLGVBQUE7RUFDQSw0Q0FBQTtFQUNBLGdDQUFBO0VBQ0EsU0FBQTtFQUNBLGFBQUE7RUFDQSxhQUFBO0FBakRGOztBQW1ERTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsNEJBQUE7RUFDQSxzQkFBQTtBQWpESjs7QUFvREU7RUFDRSxrQkFBQTtBQWxESjs7QUFtREk7RUFDRSwwQkFBQTtFQUNBLGlCQUFBO0FBakROOztBQXFERTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0FBbkRKOztBQXFESTtFQUNFLHVCQUFBO0VBQ0EsMEJBQUE7QUFuRE47O0FBdURFO0VBQ0UsMkNBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLDJCQUFBO0VBQUEsd0JBQUE7RUFBQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7QUFyREoiLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLXRhYnMsXG5pb24tdGFiLWJhcixcbmlvbi10YWItYnV0dG9uIHtcbiAgY29udGFpbjogbm9uZTtcbn1cblxuLmhvbWUtdGFiIHtcbiAgaGVpZ2h0OiAxMzBweDtcbiAgbWFyZ2luLXRvcDogLTUwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG5pb24tdGFiLWJhciB7XG4gIGhlaWdodDogODRweDtcbn1cblxuaW9uLWljb24ge1xuICAvLyBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS1yZWQpO1xuICBmb250LXNpemU6IDI1cHg7XG59XG5cbmlvbi1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLWJsYWNrKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLyptZW51Ki9cblxuLm10NTAge1xuICBtYXJnaW4tdG9wOiA1MHB4O1xufVxuXG4uYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvaW1nL21lbnViZy5qcGdcIik7XG4gIHBhZGRpbmctdG9wOiA1MHB4O1xufVxuXG4ubWVudS1saXN0IHtcbiAgaW9uLWljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLWZvdS1yZWQpO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNXB4O1xuICB9XG5cbiAgaW9uLWl0ZW0ge1xuICAgIC0tYm9yZGVyOiAwO1xuICAgIC0taW5uZXItYm9yZGVyLXdpZHRoOiAwO1xuICAgIC0tZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLml0ZW06Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gIH1cblxuICAubWVudS1pdGVtLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAvLyBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS1ncmF5KTsgIGluIGNhc2UgQXl5YSByZXF1ZXN0XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tZm91LXJlZCk7XG4gICAgZm9udC1mYW1pbHk6IGV4bztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi10b3A6IC01cHg7XG4gIH1cbn1cblxuLm1lbnUtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgLy8gdGV4dC1hbGlnbjogY2VudGVyOyBpbiBjYXNlIEF5eWEgcmVxdWVzdFxuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5pdGVtLWlubmVyIHtcbiAgLS1ib3JkZXI6IDA7XG59XG5cbi56aW5kZXgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5O1xufVxuXG4udHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLWJsYWNrKTtcblxuICAuaXRlbS1uYXRpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tcmVkKTtcbiAgfVxufVxuXG4jYmFja2dyb3VuZC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmlvbi1jb250ZW50IHtcbiAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLW1lbnUtYmFrY2dyb3VuZCk7XG59XG5cbi5tZW51LWZvb3RlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC8qcGFkZGluZzogMCAxMHB4OyBpbiBjYXNlIGF5eWEgcmVxdWVzdCAqL1xuICBib3R0b206IDBweDtcbiAgLy8gb3BhY2l0eTogMC45OyBpbiBjYXNlIGF5eWEgcmVxdWVzdFxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmNsb3NlLWJ0biB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXNpemU6IDI4cHg7XG4gIC8vIHBhZGRpbmctcmlnaHQ6IDEwcHg7IGluIGNhc2UgYXl5YSByZXF1ZXN0XG4gIC8vY29sb3I6ICMzNTM1MzU7IGluIGNhc2UgYXl5YSByZXF1ZXN0XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLWZvdS1yZWQpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDVweDtcbiAgei1pbmRleDogMTAwO1xufVxuXG4ubGFuZy1jb24ge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAtMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgJi5kZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9pbWcvbGFuZ3VhZ2VzL2RlLnBuZ1wiKTtcbiAgfVxuXG4gICYuZW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvaW1nL2xhbmd1YWdlcy9lbi5wbmdcIik7XG4gIH1cbn1cblxuLmxvYWRpbmctY2VudGVyLWZ1bGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjkpOyAvLyBVU0UgU0NBTEUgRk9SIFJFIFNJWklOR1xuICB6LWluZGV4OiAyO1xufVxuXG4uZnVsbC1sb2FkaW5nLXdyYXBwZXIgLmJhY2tkcm9wIHtcbiAgb3BhY2l0eTogMC41O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLWJsYWNrKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4vLyAuZm9vdGVyLW1lbnUtZ217XG4vLyAgIGJvdHRvbTogMHB4O1xuLy8gICBwb3NpdGlvbjogZml4ZWQ7XG4vLyAgIHdpZHRoOiAxMDAlO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xuLy8gfVxuXG4vLyAuZm9vdGVyLW1lbnUtZ20gYnV0dG9ue1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3B
10059hcmVudDtcbi8vICAgd2lkdGg6IDIwJTtcbi8vIH1cblxuLy8gLmZvb3Rlci1tZW51LWdtIGJ1dHRvbiBpb24taWNvbntcbi8vICAgd2lkdGg6IDEwMCU7XG4vLyB9XG5cbi5mb290ZXItbWVudS1nbSB7XG4gIGJvdHRvbTogMHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdoaXRlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS1mb290ZXIpO1xufVxuXG4uZm9vdGVyLW1lbnUtZ20gYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAzMyU7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xufVxuXG4uZm9vdGVyLW1lbnUtZ20gYnV0dG9uIGlvbi1pY29uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xufVxuXG4uZm9vdGVyLW1lbnUtZ20gYnV0dG9uIGlvbi1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xufVxuXG4uZm90dGVyX2hlaSB7XG4gIGhlaWdodDogODVweDtcbn1cblxuLmNvb2tpZXMtYmFubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29va2llLWJhbm5lci1iYWNrZ3JvdW5kKTtcbiAgY29sb3I6IHZhcigtLWNvb2tpZS1iYW5uZXItdGV4dCk7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogZmxleDtcblxuICBwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAxMnB4O1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG5cbiAgICAudG5jLFxuICAgIC5wcml2YWN5LXBvbGljeSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29va2llLWJhbm5lci1idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIC5iYW5uZXItYnV0dG9ucyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLmRpc21pc3Mge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogdmFyKC0tY29va2llLWJhbm5lci1kaXNtaXNzLXRleHQpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nb3QtaXQge1xuICAgICAgY29sb3I6IHZhcigtLWNvb2tpZS1iYW5uZXItYWNjZXB0LWJ0bi10ZXh0KSAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29va2llLWJhbm5lci1hY2NlcHQtYnRuLWJhY2tncm91bmQpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb29raWUtYmFubmVyLWFjY2VwdC1idG4tYmFja2dyb3VuZC1ob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5tYWluLW91dGxldC1jb250ZW50IHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4NXB4KSAhaW1wb3J0YW50O1xufVxuXG4ubm8taW50ZXJuZXQge1xuICB6LWluZGV4OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4ubm8taW50ZXJuZXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMTAwcHhcbn1cblxuLm5vLWludGVybmV0LXRpdGxlIHtcbiAgY29sb3I6IHJlZDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMzBweDtcbn1cblxuLmNvbm5lY3Rpb24tbXNnIHtcbiAgcGFkZGluZzogMHB4IDIwcHg7XG59XG5cbi5zZWNyZXQtZGl2IHtcbiAgLy8gaGVpZ2h0OiAxMDAlO1xuICAvLyB3aWR0aDogMTAwJTtcbiAgLy8gYmFja2dyb3VuZDogIzAwMDAwMGFkO1xuICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vIHotaW5kZXg6IDk5OTk7XG5cbiAgLy8gLmlubmVye1xuICAvLyAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvLyB9XG4gIHotaW5kZXg6IDk5OTk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNzlweDtcbiAgbGVmdDogODJweDtcbiAgd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDk5OTlweCByZ2JhKDksIDksIDksIDAuODMpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG4uYXBwLWJhbm5lcntcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tZ2V0LWFwcC1iYW5uZXItYmFja2dyb3VuZCk7XG4gIGNvbG9yOiB2YXIoLS1jb29raWUtYmFubmVyLXRleHQpO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDEwcHg7XG5cbiAgLmFwcC1pY29ue1xuICAgIGhlaWdodDogNzVweDtcbiAgICB3aWR0aDogNzVweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cblxuICAudGV4dC1jb250YWluZXJ7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIC5hcHAtbmFtZXtcbiAgICAgIG1hcmdpbi10b3A6IDJweCAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG5cbiAgLmNsb3NlLWJ0bi1hcHAtYmFubmVye1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTBweDtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmMDNmM2M7XG4gICAgYm9yZGVyOiAxcHggI2YwM2YzYyBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZm9udC1zaXplOiAwcHg7XG5cbiAgICBpb24taWNvbntcbiAgICAgIGNvbG9yOiB3aGl0ZSAhaW
100591wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiAxOXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdldC1hcHAtYnRue1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdldC1hcHAtYmFubmVyLWJ0bik7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNiU7XG4gICAgdG9wOiA0MCU7XG4gIH1cbn0iXX0= */");
10060
10061/***/ }),
10062
10063/***/ 33420:
10064/*!**************************************************************************!*\
10065  !*** ./src/app/component/animatedloading/animatedloading.component.scss ***!
10066  \**************************************************************************/
10067/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10068
10069"use strict";
10070__webpack_require__.r(__webpack_exports__);
10071/* harmony default export */ __webpack_exports__["default"] = (".loader07 {\n  width: 16px;\n  height: 16px;\n  border-radius: 50%;\n  position: relative;\n  -webkit-animation: loader07-u04c322d6 1s linear infinite;\n          animation: loader07-u04c322d6 1s linear infinite;\n  top: 50%;\n  margin: -8px auto 0;\n}\n\n@-webkit-keyframes loader07-u04c322d6 {\n  0% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.05), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.1), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.2), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.3), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.4), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.6), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.8), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.9);\n  }\n  12.5% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.02), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.05), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.1), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.2), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.3), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.4), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.6), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.8);\n  }\n  25% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.8), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.7), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.05), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.1), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.2), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.3), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.4), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.6);\n  }\n  37.5% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.6), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.8), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.7), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.05), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.1), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.2), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.3), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.4);\n  }\n  50% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.4), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.6), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.8), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.09), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.05), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.1), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.2), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.3);\n  }\n  62.5% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.3), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.4), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.6), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.8), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.9), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.05), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.1), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.2);\n  }\n  75% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.2), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.3), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.4), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.6), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.8), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.9), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.05), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.1);\n  }\n  87.5% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.1), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.2), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.3), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.4), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.6), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.8), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.9), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.05);\n  }\n  100% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.05), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.1), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.2), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.3), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.4), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.6), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.8), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.9);\n  }\n}\n\n@keyframes loader07-u04c322d6 {\n  0% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.05), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.1), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.2), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.3), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.4), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.6), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.8), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.9);\n  }\n  12.5% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.02), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.05), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.1), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.2), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.3), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.4), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.6), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.8);\n  }\n  25% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.8), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.7), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.05), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.1), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.2), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.3), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.4), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.6);\n  }\n  37.5% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.6), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.8), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.7), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.05), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.1), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.2), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.3), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.4);\n  }\n  50% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.4), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.6), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.8), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.09), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.05), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.1), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.2), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.3);\n  }\n  62.5% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.3), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.4), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.6), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.8), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.9), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.05), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.1), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.2);\n  }\n  75% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.2), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.3), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.4), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.6), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.8), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.9), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.05), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.1);\n  }\n  87.5% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.1), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.2), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.3), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.4), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.6), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.8), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.9), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.05);\n  }\n  100% {\n    box-shadow: 0 -27px 0 0 rgba(var(--loading-spinner-rgb), 0.05), 19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.1), 27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.2), 19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.3), 0 27px 0 0 rgba(var(--loading-spinner-rgb), 0.4), -19px 19px 0 0 rgba(var(--loading-spinner-rgb), 0.6), -27px 0 0 0 rgba(var(--loading-spinner-rgb), 0.8), -19px -19px 0 0 rgba(var(--loading-spinner-rgb), 0.9);\n  }\n}\n/*# sourceMappingURL=data:application/json;
10071base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFuaW1hdGVkbG9hZGluZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLHdEQUFBO1VBQUEsZ0RBQUE7RUFDQSxRQUFBO0VBQ0EsbUJBQUE7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsNmFBQUE7RUFDRjtFQUVBO0lBQ0UsOGFBQUE7RUFBRjtFQUdBO0lBQ0UsNmFBQUE7RUFERjtFQUlBO0lBQ0UsNmFBQUE7RUFGRjtFQUtBO0lBQ0UsOGFBQUE7RUFIRjtFQU1BO0lBQ0UsNmFBQUE7RUFKRjtFQU9BO0lBQ0UsNmFBQUE7RUFMRjtFQVFBO0lBQ0UsNmFBQUE7RUFORjtFQVNBO0lBQ0UsNmFBQUE7RUFQRjtBQUNGOztBQTVCQTtFQUNFO0lBQ0UsNmFBQUE7RUFDRjtFQUVBO0lBQ0UsOGFBQUE7RUFBRjtFQUdBO0lBQ0UsNmFBQUE7RUFERjtFQUlBO0lBQ0UsNmFBQUE7RUFGRjtFQUtBO0lBQ0UsOGFBQUE7RUFIRjtFQU1BO0lBQ0UsNmFBQUE7RUFKRjtFQU9BO0lBQ0UsNmFBQUE7RUFMRjtFQVFBO0lBQ0UsNmFBQUE7RUFORjtFQVNBO0lBQ0UsNmFBQUE7RUFQRjtBQUNGIiwiZmlsZSI6ImFuaW1hdGVkbG9hZGluZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5sb2FkZXIwNyB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbmltYXRpb246IGxvYWRlcjA3LXUwNGMzMjJkNiAxcyBsaW5lYXIgaW5maW5pdGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW46IC04cHggYXV0byAwO1xufVxuXG5Aa2V5ZnJhbWVzIGxvYWRlcjA3LXUwNGMzMjJkNiB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIC0yN3B4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjA1KSwgMTlweCAtMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4xKSwgMjdweCAwIDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjIpLCAxOXB4IDE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuMyksIDAgMjdweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC40KSwgLTE5cHggMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC42KSwgLTI3cHggMCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC44KSwgLTE5cHggLTE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksMC45KTtcbiAgfVxuXG4gIDEyLjUlIHtcbiAgICBib3gtc2hhZG93OiAwIC0yN3B4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjAyKSwgMTlweCAtMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4wNSksIDI3cHggMCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4xKSwgMTlweCAxOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjIpLCAwIDI3cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuMyksIC0xOXB4IDE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNCksIC0yN3B4IDAgMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNiksIC0xOXB4IC0xOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjgpO1xuICB9XG5cbiAgMjUlIHtcbiAgICBib3gtc2hhZG93OiAwIC0yN3B4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjgpLCAxOXB4IC0xOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLDAuNyksIDI3cHggMCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4wNSksIDE5cHggMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4xKSwgMCAyN3B4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjIpLCAtMTlweCAxOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjMpLCAtMjdweCAwIDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjQpLCAtMTlweCAtMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC42KTtcbiAgfVxuXG4gIDM3LjUlIHtcbiAgICBib3gtc2hhZG93OiAwIC0yN3B4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjYpLCAxOXB4IC0xOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjgpLCAyN3B4IDAgMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNyksIDE5cHggMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4wNSksIDAgMjdweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4xKSwgLTE5cHggMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4yKSwgLTI3cHggMCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4zKSwgLTE5cHggLTE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNCk7XG4gIH1cblxuICA1MCUge1xuICAgIGJveC1zaGFkb3c6IDAgLTI3cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNCksIDE5cHggLTE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNiksIDI3cHggMCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC44KSwgMTlweCAxOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjA5KSwgMCAyN3B4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjA1KSwgLTE5cHggMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4xKSwgLTI3cHggMCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4yKSwgLTE5cHggLTE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuMyk7XG4gIH1cblxuICA2Mi41JSB7XG4gICAgYm94LXNoYWRvdzogMCAtMjdweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4zKSwgMTlweCAtMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC40KSwgMjdweCAwIDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjYpLCAxOXB4IDE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuOCksIDAgMjdweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC45KSwgLTE5cHggMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4wNSksIC0yN3B4IDAgMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuMSksIC0xOXB4IC0xOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjIpO1xuICB9XG5cbiAgNzUlIHtcbiAgICBib3gtc2hhZG93OiAwIC0yN3B4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjIpLCAxOXB4IC0xOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjMpLCAyN3B4IDAgMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNCksIDE5cHggMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC42KSwgMCAyN3B4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjgpLCAtMTlweCAxOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjkpLCAtMjdweCAwIDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjA1KSwgLTE5cHggLTE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuMSk7XG4gIH1cblxuICA4Ny41JSB7XG4gICAgYm94LXNoYWRvdzogMCAtMjdweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4xKSwgMTlweCAtMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4yKSwgMjdweCAwIDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjMpLCAxOXB4IDE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNCksIDAgMjdweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC42KSwgLTE5cHggMTlweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC44KSwgLTI3cHggMCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC45KSwgLTE5cHggLTE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuMDUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAtMjdweCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4wNSksIDE5cHggLTE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuMSksIDI3cHggMCAwIDAgcmdiYSh2YXIoLS1sb2FkaW5nLXNwaW5uZXItcmdiKSwgMC4yKSwgMTlweCAxOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjMpLCAwIDI3cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNCksIC0xOXB4IDE5cHggMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuNiksIC0yN3B4IDAgMCAwIHJnYmEodmFyKC0tbG9hZGluZy1zcGlubmVyLXJnYiksIDAuOCksIC0xOXB4IC0xOXB4IDAgMCByZ2JhKHZhcigtLWxvYWRpbmctc3Bpbm5lci1yZ2IpLCAwLjkpO1xuICB9XG59Il19 */");
10072
10073/***/ }),
10074
10075/***/ 70022:
10076/*!****************************************************!*\
10077  !*** ./src/app/views/modals/alert/alert.page.scss ***!
10078  \****************************************************/
10079/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10080
10081"use strict";
10082__webpack_require__.r(__webpack_exports__);
10083/* harmony default export */ __webpack_exports__["default"] = ("#background-content {\n  background-color: transparent;\n}\n\nion-content {\n  --background: rgba(0, 0, 0, 0);\n}\n\n.popup-container {\n  width: 100%;\n  height: 100vh;\n}\n\n.popup-container .popup-container-inner {\n  box-shadow: 0 3px 5px 0px #484848;\n  width: 80%;\n  min-width: 300px;\n  background: var(--ion-color-white);\n  margin: auto;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  text-align: center;\n}\n\n.popup-container .popup-container-inner ul {\n  list-style: none;\n  padding: 0;\n}\n\n.popup-container .popup-container-inner .text {\n  font-size: 12px;\n  font-family: \"roboto\";\n  color: #7d7d7d;\n  padding-bottom: 10px;\n}\n\n.popup-container .popup-container-inner .text div {\n  font-style: italic;\n}\n\n.popup-container .popup-container-inner h3 {\n  margin: 0;\n  font-size: 15px;\n  margin-bottom: 5px;\n  margin-top: 5px;\n  font-weight: bold;\n}\n\n.line-top {\n  height: 2px;\n  width: 100px;\n  display: block;\n}\n\n.error .alert-icon,\n.error .success-icon {\n  display: none;\n}\n\n.error .popup-container-inner {\n  border-top: 5px solid #dc0000;\n}\n\n.error .close-icon {\n  color: #dc0000;\n}\n\n.error .icon {\n  color: #dc0000;\n  font-size: 28px;\n}
10083\n\n.error h3 {\n  color: #dc0000;\n}\n\n.alert .error-icon,\n.alert .success-icon {\n  display: none;\n}\n\n.alert .popup-container-inner {\n  border-top: 5px solid #3498db;\n}\n\n.alert .close-icon {\n  color: #3498db;\n}\n\n.alert .icon {\n  color: #3498db;\n  font-size: 28px;\n}\n\n.alert h3 {\n  color: #3498db;\n}\n\n.success .error-icon,\n.success .alert-icon {\n  display: none;\n}\n\n.success .popup-container-inner {\n  border-top: 5px solid #2ecc71;\n}\n\n.success .close-icon {\n  color: #2ecc71;\n}\n\n.success .icon {\n  color: #2ecc71;\n  font-size: 28px;\n}\n\n.success h3 {\n  color: #2ecc71;\n}\n\n.message-text {\n  font-size: 16px !important;\n  font-style: unset !important;\n}\n\n.alergy-info-title {\n  font-size: 14px !important;\n}\n\n.alergy-info-container {\n  max-height: 650px !important;\n  overflow: auto !important;\n  width: 100%;\n}\n\n.image-preview-dish-close {\n  position: absolute;\n  right: -8px;\n  top: -8px;\n  background: var(--ion-color-custom-red);\n  border-radius: 50%;\n  width: 18px;\n  height: 17px;\n  font-size: 16px;\n  color: var(--ion-color-white);\n}\n\n.image-container {\n  padding: 10px;\n}\n\n#pointer {\n  position: relative;\n  background: red;\n}
10083\n\n#pointer:after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  bottom: 0;\n  width: 0;\n  height: 0;\n  border-left: 10px solid white;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n}\n\n#pointer:before {\n  content: \"\";\n  position: absolute;\n  right: -30px;\n  bottom: 0;\n  width: 0;\n  height: 0;\n  border-left: 10px solid transparent;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n}\n\n.favorite-restaurant-marked-container .favourite-message {\n  display: inline-flex;\n  padding: 10px;\n}\n\n.favorite-restaurant-marked-container .favourite-message span {\n  font-size: 14px;\n}\n\n.favorite-restaurant-marked-container .favourite-message span ion-icon {\n  font-size: 34px;\n}\n\n.favorite-restaurant-marked-container .you-can-change-this {\n  font-size: 10px;\n}\n\n.favorite-restaurant-marked-container .btn-ok {\n  padding: 5px;\n}\n\n.favorite-restaurant-marked-container .btn-ok span {\n  padding: 3px 10px;\n  background: #4b90e2;\n  color: white;\n  font-size: 12px;\n  border-radius: 4px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsZXJ0LnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLDZCQUFBO0FBQ0o7O0FBRUE7RUFDSSw4QkFBQTtBQUNKOztBQUVBO0VBQ0ksV0FBQTtFQUNBLGFBQUE7QUFDSjs7QUFDSTtFQUNJLGlDQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0NBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGdDQUFBO0VBQ0Esa0JBQUE7QUFDUjs7QUFDUTtFQUNJLGdCQUFBO0VBQ0EsVUFBQTtBQUNaOztBQUVRO0VBQ0ksZUFBQTtFQUNBLHFCQUFBO0VBQ0EsY0FBQTtFQUNBLG9CQUFBO0FBQVo7O0FBRVk7RUFDSSxrQkFBQTtBQUFoQjs7QUFJUTtFQUNJLFNBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7QUFGWjs7QUFPQTtFQUNJLFdBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtBQUpKOztBQVNJOztFQUVJLGFBQUE7QUFOUjs7QUFTSTtFQUNJLDZCQUFBO0FBUFI7O0FBVUk7RUFDSSxjQUFBO0FBUlI7O0FBV0k7RUFDSSxjQUFBO0VBQ0EsZUFBQTtBQVRSOztBQVlJO0VBQ0ksY0FBQTtBQVZSOztBQWdCSTs7RUFFSSxhQUFBO0FBYlI7O0FBZ0JJO0VBQ0ksNkJBQUE7QUFkUjs7QUFpQkk7RUFDSSxjQUFBO0FBZlI7O0FBa0JJO0VBQ0ksY0FBQTtFQUNBLGVBQUE7QUFoQlI7O0FBbUJJO0VBQ0ksY0FBQTtBQWpCUjs7QUF1Qkk7O0VBRUksYUFBQTtBQXBCUjs7QUF1Qkk7RUFDSSw2QkFBQTtBQXJCUjs7QUF3Qkk7RUFDSSxjQUFBO0FBdEJSOztBQXlCSTtFQUNJLGNBQUE7RUFDQSxlQUFBO0FBdkJSOztBQTBCSTtFQUNJLGNBQUE7QUF4QlI7O0FBNEJBO0VBQ0ksMEJBQUE7RUFDQSw0QkFBQTtBQXpCSjs7QUE0QkE7RUFDSSwwQkFBQTtBQXpCSjs7QUE0QkE7RUFDSSw0QkFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtBQXpCSjs7QUE0QkE7RUFDSSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxTQUFBO0VBQ0EsdUNBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLDZCQUFBO0FBekJKOztBQTRCQTtFQUNJLGFBQUE7QUF6Qko7O0FBOEJBO0VBQ0ksa0JBQUE7RUFDQSxlQUFBO0FBM0JKOztBQThCQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSw2QkFBQTtFQUNBLGtDQUFBO0VBQ0EscUNBQUE7QUEzQko7O0FBOEJBO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLG1DQUFBO0VBQ0Esa0NBQUE7RUFDQSxxQ0FBQTtBQTNCSjs7QUErQkk7RUFDSSxvQkFBQTtFQUNBLGFBQUE7QUE1QlI7O0FBOEJRO0VBQ0ksZUFBQTtBQTVCWjs7QUE4Qlk7RUFDSSxlQUFBO0FBNUJoQjs7QUFpQ0k7RUFDSSxlQUFBO0FBL0JSOztBQWtDSTtFQUNJLFlBQUE7QUFoQ1I7O0FBa0NRO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7QUFoQ1oiLCJmaWxlIjoiYWxlcnQucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2JhY2tncm91bmQtY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmlvbi1jb250ZW50IHtcbiAgICAtLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG5cbi5wb3B1cC1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG5cbiAgICAucG9wdXAtY29udGFpbmVyLWlubmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IDBweCAjNDg0ODQ4O1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcInJvYm90b1wiO1xuICAgICAgICAgICAgY29sb3I6ICM3ZDdkN2Q7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICB9XG4gICAgICAgI
10083H1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxpbmUtdG9wIHtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5lcnJvciB7XG5cbiAgICAuYWxlcnQtaWNvbixcbiAgICAuc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucG9wdXAtY29udGFpbmVyLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICNkYzAwMDA7XG4gICAgfVxuXG4gICAgLmNsb3NlLWljb24ge1xuICAgICAgICBjb2xvcjogI2RjMDAwMDtcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjZGMwMDAwO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBjb2xvcjogI2RjMDAwMDtcbiAgICB9XG59XG5cbi5hbGVydCB7XG5cbiAgICAuZXJyb3ItaWNvbixcbiAgICAuc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucG9wdXAtY29udGFpbmVyLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMzNDk4ZGI7XG4gICAgfVxuXG4gICAgLmNsb3NlLWljb24ge1xuICAgICAgICBjb2xvcjogIzM0OThkYjtcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjMzQ5OGRiO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBjb2xvcjogIzM0OThkYjtcbiAgICB9XG59XG5cbi5zdWNjZXNzIHtcblxuICAgIC5lcnJvci1pY29uLFxuICAgIC5hbGVydC1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucG9wdXAtY29udGFpbmVyLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMyZWNjNzE7XG4gICAgfVxuXG4gICAgLmNsb3NlLWljb24ge1xuICAgICAgICBjb2xvcjogIzJlY2M3MTtcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjMmVjYzcxO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBjb2xvcjogIzJlY2M3MTtcbiAgICB9XG59XG5cbi5tZXNzYWdlLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc3R5bGU6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGVyZ3ktaW5mby10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGVyZ3ktaW5mby1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDY1MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmltYWdlLXByZXZpZXctZGlzaC1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtOHB4O1xuICAgIHRvcDogLThweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLXJlZCk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMTdweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13aGl0ZSk7XG59XG5cbi5pbWFnZS1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cblxuXG4jcG9pbnRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHJlZDtcbn1cblxuI3BvaW50ZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB3aGl0ZTtcbiAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbiNwb2ludGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0zMHB4O1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uZmF2b3JpdGUtcmVzdGF1cmFudC1tYXJrZWQtY29udGFpbmVyIHtcbiAgICAuZmF2b3VyaXRlLW1lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgICAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC55b3UtY2FuLWNoYW5nZS10aGlzIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgIH1cblxuICAgIC5idG4tb2sge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM0YjkwZTI7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG59Il19 */");
10084
10085/***/ }),
10086
10087/***/ 3760:
10088/*!**************************************************!*\
10089  !*** ./src/app/views/modals/cart/cart.page.scss ***!
10090  \**************************************************/
10091/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10092
10093"use strict";
10094__webpack_require__.r(__webpack_exports__);
10095/* harmony default export */ __webpack_exports__["default"] = ("#background-content {\n  background-color: transparent;\n}\n\nion-content {\n  --background: rgba(0, 0, 0, 0);\n}\n\n.popup-container {\n  width: 100%;\n  height: 100vh;\n}\n\n.popup-container .popup-container-inner {\n  border-radius: 5px;\n  box-shadow: 0 3px 5px 0px #484848;\n  width: 80%;\n  min-width: 300px;\n  min-height: 200px;\n  background: var(--ion-color-white);\n  margin: auto;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n.popup-container .popup-container-inner.heighOk {\n  top: 20px;\n  left: 50%;\n  transform: translate(-50%, 0);\n}\n\n.popup-container .popup-container-inner ul {\n  list-style: none;\n  padding: 0;\n}\n\n.popup-container .popup-container-inner .cart-button {\n  top: 0;\n  left: 0;\n  transform: rotate(0deg) translate(-30%, -30%);\n}\n\n.title {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n\n.title .close-btn {\n  font-size: 25px;\n  position: absolute;\n  top: 0;\n  right: 3px;\n  color: #5d5d5d;\n}\n\n.cart-list {\n  padding: 0;\n  display: flex;\n  flex-flow: column;\n}\n\n.cart-list .first-flex {\n  flex: 1;\n  overflow-y: auto;\n  position: relative;\n  overflow-x: hidden;\n  margin-top: 30px;\n  max-height: 300px;\n  min-height: 200px;\n}\n\n.cart-list .first-flex ion-grid:nth-child(3)::before {\n  content: \" \";\n  width: 100%;\n  display: block;\n  height: 30px;\n  position: fixed;\n  bottom: 0;\n  background: linear-gradient(0deg, rgba(153, 153, 153, 0.6166667351) 0%, rgba(255, 255, 255, 0) 100%);\n  z-index: 9;\n  opacity: 0.5;\n}\n\n.cart-list .second-flex {\n  border-top: 3px solid #dfdfdf;\n  padding-bottom: 10px;\n}\n\n.cart-list .counter div {\n  display: block;\n  text-align: center;\n  font-size: 20px;\n  float: left;\n}\n\n.cart-list .counter .number {\n  font-size: 13px;\n  text-align: center;
10095\n  color: #333;\n  padding-top: 2px;\n  font-weight: bold;\n  margin: 0 8px;\n}\n\n.cart-list .counter .clear {\n  clear: both;\n}\n\n.cart-list .counter ion-icon {\n  font-size: 14px;\n  padding: 3px 8px;\n  background: #f0f0f0;\n  box-shadow: 0 0 3px #ccc;\n  border-radius: 3px;\n}\n\n.cart-list .counter ion-icon:active, .cart-list .counter ion-icon:focus {\n  box-shadow: none;\n}\n\n.cart-list .edit {\n  text-align: right;\n}\n\n.cart-list .edit ion-icon {\n  font-size: 20px;\n}\n\n.cart-list .edit ion-icon:first-child {\n  margin-right: 10px;\n}\n\n.cart-list .price {\n  text-align: right;\n  font-size: 13px;\n  padding: 0 5px;\n}\n\n.cart-list .text {\n  padding: 0 5px;\n}\n\n.cart-list .text .title {\n  font-size: 13px;\n  font-weight: bold;\n  color: #535353;\n}\n\n.cart-list .text .sub {\n  font-size: 13px;\n  margin-left: 5px;\n  margin-top: 5px;\n  color: #626262;\n}\n\n.cart-list .text .sub-sm {\n  font-size: 10px;\n  opacity: 0.5;\n  font-style: italic;\n}\n\n.cart-list ion-grid:last-child .border-bottom {\n  border-bottom: none;\n}\n\n.cart-list .border-bottom {\n  border-bottom: 2px solid #eee;\n  padding-bottom: 5px;\n}\n\n.text-right {\n  text-align: right;\n}\n\n.cart-title {\n  text-align: center;\n  font-size: 17px;\n}\n\n.cart-title ion-icon {\n  color: var(--ion-color-custom-red);\n  font-size: 20px;\n  margin-bottom: -3px;\n}\n\n.cart-footer {\n  font-size: 12px;\n}\n\n.cart-footer ion-col {\n  padding: 3px;\n  font-size: 13px;\n  font-weight: bold;\n  color: #535353;\n}\n\n.cart-footer ion-item {\n  --padding-start: 0;\n  --inner-padding-start: 0;\n}\n\n.cart-footer .submit {\n  text-align: center;\n  font-size: 12px;\n  font-family: exo;\n}\n\n.cart-footer .submit button {\n  font-size: 12px;\n}\n\n.cart-footer .somethig {\n  font-size: 14px;\n  --min-height: 0;\n  border-radius: 5px;\n  --inner-padding-start: 5px;\n  border: 1px solid #d5d5d5;\n}\n\n.cart-footer .somethig ion-label {\n  font-size: 13px;\n  font-weight: bold;\n  color: #535353;\n}\n\n.cart-footer .somethig ion-input {\n  padding-left: 10px !important;\n}\n\n.cart-footer .somethig ion-icon {\n  font-size: 18px;\n  margin-bottom: -4px;\n}\n\n.cart-footer ion-input {\n  /*--padding-top:0;\n  --padding-bottom:0;*/\n}\n\n.cart-footer ion-input input {\n  padding: 5px;\n}\n\n.cart-footer .coupon-accept {\n  /*position: absolute;\n  left: 50%;\n  bottom: 15px;\n  font-size: 25px;\n  transform: translateX(-50%);*/\n  color: var(--ion-color-custom-green);\n}\n\n.cart-footer .coupon-accept.disabled {\n  color: var(--ion-color-custom-red);\n}\n\n.comment {\n  font-size: 10px;\n}\n\n.cart-header {\n  background: #ececec;\n  color: #959595;\n  margin-bottom: 10px;\n}\n\n.border-bottom ion-item {\n  --padding-start: 0;\n  --inner-padding-start: 0;\n  --padding-end: 0;\n  --inner-padding-end: 0;\n  width: 100%;\n}\n\n.border-bottom .doted-border {\n  border-bottom: 2px dotted #c8c8c8;\n}\n\n.comment {\n  font-style: italic;\n  color: #b0b0b0;\n  margin-left: 10px;\n}\n\nion-item:not(.item-label) .sc-ion-textarea-md-h {\n  --padding-start: 0;\n  border: 2px dashed #bbb6b6;\n  border-radius: 5px;\n  padding: 0 5px;\n  margin-bottom: 10px;\n}\n\n.coupon-accept {\n  font-size: 25px !important;\n}\n\n.footer-comment ion-item {\n  --inner-padding-end: 0;\n}\n\n.submit ion-button {\n  --background: rgba(231, 76, 60, 0.4);\n  color: #c0392b;\n  --box-shadow: none;\n  font-weight: bold;\n  --border-radius: 6px;\n  font-size: 12px;\n  --padding-start: 20px;\n  --padding-end: 20px;\n  --padding-top: 10px;\n  --padding-bottom: 10px;\n  --background-activated: green;\n}\n\n.cart-list .counter .number {\n  font-size: 15px;\n}\n\n.cart-list .text .title {\n  font-size: 15px;\n}\n\n.cart-list .text .sub-sm {\n  font-size: 12px;\n}\n\n.cart-list .price {\n  font-size: 15px;\n}\n\n.cart-footer ion-col {\n  font-size: 15px;\n}\n\n.error-box,\n.success-box {\n  font-size: 15px;\n}\n\n.cart-footer ion-col {\n  font-size: 15px;\n}\n\n.cart-footer .submit button {\n  font-size: 14px;\n}\n\n.fs12 {\n  font-size: 12px;\n}\n\n.cart-comment-editing {\n  background: #00a900;\n  color: var(--ion-color-white);\n  border-radius: 5px;\n}\n\n.font-size-18 {\n  font-size: 18px !important;\n}\n\n.bar-mode-btns {\n  padding: 10px !important;\n  font-size: 12px !important;\n}\n\n.bar-mode-btns ion-icon {\n  font-size: 17px !important;\n}\n\n.send-to-kitchen {\n  width: 50%;\n  border-top-right-radius: unset;\n  border-bottom-right-radius: unset;\n}\n\n.send-to-kitchen-disabled {\n  background: gray !important;\n}\n\n.pay {\n  width: 50%;\n  border-top-left-radius: unset;\n  border-bottom-left-radius: unset;\n}\n\n.order-preparation-time {\n  margin-bottom: 5px;\n}\n\n.order-preparation-time label {\n  background: red;\n  padding: 5px;\n  border-radius: 10px;\n  color: white;\n}\n\n.custom-prep {\n  background: red;\n  padding: 5px;\n  border-radius: 10px;\n  color: white;\n}\n\n.price-line-through {\n  font-size: 10px;\n  text-decoration: line-through;\n  color: #ff0e00;\n}\n\n.dish-not-available {\n  width: 100%;\n  height: 75px;\n  background: #ffadadbd;\n  margin-bottom: 10px !important;\n  z-index: 9;\n  margin: -5px;\n  border-radius: 5px;\n  color: #2d2b2b;\n  justify-content: center;\n  align-items: center;\n  display: flex;\n  text-align: center;\n  margin-left: 0px;\n  font-family: cursive;\n}\n\n.highlight {\n  background: url(\"/assets/brush.svg\");\n  padding-bottom: 5px;\n  padding-top: 15px;\n  padding-left: 50px;\n  padding-right: 30px;\n  font-size: 14px;\n  font-weight: bold;\n  display: flex;\n}\n\n.highlight ion-icon {\n  cursor: pointer;
10095\n  color: red;\n}\n\n.trash-container {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding-left: 20px;\n  font-size: 20px;\n}\n\n.highlight-unavailable {\n  border: 3px dotted red;\n  border-radius: 5px;\n  background: #ffcaca;\n  margin-top: 5px;\n}\n\n.hightlight-spec {\n  padding: 0px 10px;\n}\n\n.margin-top-5 {\n  margin-top: 5px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhcnQucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksNkJBQUE7QUFDSjs7QUFFQTtFQUNJLDhCQUFBO0FBQ0o7O0FBRUE7RUFDSSxXQUFBO0VBQ0EsYUFBQTtBQUNKOztBQUNJO0VBQ0ksa0JBQUE7RUFDQSxpQ0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0NBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGdDQUFBO0FBQ1I7O0FBQ1E7RUFDSSxTQUFBO0VBQ0EsU0FBQTtFQUNBLDZCQUFBO0FBQ1o7O0FBRVE7RUFDSSxnQkFBQTtFQUNBLFVBQUE7QUFBWjs7QUFHUTtFQUNJLE1BQUE7RUFDQSxPQUFBO0VBQ0EsNkNBQUE7QUFEWjs7QUFNQTtFQUNJLGNBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7QUFISjs7QUFLSTtFQUNJLGVBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsY0FBQTtBQUhSOztBQU9BO0VBQ0ksVUFBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtBQUpKOztBQU1JO0VBQ0ksT0FBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtBQUpSOztBQVFnQjtFQUNJLFlBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtFQUNBLG9HQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7QUFOcEI7O0FBWUk7RUFDSSw2QkFBQTtFQUNBLG9CQUFBO0FBVlI7O0FBY1E7RUFDSSxjQUFBO0VBRUEsa0JBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtBQWJaOztBQWdCUTtFQUNJLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtBQWRaOztBQWlCUTtFQUNJLFdBQUE7QUFmWjs7QUFrQlE7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0Esa0JBQUE7QUFoQlo7O0FBa0JZO0VBRUksZ0JBQUE7QUFqQmhCOztBQXNCSTtFQUNJLGlCQUFBO0FBcEJSOztBQXNCUTtFQUNJLGVBQUE7QUFwQlo7O0FBc0JZO0VBQ0ksa0JBQUE7QUFwQmhCOztBQXlCSTtFQUNJLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QUF2QlI7O0FBMEJJO0VBQ0ksY0FBQTtBQXhCUjs7QUEwQlE7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FBeEJaOztBQTJCUTtFQUNJLGVBQUE7RUFFQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0FBMUJaOztBQTZCUTtFQUNJLGVBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUEzQlo7O0FBaUNZO0VBQ0ksbUJBQUE7QUEvQmhCOztBQW9DSTtFQUNJLDZCQUFBO0VBQ0EsbUJBQUE7QUFsQ1I7O0FBc0NBO0VBQ0ksaUJBQUE7QUFuQ0o7O0FBc0NBO0VBQ0ksa0JBQUE7RUFDQSxlQUFBO0FBbkNKOztBQXFDSTtFQUNJLGtDQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FBbkNSOztBQXVDQTtFQUNJLGVBQUE7QUFwQ0o7O0FBc0NJO0VBQ0ksWUFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7QUFwQ1I7O0FBdUNJO0VBQ0ksa0JBQUE7RUFDQSx3QkFBQTtBQXJDUjs7QUF3Q0k7RUFDSSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQXRDUjs7QUF3Q1E7RUFDSSxlQUFBO0FBdENaOztBQTBDSTtFQUNJLGVBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSwwQkFBQTtFQUNBLHlCQUFBO0FBeENSOztBQTBDUTtFQUNJLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7QUF4Q1o7O0FBMkNRO0VBQ0ksNkJBQUE7QUF6Q1o7O0FBNENRO0VBQ0ksZUFBQTtFQUNBLG1CQUFBO0FBMUNaOztBQThDSTtFQUVJO3NCQUFBO0FBNUNSOztBQThDUTtFQUNJLFlBQUE7QUE1Q1o7O0FBZ0RJO0VBQ0k7Ozs7K0JBQUE7RUFLQSxvQ0FBQTtBQTlDUjs7QUFnRFE7RUFDSSxrQ0FBQTtBQTlDWjs7QUFtREE7RUFDSSxlQUFBO0FBaERKOztBQW9EQTtFQUNJLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0FBakRKOztBQXFESTtFQUNJLGtCQUFBO0VBQ0Esd0JBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtBQWxEUjs7QUFxREk7RUFDSSxpQ0FBQTtBQW5EUjs7QUF1REE7RUFDSSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQXBESjs7QUF1REE7RUFDSSxrQkFBQTtFQUNBLDBCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7QUFwREo7O0FBdURBO0VBQ0ksMEJBQUE7QUFwREo7O0FBd0RJO0VBQ0ksc0JBQUE7QUFyRFI7O0FBMERJO0VBQ0ksb0NBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsNkJBQUE7QUF2RFI7O0FBMkRBO0VBQ0ksZUFBQTtBQXhESjs7QUEyREE7RUFDSSxlQUFBO0FBeERKOztBQTJEQTtFQUNJLGVBQUE7QUF4REo7O0FBMkRBO0VBQ0ksZUFBQTtBQXhESjs7QUEyREE7RUFDSSxlQUFBO0FBeERKOztBQTJEQTs7RUFFSSxlQUFBO0FBeERKOztBQTJEQTtFQUNJLGVBQUE7QUF4REo7O0FBMkRBO0VBQ0ksZUFBQTtBQXhESjs7QUEyREE7RUFDSSxlQUFBO0FBeERKOztBQTJEQTtFQUNJLG1CQUFBO0VBQ0EsNkJBQUE7RUFDQSxrQkFBQTtBQXhESjs7QUEyREE7RUFDSSwwQkFBQTtBQXhESjs7QUEyREE7RUFDSSx3QkFBQTtFQUNBLDBCQUFBO0FBeERKOztBQTBESTtFQUNJLDBCQUFBO0FBeERSOztBQTREQTtFQUNJLFVBQUE7RUFDQSw4QkFBQTtFQUNBLGlDQUFBO0FBekRKOztBQTREQTtFQUNJLDJCQU
10095FBO0FBekRKOztBQTREQTtFQUNJLFVBQUE7RUFDQSw2QkFBQTtFQUNBLGdDQUFBO0FBekRKOztBQTREQTtFQUNJLGtCQUFBO0FBekRKOztBQTJESTtFQUNJLGVBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0FBekRSOztBQTZEQTtFQUNJLGVBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0FBMURKOztBQTZEQTtFQUNJLGVBQUE7RUFDQSw2QkFBQTtFQUNBLGNBQUE7QUExREo7O0FBNkRBO0VBQ0ksV0FBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLDhCQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxvQkFBQTtBQTFESjs7QUE2REU7RUFDRSxvQ0FBQTtFQUVBLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtBQTNESjs7QUE2REk7RUFDRSxlQUFBO0VBQ0EsVUFBQTtBQTNETjs7QUErREU7RUFDRSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQTVESjs7QUErREU7RUFDRSxzQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0FBNURKOztBQStERTtFQUNFLGlCQUFBO0FBNURKOztBQStERTtFQUNFLGVBQUE7QUE1REoiLCJmaWxlIjoiY2FydC5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjYmFja2dyb3VuZC1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuaW9uLWNvbnRlbnQge1xuICAgIC0tYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuLnBvcHVwLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcblxuICAgIC5wb3B1cC1jb250YWluZXItaW5uZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAwcHggIzQ4NDg0ODtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci13aGl0ZSk7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICAmLmhlaWdoT2sge1xuICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbiB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgdHJhbnNsYXRlKC0zMCUsIC0zMCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5jbG9zZS1idG4ge1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogM3B4O1xuICAgICAgICBjb2xvcjogIzVkNWQ1ZDtcbiAgICB9XG59XG5cbi5jYXJ0LWxpc3Qge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbjtcblxuICAgIC5maXJzdC1mbGV4IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDtcblxuICAgICAgICBpb24tZ3JpZCB7XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMTUzLCAxNTMsIDE1MywgMC42MTY2NjY3MzUwNTMzOTYzKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWNvbmQtZmxleCB7XG4gICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZGZkZmRmO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB9XG5cbiAgICAuY291bnRlciB7XG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIC8vd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5udW1iZXIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBtYXJnaW46IDAgOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsZWFyIHtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDhweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgM3B4ICNjY2M7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgICAgICAgICAgICY6YWN0aXZlLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgI
10095H1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5lZGl0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICB9XG5cbiAgICAudGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGNvbG9yOiAjNTM1MzUzO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN1YiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAvL29wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICBjb2xvcjogIzYyNjI2MjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWItc20ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW9uLWdyaWQge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgLmJvcmRlci1ib3R0b20ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm9yZGVyLWJvdHRvbSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZWVlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIH1cbn1cblxuLnRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uY2FydC10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTdweDtcblxuICAgIGlvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tcmVkKTtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuICAgIH1cbn1cblxuLmNhcnQtZm9vdGVyIHtcbiAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICBpb24tY29sIHtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogIzUzNTM1MztcbiAgICB9XG5cbiAgICBpb24taXRlbSB7XG4gICAgICAgIC0tcGFkZGluZy1zdGFydDogMDtcbiAgICAgICAgLS1pbm5lci1wYWRkaW5nLXN0YXJ0OiAwO1xuICAgIH1cblxuICAgIC5zdWJtaXQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGV4bztcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNvbWV0aGlnIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAtLW1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgLS1pbm5lci1wYWRkaW5nLXN0YXJ0OiA1cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG5cbiAgICAgICAgaW9uLWxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgY29sb3I6ICM1MzUzNTM7XG4gICAgICAgIH1cblxuICAgICAgICBpb24taW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpb24taWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW9uLWlucHV0IHtcblxuICAgICAgICAvKi0tcGFkZGluZy10b3A6MDtcbiAgICAtLXBhZGRpbmctYm90dG9tOjA7Ki9cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvdXBvbi1hY2NlcHQge1xuICAgICAgICAvKnBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7Ki9cbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tZ3JlZW4pO1xuXG4gICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tcmVkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbW1lbnQge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLy8gRURESVRFRCBIRVJFXG4uY2FydC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICNlY2VjZWM7XG4gICAgY29sb3I6ICM5NTk1OTU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmJvcmRlci1ib3R0b20ge1xuICAgIGlvbi1pdGVtIHtcbiAgICAgICAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xuICAgICAgICAtLWlubmVyLXBhZGRpbmctc3RhcnQ6IDA7XG4gICAgICAgIC0tcGFkZGluZy1lbmQ6IDA7XG4gICAgICAgIC0taW5uZXItcGFkZGluZy1lbmQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5kb3RlZC1ib3JkZXIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggZG90dGVkICNjOGM4Yzg7XG4gICAgfVxufVxuXG4uY29tbWVudCB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGNvbG9yOiAjYjBiMGIwO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG5pb24taXRlbTpub3QoLml0ZW0tbGFiZWwpIC5zYy1pb24tdGV4dGFyZWEtbWQtaCB7XG4gICAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjYmJiNmI2O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uY291cG9uLWFjY2VwdCB7XG4gICAgZm9udC1zaXplOiAyNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mb290ZXItY29tbWVudCB7XG4gICAgaW9uLWl0ZW0ge1xuICAgICAgICAtLWlubmVyLXBhZGRpbmctZW5kOiAwO1xuICAgIH1cbn1cblxuLnN1Ym1pdCB7XG4gICAgaW9uLWJ1dHRvbiB7XG4gICAgICAgIC0tYmFja2dyb3VuZDogcmdiYSgyMzEsIDc2LCA2MCwgMC40KTtcbiAgICAgICAgY29sb3I6IHJnYmEoMTkyLCA1NywgNDMsIDEuMCk7XG4gICAgICAgIC0tYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIC0tYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIC0tcGFkZGluZy1zdGFydDogMjBweDtcbiAgICAgICAgLS1wYWRkaW5nLWVuZDogMjBweDtcbiAgICAgICAgLS1wYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgLS1wYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWFjdGl2YXRlZDogZ3JlZW47XG4gICAgfVxufVxuXG4uY2FydC1saXN0IC5jb3VudGVyIC5udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLmNhcnQtbGlzdCAudGV4dCAudGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLmNhcnQtbGlzdCAudGV4dCAuc3ViLXNtIHtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYXJ0LWxpc3QgLnByaWNlIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5jYXJ0LWZvb3RlciBpb24tY29sIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5lcnJvci1ib3gsXG4uc3VjY2Vzcy1ib3gge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLmNhcnQtZm9vdGVyIGlvbi1jb2wge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLmNhcnQtZm9vdGVyIC5zdWJtaXQgYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5mczEyIHtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYXJ0LWNvbW1lbnQtZWRpdGluZyB7XG4gICAgYmFja2dyb3VuZDogIzAwYTkwMDtcbiAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdoaXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5mb250LXNpemUtMTgge1xuICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xufVxuXG4uYmFyLW1vZGUtYnRucyB7XG4gICAgcGFkZGluZzogMTBweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuXG4gICAgaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE3cHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5zZW5kLXRvLWtpdGNoZW4ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHVuc2V0O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldDtcbn1cblxuLnNlbmQtdG8ta2l0Y2hlbi1kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogZ3JheSAhaW1wb3J0YW50O1xufVxuXG4ucGF5IHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHVuc2V0O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHVuc2V0O1xufVxuXG4ub3JkZXItcHJlcGFyYXRpb24tdGltZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7XG4gICAgICAgI
10095HBhZGRpbmc6IDVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbn1cblxuLmN1c3RvbS1wcmVwe1xuICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi5wcmljZS1saW5lLXRocm91Z2gge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICBjb2xvcjogI2ZmMGUwMDtcbn1cblxuLmRpc2gtbm90LWF2YWlsYWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA3NXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmFkYWRiZDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogOTtcbiAgICBtYXJnaW46IC01cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGNvbG9yOiAjMmQyYjJiO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBmb250LWZhbWlseTogY3Vyc2l2ZTtcbiAgfVxuICBcbiAgLmhpZ2hsaWdodCB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiL2Fzc2V0cy9icnVzaC5zdmdcIik7XG4gICAgLy8gcGFkZGluZzogMTBweCAzMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIFxuICAgIGlvbi1pY29ue1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgY29sb3I6IHJlZDtcbiAgICB9XG4gIH1cbiAgXG4gIC50cmFzaC1jb250YWluZXJ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cblxuICAuaGlnaGxpZ2h0LXVuYXZhaWxhYmxle1xuICAgIGJvcmRlcjogM3B4IGRvdHRlZCByZWQ
100957XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmNhY2E7XG4gICAgbWFyZ2luLXRvcDo1cHg7XG4gIH1cblxuICAuaGlnaHRsaWdodC1zcGVje1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICB9XG5cbiAgLm1hcmdpbi10b3AtNXtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gIH0iXX0= */");
10096
10097/***/ }),
10098
10099/***/ 9698:
10100/*!********************************************************************!*\
10101  !*** ./src/app/views/modals/cross-selling/cross-selling.page.scss ***!
10102  \********************************************************************/
10103/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10104
10105"use strict";
10106__webpack_require__.r(__webpack_exports__);
10107/* harmony default export */ __webpack_exports__["default"] = ("#background-content {\n  background-color: transparent;\n}\n\nion-content {\n  --background: rgba(0, 0, 0, 0);\n  font-family: \"roboto\";\n}\n\n.popup-container {\n  width: 100%;\n  height: 100vh;\n}\n\n.popup-container .popup-container-inner {\n  border-radius: 5px;\n  box-shadow: 0 3px 5px 0px #484848;\n  width: 80%;\n  min-width: 300px;\n  min-height: 200px;\n  background: var(--ion-color-white);\n  margin: auto;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  padding-bottom: 70px;\n}\n\n.popup-container .popup-container-inner ul {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n}\n\n.title {\n  display: block;\n  width: 100%;\n  position: relative;\n  border-bottom: 1px solid #e3e3e3;\n  color: #535353;\n  font-family: exo;\n  text-transform: uppercase;\n  box-shadow: 0 1px 2px 0px #dfdfdf;\n}\n\n.title .close-btn {\n  font-size: 25px;\n  position: absolute;\n  top: 0;\n  right: 3px;\n  color: #5d5d5d;\n}\n\n.topping-radio {\n  --border-color-checked: #e32d2d;\n  --background-checked: #e32d2d;\n  background: #d9d9d9;\n  color: var(--ion-color-white);\n  box-sizing: revert;\n  border-radius: 100%;\n  transition: 1s;\n  --color-checked: var(--ion-color-white);\n}\n\n.topping-radio.checkbox-checked {\n  background: #e32d2d;\n}\n\n.radio-group ion-item,\n.checkboxgroup ion-item {\n  --min-height: 10px;\n}\n\n.radio-group ion-item ion-label,\n.checkboxgroup ion-item ion-label {\n  font-size: 13px;\n}\n\n.radio-group ion-item ion-label.label-2,\n.checkboxgroup ion-item ion-label.label-2 {\n  font-size: 12px;\n  color: #797979;\n}\n\n.radio-group ion-item ion-label.label-1,\n.checkboxgroup ion-item ion-label.label-1 {\n  color: #535353;\n  font-weight: bold;\n}\n\n.radio-group ion-item ion-icon,\n.checkboxgroup ion-item ion-icon {\n  font-size: 20px;\n}\n\n.dropdown ion-item {\n  --inner-padding-start: 0;\n  --padding-start: 0;\n  padding: 0;\n  font-size: 14px;\n  color: #535353;\n}\n\n.dropdown ion-item ion-label {\n  padding-left: 15px;\n  font-weight: bold;\n}\n\n.dropdown ion-select {\n  color: #ef1b32b3;\n  font-size: 12px;\n  font-weight: bold;\n}\n\n.checkboxgroup ion-item {\n  /*--min-height: 40px;*/\n}\n\n.checkboxgroup ion-checkbox {\n  --background: #d9d9d9;\n  --background-checked: #e32d2d;\n  --border-width: 5px;\n  --size: 22px;\n  --border-color-checked: #e32d2d;\n  --border-color: #d9d9d9;\n  --checkmark-width: 5px;\n  margin: 5px 10px 10px 0;\n}\n\n.checkboxgroup .min-max {\n  padding-bottom: 5px;\n  padding-bottom: 5px;\n  position: absolute;\n  right: 10px;\n  z-index: 5;\n}\n\n.checkboxgroup .min-max button {\n  color: #9f9f9f;\n  font-weight: bold;\n  background: #f2f2f2;\n  border-radius: 3px;\n  transform: translateY(3px);\n  margin: 0 3px;\n  padding: 5px 6px;\n}\n\n.checkboxgroup .min-max button ion-icon {\n  font-size: 14px;\n}\n\n.checkboxgroup .min-max span {\n  color: #5e5e5e;\n  font-size: 13px;\n  padding: 3px 8px;\n  border-radius: 5px;\n  font-weight: bold;\n}\n\n.radio-title {\n  padding: 0;\n}\n\n.radio-title ion-label {\n  position: relative;\n  margin: 0;\n}\n\n.radio-title ion-label span {\n  z-index: 5555;\n  position: relative;\n  background: var(--ion-color-white);\n  margin-left: 20px;\n  font-size: 14px;\n  font-family: exo;\n  color: #d4d4d4;\n  padding: 10px;\n  font-weight: 600;\n}\n\n.radio-title ion-label i {\n  position: absolute;\n  height: 1px;\n  width: 100%;\n  display: block;\n  background: #d4d4d463;\n  bottom: 40%;\n}\n\n.red {\n  color: var(--ion-color-custom-thr-red);\n}\n\n.toping-body {\n  height: 500px;\n  overflow-y: auto;\n}\n\n.toping-body-web {\n  height: 470px !important;\n}\n\n.submit-buttons {\n  margin-bottom: 20px;\n}\n\n.footer-box {\n  position: absolute;\n  bottom: 10px;\n  width: 100%;\n}\n\n.error {\n  color: #f91010;\n  font-size: 13px;\n  padding: 5px;\n}\n\n.toping_required {\n  color: #f91010 !important;\n}\n\n.warning-message {\n  font-size: 12px;\n  color: #d4d4d4;\n}\n\n.select-label {\n  padding-left: 16px;\n  font-weight: bold;\n}\n\n.question-container {\n  padding: 10px;\n  max-height: 500px;\n  overflow-x: auto;\n}\n\n.question-container .question-card {\n  width: 100%;\n}\n\n.question-container .question-card .question-btn {\n  width: 100%;\n  font-size: 18px !important;\n}\n\n.skip-btn a {\n  color: #f91010 !important;\n}\n\n.order-list {\n  padding: 0;\n  margin: 0;\n}\n\n.order-list li.order-list-li {\n  list-style: none;\n  border-bottom: 1px solid #e5e5e5;\n  padding: 5px 5px 5px 5px;\n}\n\n.order-list li.order-list-li h3 {\n  margin: 0;\n  margin-bottom: 0px;\n  font-size: 14px;\n  margin-bottom: 3px;\n  color: #262626;\n  font-size: 17px;\n}\n\n.order-list li.order-list-li h3 ion-icon {\n  color: #848484;\n  margin-bottom: -2px;\n}\n\n.order-list-img {\n  text-align: center;\n  position: relative;\n}\n\n.order-list-img .price {\n  position: absolute;\n  left: 50%;\n  transform: translate(-50%, 30%);\n  bottom: 0;\n  background: #ebebeb;\n  padding: 5px 8px;\n  font-weight: bold;\n  color: var(--ion-color-custom-thr-red);\n  border-radius: 5px;\n  box-shadow: 0 0 5px #aeadad;\n  width: 60px;\n  font-size: 10px;\n  font-family: roboto;\n}\n\n.order-list-img .img {\n  border-radius: 10px;\n  height: 60px;\n  width: 50px;\n}\n\n.ion-item-order-list-start {\n  margin-right: 10px;\n}\n\n.order-list-price {\n  font-weight: bold;\n  margin-left: 10px;\n}\n\n.ion-item-order-list,\n.ion-item-order-list-item {\n  --inner-padding-bottom: 0;\n  --inner-padding-end: 0;\n  --inner-padding-start: 0;\n  --inner-padding-top: 0;\n  --outer-padding-start: 0;\n  --padding-start: 0;\n  --padding-end: 0;\n}\n\n.font-size-20 {\n  font-size: 20px !important;\n}\n\n.btn-size-80 {\n  width: 90% !important;\n}\n\n.done-cross-selling {\n  float: right;\n  margin-top: 10px;\n  font-size: 28px;\n  color: #96d741;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNyb3NzLXNlbGxpbmcucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksNkJBQUE7QUFDSjs7QUFFQTtFQUNJLDhCQUFBO0VBQ0EscUJBQUE7QUFDSjs7QUFFQTtFQUNJLFdBQUE7RUFDQSxhQUFBO0FBQ0o7O0FBQUk7RUFDSSxrQkFBQTtFQUNBLGlDQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQ0FBQTtFQUNBLFlBQUE7
10107RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsZ0NBQUE7RUFDQSxvQkFBQTtBQUVSOztBQURRO0VBQ0ksZ0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtBQUdaOztBQUVBO0VBQ0ksY0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGdDQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQ0FBQTtBQUNKOztBQUFJO0VBQ0ksZUFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0FBRVI7O0FBRUE7RUFLSSwrQkFBQTtFQUNBLDZCQUFBO0VBRUEsbUJBQUE7RUFDQSw2QkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsdUNBQUE7QUFKSjs7QUFSSTtFQUNJLG1CQUFBO0FBVVI7O0FBTUk7O0VBQ0ksa0JBQUE7QUFGUjs7QUFHUTs7RUFDSSxlQUFBO0FBQVo7O0FBQ1k7O0VBQ0ksZUFBQTtFQUNBLGNBQUE7QUFFaEI7O0FBQVk7O0VBQ0ksY0FBQTtFQUNBLGlCQUFBO0FBR2hCOztBQUFROztFQUNJLGVBQUE7QUFHWjs7QUFHSTtFQUNJLHdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QUFBUjs7QUFDUTtFQUNJLGtCQUFBO0VBQ0EsaUJBQUE7QUFDWjs7QUFFSTtFQUNJLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0FBQVI7O0FBS0k7RUFDSSxzQkFBQTtBQUZSOztBQUtJO0VBQ0kscUJBQUE7RUFDQSw2QkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLCtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxzQkFBQTtFQUVBLHVCQUFBO0FBSlI7O0FBTUk7RUFDSSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtBQUpSOztBQUtRO0VBQ0ksY0FBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLDBCQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0FBSFo7O0FBSVk7RUFDSSxlQUFBO0FBRmhCOztBQUtRO0VBQ0ksY0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7QUFIWjs7QUFRQTtFQUNJLFVBQUE7QUFMSjs7QUFNSTtFQUNJLGtCQUFBO0VBQ0EsU0FBQTtBQUpSOztBQUtRO0VBQ0ksYUFBQTtFQUNBLGtCQUFBO0VBQ0Esa0NBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUVBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7QUFKWjs7QUFNUTtFQUNJLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBRUEscUJBQUE7RUFDQSxXQUFBO0FBTFo7O0FBV0E7RUFDSSxzQ0FBQTtBQVJKOztBQVdBO0VBQ0ksYUFBQTtFQUNBLGdCQUFBO0FBUko7O0FBV0E7RUFDSSx3QkFBQTtBQVJKOztBQVdBO0VBQ0ksbUJBQUE7QUFSSjs7QUFXQTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7QUFSSjs7QUFXQTtFQUNJLGNBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtBQVJKOztBQVdBO0VBQ0kseUJBQUE7QUFSSjs7QUFXQTtFQUNJLGVBQUE7RUFDQSxjQUFBO0FBUko7O0FBV0E7RUFDSSxrQkFBQTtFQUNBLGlCQUFBO0FBUko7O0FBV0E7RUFDSSxhQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtBQVJKOztBQVVJO0VBQ0ksV0FBQTtBQVJSOztBQVVRO0VBQ0ksV0FBQTtFQUNBLDBCQUFBO0FBUlo7O0FBY0k7RUFDSSx5QkFBQTtBQVhSOztBQWVBO0VBQ0ksVUFBQTtFQUNBLFNBQUE7QUFaSjs7QUFjSTtFQUNJLGdCQUFBO0VBQ0EsZ0NBQUE7RUFDQSx3QkFBQTtBQVpSOztBQWFRO0VBQ0ksU0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7QUFYWjs7QUFhWTtFQUNJLGNBQUE7RUFDQSxtQkFBQTtBQVhoQjs7QUFpQkE7RUFDSSxrQkFBQTtFQUNBLGtCQUFBO0FBZEo7O0FBZUk7RUFDSSxrQkFBQTtFQUNBLFNBQUE7RUFDQSwrQkFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VBRUEsaUJBQUE7RUFDQSxzQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsMkJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FBZFI7O0FBaUJJO0VBQ0ksbUJBQUE7RUFFQSxZQUFBO0VBQ0EsV0FBQTtBQWhCUjs7QUFvQkE7RUFDSSxrQkFBQTtBQWpCSjs7QUFvQkE7RUFDSSxpQkFBQTtFQUNBLGlCQUFBO0FBakJKOztBQW9CQTs7RUFFSSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0Esd0JBQUE7RUFDQSxzQkFBQTtFQUNBLHdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtBQWpCSjs7QUFvQkE7RUFDSSwwQkFBQTtBQWpCSjs7QUFvQkE7RUFDSSxxQkFBQTtBQWpCSjs7QUFvQkE7RUFDSSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtBQWpCSiIsImZpbGUiOiJjcm9zcy1zZWxsaW5nLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiNiYWNrZ3JvdW5kLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5pb24tY29udGVudCB7XG4gICAgLS1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgIGZvbnQtZmFtaWx5OiBcInJvYm90b1wiO1xufVxuXG4ucG9wdXAtY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIC5wb3B1cC1jb250YWluZXItaW5uZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAwcHggIzQ4NDg0ODtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci13aGl0ZSk7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDcwcHg7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UzZTNlMztcbiAgICBjb2xvcjogIzUzNTM1MztcbiAgICBmb250LWZhbWlseTogZXhvO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDBweCAjZGZkZmRmO1xuICAgIC5jbG9zZS1idG4ge1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICAgI
10107HBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogM3B4O1xuICAgICAgICBjb2xvcjogIzVkNWQ1ZDtcbiAgICB9XG59XG5cbi50b3BwaW5nLXJhZGlvIHtcbiAgICAmLmNoZWNrYm94LWNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTMyZDJkO1xuICAgIH1cblxuICAgIC0tYm9yZGVyLWNvbG9yLWNoZWNrZWQ6ICNlMzJkMmQ7XG4gICAgLS1iYWNrZ3JvdW5kLWNoZWNrZWQ6ICNlMzJkMmQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAjZDlkOWQ5O1xuICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xuICAgIGJveC1zaXppbmc6IHJldmVydDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IDFzO1xuICAgIC0tY29sb3ItY2hlY2tlZDogdmFyKC0taW9uLWNvbG9yLXdoaXRlKTtcbn1cblxuLnJhZGlvLWdyb3VwLFxuLmNoZWNrYm94Z3JvdXAge1xuICAgIGlvbi1pdGVtIHtcbiAgICAgICAgLS1taW4taGVpZ2h0OiAxMHB4O1xuICAgICAgICBpb24tbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgJi5sYWJlbC0yIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM3OTc5Nzk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmxhYmVsLTEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjNTM1MzUzO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlvbi1pY29uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRyb3Bkb3duIHtcbiAgICBpb24taXRlbSB7XG4gICAgICAgIC0taW5uZXItcGFkZGluZy1zdGFydDogMDtcbiAgICAgICAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAjNTM1MzUzO1xuICAgICAgICBpb24tbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW9uLXNlbGVjdCB7XG4gICAgICAgIGNvbG9yOiAjZWYxYjMyYjM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxufVxuXG4uY2hlY2tib3hncm91cCB7XG4gICAgaW9uLWl0ZW0ge1xuICAgICAgICAvKi0tbWluLWhlaWdodDogNDBweDsqL1xuICAgIH1cbiAgICAvLyBUSElTRURJVEVEXG4gICAgaW9uLWNoZWNrYm94IHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiAjZDlkOWQ5O1xuICAgICAgICAtLWJhY2tncm91bmQtY2hlY2tlZDogI2UzMmQyZDtcbiAgICAgICAgLS1ib3JkZXItd2lkdGg6IDVweDtcbiAgICAgICAgLS1zaXplOiAyMnB4O1xuICAgICAgICAtLWJvcmRlci1jb2xvci1jaGVja2VkOiAjZTMyZDJkO1xuICAgICAgICAtLWJvcmRlci1jb2xvcjogI2Q5ZDlkOTtcbiAgICAgICAgLS1jaGVja21hcmstd2lkdGg6IDVweDtcbiAgICAgICAgLy8gbWFyZ2luLXRvcDogLTNweDsgUkVNT1ZFRFxuICAgICAgICBtYXJnaW46IDVweCAxMHB4IDEwcHggMDsgLy9BRERFRFxuICAgIH1cbiAgICAubWluLW1heCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBjb2xvcjogIzlmOWY5ZjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCA2cHg7XG4gICAgICAgICAgICBpb24taWNvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICM1ZTVlNWU7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggOHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5yYWRpby10aXRsZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBpb24tbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICB6LWluZGV4OiA1NTU1O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGV4bztcbiAgICAgICAgICAgIC8vY29sb3I6ICM0ZDRkNGQ7XG4gICAgICAgICAgICBjb2xvcjogI2Q0ZDRkNDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB9XG4gICAgICAgIGkge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiAjY2VjZWNlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Q0ZDRkNDYzO1xuICAgICAgICAgICAgYm90dG9tOiA0MCU7XG4gICAgICAgICAgICAvL2JveC1zaGFkb3c6IDAgLTFweCAwcHggMC41cHggI2UxZTFlMTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnJlZCB7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tdGhyLXJlZCk7XG59XG5cbi50b3BpbmctYm9keSB7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4udG9waW5nLWJvZHktd2ViIHtcbiAgICBoZWlnaHQ6IDQ3MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5zdWJtaXQtYnV0dG9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmZvb3Rlci1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5lcnJvciB7XG4gICAgY29sb3I6ICNmOTEwMTA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHBhZGRpbmc6IDVweDtcbn1cblxuLnRvcGluZ19yZXF1aXJlZCB7XG4gICAgY29sb3I6ICNmOTEwMTAgIWltcG9ydGFudDtcbn1cblxuLndhcm5pbmctbWVzc2FnZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjZ
10107DRkNGQ0O1xufVxuXG4uc2VsZWN0LWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5xdWVzdGlvbi1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWF4LWhlaWdodDogNTAwcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIC5xdWVzdGlvbi1jYXJkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLnF1ZXN0aW9uLWJ0biB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2tpcC1idG4ge1xuICAgIGEge1xuICAgICAgICBjb2xvcjogI2Y5MTAxMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm9yZGVyLWxpc3Qge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgbGkub3JkZXItbGlzdC1saSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBwYWRkaW5nOiA1cHggNXB4IDVweCA1cHg7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICAgICAgICAgIGNvbG9yOiAjMjYyNjI2O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuXG4gICAgICAgICAgICBpb24taWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM4NDg0ODQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm9yZGVyLWxpc3QtaW1nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC5wcmljZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAzMCUpO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gICAgICAgIHBhZGRpbmc6IDVweCA4cHg7XG4gICAgICAgIC8vIGVkaXRlZCBoZXJlXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS10aHItcmVkKTsgLy9yZ2IoMzksIDE3NCwgOTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2FlYWRhZDtcbiAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IHJvYm90bztcbiAgICB9XG5cbiAgICAuaW1nIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgLy9ib3gtc2hhZG93OiAwIDJweCAzcHggMHB4ICNjMWMxYzE7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgfVxufVxuXG4uaW9uLWl0ZW0tb3JkZXItbGlzdC1zdGFydCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ub3JkZXItbGlzdC1wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5pb24taXRlbS1vcmRlci1saXN0LFxuLmlvbi1pdGVtLW9yZGVyLWxpc3QtaXRlbSB7XG4gICAgLS1pbm5lci1wYWRkaW5nLWJvdHRvbTogMDtcbiAgICAtLWlubmVyLXBhZGRpbmctZW5kOiAwO1xuICAgIC0taW5uZXItcGFkZGluZy1zdGFydDogMDtcbiAgICAtLWlubmVyLXBhZGRpbmctdG9wOiAwO1xuICAgIC0tb3V0ZXItcGFkZGluZy1zdGFydDogMDtcbiAgICAtLXBhZGRpbmctc3RhcnQ6IDA7XG4gICAgLS1wYWRkaW5nLWVuZDogMDtcbn1cblxuLmZvbnQtc2l6ZS0yMCB7XG4gICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tc2l6ZS04MCB7XG4gICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xufVxuXG4uZG9uZS1jcm9zcy1zZWxsaW5nIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgY29sb3I6ICM5NmQ3NDE7XG59XG4iXX0= */");
10108
10109/***/ }),
10110
10111/***/ 30822:
10112/*!**********************************************************************!*\
10113  !*** ./src/app/views/modals/delivery-times/delivery-times.page.scss ***!
10114  \**********************************************************************/
10115/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10116
10117"use strict";
10118__webpack_require__.r(__webpack_exports__);
10119/* harmony default export */ __webpack_exports__["default"] = (".tour-container {\n  padding: 10px;\n  font-size: 12px;\n  text-align: center;\n}\n.tour-container .btn-ok {\n  background: #0b8fed;\n  color: #ffffff;\n  padding: 1px 5px;\n  border-radius: 5px;\n}\n.times-header {\n  font-size: 10px;\n  display: flex;\n  justify-content: space-between;\n  background: #414040;\n  padding: 5px;\n  border-radius: 5px;\n  margin-bottom: 2px;\n  color: white;\n}\n.times-card {\n  display: flex;\n  justify-content: space-between;\n  background: #dfdfdf;\n  padding: 5px;\n  border-radius: 5px;\n  font-weight: 600;\n  margin-bottom: 2px;\n}\n.times-card .time {\n  border-right: 1px solid black;\n  padding-right: 10px;\n}\n.active-t {\n  background: #ffb11e;\n  color: #3f3f3f;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlbGl2ZXJ5LXRpbWVzLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGFBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7QUFDSjtBQUNJO0VBQ0ksbUJBQUE7
10119RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBQUNSO0FBR0E7RUFDSSxlQUFBO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUFBSjtBQUdBO0VBQ0ksYUFBQTtFQUNBLDhCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0FBQUo7QUFFSTtFQUNJLDZCQUFBO0VBQ0EsbUJBQUE7QUFBUjtBQUlBO0VBQ0ksbUJBQUE7RUFDQSxjQUFBO0FBREoiLCJmaWxlIjoiZGVsaXZlcnktdGltZXMucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRvdXItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAuYnRuLW9rIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzBiOGZlZDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG59XG5cbi50aW1lcy1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBiYWNrZ3JvdW5kOiAjNDE0MDQwO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnRpbWVzLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJhY2tncm91bmQ6ICNkZmRmZGY7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcblxuICAgIC50aW1lIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2s7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgfVxufVxuXG4uYWN0aXZlLXQge1xuICAgIGJhY2tncm91bmQ6ICNmZmIxMWU7XG4gICAgY29sb3I6ICMzZjNmM2Y7XG59Il19 */");
10120
10121/***/ }),
10122
10123/***/ 64054:
10124/*!****************************************************!*\
10125  !*** ./src/app/views/modals/popup/popup.page.scss ***!
10126  \****************************************************/
10127/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10128
10129"use strict";
10130__webpack_require__.r(__webpack_exports__);
10131/* harmony default export */ __webpack_exports__["default"] = ("#background-content {\n  background-color: transparent;\n}\n\nion-content {\n  --background: var(--ion-color-custom-black);\n}\n\n.popup-container {\n  width: 100%;\n  height: 100vh;\n}\n\n.popup-container .popup-container-inner {\n  border-radius: 5px;\n  box-shadow: 0 3px 5px 0px #484848;\n  width: 80%;\n  min-width: 300px;\n  background: var(--ion-color-white);\n  margin: auto;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n.popup-container .popup-container-inner ul {\n  list-style: none;\n  padding: 0;\n}\n\n.title {\n  display: block;\n  width: 100%;\n  position: relative;\n  background: var(--ion-color-custom-six-red);\n  color: var(--ion-color-white);\n  font-weight: 600;\n  /*border-top-left-radius: 10px;\n  border-top-right-radius: 10px;*/\n}\n\n.title .close-btn {\n  font-size: 25px;\n  position: absolute;\n  top: 0;\n  right: 3px;\n  color: var(--ion-color-white);\n}\n\n.lang-con {\n  width: 22px;\n  height: 15px;\n  display: inline-block;\n  background-size: cover;\n  background-position: center;\n  margin-bottom: -2px;\n  border-radius: 3px;\n}\n\n.lang-con.de {\n  background-image: url(\"/assets/img/languages/de.png\");\n}\n\n.lang-con.en {\n  background-image: url(\"/assets/img/languages/en.png\");\n}\n\nion-item {\n  --highlight-color-valid: transparent;\n  --highlight-color-invalid: transparent;\n  --highlight-color-focused: var(--ion-color-light);\n}\n\n.select-restaurant-btn {\n  text-align: center;\n  padding: 10px;\n}\n\n.select-restaurant-btn .btn {\n  padding: 3px 10px;\n  background: #4a8fe1;\n  border-radius: 5px;\n  font-size: 14px;\n}\n\n.select-restaurant-alert {\n  padding: 10px;\n  font-size: 14px;\n  display: inline-flex;\n}\n\n.icon-container {\n  font-size: 30px;\n  margin-right: 16px;\n}\n\n.btn-link {\n  cursor: pointer;\n  margin-left: 10px;\n  font-size: 12px;\n  text-decoration: underline;\n}\n\n.unable-to-process-order-alert {\n  padding: 5px 10px;\n  font-size: 14px;\n  display: inline-flex;\n  justify-content: center;\n  width: 100%;\n  align-items: center;\n  text-align: center;\n  background: #ff071c;\n  color: white;\n  margin-bottom: 15px;\n}
10131\n\n.unavailable-menu-list .unavailable-menu-card-details {\n  margin: 10px 10px;\n  border: 1px dotted #ff071c;\n  border-top: 5px solid #ff071c;\n  padding: 6px;\n  border-radius: 7px;\n  font-size: 12px;\n}\n\n.unavailable-menu-list .unavailable-menu-card-details .available-times {\n  margin-left: 15px;\n  background: #ffe1e4;\n  padding: 5px 20px;\n  border-radius: 5px;\n  font-size: 12px;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.unavailable-title {\n  font-size: 14px;\n}\n\n.unavailable-close-btn-container {\n  display: flex;\n  justify-content: center;\n  font-size: 14px;\n}\n\n.unavailable-close-btn-container span {\n  border-radius: 5px;\n  background: #e00f21;\n  color: white;\n  padding: 3px 10px;\n  margin: 10px;\n}\n\n.icon-container-unavailable {\n  font-size: 40px;\n  margin-right: 10px;\n  height: 40px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBvcHVwLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDZCQUFBO0FBQ0Y7O0FBRUE7RUFDRSwyQ0FBQTtBQUNGOztBQUVBO0VBQ0UsV0FBQTtFQUNBLGFBQUE7QUFDRjs7QUFDRTtFQUNFLGtCQUFBO0VBQ0EsaUNBQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQ0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsZ0NBQUE7QUFDSjs7QUFDSTtFQUNFLGdCQUFBO0VBQ0EsVUFBQTtBQUNOOztBQU1BO0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLDJDQUFBO0VBQ0EsNkJBQUE7RUFDQSxnQkFBQTtFQUVBO2lDQUFBO0FBSEY7O0FBS0U7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLDZCQUFBO0FBSEo7O0FBUUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSwyQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUFMRjs7QUFPRTtFQUNFLHFEQUFBO0FBTEo7O0FBUUU7RUFDRSxxREFBQTtBQU5KOztBQVdBO0VBQ0Usb0NBQUE7RUFDQSxzQ0FBQTtFQUNBLGlEQUFBO0FBUkY7O0FBV0E7RUFRRSxrQkFBQTtFQUNBLGFBQUE7QUFmRjs7QUFpQkU7RUFDRSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0FBZko7O0FBbUJBO0VBQ0UsYUFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtBQWhCRjs7QUFtQkE7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7QUFoQkY7O0FBbUJBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLDBCQUFBO0FBaEJGOztBQW9CQTtFQUNFLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0FBakJGOztBQXFCRTtFQUNFLGlCQUFBO0VBQ0EsMEJBQUE7RUFDQSw2QkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUFsQko7O0FBb0JJO0VBQ0UsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0FBbEJOOztBQXVCQTtFQUNFLGVBQUE7QUFwQkY7O0FBdUJBO0VBQ0UsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsZUFBQTtBQXBCRjs7QUFzQkU7RUFDRSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtBQXBCSjs7QUF3QkE7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0FBckJGIiwiZmlsZSI6InBvcHVwLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiNiYWNrZ3JvdW5kLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuaW9uLWNvbnRlbnQge1xuICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tYmxhY2spO1xufVxuXG4ucG9wdXAtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG5cbiAgLnBvcHVwLWNvbnRhaW5lci1pbm5lciB7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAwcHggIzQ4NDg0ODtcbiAgICB3aWR0aDogODAlO1xuICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXdoaXRlKTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgIHVsIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICB9XG59XG5cblxuLnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tc2l4LXJlZCk7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xuICBmb250LXdlaWdodDogNjAwO1xuXG4gIC8qYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7Ki9cbiAgLmNsb3NlLWJ0biB7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDNweDtcbiAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdoaXRlKTtcbiAgfVxufVxuXG5cbi5sYW5nLWNvbiB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAtMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgJi5kZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9pbWcvbGFuZ3VhZ2VzL2RlLnBuZ1wiKTtcbiAgfVxuXG4gICYuZW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvaW1nL2xhbmd1YWdlcy9lbi5wbmdcIik7XG4gIH1cbn1cblxuXG5pb24taXRlbSB7XG4gIC0taGlnaGxpZ2h0LWNvbG9yLXZhbGlkOiB0cmFuc3B
10131hcmVudDtcbiAgLS1oaWdobGlnaHQtY29sb3ItaW52YWxpZDogdHJhbnNwYXJlbnQ7XG4gIC0taGlnaGxpZ2h0LWNvbG9yLWZvY3VzZWQ6IHZhcigtLWlvbi1jb2xvci1saWdodCk7XG59XG5cbi5zZWxlY3QtcmVzdGF1cmFudC1idG4ge1xuICAvLyBwYWRkaW5nOiA1cHg7XG4gIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLy8gYmFja2dyb3VuZDogIzRhOGZlMTtcbiAgLy8gYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICAvLyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xuICAvLyBjb2xvcjogd2hpdGU7XG4gIC8vIGZvbnQtc2l6ZTogMTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxMHB4O1xuXG4gIC5idG4ge1xuICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICM0YThmZTE7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuXG4uc2VsZWN0LXJlc3RhdXJhbnQtYWxlcnQge1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4uaWNvbi1jb250YWluZXIge1xuICBmb250LXNpemU6IDMwcHg7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cblxuLmJ0bi1saW5rIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuXG4udW5hYmxlLXRvLXByb2Nlc3Mtb3JkZXItYWxlcnQge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNmZjA3MWM7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnVuYXZhaWxhYmxlLW1lbnUtbGlzdCB7XG4gIC51bmF2YWlsYWJsZS1tZW51LWNhcmQtZGV0YWlscyB7XG4gICAgbWFyZ2luOiAxMHB4IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggZG90dGVkICNmZjA3MWM7XG4gICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICNmZjA3MWM7XG4gICAgcGFkZGluZzogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICAuYXZhaWxhYmxlLXRpbWVzIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZTFlNDtcbiAgICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbi51bmF2YWlsYWJsZS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnVuYXZhaWxhYmxlLWNsb3NlLWJ0bi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuXG4gIHNwYW4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjI0LCAxNSwgMzMpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICBtYXJnaW46IDEwcHg7XG4gIH1cbn1cblxuLmljb24tY29udGFpbmVyLXVuYXZhaWxhYmxlIHtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGhlaWdodDogNDBweDtcbn0iXX0= */");
10132
10133/***/ }),
10134
10135/***/ 3858:
10136/*!****************************************************************************!*\
10137  !*** ./src/app/views/modals/select-order-type/select-order-type.page.scss ***!
10138  \****************************************************************************/
10139/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10140
10141"use strict";
10142__webpack_require__.r(__webpack_exports__);
10143/* harmony default export */ __webpack_exports__["default"] = ("#background-content {\n  background-color: transparent;\n}\n\nion-content {\n  --background: rgba(0, 0, 0, 0);\n  font-family: \"roboto\";\n}\n\n.popup-container {\n  width: 100%;\n  height: 100vh;\n}\n\n.popup-container .popup-container-inner {\n  border-radius: 5px;\n  box-shadow: 0 3px 5px 0px #484848;\n  width: 80%;\n  min-width: 300px;\n  min-height: 200px;\n  background: var(--ion-color-white);\n  margin: auto;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  padding-bottom: 10px;\n}\n\n.popup-container .popup-container-inner ul {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n}\n\n.title {\n  display: block;\n  width: 100%;\n  position: relative;\n  border-bottom: 1px solid #e3e3e3;\n  color: #535353;\n  font-family: exo;\n  text-transform: uppercase;\n  box-shadow: 0 1px 2px 0px #dfdfdf;\n}\n\n.title .close-btn {\n  font-size: 25px;\n  position: absolute;\n  top: 0;\n  right: 3px;\n  color: #5d5d5d;\n}\n\n.form-container {\n  padding: 10px;\n  max-height: 500px;\n  overflow-x: auto;\n}\n\n.form-container .question-card {\n  width: 100%;\n}\n\n.form-container .question-card .question-btn {\n  width: 100%;\n  font-size: 18px !important;\n}\n\n.red {\n  color: var(--ion-color-custom-thr-red);\n}\n\nh1 {\n  color: var(--ion-color-custom-sec-gray);\n  font-size: 32px;\n  font-weight: bold;\n}\n\n.epit-container {\n  background-color: var(--ion-color-sec-white);\n  min-height: 100%;\n}\n\nh4 {\n  color: #808080;\n  font-size: 18px;\n}\n\n.searchbar {\n  margin-top: 10px;\n  position: relative;\n}\n\n.searchbar ion-label {\n  color: var(--ion-color-fiv-white);\n  font-size: 14px;\n}\n\n.searchbar .input {\n  border-bottom: 1px solid var(--ion-color-fiv-white);\n  color: var(--ion-color-custom-sec-gray);\n  font-size: 18px;\n  padding-right: 40px !important;\n}\n\n.searchbar ion-icon.closeicon {\n  position: absolute;\n  top: 30px;\n  right: 10px;\n  font-size: 22px;\n  z-index: 2;\n}\n\n.searchbar .search-drop {\n  max-height: 300px;\n  width: 100%;\n  position: absolute;\n  background: var(--ion-color-sec-white);\n  z-index: 300;\n  padding: 0 10px;\n  border-bottom-left-radius: 10px;\n  border-bottom-right-radius: 10px;\n  box-shadow: 0 6px 5px 0px #8c8c8c;\n}\n\n.searchbar .search-drop ul {\n  list-style: none;\n  padding: 0;\n}\n\n.searchbar .search-drop ul li {\n  padding: 10px 0;\n  color: #7b7979;\n}\n\n.searchbar .search-drop ul li .li-text {\n  display: inline-block;\n  margin-top: -20px;\n  transform: translateY(-8px);\n  margin-left: 10px;\n  font-size: 15px;\n}\n\n.searchbar .search-drop ul li .li-text span {\n  color: var(--ion-color-custom-sec-gray);\n  font-weight: bold;\n}\n\n.searchbar .search-drop .dark {\n  color: var(--ion-color-custom-sec-gray);\n}\n\n.alert div {\n  text-align: right;\n  font-size: 12px;\n  color: var(--ion-color-custom-six-red);\n  margin-top: 3px;\n}\n\n.btn-row {\n  text-align: center;\n  margin-bottom: 10px;\n}\n\n.findMe {\n  text-align: center;\n  padding-top: 5px;\n}\n\n.table-container {\n  padding: 10px !important;\n  max-height: 350px;\n  overflow: auto;\n}\n\n.table-container .table-select-row {\n  padding: 10px;\n  border-bottom: 1px #e4e4e4 solid;\n}\n\n.table-container .table-select-row ion-icon {\n  float: right;\n  color: gray;\n}\n\n.table-container .selected {\n  color: red;\n}\n\n.table-container .selected ion-icon {\n  color: red;\n}\n\n.no-pb {\n  padding-bottom: 0px !important;\n}\n\n.btn-footer {\n  display: flex;\n}\n\n.btn-footer div {\n  padding: 5px;\n  text-align: center;\n}\n\n.btn-footer .cancel {\n  width: 50%;\n  background: #333333;\n  color: white;\n  border-bottom-left-radius: 5px;\n}\n\n.btn-footer .select {\n  width: 50%;\n  background: #e30519;\n  color: white;\n  border-bottom-right-radius: 5px;\n}\n\n.table-msg-container {\n  text-align: center;\n  font-size: 14px;\n  color: #e30519;\n  padding: 10px;\n}\n\n.timer {\n  font-size: 25px;\n  width: 100%;\n}\n\n.restaurant-details-card {\n  margin: 10px;\n  padding: 15px 5px;\n  text-align: center;\n  background: #ddeed6;\n  border-radius: 5px;\n}\n\n.go-now {\n  text-align: center;\n}\n\n.go-now .change-favourite {\n  font-size: 12px;\n}\n\n.spinner-container {\n  min-height: 150px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.change-favourite {\n  font-size: 12px;\n}\n\n.delivery-area-select {\n  width: 100% !important;\n}\n\n.postal-code-input {\n  border: 2px dashed darkgray;\n  border-radius: 10px;\n}\n\n.container {\n  padding: 10px;\n}\n\n.postal-code-list {\n  max-height: 250px;\n  overflow: auto;\n}\n\n.not-found-postals {\n  text-align: center;\n  margin-top: 5px;\n  font-size: 14px;\n  color: var(--ion-color-custom-medium-gray);\n}\n\n.not-found-postals p {\n  margin: 5px;\n}\n\n.not-found-postals ion-icon {\n  font-size: 24px;\n}\n\n.spinner-container-postal-code {\n  min-height: 150px;\n  align-items: center;\n  display: flex;\n  justify-content: center;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlbGVjdC1vcmRlci10eXBlLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLDZCQUFBO0FBQ0o7O0FBRUE7RUFDSSw4QkFBQTtFQUNBLHFCQUFBO0FBQ0o7O0FBRUE7RUFDSSxXQUFBO0VBQ0EsYUFBQTtBQUNKOztBQUNJO0VBQ0ksa0JBQUE7RUFDQSxpQ0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0NBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGdDQUFBO0VBQ0Esb0JBQUE7QUFDUjs7QUFDUTtFQUNJLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7QUFDWjs7QUFJQTtFQUNJLGNBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQ0FBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0VBQ0EsaUNBQUE7QUFESjs7QUFHSTtFQUNJLGVBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsY0FBQTtBQURSOztBQUtBO0VBQ0ksYUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7QUFGSjs7QUFJSTtFQUNJLFdBQUE7QUFGUjs7QUFJUTtFQUNJLFdBQUE7RUFDQSwwQkFBQTtBQUZaOztBQU9BO0VBQ0ksc0NBQUE7QUFKSjs7QUFRQTtFQUNJLHVDQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0FBTEo7O0FBUUE7RUFDSSw0Q0FBQTtFQUNBLGdCQUFBO0FBTEo7O0FBUUE7RUFDSSxjQUFBO0VBQ0EsZUFBQTtBQUxKOztBQVFBO0VBQ0ksZ0JBQUE7RUFDQSxrQkFBQTtBQUxKOztBQU9JO0VBQ0ksaUNBQUE7RUFDQSxlQUFBO0FBTFI7O0FBUUk7RUFDSSxtREFBQTtFQUNBLHVDQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO0FBTlI7O0FBU0k7RUFDSSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7QUFQUjs7QUFVSTtFQUNJLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0Esc0NBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxpQ0FBQTtBQVJSOztBQVVRO0VBQ0ksZ0JBQUE7RUFDQSxVQUFBO0FBUlo7O0F
10143BVVk7RUFDSSxlQUFBO0VBQ0EsY0FBQTtBQVJoQjs7QUFVZ0I7RUFDSSxxQkFBQTtFQUNBLGlCQUFBO0VBQ0EsMkJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUFScEI7O0FBVW9CO0VBQ0ksdUNBQUE7RUFDQSxpQkFBQTtBQVJ4Qjs7QUFjUTtFQUNJLHVDQUFBO0FBWlo7O0FBa0JJO0VBQ0ksaUJBQUE7RUFDQSxlQUFBO0VBQ0Esc0NBQUE7RUFDQSxlQUFBO0FBZlI7O0FBbUJBO0VBQ0ksa0JBQUE7RUFDQSxtQkFBQTtBQWhCSjs7QUFtQkE7RUFDSSxrQkFBQTtFQUNBLGdCQUFBO0FBaEJKOztBQW1CQTtFQUNJLHdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FBaEJKOztBQWtCSTtFQUNJLGFBQUE7RUFDQSxnQ0FBQTtBQWhCUjs7QUFrQlE7RUFDSSxZQUFBO0VBQ0EsV0FBQTtBQWhCWjs7QUFvQkk7RUFDSSxVQUFBO0FBbEJSOztBQW9CUTtFQUNJLFVBQUE7QUFsQlo7O0FBdUJBO0VBQ0ksOEJBQUE7QUFwQko7O0FBdUJBO0VBQ0ksYUFBQTtBQXBCSjs7QUFzQkk7RUFDSSxZQUFBO0VBQ0Esa0JBQUE7QUFwQlI7O0FBdUJJO0VBQ0ksVUFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0FBckJSOztBQXdCSTtFQUNJLFVBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSwrQkFBQTtBQXRCUjs7QUEwQkE7RUFDSSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtBQXZCSjs7QUEwQkE7RUFDSSxlQUFBO0VBQ0EsV0FBQTtBQXZCSjs7QUEwQkE7RUFDSSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUF2Qko7O0FBMEJBO0VBQ0ksa0JBQUE7QUF2Qko7O0FBeUJJO0VBQ0ksZUFBQTtBQXZCUjs7QUEyQkE7RUFDSSxpQkFBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0FBeEJKOztBQTJCQTtFQUNJLGVBQUE7QUF4Qko7O0FBMkJBO0VBQ0ksc0JBQUE7QUF4Qko7O0FBMkJBO0VBQ0ksMkJBQUE7RUFDQSxtQkFBQTtBQXhCSjs7QUEyQkE7RUFDSSxhQUFBO0FBeEJKOztBQTJCQTtFQUNJLGlCQUFBO0VBQ0EsY0FBQTtBQXhCSjs7QUEyQkE7RUFDSSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsMENBQUE7QUF4Qko7O0FBMEJJO0VBQ0ksV0FBQTtBQXhCUjs7QUEyQkk7RUFDSSxlQUFBO0FBekJSOztBQTZCQTtFQUNJLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7QUExQkoiLCJmaWxlIjoic2VsZWN0LW9yZGVyLXR5cGUucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2JhY2tncm91bmQtY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmlvbi1jb250ZW50IHtcbiAgICAtLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgZm9udC1mYW1pbHk6IFwicm9ib3RvXCI7XG59XG5cbi5wb3B1cC1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG5cbiAgICAucG9wdXAtY29udGFpbmVyLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggMHB4ICM0ODQ4NDg7XG4gICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UzZTNlMztcbiAgICBjb2xvcjogIzUzNTM1MztcbiAgICBmb250LWZhbWlseTogZXhvO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDBweCAjZGZkZmRmO1xuXG4gICAgLmNsb3NlLWJ0biB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAzcHg7XG4gICAgICAgIGNvbG9yOiAjNWQ1ZDVkO1xuICAgIH1cbn1cblxuLmZvcm0tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAucXVlc3Rpb24tY2FyZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5xdWVzdGlvbi1idG4ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnJlZCB7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tdGhyLXJlZCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5oMSB7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tc2VjLWdyYXkpO1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmVwaXQtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3Itc2VjLXdoaXRlKTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG5oNCB7XG4gICAgY29sb3I6ICM4MDgwODA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uc2VhcmNoYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGlvbi1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZml2LXdoaXRlKTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cblxuICAgIC5pbnB1dCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItZml2LXdoaXRlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tc2VjLWdyYXkpO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgI
10143HBhZGRpbmctcmlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBpb24taWNvbi5jbG9zZWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICAuc2VhcmNoLWRyb3Age1xuICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXNlYy13aGl0ZSk7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcbiAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCA2cHggNXB4IDBweCAjOGM4YzhjO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjN2I3OTc5O1xuXG4gICAgICAgICAgICAgICAgLmxpLXRleHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS1zZWMtZ3JheSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kYXJrIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLXNlYy1ncmF5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFsZXJ0IHtcbiAgICBkaXYge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS1zaXgtcmVkKTtcbiAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIH1cbn1cblxuLmJ0bi1yb3cge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZmluZE1lIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuLnRhYmxlLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMTBweCAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDM1MHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLnRhYmxlLXNlbGVjdC1yb3cge1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggI2U0ZTRlNCBzb2xpZDtcblxuICAgICAgICBpb24taWNvbiB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogZ3JheTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWxlY3RlZCB7XG4gICAgICAgIGNvbG9yOiByZWQ7XG5cbiAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5vLXBiIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgZGl2IHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmNhbmNlbCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzMzMzMzM7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICAgIH1cblxuICAgIC5zZWxlY3Qge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTMwNTE5O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XG4gICAgfVxufVxuXG4udGFibGUtbXNnLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogI2UzMDUxOTtcbiAgICBwYWRkaW5nOiAxMHB4O1xufVxuXG4udGltZXIge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnJlc3RhdXJhbnQtZGV0YWlscy1jYXJkIHtcbiAgICBtYXJnaW46IDEwcHg7XG4gICAgcGFkZGluZzogMTVweCA1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNkZGVlZDY7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uZ28tbm93IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAuY2hhbmdlLWZhdm91cml0ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG59XG5cbi5zcGlubmVyLWNvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogMTUwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2hhbmdlLWZhdm91cml0ZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZGVsaXZlcnktYXJlYS1zZWxlY3Qge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5wb3N0YWwtY29kZS1pbnB1dCB7XG4gICAgYm9yZGVyOiAycHggZGFzaGVkIGRhcmtncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbi5jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5wb3N0YWwtY29kZS1saXN0IHtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm5vdC1mb3VuZC1wb3N0YWxzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS1tZWRpdW0tZ3JheSk7XG5cbiAgICBwe1xuICAgICAgICBtYXJnaW46IDVweDtcbiAgICB9XG5cbiAgICBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG59XG5cbi5zcGlubmVyLWNvbnRhaW5lci1wb3N0YWwtY29kZSB7XG4gICAgbWluLWhlaWdodDogMTUwcHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufSJdfQ== */");
10144
10145/***/ }),
10146
10147/***/ 75423:
10148/*!**********************************************************!*\
10149  !*** ./src/app/views/modals/toppings/toppings.page.scss ***!
10150  \**********************************************************/
10151/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10152
10153"use strict";
10154__webpack_require__.r(__webpack_exports__);
10155/* harmony default export */ __webpack_exports__["default"] = ("#background-content {\n  background-color: transparent;\n}\n\nion-content {\n  --background: rgba(0, 0, 0, 0);\n  font-family: \"roboto\";\n}\n\n.popup-container {\n  width: 100%;\n  height: 100vh;\n}\n\n.popup-container .popup-container-inner {\n  border-radius: 5px;\n  box-shadow: 0 3px 5px 0px #484848;\n  width: 80%;\n  min-width: 300px;\n  min-height: 200px;\n  background: var(--ion-color-white);\n  margin: auto;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n.popup-container .popup-container-inner ul {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n}\n\n.title {\n  display: block;\n  width: 100%;\n  position: relative;\n  border-bottom: 1px solid #e3e3e3;\n  color: #535353;\n  font-family: exo;\n  text-transform: uppercase;\n  box-shadow: 0 1px 2px 0px #dfdfdf;\n}\n\n.title .close-btn {\n  font-size: 25px;\n  position: absolute;\n  top: 0;\n  right: 3px;\n  color: #5d5d5d;\n}\n\n.topping-radio {\n  --border-color-checked: #e32d2d;\n  --background-checked: #e32d2d;\n  background: #d9d9d9;\n  color: var(--ion-color-white);\n  box-sizing: revert;\n  border-radius: 100%;\n  transition: 1s;\n  --color-checked: var(--ion-color-white);\n}\n\n.topping-radio.checkbox-checked {\n  background: #e32d2d;\n}\n\n.radio-group ion-item,\n.checkboxgroup ion-item {\n  --min-height: 10px;\n}\n\n.radio-group ion-item ion-label,\n.checkboxgroup ion-item ion-label {\n  font-size: 13px;\n}\n\n.radio-group ion-item ion-label.label-2,\n.checkboxgroup ion-item ion-label.label-2 {\n  font-size: 12px;\n  color: #797979;\n}\n\n.radio-group ion-item ion-label.label-1,\n.checkboxgroup ion-item ion-label.label-1 {\n  color: #535353;\n  font-weight: bold;\n}\n\n.radio-group ion-item ion-icon,\n.checkboxgroup ion-item ion-icon {\n  font-size: 20px;\n}\n\n.dropdown ion-item {\n  --inner-padding-start: 0;\n  --padding-start: 0;\n  padding: 0;\n  font-size: 14px;\n  color: #535353;\n}\n\n.dropdown ion-item ion-label {\n  padding-left: 15px;\n  font-weight: bold;\n}\n\n.dropdown ion-select {\n  color: #ef1b32b3;\n  font-size: 12px;\n  font-weight: bold;\n}\n\n.checkboxgroup ion-item {\n  /*--min-height: 40px;*/\n}\n\n.checkboxgroup ion-checkbox {\n  --background: #d9d9d9;\n  --background-checked: #e32d2d;\n  --border-width: 5px;\n  --size: 22px;\n  --border-color-checked: #e32d2d;\n  --border-color: #d9d9d9;\n  --checkmark-width: 5px;\n  margin: 5px 10px 10px 0;\n}\n\n.checkboxgroup .min-max {\n  padding-bottom: 5px;\n  padding-bottom: 5px;\n  position: absolute;\n  right: 10px;\n  z-index: 5;\n}\n\n.checkboxgroup .min-max button {\n  color: #9f9f9f;\n  font-weight: bold;\n  background: #f2f2f2;\n  border-radius: 3px;\n  transform: translateY(3px);\n  margin: 0 3px;\n  padding: 5px 6px;\n}\n\n.checkboxgroup .min-max button ion-icon {\n  font-size: 14px;\n}\n\n.checkboxgroup .min-max span {\n  /*\n  REMOVE\n  color: #5e5e5e;\n  font-size: 15px;\n  padding: 3px 8px;\n  background: #e8e8e8;\n  border-radius: 5px;\n  box-shadow: 0 0 3px #acacac inset;*/\n  color: #5e5e5e;\n  font-size: 13px;\n  padding: 3px 8px;\n  /* background: #e8e8e8; */\n  border-radius: 5px;\n  /* box-shadow: 0 0 3px #acacac inset; */\n  font-weight: bold;\n}\n\n.radio-title {\n  padding: 0;\n}\n\n.radio-title ion-label {\n  position: relative;\n  margin: 0;\n}\n\n.radio-title ion-label span {\n  z-index: 5555;\n  position: relative;\n  background: var(--ion-color-white);\n  margin-left: 20px;\n  font-size: 14px;\n  font-family: exo;\n  color: #d4d4d4;\n  padding: 10px;\n  font-weight: 600;\n}\n\n.radio-title ion-label i {\n  position: absolute;\n  height: 1px;\n  width: 100%;\n  display: block;\n  background: #d4d4d463;\n  bottom: 40%;\n}\n\n.red {\n  color: var(--ion-color-custom-thr-red);\n}\n\n.submit-buttons {\n  margin-bottom: 20px;\n}\n\n.footer-box {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  z-index: 9999;\n  background-color: #ffffff;\n  padding-top: 10px;\n}\n\n.error {\n  color: #f91010;\n  font-size: 13px;\n  padding: 5px;\n}\n\n.toping_required {\n  color: #f91010 !important;\n}\n\n.warning-message {\n  font-size: 12px;\n  color: #d4d4d4;\n}\n\n.select-label {\n  padding-left: 16px;\n  font-weight: bold;\n}\n\n.toping-container {\n  height: 82%;\n  overflow-y: auto;\n}\n\n.toping-container-mobile {\n  max-height: 80vh;\n  overflow-y: auto;\n  padding-bottom: 100px;\n}\n\n.size-radio-list {\n  padding: 5px 10px;\n  max-height: 150px;\n  overflow: auto;\n}\n\n.size-radio-list ion-radio-group ion-item {\n  --min-height: 20px !important;\n}\n\n.size-radio-list ion-radio-group ion-item ion-label,\n.size-radio-list ion-radio-group ion-item ion-icon {\n  margin: 3px 0;\n}\n\n.size-radio-list ion-radio-group ion-item ion-radio {\n  margin-bottom: 3px !important;\n  margin-top: 3px !important;\n}\n\nion-radio {\n  --color: var(--radio-color);\n  --color-checked: var(--radio-color);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvcHBpbmdzLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLDZCQUFBO0FBQ0o7O0FBRUE7RUFDSSw4QkFBQTtFQUNBLHFCQUFBO0FBQ0o7O0FBRUE7RUFDSSxXQUFBO0VBQ0EsYUFBQTtBQUNKOztBQUNJO0VBQ0ksa0JBQUE7RUFDQSxpQ0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0NBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGdDQUFBO0FBQ1I7O0FBRVE7RUFDSSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0FBQVo7O0FBS0E7RUFDSSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtFQUNBLGlDQUFBO0FBRko7O0FBSUk7RUFDSSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7QUFGUjs7QUFNQTtFQUtJLCtCQUFBO0VBQ0EsNkJBQUE7RUFFQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQk
10155FBQTtFQUNBLGNBQUE7RUFDQSx1Q0FBQTtBQVJKOztBQUpJO0VBQ0ksbUJBQUE7QUFNUjs7QUFVSTs7RUFDSSxrQkFBQTtBQU5SOztBQVFROztFQUNJLGVBQUE7QUFMWjs7QUFPWTs7RUFDSSxlQUFBO0VBQ0EsY0FBQTtBQUpoQjs7QUFPWTs7RUFDSSxjQUFBO0VBQ0EsaUJBQUE7QUFKaEI7O0FBUVE7O0VBQ0ksZUFBQTtBQUxaOztBQVdJO0VBQ0ksd0JBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtBQVJSOztBQVVRO0VBQ0ksa0JBQUE7RUFDQSxpQkFBQTtBQVJaOztBQVlJO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7QUFWUjs7QUFlSTtFQUNJLHNCQUFBO0FBWlI7O0FBZ0JJO0VBQ0kscUJBQUE7RUFDQSw2QkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLCtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxzQkFBQTtFQUVBLHVCQUFBO0FBZlI7O0FBa0JJO0VBQ0ksbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7QUFoQlI7O0FBa0JRO0VBS0ksY0FBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLDBCQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0FBcEJaOztBQXNCWTtFQUNJLGVBQUE7QUFwQmhCOztBQXdCUTtFQUVJOzs7Ozs7O3FDQUFBO0VBUUEsY0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSx1Q0FBQTtFQUNBLGlCQUFBO0FBdkJaOztBQTRCQTtFQUNJLFVBQUE7QUF6Qko7O0FBMkJJO0VBQ0ksa0JBQUE7RUFDQSxTQUFBO0FBekJSOztBQTJCUTtFQUNJLGFBQUE7RUFDQSxrQkFBQTtFQUNBLGtDQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFFQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0FBMUJaOztBQTZCUTtFQUNJLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBRUEscUJBQUE7RUFDQSxXQUFBO0FBNUJaOztBQWtDQTtFQUNJLHNDQUFBO0FBL0JKOztBQTJDQTtFQUNJLG1CQUFBO0FBeENKOztBQTJDQTtFQUNJLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtBQXhDSjs7QUE0Q0E7RUFDSSxjQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7QUF6Q0o7O0FBNENBO0VBQ0kseUJBQUE7QUF6Q0o7O0FBNENBO0VBQ0ksZUFBQTtFQUNBLGNBQUE7QUF6Q0o7O0FBNENBO0VBQ0ksa0JBQUE7RUFDQSxpQkFBQTtBQXpDSjs7QUE0Q0E7RUFDSSxXQUFBO0VBQ0EsZ0JBQUE7QUF6Q0o7O0FBNkNBO0VBQ0ksZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FBMUNKOztBQTZDQTtFQUNJLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FBMUNKOztBQTZDUTtFQUNJLDZCQUFBO0FBM0NaOztBQTZDWTs7RUFFSSxhQUFBO0FBM0NoQjs7QUE4Q1k7RUFDSSw2QkFBQTtFQUNBLDBCQUFBO0FBNUNoQjs7QUFrREE7RUFDSSwyQkFBQTtFQUNBLG1DQUFBO0FBL0NKIiwiZmlsZSI6InRvcHBpbmdzLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiNiYWNrZ3JvdW5kLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5pb24tY29udGVudCB7XG4gICAgLS1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgIGZvbnQtZmFtaWx5OiBcInJvYm90b1wiO1xufVxuXG4ucG9wdXAtY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuXG4gICAgLnBvcHVwLWNvbnRhaW5lci1pbm5lciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IDBweCAjNDg0ODQ4O1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICAgIC8vcGFkZGluZy1ib3R0b206IDcwcHg7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UzZTNlMztcbiAgICBjb2xvcjogIzUzNTM1MztcbiAgICBmb250LWZhbWlseTogZXhvO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDBweCAjZGZkZmRmO1xuXG4gICAgLmNsb3NlLWJ0biB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAzcHg7XG4gICAgICAgIGNvbG9yOiAjNWQ1ZDVkO1xuICAgIH1cbn1cblxuLnRvcHBpbmctcmFkaW8ge1xuICAgICYuY2hlY2tib3gtY2hlY2tlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlMzJkMmQ7XG4gICAgfVxuXG4gICAgLS1ib3JkZXItY29sb3ItY2hlY2tlZDogI2UzMmQyZDtcbiAgICAtLWJhY2tncm91bmQtY2hlY2tlZDogI2UzMmQyZDtcblxuICAgIGJhY2tncm91bmQ6ICNkOWQ5ZDk7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13aGl0ZSk7XG4gICAgYm94LXNpemluZzogcmV2ZXJ0O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogMXM7XG4gICAgLS1jb2xvci1jaGVja2VkOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xufVxuXG4ucmFkaW8tZ3JvdXAsXG4uY2hlY2tib3hncm91cCB7XG4gICAgaW9uLWl0ZW0ge1xuICAgICAgICAtLW1pbi1oZWlnaHQ6IDEwcHg7XG5cbiAgICAgICAgaW9uLWxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcblxuICAgICAgICAgICAgJi5sYWJlbC0yIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM3OTc5Nzk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubGFiZWwtMSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM1MzUzNTM7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgI
10155H1cblxuICAgICAgICBpb24taWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5kcm9wZG93biB7XG4gICAgaW9uLWl0ZW0ge1xuICAgICAgICAtLWlubmVyLXBhZGRpbmctc3RhcnQ6IDA7XG4gICAgICAgIC0tcGFkZGluZy1zdGFydDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogIzUzNTM1MztcblxuICAgICAgICBpb24tbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpb24tc2VsZWN0IHtcbiAgICAgICAgY29sb3I6ICNlZjFiMzJiMztcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG59XG5cbi5jaGVja2JveGdyb3VwIHtcbiAgICBpb24taXRlbSB7XG4gICAgICAgIC8qLS1taW4taGVpZ2h0OiA0MHB4OyovXG4gICAgfVxuXG4gICAgLy8gVEhJU0VESVRFRFxuICAgIGlvbi1jaGVja2JveCB7XG4gICAgICAgIC0tYmFja2dyb3VuZDogI2Q5ZDlkOTtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWNoZWNrZWQ6ICNlMzJkMmQ7XG4gICAgICAgIC0tYm9yZGVyLXdpZHRoOiA1cHg7XG4gICAgICAgIC0tc2l6ZTogMjJweDtcbiAgICAgICAgLS1ib3JkZXItY29sb3ItY2hlY2tlZDogI2UzMmQyZDtcbiAgICAgICAgLS1ib3JkZXItY29sb3I6ICNkOWQ5ZDk7XG4gICAgICAgIC0tY2hlY2ttYXJrLXdpZHRoOiA1cHg7XG4gICAgICAgIC8vIG1hcmdpbi10b3A6IC0zcHg7IFJFTU9WRURcbiAgICAgICAgbWFyZ2luOiA1cHggMTBweCAxMHB4IDA7IC8vQURERURcbiAgICB9XG5cbiAgICAubWluLW1heCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIHotaW5kZXg6IDU7XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIC8vY29sb3I6ICM0YTRhNGE7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQ6ICNkOWQ5ZDk7XG4gICAgICAgICAgICAvLyBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgICAgLy8vIEVESVRFRCBIRVJFXG4gICAgICAgICAgICBjb2xvcjogIzlmOWY5ZjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCA2cHg7XG5cbiAgICAgICAgICAgIGlvbi1pY29uIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIC8vIEVESVRFRCBIRVJFXG4gICAgICAgICAgICAvKlxuICAgICAgUkVNT1ZFXG4gICAgICBjb2xvcjogIzVlNWU1ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgYm94LXNoYWRvdzogMCAwIDNweCAjYWNhY2FjIGluc2V0OyovXG4gICAgICAgICAgICBjb2xvcjogIzVlNWU1ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gICAgICAgICAgICAvKiBiYWNrZ3JvdW5kOiAjZThlOGU4OyAqL1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgLyogYm94LXNoYWRvdzogMCAwIDNweCAjYWNhY2FjIGluc2V0OyAqL1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5yYWRpby10aXRsZSB7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGlvbi1sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgei1pbmRleDogNTU1NTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci13aGl0ZSk7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBleG87XG4gICAgICAgICAgICAvL2NvbG9yOiAjNGQ0ZDRkO1xuICAgICAgICAgICAgY29sb3I6ICNkNGQ0ZDQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGkge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiAjY2VjZWNlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Q0ZDRkNDYzO1xuICAgICAgICAgICAgYm90dG9tOiA0MCU7XG4gICAgICAgICAgICAvL2JveC1zaGFkb3c6IDAgLTFweCAwcHggMC41cHggI2UxZTFlMTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnJlZCB7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tdGhyLXJlZCk7XG59XG5cbi8vIC50b3BpbmctYm9keSB7XG4vLyAgICAgaGVpZ2h0OiA1MDBweDtcbi8vICAgICBvdmVyZmxvdy15OiBhdXRvO1xuLy8gfVxuXG4vLyAudG9waW5nLWJvZHktd2ViIHtcbi8vICAgICBoZWlnaHQ6IDQ3MHB4ICFpbXBvcnRhbnQ7XG4vLyB9XG5cbi5zdWJtaXQtYnV0dG9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmZvb3Rlci1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuXG59XG5cbi5lcnJvciB7XG4gICAgY29sb3I6ICNmOTEwMTA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHBhZGRpbmc6IDVweDtcbn1cblxuLnRvcGluZ19yZXF1aXJlZCB7XG4gICAgY29sb3I6ICNmOTEwMTAgIWltcG9ydGFudDtcbn1cblxuLndhcm5pbmctbWVzc2FnZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjZ
10155DRkNGQ0O1xufVxuXG4uc2VsZWN0LWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi50b3BpbmctY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDgyJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG5cbi50b3BpbmctY29udGFpbmVyLW1vYmlsZSB7XG4gICAgbWF4LWhlaWdodDogODB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbn1cblxuLnNpemUtcmFkaW8tbGlzdCB7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgbWF4LWhlaWdodDogMTUwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICBpb24tcmFkaW8tZ3JvdXAge1xuICAgICAgICBpb24taXRlbSB7XG4gICAgICAgICAgICAtLW1pbi1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcblxuICAgICAgICAgICAgaW9uLWxhYmVsLFxuICAgICAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogM3B4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlvbi1yYWRpbyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmlvbi1yYWRpbyB7XG4gICAgLS1jb2xvcjogdmFyKC0tcmFkaW8tY29sb3IpO1xuICAgIC0tY29sb3ItY2hlY2tlZDogdmFyKC0tcmFkaW8tY29sb3IpO1xufSJdfQ== */");
10156
10157/***/ }),
10158
10159/***/ 47167:
10160/*!******************************************************************************!*\
10161  !*** ./src/app/views/web-views/shared/modal-popover/modal-popover.page.scss ***!
10162  \******************************************************************************/
10163/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10164
10165"use strict";
10166__webpack_require__.r(__webpack_exports__);
10167/* harmony default export */ __webpack_exports__["default"] = (".modal-toolbar {\n  text-align: center;\n  color: var(--ion-color-custom-sev-red);\n}\n.modal-toolbar ion-title {\n  font-size: 22px;\n  font-weight: bold;\n}\n.modal-toolbar .modal-close {\n  color: #acaaaa;\n  font-size: 25px;\n  margin-right: 10px;\n}\n.dilivary-addrss-container {\n  text-align: center;\n  margin-top: 20px;\n}\n.dilivary-addrss-container .dilivary-addrss-input-container {\n  margin: 20px 80px;\n  position: relative;\n}\n.dilivary-addrss-container .dilivary-addrss-input-container input {\n  width: 100%;\n  font-size: 25px;\n  color: #959595;\n  padding: 10px;\n  padding-right: 35px;\n  border: 1px solid #d5d5d5;\n  border-radius: 3px;\n  outline: none !important;\n}\n.dilivary-addrss-container .dilivary-addrss-input-container span.icon {\n  position: absolute;\n  right: 5px;\n  font-size: 40px;\n  top: 50%;\n  transform: translateY(-40%);\n  color: #717171;\n}\n.red-button {\n  background: var(--ion-color-custom-sev-red);\n  padding: 15px 20px;\n  border-radius: 5px;\n  color: var(--ion-color-white);\n  font-size: 22px;\n  transform: scale(1);\n  transition: 0.2s;\n}\n.red-button:active {\n  transform: scale(0.9);\n}\n.notfication-container {\n  padding: 0 50px;\n}\n.notfication-container .error-box {\n  display: inline-block;\n  background: #ffd6d6;\n  font-size: 18px;\n  padding: 10px;\n  color: #d20f0f;\n}\n.dilivary-method-container {\n  text-align: center;\n}\n.dilivary-method-container .btn-container {\n  margin-top: 20px;\n}\n.dilivary-method-container .btn-container .red-button {\n  font-size: 20px;\n  padding: 12px 34px;\n}\n.dilivary-method-container .btn-container .red-button ion-icon {\n  font-size: 25px;\n  margin-right: 10px;\n  margin-bottom: -5px;\n}\n.dilivary-method-container .btn-container .red-button span {\n  margin-top: -5px;\n}\n.searchbar {\n  margin-top: 30px;\n  position: relative;\n  padding: 10px;\n}\n.searchbar ion-label {\n  color: var(--ion-color-fiv-white);\n  font-size: 14px;\n}\n.searchbar .input {\n  border-bottom: 1px solid var(--ion-color-fiv-white);\n  color: var(--ion-color-custom-sec-gray);\n  font-size: 18px;\n  padding-right: 40px !important;\n}\n.searchbar ion-icon.closeicon {\n  position: absolute;\n  top: 30px;\n  right: 10px;\n  font-size: 22px;\n  z-index: 2;\n}\n.searchbar .search-drop {\n  max-height: 300px;\n  width: 100%;\n  position: absolute;\n  background: var(--ion-color-sec-white);\n  z-index: 300;\n  padding: 0 10px;\n  border-bottom-left-radius: 10px;\n  border-bottom-right-radius: 10px;\n  box-shadow: 0 6px 5px 0px #8c8c8c;\n}\n.searchbar .search-drop ul {\n  list-style: none;\n  padding: 0;\n}\n.searchbar .search-drop ul li {\n  padding: 10px 0;\n  color: #7b7979;\n}\n.searchbar .search-drop ul li .li-text {\n  display: inline-block;\n  margin-top: -20px;\n  transform: translateY(-8px);\n  margin-left: 10px;\n  font-size: 15px;\n}\n.searchbar .search-drop ul li .li-text span {\n  color: var(--ion-color-custom-sec-gray);\n  font-weight: bold;\n}\n.searchbar .search-drop .dark {\n  color: var(--ion-color-custom-sec-gray);\n}\n.restaurant-card {\n  background-color: var(--ion-color-custom-sev-red);\n  border-radius: 10px;\n  color: var(--ion-color-sec-white);\n  margin: 15px;\n  cursor: pointer;\n}\n.restaurant-card .branches-title {\n  font-weight: bold;\n  font-size: 18px;\n}\n.restaurant-card .branches-addrs {\n  font-size: 18px;\n}\n.no-restaurants {\n  color: var(--ion-color-custom-sev-red);\n  justify-content: center;\n}\n.back-btn {\n  margin-left: 5px !important;\n}\n.alert {\n  padding-right: 10px;\n}\n.alert div {\n  text-align: right;\n  font-size: 12px;\n  color: var(--ion-color-custom-six-red);\n  margin-top: 3px;\n}\n.popover-header {\n  margin-top: 0px !important;\n}\n.padding-5px {\n  padding: 5px;\n}
10167\n.close:hover {\n  color: var(--ion-color-custom-six-red) !important;\n}\n.reservation-success-msg-container {\n  text-align: center;\n  padding: 20px;\n}\n.reservation-success-msg-container ion-icon {\n  font-size: 64px !important;\n  color: #75c72f;\n}\n.allergy-content div {\n  padding: 0 20px;\n}\n.get-current-address {\n  text-align: center;\n}\n.get-current-address a {\n  color: var(--common-used-red-color);\n}\n.get-current-address a:hover {\n  cursor: pointer;\n  text-decoration: underline;\n}\n.restaurant-table-card {\n  width: 100%;\n  padding: 15px;\n  margin: 5px;\n  border-left: 7px solid #3f3f3f;\n  padding-right: 20px;\n}\n.restaurant-table-card:hover {\n  background-color: #d7d5d5;\n  cursor: pointer;\n}\n.restaurant-table-card ion-icon {\n  float: right;\n}\n.restaurant-table-card-checked {\n  border-left: 7px solid var(--ion-color-danger) !important;\n}\n.restaurant-table-card-checked ion-icon {\n  color: var(--ion-color-danger);\n}\n.table-msg-container {\n  text-align: center;\n  font-size: 20px;\n  color: #e30519;\n  padding: 15px;\n}\n.timer {\n  font-size: 25px;\n  width: 100%;\n}\n.restaurant-details-card {\n  margin: 10px;\n  padding: 15px 5px;\n  text-align: center;\n  background: #ddeed6;\n  border-radius: 5px;\n}\n.go-now {\n  text-align: center;\n}\n.go-now button {\n  margin-top: 20px;\n}\n.spinner-container {\n  min-height: 150px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n.select-restaurant-alert {\n  padding: 10px;\n  font-size: 14px;\n  display: inline-flex;\n}\n.unable-to-process-order-alert {\n  padding: 10px;\n  font-size: 18px;\n  display: inline-flex;\n  justify-content: center;\n  width: 100%;\n  align-items: center;\n  text-align: center;\n  background: #ff071c;\n  color: white;\n  margin-bottom: 15px;\n  padding-top: 0px;\n}\n.unavailable-menu-list .unavailable-menu-card-details {\n  margin: 10px 20px;\n  border: 1px dotted #ff071c;\n  border-top: 15px solid #ff071c;\n  padding: 11px;\n  border-radius: 7px;\n}\n.unavailable-menu-list .unavailable-menu-card-details .available-times {\n  margin-left: 15px;\n  background: #ffe1e4;\n  padding: 5px 20px;\n  border-radius: 5px;\n  font-size: 14px;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n}\n.unavailable-close-btn {\n  position: absolute;\n  left: 45%;\n  bottom: 10px;\n}\n.icon-container-unavailable {\n  font-size: 56px;\n  margin-right: 16px;\n  height: 56px;\n}\n.icon-container {\n  font-size: 40px;\n  margin-right: 16px;\n}\n.btn-link {\n  cursor: pointer;\n  margin-left: 10px;\n  font-size: 12px;\n  text-decoration: underline;\n}\n.btn-sm-alert {\n  font-size: 14px;\n  padding: 5px;\n  border-radius: 7px;\n  cursor: pointer;\n}\n.favorite-restaurant-marked-container .favourite-message {\n  display: inline-flex;\n  padding: 10px;\n}\n.favorite-restaurant-marked-container .favourite-message span {\n  font-size: 14px;\n}\n.favorite-restaurant-marked-container .favourite-message span ion-icon {\n  font-size: 40px;\n}\n.favorite-restaurant-marked-container .you-can-change-this {\n  font-size: 10px;\n}\n.favorite-restaurant-marked-container .btn-ok {\n  padding: 5px;\n}\n.favorite-restaurant-marked-container .btn-ok span {\n  padding: 3px 10px;\n  background: #4b90e2;\n  color: white;\n  font-size: 12px;\n  border-radius: 4px;\n  cursor: pointer;\n}\n.change-favourite {\n  font-size: 14px;\n  text-decoration: underline;\n  cursor: pointer;\n}\n.mt-15px {\n  margin-top: 15px;\n}\n.postal-code-input {\n  border: 2px dashed darkgray;\n  border-radius: 10px;\n}\n.container {\n  padding: 20px;\n}\n.postal-code-list {\n  max-height: 250px;\n  overflow: auto;\n}\n.not-found-postals {\n  width: 80%;\n  text-align: center;\n  margin-top: 15px;\n  margin-left: 10%;\n  margin-right: 10%;\n  font-size: 20px;\n  color: var(--ion-color-custom-medium-gray);\n}\n.not-found-postals ion-icon {\n  font-size: 40px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vZGFsLXBvcG92ZXIucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQUE7RUFDQSxzQ0FBQTtBQUNGO0FBQ0U7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7QUFDSjtBQUVFO0VBQ0UsY0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtBQUFKO0FBSUE7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0FBREY7QUFHRTtFQUNFLGlCQUFBO0VBQ0Esa0JBQUE7QUFESjtBQUdJO0VBQ0UsV0FBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLHdCQUFBO0FBRE47QUFJSTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0VBQ0EsMkJBQUE7RUFDQSxjQUFBO0FBRk47QUFPQTtFQUNFLDJDQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QUFKRjtBQU1FO0VBQ0UscUJBQUE7QUFKSjtBQVFBO0VBQ0UsZUFBQTtBQUxGO0FBT0U7RUFDRSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0FBTEo7QUFVQTtFQUNFLGtCQUFBO0FBUEY7QUFTRTtFQUNFLGdCQUFBO0FBUEo7QUFTSTtFQUNFLGVBQUE7RUFDQSxrQkFBQTtBQVBOO0FBU007RUFDRSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQk
10167FBQTtBQVBSO0FBVU07RUFDRSxnQkFBQTtBQVJSO0FBZUE7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtBQVpGO0FBY0U7RUFDRSxpQ0FBQTtFQUNBLGVBQUE7QUFaSjtBQWVFO0VBQ0UsbURBQUE7RUFDQSx1Q0FBQTtFQUNBLGVBQUE7RUFDQSw4QkFBQTtBQWJKO0FBZ0JFO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxVQUFBO0FBZEo7QUFpQkU7RUFDRSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLHNDQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwrQkFBQTtFQUNBLGdDQUFBO0VBQ0EsaUNBQUE7QUFmSjtBQWlCSTtFQUNFLGdCQUFBO0VBQ0EsVUFBQTtBQWZOO0FBaUJNO0VBQ0UsZUFBQTtFQUNBLGNBQUE7QUFmUjtBQWlCUTtFQUNFLHFCQUFBO0VBQ0EsaUJBQUE7RUFDQSwyQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtBQWZWO0FBaUJVO0VBQ0UsdUNBQUE7RUFDQSxpQkFBQTtBQWZaO0FBcUJJO0VBQ0UsdUNBQUE7QUFuQk47QUF3QkE7RUFDRSxpREFBQTtFQUNBLG1CQUFBO0VBQ0EsaUNBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQXJCRjtBQXVCRTtFQUNFLGlCQUFBO0VBQ0EsZUFBQTtBQXJCSjtBQXdCRTtFQUNFLGVBQUE7QUF0Qko7QUEwQkE7RUFDRSxzQ0FBQTtFQUNBLHVCQUFBO0FBdkJGO0FBMEJBO0VBQ0UsMkJBQUE7QUF2QkY7QUEwQkE7RUFDRSxtQkFBQTtBQXZCRjtBQXlCRTtFQUNFLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLHNDQUFBO0VBQ0EsZUFBQTtBQXZCSjtBQTJCQTtFQUNFLDBCQUFBO0FBeEJGO0FBMkJBO0VBQ0UsWUFBQTtBQXhCRjtBQTRCRTtFQUNFLGlEQUFBO0FBekJKO0FBNkJBO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0FBMUJGO0FBNEJFO
101670VBQ0UsMEJBQUE7RUFDQSxjQUFBO0FBMUJKO0FBK0JFO0VBQ0UsZUFBQTtBQTVCSjtBQWdDQTtFQUNFLGtCQUFBO0FBN0JGO0FBK0JFO0VBQ0UsbUNBQUE7QUE3Qko7QUErQkk7RUFDRSxlQUFBO0VBQ0EsMEJBQUE7QUE3Qk47QUFrQ0E7RUFDRSxXQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSw4QkFBQTtFQUNBLG1CQUFBO0FBL0JGO0FBaUNFO0VBQ0UseUJBQUE7RUFDQSxlQUFBO0FBL0JKO0FBa0NFO0VBQ0UsWUFBQTtBQWhDSjtBQW9DQTtFQUNFLHlEQUFBO0FBakNGO0FBbUNFO0VBQ0UsOEJBQUE7QUFqQ0o7QUFxQ0E7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtBQWxDRjtBQXFDQTtFQUNFLGVBQUE7RUFDQSxXQUFBO0FBbENGO0FBcUNBO0VBQ0UsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0FBbENGO0FBcUNBO0VBQ0Usa0JBQUE7QUFsQ0Y7QUFvQ0U7RUFJRSxnQkFBQTtBQXJDSjtBQTZDQTtFQUNFLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7QUExQ0Y7QUE2Q0E7RUFDRSxhQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0FBMUNGO0FBNkNBO0VBQ0UsYUFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFFQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FBM0NGO0FBK0NFO0VBQ0UsaUJBQUE7RUFDQSwwQkFBQTtFQUNBLDhCQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0FBNUNKO0FBOENJO0VBQ0UsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBRUEsb0JBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0FBN0NOO0FBa0RBO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtBQS9DRjtBQWtEQTtFQUNFLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUEvQ0Y7QUFrREE7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7QUEvQ0Y7QUFrREE7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsMEJBQUE7QUEvQ0Y7QUFrREE7RUFDRSxlQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQS9DRjtBQW1ERTtFQUNFLG9CQUFBO0VBQ0EsYUFBQTtBQWhESjtBQWtESTtFQUNFLGVBQUE7QUFoRE47QUFrRE07RUFDRSxlQUFBO0FBaERSO0FBcURFO0VBQ0UsZUFBQTtBQW5ESjtBQXNERTtFQUNFLFlBQUE7QUFwREo7QUFzREk7RUFDRSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUFwRE47QUF5REE7RUFDRSxlQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0FBdERGO0FBeURBO0VBQ0UsZ0JBQUE7QUF0REY7QUF5REE7RUFDRSwyQkFBQTtFQUNBLG1CQUFBO0FBdERGO0FBeURBO0VBQ0UsYUFBQTtBQXRERjtBQXlEQTtFQUNFLGlCQUFBO0VBQ0EsY0FBQTtBQXRERjtBQXlEQTtFQUNFLFVBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSwwQ0FBQTtBQXRERjtBQXdERTtFQUNFLGVBQUE7QUF0REoiLCJmaWxlIjoibW9kYWwtcG9wb3Zlci5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubW9kYWwtdG9vbGJhciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tc2V2LXJlZCk7XG5cbiAgaW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAubW9kYWwtY2xvc2Uge1xuICAgIGNvbG9yOiAjYWNhYWFhO1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIH1cbn1cblxuLmRpbGl2YXJ5LWFkZHJzcy1jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgLmRpbGl2YXJ5LWFkZHJzcy1pbnB1dC1jb250YWluZXIge1xuICAgIG1hcmdpbjogMjBweCA4MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgY29sb3I6ICM5NTk1OTU7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMzVweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgc3Bhbi5pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDAlKTtcbiAgICAgIGNvbG9yOiAjNzE3MTcxO1xuICAgIH1cbiAgfVxufVxuXG4ucmVkLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tc2V2LXJlZCk7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdoaXRlKTtcbiAgZm9udC1zaXplOiAyMnB4O1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uOiAwLjJzO1xuXG4gICY6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIH1cbn1cblxuLm5vdGZpY2F0aW9uLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDAgNTBweDtcblxuICAuZXJyb3ItYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZDogI2ZmZDZkNjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBjb2xvcjogI2QyMGYwZjtcbiAgfVxufVxuXG4vLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4uZGlsaXZhcnktbWV0aG9kLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuYnRuLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgIC5yZWQtYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHBhZGRpbmc6IDEycHggMzRweDtcblxuICAgICAgaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTVweDtcbiAgICAgIH1cblxuICAgICAgc3B
10167hbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vICBHb29nbGUgcGxhY2UgaW5wdXQgc3R5bGVzXG4uc2VhcmNoYmFyIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxMHB4O1xuXG4gIGlvbi1sYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1maXYtd2hpdGUpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG4gIC5pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1maXYtd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLXNlYy1ncmF5KTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgcGFkZGluZy1yaWdodDogNDBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgaW9uLWljb24uY2xvc2VpY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAzMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgLnNlYXJjaC1kcm9wIHtcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXNlYy13aGl0ZSk7XG4gICAgei1pbmRleDogMzAwO1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDVweCAwcHggIzhjOGM4YztcblxuICAgIHVsIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgY29sb3I6ICM3Yjc5Nzk7XG5cbiAgICAgICAgLmxpLXRleHQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS1zZWMtZ3JheSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGFyayB7XG4gICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWN1c3RvbS1zZWMtZ3JheSk7XG4gICAgfVxuICB9XG59XG5cbi5yZXN0YXVyYW50LWNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLXNldi1yZWQpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXNlYy13aGl0ZSk7XG4gIG1hcmdpbjogMTVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC5icmFuY2hlcy10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG5cbiAgLmJyYW5jaGVzLWFkZHJzIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbn1cblxuLm5vLXJlc3RhdXJhbnRzIHtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tc2V2LXJlZCk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYmFjay1idG4ge1xuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGVydCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cbiAgZGl2IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tc2l4LXJlZCk7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICB9XG59XG5cbi5wb3BvdmVyLWhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuXG4ucGFkZGluZy01cHgge1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5jbG9zZSB7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItY3VzdG9tLXNpeC1yZWQpICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnJlc2VydmF0aW9uLXN1Y2Nlc3MtbXNnLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMjBweDtcblxuICBpb24taWNvbiB7XG4gICAgZm9udC1zaXplOiA2NHB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICM3NWM3MmY7XG4gIH1cbn1cblxuLmFsbGVyZ3ktY29udGVudCB7XG4gIGRpdiB7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG59XG5cbi5nZXQtY3VycmVudC1hZGRyZXNzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGEge1xuICAgIGNvbG9yOiB2YXIoLS1jb21tb24tdXNlZC1yZWQtY29sb3IpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtdGFibGUtY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxNXB4O1xuICBtYXJnaW46IDVweDtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCAjM2YzZjNmO1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkN2Q1ZDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgaW9uLWljb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC10YWJsZS1jYXJkLWNoZWNrZWQge1xuICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1kYW5nZXIpICFpbXBvcnRhbnQ7XG5cbiAgaW9uLWljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcbiAgfVxufVxuXG4udGFibGUtbXNnLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogI2UzMDUxOTtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLnRpbWVyIHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnJlc3RhdXJhbnQtZGV0YWlscy1jYXJk
10167IHtcbiAgbWFyZ2luOiAxMHB4O1xuICBwYWRkaW5nOiAxNXB4IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjZGRlZWQ2O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5nby1ub3cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICAvLyBwYWRkaW5nOiA1cHg7XG4gICAgLy8gbWluLXdpZHRoOiAxMDBweDtcbiAgICAvLyBmb250LXNpemU6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuXG4gIC8vIC5jaGFuZ2UtZmF2b3VyaXRle1xuICAvLyAgICAgZm9udC1zaXplOiAxMnB4O1xuICAvLyB9XG59XG5cbi5zcGlubmVyLWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDE1MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlbGVjdC1yZXN0YXVyYW50LWFsZXJ0IHtcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLnVuYWJsZS10by1wcm9jZXNzLW9yZGVyLWFsZXJ0IHtcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYmFja2dyb3VuZDogI2ZmMDcxYztcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4udW5hdmFpbGFibGUtbWVudS1saXN0IHtcbiAgLnVuYXZhaWxhYmxlLW1lbnUtY2FyZC1kZXRhaWxzIHtcbiAgICBtYXJnaW46IDEwcHggMjBweDtcbiAgICBib3JkZXI6IDFweCBkb3R0ZWQgI2ZmMDcxYztcbiAgICBib3JkZXItdG9wOiAxNXB4IHNvbGlkICNmZjA3MWM7XG4gICAgcGFkZGluZzogMTFweDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG5cbiAgICAuYXZhaWxhYmxlLXRpbWVzIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZTFlNDtcbiAgICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLnVuYXZhaWxhYmxlLWNsb3NlLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNDUlO1xuICBib3R0b206IDEwcHg7XG59XG5cbi5pY29uLWNvbnRhaW5lci11bmF2YWlsYWJsZSB7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICBoZWlnaHQ6IDU2cHg7XG59XG5cbi5pY29uLWNvbnRhaW5lciB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xufVxuXG4uYnRuLWxpbmsge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uYnRuLXNtLWFsZXJ0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmF2b3JpdGUtcmVzdGF1cmFudC1tYXJrZWQtY29udGFpbmVyIHtcbiAgLmZhdm91cml0ZS1tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICAgIGlvbi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC55b3UtY2FuLWNoYW5nZS10aGlzIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cblxuICAuYnRuLW9rIHtcbiAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgICAgYmFja2dyb3VuZDogIzRiOTBlMjtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLmNoYW5nZS1mYXZvdXJpdGUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tdC0xNXB4IHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnBvc3RhbC1jb2RlLWlucHV0IHtcbiAgYm9yZGVyOiAycHggZGFzaGVkIGRhcmtncmF5O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG4uY29udGFpbmVyIHtcbiAgcGFkZGluZzogMjBweDtcbn1cblxuLnBvc3RhbC1jb2RlLWxpc3Qge1xuICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5ub3QtZm91bmQtcG9zdGFscyB7XG4gIHdpZHRoOiA4MCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgbWFyZ2luLWxlZnQ6IDEwJTtcbiAgbWFyZ2luLXJpZ2h0OiAxMCU7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1jdXN0b20tbWVkaXVtLWdyYXkpO1xuXG4gIGlvbi1pY29uIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gIH1cbn0iXX0= */");
10168
10169/***/ }),
10170
10171/***/ 91106:
10172/*!**************************************************************************!*\
10173  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html ***!
10174  \**************************************************************************/
10175/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10176
10177"use strict";
10178__webpack_require__.r(__webpack_exports__);
10179/* harmony default export */ __webpack_exports__["default"] = ("<ion-app>\n    <div class=\"secret-div\" id=\"secret-div\" *ngIf=\"appService.tourModeOn\">\n        <div class=\"inner\"></div>\n    </div>\n    <div class=\"no-internet\" *ngIf=\"!internetConnection\">\n        <div>\n            <ion-icon class=\"no-internet-icon\" name=\"cloud-offline-outline\"></ion-icon>\n            <h4 class=\"no-internet-title\">{{ noInternet?.woops }}</h4>\n            <p class=\"connection-msg\">{{ noInternet?.msg }}</p>\n        </div>\n    </div>\n    <ion-split-pane contentId=\"main-content\">\n        <ion-menu contentId=\"main-content\" side=\"start\" menuId=\"sidemenu\" *ngIf=\"appService?.isSideMenu\">\n            <ion-content class=\"background\">\n                <div class=\"close-btn\">\n                    <ion-icon (click)=\"appService.closeMenu()\" name=\"close\"></ion-icon>\n                </div>\n                <ion-menu-toggle auto-hide=\"false\" class=\"menu-list transparent zindex\">\n                    <ion-item *ngIf=\"appService?.appObject?.isAuthed\" [routerLink]=\"['/inbox']\" routerDirection=\"root\"\n                        class=\"transparent pointer\" color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">
10179\n                        <span class=\"menu-item-text\"\n                            [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            <div class=\"menu-item\">\n                                <ion-icon name=\"mail\"\n                                    [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                                </ion-icon>\n                                <span class=\"menu-item-text\"\n                                    [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.inbox'\n                                    |\n                                    translate\n                                    }}\n                                </span>\n                            </div>\n                        </span>\n                    </ion-item>\n                    <ion-item *ngIf=\"appService?.appObject?.isAuthed\" [routerLink]=\"['/profile']\" routerDirection=\"root\"\n                        class=\"transparent pointer\" color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\">\n                            <ion-icon name=\"person\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon><span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.PROFILE'\n                                | translate\n                                }}</span>\n                        </div>\n                    </ion-item>\n                    <ion-item [routerLink]=\"['/my-orders']\" routerDirection=\"root\" class=\"transparent pointer\"\n                        color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\">\n                            <ion-icon name=\"cart\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon>\n                            <span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.MY_ORDERS'\n                                | translate\n                                }}</span>\n                        </div>\n                    </ion-item>\n\n                    <ion-item routerDirection=\"root\" [routerLink]=\"['/additives-and-substances']\"\n                        class=\"transparent pointer\" color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\">\n                            <ion-icon name=\"alert-circle\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon>
10179\n                            <span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.additives_and_substances'\n                                |\n                                translate }}</span>\n                        </div>\n                    </ion-item>\n                    <ion-item *ngIf=\"appService.appObject.settings?.app_configuration?.has_multiple_restaurants\"\n                        routerDirection=\"root\" [routerLink]=\"['/restaurant-list']\" class=\"transparent pointer\"\n                        color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\">\n                            <ion-icon name=\"book\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon>\n                            <span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.BRANCHES'\n                                | translate\n                                }}</span>\n                        </div>\n                    </ion-item>\n                    <ion-item routerDirection=\"root\"\n                        [routerLink]=\"['/imprint/'+( appService.appObject.selectedRestaurant != null ? appService.appObject.selectedRestaurant : appService?.appObject?.promotions?.resturent?.show_on_list[0]?.slug )]\"\n                        class=\"transparent pointer\" color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\">\n                            <ion-icon name=\"settings\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon>\n                            <span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.IMPRESSUIM'\n                                |\n                                translate\n                                }}</span>\n                        </div>\n                    </ion-item>\n\n\n                    <!--pages-->\n                    <ion-item *ngFor=\"let page of appService?.appObject?.sideMenuPages\" class=\"transparent pointer\"\n                        color=\"none\" lines=\"none\" [routerLink]=\"['/pages/' + page.slug]\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <!-- [routerLink]=\"['find-near-by-me']\" -->\n                        <div class=\"menu-item\">\n                            <ion-icon [name]=\"page.icon\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon>\n                            <span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{\n                                page.name }}</span>\n                        </div>\n                    </ion-item>\n                    <!--end pages-->\n\n                    <ion-item routerDirection=\"root\" class=\"transparent pointer\" color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\" (click)=\"call()\">\n                            <ion-icon name=\"call\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon>
10179\n                            <span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.CALL_US'\n                                | translate\n                                }}</span>\n                        </div>\n                    </ion-item>\n\n                    <ion-item routerDirection=\"root\" *ngIf=\"appService?.appObject?.isAuthed\" class=\"transparent pointer\"\n                        color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\" (click)=\"appService.logOut()\">\n                            <ion-icon name=\"log-out\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon>\n                            <span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.LOGOUT'\n                                | translate\n                                }}</span>\n                        </div>\n                    </ion-item>\n                    <ion-item routerDirection=\"root\" *ngIf=\"!appService?.appObject?.isAuthed\"\n                        class=\"transparent pointer\" color=\"none\" lines=\"none\" [routerLink]=\"['login']\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\">\n                            <ion-icon name=\"log-out\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon>\n                            <span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.LOGIN'\n                                | translate\n                                }}</span>\n                        </div>\n                    </ion-item>\n                    <ion-item routerDirection=\"root\" class=\"transparent pointer\" color=\"none\" lines=\"none\"\n                        [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.background : ''}\">\n                        <div class=\"menu-item\" (click)=\"appService.showLanguage()\">\n                            <ion-icon name=\"language\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">\n                            </ion-icon><span class=\"menu-item-text\"\n                                [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.sideMenu ? appService.appObject.theme[appService.themeConfigFor]?.sideMenu.textColor : ''}\">{{'key.CHANGE_LANGUAGE'\n                                |\n                                translate\n                                }}</span>\n                        </div>\n                    </ion-item>\n                </ion-menu-toggle>\n\n                <div class=\"menu-footer\">\n                    <!--<img src=\"/assets/css/menu-footer.png\" />-->\n                    <img\n                        [src]=\"baseURL+'/images/restaurant-sidemenu-app-img/'+appService?.appObject?.settings?.main_restaurant?.id\" />\n                </div>
10179\n\n                <span class=\"app-version-no\" *ngIf=\"appVersion\">v{{appVersion}}</span>\n            </ion-content>\n        </ion-menu>\n\n        <ion-router-outlet id=\"main-content\" class=\"{{!appService.isWebVersion ? 'main-outlet-content' : ''}}\">\n        </ion-router-outlet>\n\n\n        <!-- <ion-footer class=\"footer-menu-gm\" *ngIf=\"appService?.isFooterMenu\">\n\n\n            <ion-buttons>\n                <button ion-button routerDirection=\"root\" [routerLink]=\"['/home']\">\n                    <ion-icon name=\"home\"></ion-icon>\n                    <ion-label>{{'key.HOME' | translate }}</ion-label>\n                </button>\n                <button ion-button>\n                    <ion-icon name=\"pricetag\" routerDirection=\"root\" [routerLink]=\"['/actions']\"></ion-icon>\n                    <ion-label>{{'key.ACTION' | translate }}</ion-label>\n                </button>\n                <button ion-button class=\"home-tab\" (click)=\"appService.routeToOrder()\">\n                    <img src=\"/assets/img/logo-red.png\">\n                    <ion-label>{{'key.ORDER' | translate }}</ion-label>\n                </button>\n                <button ion-button [routerLink]=\"['/coupons']\">\n                    <ion-icon name=\"bag-handle\"></ion-icon>\n                    <ion-label>{{'key.COUPON' | translate }}</ion-label>\n                </button>\n                <button ion-button (click)=\"appService.openSideMenu()\">\n                    <ion-icon name=\"ellipsis-horizontal\"></ion-icon>\n                    <ion-label>{{'key.MORE' | translate }}</ion-label>\n                </button>\n            </ion-buttons>\n\n\n\n        </ion-footer> -->\n\n        <ion-footer class=\"footer-menu-gm\" *ngIf=\"appService?.isFooterMenu\"\n            [ngStyle]=\"{'background-color': (appService.appObject.theme ? appService.appObject.theme[appService.themeConfigFor]?.footerMenuBackground : '')}\">\n            <ion-buttons class=\"fotter_hei\">\n                <button ion-button routerDirection=\"root\" [routerLink]=\"['/home']\" (click)=\"triggerHomeRefresh()\">\n                    <ion-icon name=\"home\"\n                        [ngStyle]=\"{'color' : appService.appObject.theme ? appService.appObject.theme[appService.themeConfigFor]?.footerMenuText : ''}\">\n                    </ion-icon>\n                    <ion-label\n                        [ngStyle]=\"{'color' : appService.appObject.theme ? appService.appObject.theme[appService.themeConfigFor]?.footerMenuText : ''}\">\n                        {{'key.HOME' | translate }}</ion-label>\n                </button>\n                <button ion-button>\n                    <ion-icon name=\"pricetag\" routerDirection=\"root\" (click)=\"appService.navigateToOrderingPage()\"\n                        [ngStyle]=\"{'color' : appService.appObject.theme ? appService.appObject.theme[appService.themeConfigFor]?.footerMenuText : ''}\">\n                    </ion-icon>\n                    <ion-label\n                        [ngStyle]=\"{'color' : appService.appObject.theme ? appService.appObject.theme[appService.themeConfigFor]?.footerMenuText : ''}\">\n                        {{'key.MENU' | translate }}</ion-label>\n                </button>\n                <button ion-button [routerLink]=\" [appService?.appObject?.isAuthed ? '/profile' : '/login']\">\n                    <ion-icon name=\"bag-handle\"\n                        [ngStyle]=\"{'color' : appService.appObject.theme ? appService.appObject.theme[appService.themeConfigFor]?.footerMenuText : ''}\">\n                    </ion-icon>\n                    <ion-label\n                        [ngStyle]=\"{'color' : appService.appObject.theme ? appService.appObject.theme[appService.themeConfigFor]?.footerMenuText : ''}\">\n                        {{'key.MY-ACCOUNT' | translate }}</ion-label>\n                </button>\n                <button ion-button (click)=\"appService.openSideMenu()\">\n                    <ion-icon name=\"ellipsis-horizontal\"\n                        [ngStyle]=\"{'color' : appService.appObject.theme ? appService.appObject.theme[appService.themeConfigFor]?.footerMenuText : ''}\">\n                    </ion-icon>\n                </button>\n            </ion-buttons>\n        </ion-footer>\n\n    </ion-split-pane>\n\n</ion-app>\n\n<ion-backdrop class=\"ion-back-opacity\" tappable=\"true\" *ngIf=\"appService.animationDrop\" visible=\"true\"></ion-backdrop>\n\n<div class=\"cart-button vvv\" [class]=\"appService.className + appService.className2\"\n    *ngIf=\"!appService.isWebVersion && !appService.hideCartButton && appService.appObject.orderObject.cart_summery.net_total > 0 && (!appService.closenotice || (appService.closenotice && appService.isPreOrderAccept))\"\n    (click)=\"appService.openCart()\"\n    [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.floatingCartButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n    'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.floatingCartButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n\n    <ion-icon name=\"cart-outline\"\n        [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? (appService.appObject.theme[appService.themeConfigFor]?.advanced.floatingCartButtonText + ' !important') : (appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor + ' !important')}\">\n    </ion-icon>\n    <span>\n        {{ appService.appObject.orderObject.cart_summery.gross_total | price:\n        appService.appObject.settings.currency_symbol\n        :\n        appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod}}\n    </span>\n\n</div>\n\n<div *ngIf=\"appService?.appObject?.isLoading\" class=\"full-loading-wrapper\">\n    <div class=\"backdrop\"></div>\n    <div class=\"loading-center-full\">\n        <app-animatedloading></app-animatedloading>\n    </div>\n</div>\n\n<div class=\"cookies-banner\" id=\"cookies-banner\" *ngIf=\"displayCookieBanner()\">\n    <p>{{'key.cookie_message' | translate}}
10179. <span\n            *ngIf=\"displayLinks(TERMS_AND_CONDITIONS_SLUG) || displayLinks(PRIVACY_POLICY_SLUG)\">{{'key.our' |\n            translate}} </span>\n        <span *ngIf=\"displayLinks(PRIVACY_POLICY_SLUG)\" class=\"privacy-policy\"\n            (click)=\"openSlug(PRIVACY_POLICY_SLUG,pages.pnp.name || 'Privacy Policy' )\">{{'key.privacy_policy' |\n            translate}}</span>\n        <span *ngIf=\"displayLinks(TERMS_AND_CONDITIONS_SLUG) && displayLinks(PRIVACY_POLICY_SLUG)\"> {{'key.and' |\n            translate}}\n        </span>\n        <span *ngIf=\"displayLinks(TERMS_AND_CONDITIONS_SLUG)\" class=\"tnc\"\n            (click)=\"openSlug(TERMS_AND_CONDITIONS_SLUG,pages.tnc.name || 'Terms and Conditions' )\">{{'key.terms_and_conditions'\n            |\n            translate}}</span>\n    </p>\n    <div class=\"cookie-banner-buttons\">\n        <a aria-label=\"deny cookies\" role=\"button\" tabindex=\"0\" class=\"banner-buttons dismiss\"\n            (click)=\"cookiesBannerDismissed()\">{{'key.cookie_dismiss' | translate}}</a>\n        <a aria-label=\"allow cookies\" role=\"button\" tabindex=\"0\" class=\"banner-buttons got-it\"\n            [ngStyle]=\"{'background-color': appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.gotItButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\"\n            (click)=\"cookiesAccepted()\">{{'key.cookie_got_it' | translate}}</a>\n    </div>\n</div>\n\n<!-- <div class=\"app-banner\" id=\"app-download-banner\" *ngIf=\"isCookieBannerClosed && displayAppDownloadBanner()\">\n    <div class=\"app-icon\"></div>\n    <div class=\"text-container\">\n        <p class=\"app-name\">Takeaway</p>\n        <p class=\"description\">{{'key.available_on_the' | translate}}&nbsp;{{(platform.is('android') ? 'key.play_store' : 'key.app_store') | translate}}</p>\n    </div>\n    <span class=\"close-btn-app-banner\" (click)=\"getAppBannerDismissed()\"><ion-icon name=\"close\"></ion-icon></span>\n    <span class=\"get-app-btn\" (click)=\"getAppInstalled()\">{{(platform.is('android') ? 'key.install' : 'key.get') | translate}}</span>\n</div> -->\n<div class=\"app-banner\" id=\"app-download-banner\"\n    [ngStyle]=\"{'background-color': appService.appObject.theme[appService.themeConfigFor]?.downloadAppBannerBackgroundColor, 'color': appService.appObject.theme[appService.themeConfigFor]?.downloadAppBannerTextColor}\"\n    *ngIf=\"isCookieBannerClosed && displayAppDownloadBanner()\">\n    <ion-grid class=\"no-padding\">\n        <ion-row>\n            <ion-col size=\"auto\">\n                <div class=\"app-icon\" [ngStyle]=\"{'background-image' : 'url('+ appIcon +')'}\"></div>\n            </ion-col>\n            <ion-col>\n                <div class=\"text-container\">\n                    <span class=\"app-name\">{{appName}}</span>\n                    <br>\n                    <span class=\"description\">{{'key.available_on_the' | translate}}&nbsp;{{(platform.is('android') ?\n                        'key.play_store' : 'key.app_store') | translate}}</span>\n                </div>\n            </ion-col>\n            <ion-col size=\"2\"><span class=\"get-app-btn\" (click)=\"getAppInstalled()\">{{(platform.is('android') ?\n                    'key.install' : 'key.get') | translate}}</span></ion-col>\n        </ion-row>\n        <span class=\"close-btn-app-banner\" (click)=\"getAppBannerDismissed()\">\n            <ion-icon name=\"close\"></ion-icon>\n        </span>\n    </ion-grid>\n</div>");
10180
10181/***/ }),
10182
10183/***/ 80628:
10184/*!****************************************************************************************************************!*\
10185  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/component/animatedloading/animatedloading.component.html ***!
10186  \****************************************************************************************************************/
10187/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10188
10189"use strict";
10190__webpack_require__.r(__webpack_exports__);
10191/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"loader07\"></div>");
10192
10193/***/ }),
10194
10195/***/ 90602:
10196/*!******************************************************************************************!*\
10197  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/views/modals/alert/alert.page.html ***!
10198  \******************************************************************************************/
10199/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10200
10201"use strict";
10202__webpack_require__.r(__webpack_exports__);
10203/* harmony default export */ __webpack_exports__["default"] = ("<ion-content *ngIf=\"type !== '
10203image-preview'\">\n\n  <div class=\"{{((type === 'success' || type === 'reservation-success') ? 'success ' : 'error ') + 'popup-container'}} \"\n    *ngIf=\"type === 'reservation-success' || type === 'success' || type === 'error'\">\n    <div class=\"popup-container-inner\"\n      [ngStyle]=\"{'border-top': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? ('5px solid ' + appService.appObject.theme[appService.themeConfigFor]?.primaryColor) : ''}\">\n\n      <div class=\"line-top\"></div>\n      <ion-item>\n        <div slot=\"start\" class=\"icon\">\n          <ion-icon class=\"error-icon\" name=\"alert-circle-outline\"></ion-icon>\n          <ion-icon class=\"alert-icon\" name=\"document-text-outline\"></ion-icon>\n          <ion-icon class=\"success-icon\" name=\"checkmark-outline\"></ion-icon>\n        </div>\n\n        <div class=\"text\" *ngIf=\"type !== 'reservation-success'\">\n          <h3>{{ title | translate}}</h3>\n          <div class=\"message-text {{ message === 'closeNote' ? ' text-red ' : ''}}\">{{(message === 'closeNote' ?\n            'key.close_note' : message) | translate}}</div>\n        </div>\n\n        <div class=\"text\" *ngIf=\"type === 'reservation-success'\">\n          <h3>{{ title | translate}}</h3>\n          <div class=\"message-text\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(message)\"></div>\n        </div>\n\n        <div class=\"close-icon\" slot=\"end\">\n          <ion-icon class=\"\" name=\"close-outline\" (click)=\"close()\"></ion-icon>\n        </div>\n      </ion-item>\n    </div>\n  </div>\n\n  <!-- Only display when type is alergy-info -->\n  <div class=\"popup-container error\" *ngIf=\"type === 'alergy-info' || type === 'error-detailed-info'\">\n    <div class=\"popup-container-inner\"\n      [ngStyle]=\"{'border-top': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? ('5px solid ' + appService.appObject.theme[appService.themeConfigFor]?.primaryColor) : ''}\">\n      <div class=\"line-top\"></div>\n      <p class=\"m-0 alergy-info-title\"><strong>{{title | translate}}</strong>\n        <ion-icon class=\"float-right pointer\" name=\"close-outline\" (click)=\"modalController.dismiss()\"></ion-icon>\n      </p>\n      <ion-item>\n        <div class=\"text alergy-info-container\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(message)\"\n          *ngIf=\"message\">\n        </div>\n        <div class=\"text alergy-info-container text-center\" *ngIf=\"!message\">\n          {{'key.no_allergies_and_additives_data_to_display' | translate}}\n        </div>\n      </ion-item>\n    </div>\n  </div>\n\n  <!-- Only display when type is alergy-info -->\n  <div class=\"popup-container error\" *ngIf=\"type === 'favourite-restaurant'\">\n    <div class=\"popup-container-inner favorite-restaurant-marked-container\"\n      [ngStyle]=\"{'border-top': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? ('5px solid ' + appService.appObject.theme[appService.themeConfigFor]?.primaryColor) : ''}\">\n      <div class=\"line-top\"></div>\n      <div class=\"favourite-message\">\n        <span\n          [ngStyle]=\"{'color': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''}\">\n          <ion-icon name=\"checkmark-circle\"></ion-icon>\n        </span>\n        <span>{{'key.you_ve_selected' | translate}}&nbsp;<strong\n            [ngStyle]=\"{'color': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''}\">{{appService.appObject.favouriteRestaurant.name}}</strong>&nbsp;{{'key.as_your_favourite_restaurant'\n          | translate }}.</span>\n      </div>
10203\n      <span class=\"you-can-change-this\">{{'key.you_can_change_this_at_any_time' | translate}}.</span>\n      <div class=\"btn-ok\">\n        <span (click)=\"modalController.dismiss()\">{{'key.ok' | translate}}</span>\n      </div>\n    </div>\n  </div>\n</ion-content>\n\n<ion-content *ngIf=\"type === 'image-preview'\">\n  <div class=\"popup-container\">\n    <div class=\"popup-container-inner image-container\">\n      <div class=\"line-top\"></div>\n      <label class=\"image-preview-dish-close\">\n        <ion-icon class=\"\" name=\"close-outline\" (click)=\"modalController.dismiss()\"></ion-icon>\n      </label>\n      <img [src]=\"message\" alt=\"\">\n    </div>\n  </div>\n</ion-content>");
10204
10205/***/ }),
10206
10207/***/ 84410:
10208/*!****************************************************************************************!*\
10209  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/views/modals/cart/cart.page.html ***!
10210  \****************************************************************************************/
10211/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10212
10213"use strict";
10214__webpack_require__.r(__webpack_exports__);
10215/* harmony default export */ __webpack_exports__["default"] = ("<ion-content>\n\n    <div class=\"popup-container\" (click)=\"isheight()\">\n        <div class=\"popup-container-inner\" [class.heighOk]=\"!isheighok\">\n            <div class=\"title\">\n                <ion-grid>\n                    <ion-row>\n                        <ion-col size=\"11\" class=\"cart-title\">\n                            <ion-icon name=\"cart\"\n                                [ngStyle]=\"{'color': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''}\">\n                            </ion-icon> {{ 'key.your_cart' | translate }}\n                            (x{{appService.appObject.orderObject.cart_summery.total_dish_count}})\n                        </ion-col>\n                        <ion-col size=\"1\">\n                            <ion-icon class=\"close-btn\" name=\"close-outline\" (click)=\"dismiss()\"></ion-icon>\n                        </ion-col>\n                    </ion-row>\n                </ion-grid>\n\n\n                <div class=\"cart-button\"\n                    [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.floatingCartButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n                'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.floatingCartButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n\n                    <ion-icon name=\"cart-outline\"></ion-icon>\n                    <span>\n                        {{ appService.appObject.orderObject.cart_summery.gross_total | price:\n                        appService.appObject.settings.currency_symbol :\n                        appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod}}\n                    </span>\n\n                </div>\n\n            </div>\n\n\n            <div>\n                <div class=\"cart-list\" *ngIf=\"appService?.appObject?.orderObject?.cart\">\n                    <div class=\"first-flex {{highlightUnavailableDishes ? 'hightlight-spec' : ''}}\">\n                        <!--edited here -->\n                        <ng-container *ngFor=\"let dish of appService.appObject.orderObject.cart; let i = index\">\n                            <ion-grid *ngIf=\"dish.not_available\">\n                                <ion-row class=\"cart-header\">\n                                    <ion-col size=\"12\" class=\"counter\">\n                                        <div class=\"number\">{{ dish.name }}</div>\n                                    </ion-col>\n\n                                </ion-row>\n                                <ion-row class=\"dish-not-available\">\n                                    <div class=\"highlight\">\n                                        <div>\n                                            {{'key.not_available_for' | translate}}\n                                            <br>\n                                            {{('key.'+appService.appObject.selectedDeliveryMethod) | translate}}\n                                        </div>\n                                        <div class=\"trash-container\">\n                                            <ion-icon name=\"trash\" (click)=\"remove(i)\"></ion-icon>\n                                        </div>\n                                    </div>\n                                </ion-row>\n                            </ion-grid>\n                            <ion-grid *ngIf=\"!dish.not_available\" class=\"{{highlightUnavailableDishes && unavailableDishesIds.includes(dish.dish_id) ? 'highlight-unavailable' : ''}}\">\n                                <ion-row class=\"cart-header\">\n                                    <ion-col size=\"6\" class=\"counter\">\n                                        <div *ngIf=\"i >= (appService.appObject.orderObject.save_items ? appService.appObject.orderObject.save_items : 0)\"\n                                            class=\"minu
10215s\">\n                                            <ion-icon *ngIf=\"dish.count > 1\" (click)=\"decDish(dish)\" name=\"remove\">\n                                            </ion-icon>\n                                        </div>\n                                        <div class=\"number\">{{ dish.count }}</div>\n                                        <span *ngIf=\"i < appService.appObject.orderObject.save_items\">x</span>\n                                        <div *ngIf=\"i >= (appService.appObject.orderObject.save_items ? appService.appObject.orderObject.save_items : 0)\"\n                                            class=\"plus\">\n                                            <ion-icon (click)=\"incDish(dish)\" name=\"add\"></ion-icon>\n                                        </div>\n                                        <div class=\"clear\"></div>\n                                    </ion-col>\n                                    <ion-col\n                                        *ngIf=\"i >= (appService.appObject.orderObject.save_items ? appService.appObject.orderObject.save_items : 0)\"\n                                        size=\"6\" class=\"edit\">\n                                        <!--<ion-icon *ngIf=\"dish?.size_info\" (click)=\"edit(i,dish)\" name=\"pencil\"></ion-icon>-->\n                                        <ion-icon (click)=\"remove(i)\" name=\"trash\" class=\"red-color\"></ion-icon>\n                                        <!-- red color added -->\n                                    </ion-col>\n\n                                </ion-row>\n\n                                <ion-row>\n                                    <ion-col class=\"text\" size=\"9\">\n                                        <div class=\"title\">\n                                            {{ dish.name }} &nbsp;\n                                            <sup *ngIf=\"dish.discount && dish.discount[0] && dish.discount[0].amount\"\n                                                class=\"text-red\">\n                                                -{{dish.discount[0].amount}}{{dish.discount[0].type === 'percentage' ?\n                                                '%' :\n                                                ''}}\n                                            </sup>\n                                        </div>\n                                        <div *ngIf=\"dish?.size_info\">\n                                            <div class=\"sub\" *ngFor=\"let toping of dish.size_info.topping_info\">\n                                                {{ toping.name }} x{{ toping.count }} {{ toping.total | price:\n                                                appService.appObject.settings.currency_symbol :\n                                                appService.appObject.settings.currency_position :\n                                                appService.appObject.selectedDeliveryMethod}}\n\n                                            </div>\n                                        </div>\n                                    </ion-col>\n                                    <ion-col size=\"3\" class=\"price\">\n\n                                        <!-- {{ dish.gross_total_with_discount | price:\n                                        appService.appObject.settings.currency_symbol :\n                                        appService.appObject.settings.currency_position :\n                                        appService.appObject.selectedDeliveryMethod}} -->\n                                        <span>\n                                            <span class=\"price-line-through\" *ngIf=\"dish.total_discount\">\n                                                {{ dish.net_total | price:\n                                                appService.appObject.settings.currency_symbol :\n                                                appService.appObject.settings.currency_position :\n                                                appService.appObject.selectedDeliveryMethod}}\n                                            </span>\n                                            <br *ngIf=\"dish.total_discount\">\n                                            {{ dish.gross_total_with_discount | price:\n                                            appService.appObject.settings.currency_symbol :\n                                            appService.appObject.settings.currency_position :\n                                            appService.appObject.selectedDeliveryMethod}}\n\n                                        </span>\n                                    </ion-col>\n                                </ion-row>\n                                <!-------- EDDITED : START -->\n                                <ion-row class=\"border-bottom margin-top-5\"\n                                    *ngIf=\"appService.appObject.selectedRestaurantDetails?.is_winorder === 'false'\">\n                                    <ion-item lines=\"none\">\n                                        <ion-textarea\n                                            *ngIf=\"dish.comment_editing && i >= (appService.appObject.orderObject.save_items ? appService.appObject.orderObject.save_items : 0)\"\n                                            class=\"comment\" [(ngModel)]=\"dish.comment\"\n                                            placeholder=\"{{ 'key.comment' | translate }}\">\n                                        </ion-textarea>\n                                        <p class=\"comment\" *ngIf=\"!dish.comment_editing\"\n                                            (click)=\"(i >= (appService.appObject.orderObject.save_items ? appService.appObject.orderObject.save_items : 0)) ? dish.comment_editing = !dish.comment_editing : ''\">
10215\n                                            <span *ngIf=\"dish.comment == ''\">\n                                                {{ 'key.please_enter_your_comment' | translate }}\n                                            </span> {{dish.comment !='' ? dish.comment : ''}}\n                                        </p>\n\n\n\n                                        <ion-icon slot=\"end\" class=\"coupon-accept cart-comment-editing\"\n                                            (click)=\"dish.comment_editing = !dish.comment_editing;\"\n                                            *ngIf=\"dish.comment_editing && (i >= (appService.appObject.orderObject.save_items ? appService.appObject.orderObject.save_items : 0))\"\n                                            name=\"checkmark\"></ion-icon>\n                                        <ion-icon slot=\"end\" class=\"coupon-accept green-color\"\n                                            (click)=\"dish.comment_editing = !dish.comment_editing;\"\n                                            *ngIf=\"!dish.comment_editing && (i >= (appService.appObject.orderObject.save_items ? appService.appObject.orderObject.save_items : 0))\"\n                                            name=\"create-outline\"></ion-icon>\n                                    </ion-item>\n                                </ion-row>\n                                <!-- EDDITED :END ---->\n\n                            </ion-grid>\n                        </ng-container>\n\n                    </div>\n                    <!-- edited here-->\n                    <div class=\"second-flex\">\n                        <!-- edited here -->\n                        <ion-grid class=\"cart-footer\">\n                            <ion-row>\n                                <ion-col size=\"9\">{{ 'key.net_total' | translate }}\n                                    <div class=\"sub-sm fs12\">({{ 'key.tax_and_discount_included' | translate }})</div>\n                                </ion-col>\n                                <ion-col size=\"3\" class=\"text-right\">{{\n                                    appService.appObject.orderObject.cart_summery.dish_net_total_with_discount | price:\n                                    appService.appObject.settings.currency_symbol :\n                                    appService.appObject.settings.currency_position :\n                                    appService.appObject.selectedDeliveryMethod}}\n                                </ion-col>\n                            </ion-row>\n                            <ion-row *ngIf=\"appService.appObject.orderObject.cart_summery.coupon_details\">\n                                <ion-col size=\"9\">{{ 'key.coupon' | translate }} - {{ appService.appObject.orderObject.cart_summery.coupon_details.name }}\n                                    <div class=\"sub-sm fs12\">({{'key.applied_amount' | translate}} {{ appService.appObject.orderObject.cart_summery.coupon_discount\n                                        | price: appService.appObject.settings.currency_symbol :\n                                        appService.appObject.settings.currency_position :\n                                        appService.appObject.selectedDeliveryMethod}})</div>\n                                </ion-col>\n                                <ion-col size=\"3\" class=\"text-right\">\n                                    <span *ngIf=\"appService.appObject.orderObject.cart_summery.coupon_details.type == 'percentage'\">\n                                        -{{ appService.appObject.orderObject.cart_summery.coupon_details.amount }}%\n                                      </span>\n                                      <span *ngIf=\"appService.appObject.orderObject.cart_summery.coupon_details.type == 'fixed'\">\n                                        -{{ appService.appObject.orderObject.cart_summery.coupon_discount\n                                          | price: appService.appObject.settings.currency_symbol :\n                                          appService.appObject.settings.currency_position :\n                                          appService.appObject.selectedDeliveryMethod}}\n                                      </span>\n                                </ion-col>\n                            </ion-row>\n\n                            <!-- <ion-row *ngFor=\"let tax of appService.appObject.orderObject.order_tax\">\n                                <ion-col size=\"9\">{{ tax.name }}</ion-col>\n                                <ion-col size=\"3\" class=\"text-right\"> +{{ tax.amount | tax:\n                                    appService.appObject.settings.currency_symbol :\n                                    appService.appObject.settings.currency_position :\n                                    appService.appObject.selectedDeliveryMethod : tax.type }}</ion-col>\n                            </ion-row> -->\n\n\n                            <!-- <ion-row *ngFor=\"let discount of appService.appObject.orderObject.discounts\">\n                                <ion-col size=\"9\" *ngIf=\"!discount?.discount_id\">{{ 'key.discount' | translate }}\n                                </ion-col>\n                                <ion-col size=\"9\" *ngIf=\"discount?.discount_id\">{{ 'key.special_discount' | translate }}\n                                </ion-col>\n                                <ion-col size=\"3\" class=\"text-right\"> -{{ discount.amount | tax:\n                                    appService.appObject.settings.currency_symbol :\n                                    appService.appObject.settings.currency_position :\n                                    appService.appObject.selectedDeliveryMethod : discount.type }}</ion-col>\n                            </ion-row> -->\n\n                            <ion-row *ngIf=\"appService.appObject.selectedDeliveryMethod =='delivery' \">\n                                <ion-col size=\"9\" style=\"display: flex;align-items: center;\">\n                                    {{ 'key.delivery_cost' | translate }}
10215\n                                    <span *ngIf=\"appService.appObject.postalCodeDetails\" (click)=\"openDeliveryTimeSlotDetails($event,true)\"><ion-icon style=\"margin-top: 3px;margin-left: 5px;\" name=\"alarm-outline\" [ngStyle]=\"{color: appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\"></ion-icon></span>\n                                    <!-- <span *ngIf=\"!appService.appObject.tourEndDeliveryMobile && appService.appObject.postalCodeDetails\" (click)=\"openDeliveryTimeSlotDetails($event)\" id=\"open-tour-delivery\"><ion-icon style=\"margin-top: 3px;margin-left: 5px;\" name=\"alarm-outline\" [ngStyle]=\"{color: appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\"></ion-icon></span> -->\n                                </ion-col>\n                                <ion-col size=\"3\" class=\"text-right\">\n                                    <!-- +{{\n                                    appService.appObject.orderObject.cart_summery.delivery_cost | price:\n                                    appService.appObject.settings.currency_symbol :\n                                    appService.appObject.settings.currency_position :\n                                    appService.appObject.selectedDeliveryMethod }} -->\n\n                                    <span>\n                                        <span class=\"price-line-through\"\n                                            *ngIf=\"appService.appObject.orderObject?.specialFreeDeliveryApplied\">\n                                            +{{ appService?.appObject?.orderObject?.deliveryCostWas | price:\n                                            appService.appObject.settings.currency_symbol :\n                                            appService.appObject.settings.currency_position :\n                                            appService.appObject.selectedDeliveryMethod}}\n                                        </span>\n                                        <br *ngIf=\"appService.appObject.orderObject?.specialFreeDeliveryApplied\">\n                                        +{{ appService.appObject.orderObject.cart_summery.delivery_cost | price:\n                                        appService.appObject.settings.currency_symbol :\n                                        appService.appObject.settings.currency_position :\n                                        appService.appObject.selectedDeliveryMethod}}\n\n                                    </span>\n\n                                </ion-col>\n                            </ion-row>\n\n\n                            <ion-row>\n                                <ion-col size=\"9\" class=\"font-size-18\">{{ 'key.gross_total' | translate }}</ion-col>\n                                <ion-col size=\"3\" class=\"text-right font-size-18\"> {{\n                                    appService.appObject.orderObject.cart_summery.gross_total | price:\n                                    appService.appObject.settings.currency_symbol :\n                                    appService.appObject.settings.currency_position :\n                                    appService.appObject.selectedDeliveryMethod }}\n                                </ion-col>\n                            </ion-row>\n\n                            <ion-row>\n\n                            </ion-row>\n\n                        </ion-grid>\n\n                        <ion-grid *ngIf=\"!highlightUnavailableDishes\">\n                            <ion-row class=\"cart-footer\">\n\n\n                                <!-- EDDITED start -->\n                                <ion-col size=\"12\" class=\"\" *ngIf=\"!isBarModeEnabled || makePayment\">\n                                    <ion-item lines=\"none\" class=\"somethig item-has-focus\">\n                                        <ion-label position=\"floating\">\n                                            <ion-icon name=\"bookmark-outline\"></ion-icon> {{ 'key.COUPON' | translate }}\n                                        </ion-label>\n                                        <ion-input placeholder=\"eg : XYUVSAD\" [(ngModel)]=\"coupon\" autofocus\n                                            [autofocus]=\"true\">\n                                        </ion-input>\n\n\n                                        <div class=\"ion-text-right\" slot=\"end\">\n                                            <ion-spinner name=\"crescent\" class=\"text-red\"\n                                                *ngIf=\"isCouponStatusChecking\"></ion-spinner>\n                                            <ion-icon class=\"coupon-accept\" (click)=\"addCoupon()\"\n                                                *ngIf=\"!couponAdded && !isCouponStatusChecking\" name=\"checkmark\">\n                                            </ion-icon>\n                                            <ion-icon class=\"coupon-accept disabled\" (click)=\"removeCoupon()\"\n                                                *ngIf=\"couponAdded && !isCouponStatusChecking\" name=\"close-outline\">\n                                            </ion-icon>\n                                        </div>\n                                    </ion-item>\n                                </ion-col>\n\n                                <!-- EDITED end -->\n\n                                <ion-col size=\"12\"\n                                    *ngIf=\"appService.appObject.orderObject.cart_summery.min_reached && appService.appObject.orderObject.cart_summery.min_amount > 0\">\n                                    <div class=\"success-box\">\n                                        <ion-icon name=\"checkmark-outline\"></ion-icon>{{ 'key.minimum_order_amount_' |\n                                        translate }} {{ appService.appObject.orderObject.cart_summery.min_amount |\n                                        price: appService.appObject.settings.currency_symbol :\n                                        appService.appObject.settings.currency_position\n                                        : appService.appObject.selectedDeliveryMethod}} {{ 'key.is_reached' | translate\n                                        }}\n                                    </div>\n                                </ion-col>\n\n\n                                <ion-col size=\"12\"\n                                    *ngIf=\"!appService.appObject.orderObject.cart_summery.min_reached && appService.appObject.orderObject.cart_summery.min_amount > 0\">\n                                    <div class=\"error-box\">\n                                        <ion-icon name=\"alert-outline\"></ion-icon>{{ 'key.minimum_order_amount_' |\n                                        translate }} {{ appService.appObject.orderObject.cart_summery.min_amount |\n                                        price: appService.appObject.settings.currency_symbol :\n                                        appService.appObject.settings.currency_position\n                                        : appService.appObject.selectedDeliveryMethod}} {{ 'key.is_not_reached' |\n                                        translate }}\n                                    </div>\n                                </ion-col>\n\n                                <ion-col size=\"12\" *ngIf=\"makePayment\">\n                                    <ion-row>\n                                        <ion-col size=\"12\" class=\"footer-comment\">\n                                            <!-------EDITED HERE------------->\n                                            <ion-item lines=\"none\">\n                                                <ion-textarea class=\"comment\"\n                                                    [(ngModel)]=\"appService.appObject.orderObject.cart_summery.remarks\"\n                                                    placeholder=\"{{ 'key.order_remarks' | translate }}\"></ion-textarea>\n\n                                            </ion-item>\n                                        </ion-col>\n\n                                        <ion-col *ngIf=\"false\" size=\"2\">\n                                            <!-------EDITED HERE HAVE TO REMOVE THIS COL ------------>\n\n\n                                            <ion-icon class=\"coupon-accept\"\n                                                (click)=\"appService.appObject.orderObject.cart_summery.remarks_editing = !appService.appObject.orderObject.cart_summery.remarks_editing;\"\n                                                *ngIf=\"appService.appObject.orderObject.cart_summery.remarks_editing\"\n                                                name=\"checkmark\">\n                                            </ion-icon>\n                                            <ion-icon class=\"coupon-accept disabled\"\n                                                (click)=\"appService.appObject.orderObject.cart_summery.remarks_editing = !appService.appObject.orderObject.cart_summery.remarks_editing;\"\n                                                *ngIf=\"!appService.appObject.orderObject.cart_summery.remarks_editing\"\n                                                name=\"pencil\"></ion-icon>\n                                        </ion-col>\n                                    </ion-row>\n                                </ion-col>\n                                <ion-col size=\"12\" class=\"submit order-preparation-time\"\n                                    *ngIf=\"appService.appObject.selectedRestaurantDetails && appService.appObject.selectedRestaurantDetails[appService.appObject.selectedDeliveryMethod+'_prepare_time']\">\n                                    <div class=\"custom-prep\">\n                                        {{'key.estimated_order_preparation_time_is' | translate}}&nbsp;\n                                        <strong>{{appService.appObject.selectedRestaurantDetails[appService.appObject.selectedDeliveryMethod+\n                                            '_prepare_time']}}</strong>&nbsp;\n                                        {{'key.minutes' | translate}}\n                                    </div>\n                                </ion-col>\n                                <ion-col size=\"12\" class=\"submit\"\n                                    *ngIf=\"(!isBarModeEnabled || appService.appObject.selectedDeliveryMethod !== 'dine_in') || makePayment\">\n                                    <!--<button class=\"red-button\">Ballestine $2,55</button>-->\n                                    <!-- [disabled]=\"!(appService.appObject.orderObject.cart_summery.min_reached)\" -->\n                                    <button class=\"submit-buttons\"\n                                        (click)=\"appService.appObject.orderObject?.cart_summery?.min_reached || (!appService.appObject.orderObject?.cart_summery?.min_reached && appService.appObject.postalCodeDetails && appService.appObject.settings.is_postalcode === 'true') ? appService.checkout() : ''\"\n                                        [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.checkoutButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.checkoutButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n                                        <ion-icon name=\"wallet-outline\"></ion-icon>\n                                        {{ (isBarModeEnabled ? 'key.checkout' : 'key.order') | translate }} {{\n                                        appService.appObject.orderObject.cart_summery.gross_total | price:\n                                        appService.appObject.settings.currency_symbol :\n                                        appService.appObject.settings.currency_position :\n                                        appService.appObject.selectedDeliveryMethod }}\n                                    </button>\n                                    <!-- EDITED HERE : REMOVE COLOR-->\n                                </ion-col>\n\n                                <ion-col size=\"12\" class=\"submit\"\n                                    *ngIf=\"(isBarModeEnabled && appService.appObject.selectedDeliveryMethod === 'dine_in') && !makePayment\">\n                                    <!--<button class=\"red-button\">Ballestine $2,55</button>-->\n                                    <button\n                                        class=\"submit-buttons bar-mode-btns send-to-kitchen {{!appService.hasNewDishesInCart() ? ' send-to-kitchen-disabled' : ''}}\"\n                                        (click)=\"appService.appObject.orderObject?.cart_summery?.min_reached ? \n                                        (appService.appObject.orderObject?.save_items && appService.appObject.orderObject?.table_order_id ? appService.updateKitchenOrder() : appService.sendToKitchen()) \n                                        : ''\"\n                                        [disabled]=\"!(appService.appObject.orderObject.cart_summery.min_reached)\">\n                                        <ion-icon name=\"send-outline\"></ion-icon>\n                                        {{ 'key.send_to_kitchen' | translate }}\n                                    </button>\n                                    <button class=\"submit-buttons bar-mode-btns pay\" (click)=\"makeFinalPayment()\"\n                                        [disabled]=\"!(appService.appObject.orderObject.cart_summery.min_reached)\">\n                                        <ion-icon name=\"wallet-outline\"></ion-icon>\n                                        {{ 'key.pay' | translate }}\n                                    </button>\n                                    <!-- EDITED HERE : REMOVE COLOR-->\n                                </ion-col>\n\n\n                            </ion-row>\n\n                        </ion-grid>\n                    </div>\n                </div>\n\n\n            </div>\n\n\n        </div>\n    </div>\n\n</ion-content>");
10216
10217/***/ }),
10218
10219/***/ 69665:
10220/*!**********************************************************************************************************!*\
10221  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/views/modals/cross-selling/cross-selling.page.html ***!
10222  \**********************************************************************************************************/
10223/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10224
10225"use strict";
10226__webpack_require__.r(__webpack_exports__);
10227/* harmony default export */ __webpack_exports__["default"] = ("<ion-content *ngIf=\"!appService.isWebVersion\">\n\n  <div class=\"popup-container\">\n    <div class=\"popup-container-inner\">\n      <div class=\"title\">\n        <ion-grid>\n          <ion-row>\n            <ion-col size=\"1\">\n              <ion-icon *ngIf=\"currentUI === 'questions'\" name=\"extension-puzzle\" class=\"red\"></ion-icon>\n              <ion-icon (click)=\"currentUI = 'questions'\" *ngIf=\"currentUI !== 'questions'\" name=\"arrow-back-outline\"\n                class=\"red font-size-20\"></ion-icon>\n            </ion-col>\n            <ion-col size=\"10\">\n              {{ title + (currentUI !== 'questions' ? ' + ' + selectedQuestion.category.name : '') }}\n            </ion-col>\n            <ion-col size=\"1\">\n              <ion-icon class=\"close-btn\" name=\"close-outline\" (click)=\"dismiss()\"></ion-icon>\n            </ion-col>\n          </ion-row>\n        </ion-grid>\n      </div>\n      <ng-template [ngTemplateOutlet]=\"crosssellingcontent\"></ng-template>\n    </div>\n  </div>\n</ion-content>\n\n<div *ngIf=\"appService.isWebVersion\">\n  <ng-template [ngTemplateOutlet]=\"crosssellingcontent\"></ng-template>\n</div>\n\n<ng-template #crosssellingcontent>\n  <div class=\"question-container\" *ngIf=\"currentUI === 'questions'\">\n    <div *ngFor=\"let questi
10227on of crossSellingProducts;\">\n      <div class=\"question-card\" *ngIf=\"question?.category?.count\">\n        <button class=\"submit-buttons question-btn {{question.done ? ' btn-size-80' : ''}}\"\n          (click)=\"fetchProductList(question.category); selectedQuestion = question;\">\n          {{question[appService.appObject.currentLang]}}\n        </button>\n        <strong *ngIf=\"question.done\">\n          <ion-icon name=\"checkmark-circle-outline\" class=\"done-cross-selling\"></ion-icon>\n        </strong>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"question-container\" *ngIf=\"currentUI === 'dishes'\">\n    <ul class=\"order-list\" *ngFor=\"let dish of dishes; let di = index\">\n      <li class=\"order-list-li\">\n        <ion-item lines=\"none\" class=\"ion-item-order-list-item\">\n          <div class=\"ion-item-order-list-item-left\">\n            <h3> {{dish.name}}\n              <!-- <ion-icon name=\"help-circle\" (click)=\"appService.displayAlergies(dish)\"></ion-icon> -->\n            </h3>\n            <div *ngIf=\"true\" size=\"12\">\n              <ion-item lines=\"none\" class=\"ion-item-order-list\">\n                <div class=\"ion-item-order-list-start\" slot=\"start\">\n                  <div class=\"order-list-img\" id=\"{{'dishimage-' + dish.id + '-container'}}\"\n                    (click)=\"appService.showAlert('image-preview', '', appService?.appObject?.baseUrl+'/images/restaurant/dish/'+dish.id , false);\">\n                    <img class=\"img\" id=\"{{'dishimage-' + dish.id}}\"\n                      src=\"{{ appService?.appObject?.baseUrl+'/images/restaurant/dish/'+dish.id }}\"\n                      style=\"background-size: cover; \"\n                      onerror=\"if(event.srcElement && event.srcElement.id ) {document.getElementById(event.srcElement.id + '-container') ? document.getElementById(event.srcElement.id + '-container').remove() : ''}\" />\n                    <!-- background-image: url('{{ appService?.appObject?.baseUrl+'/images/restaurant/dish/'+dish.id }}'); -->\n                  </div>\n                </div>\n                <div>\n                  <div class=\"sub-items\" [innerHtml]=\"dish.description\">\n                  </div>\n                </div>\n              </ion-item>\n            </div>\n          </div>\n          <div slot=\"end\" class=\"order-list-price pointer\"\n            *ngIf=\"dish.is_customise == 'false' && dish.is_size == 'false'\" (click)=\"addToCart(dish)\">\n            {{ dish | dishprice:\n            appService.appObject.settings.currency_symbol : appService.appObject.settings.currency_position :\n            appService.appObject.selectedDeliveryMethod }}\n          </div>\n\n          <div slot=\"end\" class=\"order-list-price pointer\" *ngIf=\"dish.is_customise == 'true' || dish.is_size == 'true'\"\n            (click)=\"openToppingPopUp(dish)\">\n            <span>{{ 'key.from' |\n              translate }}</span> {{ dish | dishprice: appService.appObject.settings.currency_symbol :\n            appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }}\n          </div>\n        </ion-item>\n      </li>\n    </ul>\n  </div>\n\n  <div class=\"text-center footer-box skip-btn\">\n    <a class=\"pointer\" (click)=\"dismiss()\">{{ (currentUI === 'questions' ? 'key.skip' : 'key.close') | translate }}</a>\n  </div>\n</ng-template>");
10228
10229/***/ }),
10230
10231/***/ 79201:
10232/*!************************************************************************************************************!*\
10233  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/views/modals/delivery-times/delivery-times.page.html ***!
10234  \************************************************************************************************************/
10235/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10236
10237"use strict";
10238__webpack_require__.r(__webpack_exports__);
10239/* harmony default export */ __webpack_exports__["default"] = ("<ion-content>\n  <div class=\"tour-container\" style=\"padding: 5px !important;\">\n    <div class=\"times-header\">
10239\n      <span style=\"padding-right: 10px;\">{{'key.time' | translate}}</span>\n      <span>{{'key.min_amount' | translate}} - {{'key.delivery_cost' | translate}}</span>\n    </div>\n    <div *ngFor=\"let price of prices\" class=\"times-card {{ currentSlotId === price.id ? ' active-t' : ''}}\">\n      <span class=\"time\">{{price.time_from}} <ng-container *ngIf=\"price.time_from !== 'All Day'\">- {{price.time_to}}</ng-container></span>\n      <span>\n        {{ price.min_order\n        | price: appService.appObject.settings.currency_symbol :\n        appService.appObject.settings.currency_position :\n        appService.appObject.selectedDeliveryMethod}}\n        -\n        {{ price.cost\n        | price: appService.appObject.settings.currency_symbol :\n        appService.appObject.settings.currency_position :\n        appService.appObject.selectedDeliveryMethod}}\n      </span>\n    </div>\n    <!-- <div class=\"ok-btn-container\">\n      <span class=\"btn-ok\" (click)=\"dismiss()\"\n        [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''),\n     'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor : ''}\">Ok</span>\n    </div> -->\n  </div>\n</ion-content>");
10240
10241/***/ }),
10242
10243/***/ 75814:
10244/*!******************************************************************************************!*\
10245  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/views/modals/popup/popup.page.html ***!
10246  \******************************************************************************************/
10247/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10248
10249"use strict";
10250__webpack_require__.r(__webpack_exports__);
10251/* harmony default export */ __webpack_exports__["default"] = ("<ion-content>\n\n  <div class=\"popup-container\">\n    <div class=\"popup-container-inner\">\n      <div *ngIf=\"currentUI !== 'unable-to-complete-order'\" class=\"title\" [ngStyle]=\"{'background': appService.appObject.theme[appService.themeConfigFor]?.primaryColor,\n      'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n        <ion-grid>\n          <ion-row>\n            <ion-col size=\"11\">{{(currentUI === 'lang' ? 'key.SELECT_LANGUAGE' : 'key.FAVOURITE_RESTAURANT') |\n              translate}}\n            </ion-col>\n            <ion-col size=\"1\">\n              <ion-icon class=\"close-btn\" name=\"close\" (click)=\"dismiss()\"></ion-icon>\n            </ion-col>\n          </ion-row>\n        </ion-grid>\n      </div>\n\n      <div *ngIf=\"currentUI === 'lang'\">\n        <ion-radio-group [(ngModel)]=\"appService.appObject.currentLang\" mode=\"ios\" (ionChange)=\"langSelect($event)\"\n          value=\"language\">\n          <ion-item *ngFor=\"let lang of appService?.appObject?.langList\">\n            <ion-label><span [ngClass]=\"'lang-con '+ lang.code\"></span> {{lang.name}}</ion-label>\n            <ion-radio slot=\"end\" color=\"primary\" [value]=\"lang.code\"></ion-radio>\n          </ion-item>\n        </ion-radio-group>\n      </div>\n\n      <div *ngIf=\"currentUI === 'favourite-restaurant'\">\n        <div class=\"select-restaurant-alert\">\n          <div class=\"icon-container\">\n            <ion-icon name=\"information-circle\"></ion-icon>\n          </div>\n          <div>\n            {{'key.to_get_start_select_favourite_restaurant' | translate}}\n          </div>\n        </div>\n        <div class=\"select-restaurant-btn\">\n          <span (click)=\"chooseFavouriteRestaurant()\" class=\"btn\" [ngStyle]=\"{'background': appService.appObject.theme[appService.themeConfigFor]?.primaryColor,\n          'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n            {{'key.choose_restaurant' | translate}}\n          </span>\n\n          <span (click)=\"dismiss()\" class=\"btn-link\"\n            [ngStyle]=\"{'color': appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\">\n            {{'key.may_be_later' | translate}}\n          </span>\n        </div>\n      </div>\n\n      <div *ngIf=\"currentUI === 'unable-to-complete-order'\">\n        <!-- <div\n          [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.primaryColor, 'height' : '20px'}\">\n        </div> -->
10251\n        <div class=\"unable-to-process-order-alert\">\n          <div class=\"icon-container-unavailable\">\n            <ion-icon name=\"information-circle\"></ion-icon>\n          </div>\n          <div>\n            {{'key.selected_menu_categories_are_not_available_at_the_selected_time_slot' | translate}}\n          </div>\n        </div>\n        <div class=\"text-center unavailable-title\">\n          {{'key.available_times_for' | translate}}&nbsp;<strong>{{appService.tempDeliveryDate}}</strong>\n        </div>\n        <div class=\"unavailable-menu-list\">\n          <div class=\"unavailable-menu-card-details\"\n            [ngStyle]=\"{'border-color' : appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\"\n            *ngFor=\"let menu of appService.menusNotAvailable\">\n            <strong>{{menu.name}}</strong>&nbsp;:\n            <span class=\"available-times\">\n              <ion-icon name=\"alarm-outline\"></ion-icon>&nbsp;\n              {{menu.visibility.isActive ? (menu.visibility.timeSlot?.from !== 'All Day' ?\n              (menu.visibility.timeSlot?.from\n              + ' - ' + menu.visibility.timeSlot?.to) : 'All Day') : 'Not Available'}}</span>\n          </div>\n        </div>\n        <div class=\"unavailable-close-btn-container\">\n          <span (click)=\"closeUnavailableNote()\" class=\"btn-sm-alert\" [ngStyle]=\"{'background': appService.appObject.theme[appService.themeConfigFor]?.primaryColor,\n      'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n            {{'key.close' | translate}}\n          </span>\n        </div>\n      </div>\n\n    </div>\n  </div>\n\n</ion-content>");
10252
10253/***/ }),
10254
10255/***/ 69081:
10256/*!******************************************************************************************************************!*\
10257  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/views/modals/select-order-type/select-order-type.page.html ***!
10258  \******************************************************************************************************************/
10259/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10260
10261"use strict";
10262__webpack_require__.r(__webpack_exports__);
10263/* harmony default export */ __webpack_exports__["default"] = ("<ion-content *ngIf=\"!appService.isWebVersion\">\n\n  <div class=\"popup-container\">\n    <div class=\"popup-container-inner {{ currentUI === 'select-table' ? ' no-pb' : ''}}\">\n      <div class=\"title\">\n        <ion-grid>\n          <ion-row>\n            <ion-col size=\"1\">\n              <ion-icon\n                *ngIf=\"(currentUI === 'delivery-address' || currentUI === 'pickup-address' || currentUI === 'dinein-address' || currentUI === 'select-postalcode') && !just_select_address\"\n                name=\"arrow-back-outline\" class=\"red\" (click)=\"currentUI = 'order-type'\"\n                [ngStyle]=\"{'color': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.popupTitleIcon : appService.appObject.theme[appService.themeConfigFor]?.primaryColor)}\">\n              </ion-icon>\n              <ion-icon *ngIf=\"currentUI === 'delivery-address' && just_select_address\" name=\"location-outline\"\n                class=\"red\"\n                [ngStyle]=\"{'color': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.popupTitleIcon : appService.appObject.theme[appService.themeConfigFor]?.primaryColor)}\">\n              </ion-icon>\n              <ion-icon *ngIf=\"currentUI === 'select-table'\" name=\"fast-food-outline\" class=\"red\"\n                [ngStyle]=\"{'color': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.popupTitleIcon : appService.appObject.theme[appService.themeConfigFor]?.primaryColor)}\">\n              </ion-icon>\n              <ion-icon *ngIf=\"currentUI === 'order-type'\" name=\"cog-outline\" class=\"red\"\n                [ngStyle]=\"{'color': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.popupTitleIcon : appService.appObject.theme[appService.themeConfigFor]?.primaryColor)}\">\n              </ion-icon>\n            </ion-col>\n            <ion-col size=\"10\">\n              {{(currentUI === 'order-type' ? 'key.select_order_type' : (currentUI ==='select-table' ?\n              'key.select_a_table' : (currentUI === 'pickup-address' ? 'key.select_pickup_area' : (currentUI ===\n              'dinein-address' ? 'key.select_dinein_area' : (currentUI === 'redirect-to_favourite' ?\n              'key.your_favourite_restaurant' : (currentUI === 'select-postalcode' ? 'key.select_delivery_area' :\n              'key.select_delivery_address')))))) | translate}}\n            </ion-col>\n            <ion-col size=\"1\">\n              <ion-icon class=\"close-btn\" name=\"close-outline\"\n                (click)=\"currentUI === 'redirect-to_favourite' ? clearRedirectInterval(true) : dismiss();\"></ion-icon>\n            </ion-col>\n          </ion-row>\n        </ion-grid>\n      </div>\n      <ng-template *ngIf=\"currentUI !== 'select-table'\" [ngTemplateOutlet]=\"selectdeliveryaddress\"></ng-template>\n      <ng-template *ngIf=\"currentUI === 'select-table'\" [ngTemplateOutlet]=\"selectTable\"></ng-template>\n    </div>\n  </div>\n</ion-content>\n\n<div *ngIf=\"appService.isWebVersion\">\n  <ng-template [ngTemplateOutlet]=\"selectdeliveryaddress\"></ng-template>\n</div>\n\n<ng-template #selectdeliveryaddress>\n  <div *ngIf=\"currentUI === 'delivery-address' || currentUI === 'pickup-address' || currentUI === 'dinein-address'\">\n    <div class=\"form-container\">\n      <div class=\"searchbar\">\n        <ion-label position=\"stacked\">{{ 'key.location' | translate }}</ion-label>\n        <ion-input [(ngModel)]=\"appService.appObject.myAddress.name\" #googleaddress id=\"googleaddressid\" class=\"input\">\n        </ion-input>\n        <ion-icon (click)=\"appService.clearAddress()\" class=\"closeicon pointer\" name=\"close-circle-outline\"></ion-icon>\n\n      </div>\n\n      <div class=\"alert\" *ngIf=\"appService?.appObject?.errors?.address\">\n        <div *ngFor=\"let error of appService?.appObject?.errors?.address | keyvalue\">\n          {{ 'key.'+ error.value | translate }}\n        </div>\n      </div>\n    </div>\n\n    <div class=\"text-center\">\n      <button class=\"red-button\" type=\"button\"\n        (click)=\"selectTypeAsDelivery(currentUI === 'delivery-address' ? 'delivery' : (currentUI === 'pickup-address' ? 'pickup' : (currentUI === 'dinein-address' ? 'dine_in' : '')))\"\n        [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''),\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor : ''}\">\n        {{ 'key.choose_address' | translate }} </button>\n    </div>\n\n    <div class=\"text-center\">\n      <button class=\"find-my-location-btn\" type=\"button\" (click)=\"appService.getCurrentLocation()\"> {{\n        'key.find_my_location' | translate }} </button>\n    </div>\n\n  </div>\n\n  <div *ngIf=\"currentUI === 'location-for-favourite'\">\n    <div class=\"form-container\">\n      <div class=\"searchbar\">\n        <ion-label position=\"stacked\">{{ 'key.location' | translate }}</ion-label>\n        <ion-input [(ngModel)]=\"appService.appObject.myAddress.name\" #googleaddress id=\"googleaddressid\" class=\"input\">\n        </ion-input>\n        <ion-icon (click)=\"appService.clearAddress()\" class=\"closeicon pointer\" name=\"close-circle-outline\"></ion-icon>\n\n      </div>\n\n      <div class=\"alert\" *ngIf=\"appService?.appObject?.errors?.address\">\n        <div *ngFor=\"let error of appService?.appObject?.errors?.address | keyvalue\">\n          {{ 'key.'+ error.value | translate }}\n        </div>\n      </div>\n    </div>\n\n    <div class=\"text-center\">\n      <button class=\"red-button\" type=\"button\" (click)=\"goToNearby
10263RestaurantList()\"\n        [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''),\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor : ''}\">\n        {{ 'key.find_restaurants' | translate }} </button>\n    </div>\n\n    <div class=\"text-center\">\n      <button class=\"find-my-location-btn\" type=\"button\" (click)=\"appService.getCurrentLocation()\"> {{\n        'key.find_my_location' | translate }} </button>\n    </div>\n\n  </div>\n\n  <div *ngIf=\"currentUI === 'redirect-to_favourite'\">\n    <div *ngIf=\"appService.appObject.favouriteRestaurant && !loadingFavourite\">\n      <div class=\"restaurant-details-card\"\n        [ngStyle]=\"{'background' : (appService.appObject.favouriteRestaurant.openDetails.current_status === 'closed' ? '#fce0e3' : '#ddeed6') }\">\n        <strong>{{appService.appObject.favouriteRestaurant.name}}</strong>\n        <br>\n        <p *ngIf=\"appService.appObject.favouriteRestaurant.openDetails.current_status === 'open'\">\n          {{ 'key.favourite_restaurant_open' | translate }}\n        </p>\n\n        <p\n          *ngIf=\"appService.appObject.favouriteRestaurant.openDetails.current_status === 'closed' && !appService.appObject.favouriteRestaurant.openDetails.is_pre_order\">\n          {{ 'key.close_note' | translate }}\n        </p>\n\n        <p\n          *ngIf=\"appService.appObject.favouriteRestaurant.openDetails.current_status === 'closed' && appService.appObject.favouriteRestaurant.openDetails.is_pre_order\">\n          {{ 'key.restaurant_is_closed_but_preorder' | translate }}\n        </p>\n\n        <div class=\"open-time-note\"\n          *ngIf=\"appService.appObject.favouriteRestaurant.openDetails?.text != '' || appService.appObject.favouriteRestaurant.openDetails.text_delivery != ''\">\n          {{ appService.appObject.favouriteRestaurant.openDetails?.text }}\n          {{ appService.appObject.favouriteRestaurant.openDetails?.text != \"\" &&\n          appService.appObject.favouriteRestaurant.openDetails?.text_delivery != \"\" ? '|' : ''}}\n          {{ appService.appObject.favouriteRestaurant.openDetails?.text_delivery }}\n\n        </div>\n      </div>\n      <div class=\"go-now\">\n        <div class=\"form-container\">\n          <div class=\"btn-row\"\n            *ngFor=\"let option of (!this.selected_branch && appService.appObject.settings?.is_franchise === 'true' ? availableDeliveryMethodsFranchise : appService.availableDeliveryMethods)\">\n            <button class=\"red-button\" type=\"button\" (click)=\"onFavoriteModeDeliveryMethodSelect(option)\"\n              [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n            'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n              <ion-icon name=\"footsteps-outline\" *ngIf=\"option === 'pickup'\"></ion-icon>\n              <ion-icon name=\"fast-food-outline\" *ngIf=\"option === 'dine_in'\"></ion-icon>\n              <ion-icon name=\"bicycle-outline\" *ngIf=\"option === 'delivery'\"></ion-icon>\n              &nbsp;\n              {{ 'key.'+option | translate }}\n            </button>\n          </div>\n        </div>\n        <br>\n        <span (click)=\"changeFavouriteRestaurant()\" class=\"change-favourite\"\n          [ngStyle]=\"{'color' : (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : '')}\">{{ 'key.chanage_your_favorite_restaurant' | translate }}</span>\n      </div>\n    </div>\n\n    <div *ngIf=\"loadingFavourite\" class=\"spinner-container\">\n      <ion-spinner name=\"crescent\"\n        [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''}\">\n      </ion-spinner>\n    </div>\n  </div>\n\n  <div *ngIf=\"currentUI === 'order-type'\">\n    <div class=\"form-container\">\n      <div class=\"btn-row\"\n        *ngFor=\"let option of (!this.selected_branch && appService.appObject.settings?.is_franchise === 'true' ? availableDeliveryMethodsFranchise : appService.availableDeliveryMethods)\">\n        <button class=\"red-button\" type=\"button\" (click)=\"selectOrderType(option)\"\n          [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n          <ion-icon name=\"footsteps-outline\" *ngIf=\"option === 'pickup'\"></ion-icon>\n          <ion-icon name=\"fast-food-outline\" *ngIf=\"option === 'dine_in'\"></ion-icon>\n          <ion-icon name=\"bicycle-outline\" *ngIf=\"option === 'delivery'\"></ion-icon>\n          &nbsp;\n          {{ 'key.'+option | translate }}\n        </button>\n      </div>\n\n      <div class=\"text-center\"\n        *ngIf=\"!selected_branch && !just_select_order_type && appService.appObject.settings?.is_franchise === 'true'\">
10263\n        <span (click)=\"changeFavouriteRestaurant()\" class=\"change-favourite\"\n          [ngStyle]=\"{'color' : (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : '')}\">\n          {{(appService.appObject.favouriteRestaurant ? 'key.change_favourite_restaurant' :\n          'key.set_favourite_restaurant') | translate}}\n        </span>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"currentUI === 'select-postalcode'\">\n    <div class=\"form-container\" *ngIf=\"!displaySpinnerSection\">\n      <div class=\"container\">\n          <!-- <ion-searchbar type=\"text\" debounce=\"500\" (ionChange)=\"getPostalItems($event)\" [value]=\"selectedArea?.code ? selectedArea?.code + ' - ' + selectedArea?.name : ''\"></ion-searchbar> -->\n          <ion-input placeholder=\"{{ 'key.select_delivery_area' | translate }}\" class=\"postal-code-input\" type=\"text\" debounce=\"500\" (ionChange)=\"getPostalItems($event)\" [(ngModel)]=\"selected_postal\" (click)=\"clearPostalArea()\"></ion-input>\n          <ion-list *ngIf=\"postalFilterItem && postalFilterItem.length\" class=\"postal-code-list\">\n              <ion-item [ngStyle]=\"{'border-left': '5px solid' + (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor)}\" lines=\"none\" class=\"postal-item\" (click)=\"selectPostalCode(item)\" *ngFor=\"let item of postalFilterItem\">{{ item.code }} - {{item.name }}</ion-item>\n          </ion-list>\n\n          <div class=\"alert\" *ngIf=\"appService?.appObject?.errors?.postalCode\">\n            <div *ngFor=\"let error of appService?.appObject?.errors?.postalCode | keyvalue\">\n              {{ 'key.'+ error.value | translate }}\n            </div>\n          </div>\n\n          <div *ngIf=\"!postalFilterItem.length && selected_postal && !selectedArea\" class=\"not-found-postals\">\n            <ion-icon name=\"sad-outline\"></ion-icon>\n            <!-- <p>{{ 'key.sorry_restaurants_not_found' | translate }}</p> -->\n            <p>{{'key.sorry_we_re_not_delivering_to_this_location' | translate}}</p>\n          </div>\n\n      </div>\n      \n      <div class=\"text-center\">\n        <button class=\"red-button\"\n          [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\"\n          (click)=\"onPostalCodeSelect()\">{{'key.order_now' | translate}}</button>\n      </div>\n    </div>\n\n    <div class=\"form-container spinner-container-postal-code\" *ngIf=\"displaySpinnerSection\">\n      <ion-spinner name=\"crescent\" [ngStyle]=\"{'color' : (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : '')}\">\n      </ion-spinner>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #selectTable>\n  <div *ngIf=\"!appService.appObject.orderObject?.selectedTable?.saved\">\n    <div class=\"table-container\">\n      <div *ngFor=\"let table of tableListOfRestaurant\" (click)=\"selectedTable = table;\"\n        class=\"table-select-row {{selectedTable && selectedTable.id === table.id ? ' selected' : ''}}\">\n        <span>{{'key.table' | translate}}&nbsp;{{table.number}}</span>\n        <ion-icon name=\"checkmark-circle\"></ion-icon>\n      </div>\n    </div>\n    <div class=\"btn-footer\">\n      <div class=\"cancel\" (click)=\"cancelTableSelect()\">\n        {{'key.cancel' | translate}}\n      </div>\n      <div class=\"select\" (click)=\"selectedTable ? selectATable() : ''\">\n        {{'key.select' | translate}}\n      </div>\n    </div>\n  </div>\n  <div *ngIf=\"appService.appObject.orderObject?.selectedTable?.saved\" class=\"table-msg-container\">\n    <div>\n      <img src=\"../../../../assets/img/pending_order.jpg\" alt=\"vector4free\" srcset=\"\" style=\"max-height: 200px;\">\n    </div>\n    <span *ngIf=\"!previousRestaurant\">{{'key.you_have_an_active_order_on' | translate}} <br> <strong>{{'key.table' |\n        translate}}\n        #{{appService.appObject.orderObject.selectedTable.number}}</strong></span>\n    <span *ngIf=\"previousRestaurant\">\n      {{'key.you_have_an_active_order_on_restaurant' | translate}} <br>\n      <strong>{{previousRestaurant}}<br>\n        {{'key.table' | translate}} #{{appService.appObject.orderObject.selectedTable.number}}</strong>\n    </span>\n    <br>\n    <a (click)=\"dismiss()\" *ngIf=\"tableSelectRestaurant.slug\"\n      [routerLink]=\"['restaurant',tableSelectRestaurant.slug]\">{{'key.go_to_menu' | translate}}</a>\n    <br>\n    <label class=\"timer\">{{remaningTime}}</label>\n  </div>\n</ng-template>");
10264
10265/***/ }),
10266
10267/***/ 2614:
10268/*!************************************************************************************************!*\
10269  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/views/modals/toppings/toppings.page.html ***!
10270  \************************************************************************************************/
10271/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10272
10273"use strict";
10274__webpack_require__.r(__webpack_exports__);
10275/* harmony default export */ __webpack_exports__["default"] = ("<ion-content *ngIf=\"!appService.isWebVersion\">\n\n  <div class=\"popup-container\">\n    <div class=\"popup-container-inner\">\n      <div class=\"title\">\n        <ion-grid>\n          <ion-row>\n            <ion-col size=\"11\">\n              <ion-icon name=\"extension-puzzle\" class=\"red\"\n                [ngStyle]=\"{'color': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.popupTitleIcon : appService.appObject.theme[appService.themeConfigFor]?.primaryColor)}\">\n              </ion-icon> {{\n              this.appService.selectedDish.fullDishInfo.name }}\n            </ion-col>\n            <ion-col size=\"1\">\n              <ion-icon class=\"close-btn\" name=\"close-outline\" (click)=\"dismiss()\"></ion-icon>\n            </ion-col>\n          </ion-row>\n        </ion-grid>\n\n\n      </div>\n\n      <div\n        [ngClass]=\"{'toping-container toping-containerWeb': appService.isWebVersion === true, 'toping-container toping-container-mobile' : appService.isWebVersion === false }\">\n        <ng-template [ngTemplateOutlet]=\"toppingcontent\"></ng-template>\n      </div>\n\n\n    </div>\n\n\n  </div>\n\n</ion-content>\n\n<div *ngIf=\"appService.isWebVersion\" class=\"toping-container\">\n  <ng-template [ngTemplateOutlet]=\"toppingcontent\"></ng-template>\n</div>\n\n\n<ng-template #toppingcontent>\n\n  <div class=\"error\"\n    *ngIf=\"appService?.appObject?.errors?.mandatory_toping_should_be_selected || appService?.appObject?.errors?.size_select\">\n    {{ (appService?.appObject?.errors?.size_select ? 'key.please_select_a_size' :\n    'key.please_select_required_topings_to_proceed') | translate }}\n  </div>\n\n\n  <form class=\"toping-body {{appService.isWebVersion ? ' toping-body-web' : ''}}\">\n    <ul *ngIf=\"appService.selectedDish.fullDishInfo.is_size == 'true'\">\n      <li class=\"dropdown\">\n        <ion-label class=\"select-label warning-message\">{{ 'key.select_size' | translate }}</ion-label>\n        <!-- <ion-item lines=\"none\" class=\"error\" *ngIf=\"appService?.appObject?.errors['size_select']\">\n          {{appService?.appObject?.errors['size_select']}}\n        </ion-item> -->\n        <ion-item lines=none *ngIf=\"appService.appObject.selectedRestaurantDetails.sizes_as_buttons === 'false' || !appService.appObject.selectedRestaurantDetails.sizes_as_buttons\">\n          <!--<ion-label>{{ 'key.select_size' | translate }}</ion-label>-->\n          <ion-select style=\"width: 100%; padding-left: 16px; padding-top: 0px;\"\n            (ionChange)=\"appService.setSelectedSize($event)\" value=\"{{appService.selectedDish.size_index}}\"\n            interface=\"action-sheet\" mode=\"md\" placeholder=\"{{ 'key.select_size' | translate }}\"\n            cancelText=\"{{'key.close' | translate}}\">\n            <ion-select-option *ngFor=\"let size of appService.selectedDish.fullDishInfo.sizes; let i = index\"\n              value=\"{{ i }}\">{{size.name}} ({{ size | sizeprice: appService.appObject.settings.currency_symbol :\n              appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }})\n            </ion-select-option>\n          </ion-select>\n        </ion-item>\n\n        <ion-list class=\"size-radio-list\" *ngIf=\"appService.appObject.selectedRestaurantDetails.sizes_as_buttons === 'true'\">\n          <ion-radio-group value=\"{{appService.selectedDish.size_index}}\" (ionChange)=\"appService.setSelectedSize($event)\">\n            <ion-item lines=none *ngFor=\"let size of appService.selectedDish.fullDishInfo.sizes; let i = index\">\n              <ion-label>{{size.name}} ({{ size | sizeprice: appService.appObject.settings.currency_symbol :\n                appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }})</ion-label>\n              <ion-radio slot=\"start\" value=\"{{ i }}\"></ion-radio>\n            </ion-item>\n          </ion-radio-group>\n        </ion-list>\n      </li>\n\n      <ng-container *ngIf=\"appService.selectedDish.size_index !== null\">\n        <li\n          *ngFor=\"let scenario of getActiveScenarios(appService.selectedDish.fullDishInfo.sizes[appService.selectedDish.size_index].scenarios); let sindex = index\">\n          <div *ngIf=\"scenario.btn_type == 'optional'\" class=\"checkboxgroup\">\n            <ion-list-header class=\"radio-title\">\n              <ion-label><span>{{ scenario.name }}</span><i></i></ion-label>\n            </ion-list-header>\n\n            <ion-item lines=\"none\" class=\"warning-message\" *ngIf=\"scenario.is_mandatory == 'true'\">
10275\n              <span *ngIf=\"scenario.min_toping_count == scenario.max_toping_count\">\n                ({{'key.please_select_at_leaset' | translate }} {{ scenario.min_toping_count }} {{'key.toping_from_here'\n                |\n                translate }})\n              </span>\n              <span *ngIf=\"scenario.min_toping_count != scenario.max_toping_count\">\n                ({{'key.please_select' | translate }} {{ scenario.min_toping_count }} {{'key.to' | translate }} {{\n                scenario.max_toping_count }} {{'key.toping_from_here' | translate }})\n              </span>\n\n            </ion-item>\n\n            <ion-item lines=\"none\" class=\"error\"\n              *ngIf=\"appService?.appObject?.errors['error_in_scenario_'+scenario.id]\">\n              <span *ngIf=\"scenario.min_toping_count == scenario.max_toping_count\">\n                ({{'key.you_should_select_at_leaset' | translate }} {{ scenario.min_toping_count }}\n                {{'key.toping_from_here' | translate }})\n              </span>\n              <span *ngIf=\"scenario.min_toping_count != scenario.max_toping_count\">\n                ({{'key.you_should_select' | translate }} {{ scenario.min_toping_count }} {{'key.to' | translate }} {{\n                scenario.max_toping_count }} {{'key.toping_from_here' | translate }})\n              </span>\n            </ion-item>\n\n            <!-- Removed select list by Sanj order by  Pumayk26 at 2024-07-24 -->\n            <!-- *ngIf=\"scenario.is_mandatory == 'true' && !(scenario.min_toping_count == 1 && scenario.max_toping_count == 1)\" -->\n            <span *ngIf=\"appService.getSelectedRestaurantSingleOptionSelectCondition() ? true : (scenario.is_mandatory == 'true' && !(scenario.min_toping_count == 1 && scenario.max_toping_count == 1))\">\n              <ion-item lines=\"none\" *ngFor=\"let toping of getActiveToppings(scenario.topings); let tindex = index\">\n                <ion-checkbox [disabled]=\"!toping.checked && scenario.disable_rest\" (click)=\"appService.selectTopingAddon($event,toping,scenario,tindex)\" mode=\"md\"\n                  slot=\"start\">\n                </ion-checkbox>\n                <div class=\"\" slot=\"\">\n                  <ion-label class=\"label-1\"\n                    [ngClass]=\" toping.is_mandatory == 'true' && appService?.appObject?.errors['shoud_select_toping_'+toping.id] ? 'toping_required' : '' \">\n                    {{ (toping.is_mandatory == 'true' ? \"* \":\"\")+toping.name }}</ion-label>\n                  <ion-label class=\"label-2\">({{ toping | topingprice: appService.appObject.settings.currency_symbol :\n                    appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }})\n                  </ion-label>\n\n                </div>\n                <div slot=\"end\" class=\"min-max\" *ngIf=\"toping.checked && (!scenario.limit_topping_qty || scenario.limit_topping_qty > 1)\">\n                  <button (click)=\"appService.topingDec($event,toping,sindex,tindex)\"\n                    *ngIf=\"toping.count_selected && toping.count_selected > 1\">\n                    <ion-icon name=\"remove\"></ion-icon>\n                  </button>\n                  <span>{{toping.count_selected ? toping.count_selected : 1}}</span>\n                  <button *ngIf=\"!scenario.disable_rest && (!scenario.limit_topping_qty || scenario.limit_topping_qty > toping.count_selected)\" (click)=\"appService.topingInc($event,toping,sindex,tindex)\">\n                    <ion-icon name=\"add\"></ion-icon>\n                  </button>\n                </div>\n\n              </ion-item>\n            </span>\n\n            <span\n              *ngIf=\"!appService.getSelectedRestaurantSingleOptionSelectCondition() ? (scenario.is_mandatory == 'false' || (scenario.is_mandatory == 'true' &&  scenario.min_toping_count == 1 && scenario.max_toping_count == 1)) : false\">\n              <ion-item lines=none>\n                <em\n                  *ngIf=\"!(appService.appObject.selectedRestaurantDetails.is_toping_auto_select === 'true' && (scenario.is_mandatory == 'true' &&  scenario.min_toping_count == 1 && scenario.max_toping_count == 1))\">{{\n                  addFirstToping((getActiveToppings(scenario.topings))[0].id,scenario) }}</em>\n                <ion-select style=\"width: 100%;\"\n                  value=\"{{ appService.appObject.selectedRestaurantDetails.is_toping_auto_
10275select === 'true' && (scenario.is_mandatory == 'true' &&  scenario.min_toping_count == 1 && scenario.max_toping_count == 1) ? '' : (getActiveToppings(scenario.topings))[0].id }}\"\n                  (ionChange)=\"appService.selectTopingOp2($event,scenario)\" interface=\"action-sheet\" mode=\"md\"\n                  placeholder=\"{{ 'key.select_toping' | translate }}\" cancelText=\"{{'key.close' | translate}}\">\n                  <ion-select-option *ngFor=\"let toping of getActiveToppings(scenario.topings); let tindex = index\"\n                    value=\"{{ toping.id }}\">\n                    {{toping.name}} ({{ toping | topingprice: appService.appObject.settings.currency_symbol :\n                    appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }})\n                  </ion-select-option>\n                </ion-select>\n              </ion-item>\n\n            </span>\n\n          </div>\n\n          <div *ngIf=\"scenario.btn_type == 'add-on'\" class=\"checkboxgroup\">\n\n            <ion-list-header class=\"radio-title\">\n              <ion-label><span>{{ scenario.name }}</span><i></i></ion-label>\n            </ion-list-header>\n\n\n            <ion-item lines=\"none\" class=\"warning-message\" *ngIf=\"scenario.is_mandatory == 'true'\">\n\n              ({{'key.please_select_at_leaset' | translate }} {{ scenario.min_toping_count }} {{'key.toping_from_here' |\n              translate }})\n\n            </ion-item>\n\n            <ion-item lines=\"none\" class=\"error\"\n              *ngIf=\"appService?.appObject?.errors['error_in_scenario_'+scenario.id]\">\n\n              ({{'key.you_should_select_at_leaset' | translate }} {{ scenario.min_toping_count }}\n              {{'key.toping_from_here'\n              | translate }})\n\n            </ion-item>\n\n            <ion-item lines=\"none\" *ngFor=\"let toping of getActiveToppings(scenario.topings); let tindex = index\">\n              <ion-checkbox (click)=\"appService.selectTopingAddon($event,toping,scenario,tindex)\" mode=\"md\"\n                slot=\"start\">\n              </ion-checkbox>\n              <div class=\"\" slot=\"\">\n                <ion-label class=\"label-1\"\n                  [ngClass]=\" toping.is_mandatory == 'true' && appService?.appObject?.errors['shoud_select_toping_'+toping.id] ? 'toping_required' : '' \">\n                  {{ (toping.is_mandatory == 'true' ? \"* \":\"\")+toping.name }}</ion-label>\n                <ion-label class=\"label-2\">({{ toping | topingprice: appService.appObject.settings.currency_symbol :\n                  appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }})\n                </ion-label>\n\n              </div>\n              <div slot=\"end\" class=\"min-max\" *ngIf=\"toping.checked && (!scenario.limit_topping_qty || scenario.limit_topping_qty > 1)\">\n                <button (click)=\"appService.topingDec($event,toping,sindex,tindex)\"\n                  *ngIf=\"toping.count_selected && toping.count_selected > 1\">\n                  <ion-icon name=\"remove\"></ion-icon>\n                </button>\n                <span>{{toping.count_selected ? toping.count_selected : 1}}</span>\n                <button *ngIf=\"!scenario.disable_rest && (!scenario.limit_topping_qty || scenario.limit_topping_qty > toping.count_selected)\" (click)=\"appService.topingInc($event,toping,sindex,tindex)\">\n                  <ion-icon name=\"add\"></ion-icon>\n                </button>\n              </div>\n\n            </ion-item>\n          </div>\n\n        </li>\n\n      </ng-container>\n    </ul>\n\n\n    <ul *ngIf=\"appService.selectedDish.fullDishInfo.is_customise == 'true'\">\n\n      <li\n        *ngFor=\"let scenario of getActiveScenarios(appService.selectedDish.fullDishInfo.scenarios); let sindex = index\">\n\n        <div *ngIf=\"scenario.btn_type == 'optional'\" class=\"checkboxgroup\">\n          <ion-list-header class=\"radio-title\">\n            <ion-label><span>{{ scenario.name }}</span><i></i></ion-label>\n          </ion-list-header>\n\n          <ion-item lines=\"none\" class=\"warning-message\" *ngIf=\"scenario.is_mandatory == 'true'\">
10275\n            <span *ngIf=\"scenario.min_toping_count == scenario.max_toping_count\">\n              ({{'key.please_select_at_leaset' | translate }} {{ scenario.min_toping_count }} {{'key.toping_from_here' |\n              translate }})\n            </span>\n            <span *ngIf=\"scenario.min_toping_count != scenario.max_toping_count\">\n              ({{'key.please_select' | translate }} {{ scenario.min_toping_count }} {{'key.to' | translate }} {{\n              scenario.max_toping_count }} {{'key.toping_from_here' | translate }})\n            </span>\n\n          </ion-item>\n\n          <ion-item lines=\"none\" class=\"error\" *ngIf=\"appService?.appObject?.errors['error_in_scenario_'+scenario.id]\">\n            <span *ngIf=\"scenario.min_toping_count == scenario.max_toping_count\">\n              ({{'key.you_should_select_at_leaset' | translate }} {{ scenario.min_toping_count }}\n              {{'key.toping_from_here' | translate }})\n            </span>\n            <span *ngIf=\"scenario.min_toping_count != scenario.max_toping_count\">\n              ({{'key.you_should_select' | translate }} {{ scenario.min_toping_count }} {{'key.to' | translate }} {{\n              scenario.max_toping_count }} {{'key.toping_from_here' | translate }})\n            </span>\n          </ion-item>\n\n          <!-- Removed select list by Sanj order by  Pumayk26 at 2024-07-24 -->\n          <!-- *ngIf=\"scenario.is_mandatory == 'true' && !(scenario.min_toping_count == 1 && scenario.max_toping_count == 1)\" -->\n          <span *ngIf=\"appService.getSelectedRestaurantSingleOptionSelectCondition() ? true : (scenario.is_mandatory == 'true' && !(scenario.min_toping_count == 1 && scenario.max_toping_count == 1))\">\n            <ion-item lines=\"none\" *ngFor=\"let toping of getActiveToppings(scenario.topings); let tindex = index\">\n              <ion-checkbox [id]=\"'topping-' + toping.id + '-' + scenario.id \" [disabled]=\"!toping.checked && scenario.disable_rest\" (click)=\"appService.selectTopingAddon($event,toping,scenario,tindex)\" mode=\"md\"\n                slot=\"start\">\n              </ion-checkbox>\n              <div class=\"\" slot=\"\">\n                <ion-label class=\"label-1\"\n                  [ngClass]=\" toping.is_mandatory == 'true' && appService?.appObject?.errors['shoud_select_toping_'+toping.id] ? 'toping_required' : '' \">\n                  {{ (toping.is_mandatory == 'true' ? \"* \":\"\")+toping.name }}</ion-label>\n                <ion-label class=\"label-2\">({{ toping | topingprice: appService.appObject.settings.currency_symbol :\n                  appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }})\n                </ion-label>\n\n              </div>\n              <div slot=\"end\" class=\"min-max\" *ngIf=\"toping.checked && (!scenario.limit_topping_qty || scenario.limit_topping_qty > 1)\">\n                <button (click)=\"appService.topingDec($event,toping,sindex,tindex)\"\n                  *ngIf=\"toping.count_selected && toping.count_selected > 1\">\n                  <ion-icon name=\"remove\"></ion-icon>\n                </button>\n                <span>{{toping.count_selected ? toping.count_selected : 1}}</span>\n                <button *ngIf=\"!scenario.disable_rest && (!scenario.limit_topping_qty || scenario.limit_topping_qty > toping.count_selected)\"  (click)=\"appService.topingInc($event,toping,sindex,tindex)\">\n                  <ion-icon name=\"add\"></ion-icon>\n                </button>\n              </div>\n            </ion-item>\n          </span>\n\n\n          <span\n            *ngIf=\"!appService.getSelectedRestaurantSingleOptionSelectCondition() ? (scenario.is_mandatory == 'false' || (scenario.is_mandatory == 'true' &&  scenario.min_toping_count == 1 && scenario.max_toping_count == 1)) : false\">\n            <ion-item lines=none>\n              <em\n                *ngIf=\"!(appService.appObject.selectedRestaurantDetails.is_toping_auto_select === 'true' && (scenario.is_mandatory == 'true' &&  scenario.min_toping_count == 1 && scenario.max_toping_count == 1))\">{{\n                addFirstToping((getActiveToppings(scenario.topings))[0].id,scenario) }}</em>\n              <ion-select style=\"width: 100%;\"\n                value=\"{{ appService.appObject.selectedRestaurantDetails.is_toping_auto_
10275select === 'true' && (scenario.is_mandatory == 'true' &&  scenario.min_toping_count == 1 && scenario.max_toping_count == 1) ? '' : (getActiveToppings(scenario.topings))[0].id }}\"\n                (ionChange)=\"appService.selectTopingOp2($event,scenario)\" interface=\"action-sheet\" mode=\"md\"\n                placeholder=\"{{ 'key.select_toping' | translate }}\" cancelText=\"{{'key.close' | translate}}\">\n                <ion-select-option *ngFor=\"let toping of getActiveToppings(scenario.topings); let tindex = index\"\n                  value=\"{{ toping.id }}\">\n                  {{toping.name}} ({{ toping | topingprice: appService.appObject.settings.currency_symbol :\n                  appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }})\n                </ion-select-option>\n              </ion-select>\n            </ion-item>\n          </span>\n\n\n        </div>\n\n        <div *ngIf=\"scenario.btn_type == 'add-on'\" class=\"checkboxgroup\">\n\n          <ion-list-header class=\"radio-title\">\n            <ion-label><span>{{ scenario.name }}</span><i></i></ion-label>\n          </ion-list-header>\n\n          <ion-item lines=\"none\" class=\"warning-message\" *ngIf=\"scenario.is_mandatory == 'true'\">\n\n            ({{'key.please_select_at_leaset' | translate }} {{ scenario.min_toping_count }} {{'key.toping_from_here' |\n            translate }})\n\n          </ion-item>\n\n          <ion-item lines=\"none\" class=\"error\" *ngIf=\"appService?.appObject?.errors['error_in_scenario_'+scenario.id]\">\n\n            ({{'key.you_should_select_at_leaset' | translate }} {{ scenario.min_toping_count }} {{'key.toping_from_here'\n            | translate }})\n\n          </ion-item>\n\n          <ion-item lines=\"none\" *ngFor=\"let toping of getActiveToppings(scenario.topings); let tindex = index\">\n            <ion-checkbox (click)=\"appService.selectTopingAddon($event,toping,scenario,tindex)\" mode=\"md\" slot=\"start\">\n            </ion-checkbox>\n            <div class=\"\" slot=\"\">\n              <ion-label class=\"label-1\"\n                [ngClass]=\" toping.is_mandatory == 'true' && appService?.appObject?.errors['shoud_select_toping_'+toping.id] ? 'toping_required' : '' \">\n                {{ (toping.is_mandatory == 'true' ? \"* \":\"\")+toping.name }}</ion-label>\n              <ion-label class=\"label-2\">({{ toping | topingprice: appService.appObject.settings.currency_symbol :\n                appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod }})\n              </ion-label>\n\n            </div>\n            <div slot=\"end\" class=\"min-max\" *ngIf=\"toping.checked && (!scenario.limit_topping_qty || scenario.limit_topping_qty > 1)\">\n              <button (click)=\"appService.topingDec($event,toping,sindex,tindex)\"\n                *ngIf=\"toping.count_selected && toping.count_selected > 1\">\n                <ion-icon name=\"remove\"></ion-icon>\n              </button>\n              <span>{{toping.count_selected ? toping.count_selected : 1}}</span>\n              <button *ngIf=\"!scenario.disable_rest && (!scenario.limit_topping_qty || scenario.limit_topping_qty > toping.count_selected)\" (click)=\"appService.topingInc($event,toping,sindex,tindex)\">\n                <ion-icon name=\"add\"></ion-icon>\n              </button>\n            </div>\n          </ion-item>\n\n        </div>\n\n      </li>\n\n    </ul>\n  </form>\n\n  <div class=\"text-center footer-box\">\n\n    <button class=\"submit-buttons\" (click)=\"appService.addSizeToCart(isFromCrossSelling)\"\n      [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.addToCartButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n    'color' : (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.addToCartButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor)}\">\n\n      <ion-icon name=\"cart-outline\"></ion-icon>\n      {{ 'key.add_to_cart' | translate }} ({{ appService.selectedDish.total | price:\n      appService.appObject.settings.currency_symbol :\n      appService.appObject.settings.currency_position : appService.appObject.selectedDeliveryMethod}})\n    </button>\n  </div>\n</ng-template>");
10276
10277/***/ }),
10278
10279/***/ 10167:
10280/*!********************************************************************************************************************!*\
10281  !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/views/web-views/shared/modal-popover/modal-popover.page.html ***!
10282  \********************************************************************************************************************/
10283/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10284
10285"use strict";
10286__webpack_require__.r(__webpack_exports__);
10287/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"popover-header\" *ngIf=\"type !== POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECT.TYPE \n  && type !== POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECTED.TYPE\n  && type !== POPOVER_TYPES.UNABLE_TO_COMPLETE_ORDER.TYPE\">\n  <ion-toolbar class=\"modal-toolbar\"\n    [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.popupTitleText : appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\"\n    [style.--background]=\"(appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.popupTitleBackgroun
10287d : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor)\">\n    <div slot=\"start\" class=\"modal-close\" *ngIf=\"historyStack.length\">\n      <ion-icon (click)=\"navigateBackward()\" name=\"arrow-back-outline\" class=\"pointer back-btn\"></ion-icon>\n    </div>\n    <div slot=\"start\" class=\"modal-close\" *ngIf=\"selectedQuestionCategory\">\n      <ion-icon (click)=\"navigateBackwardFromQuestionPage()\" name=\"arrow-back-outline\" class=\"pointer back-btn\">\n      </ion-icon>\n    </div>\n    <!-- always send the title as language key -->\n    <ion-title>\n      <ion-icon name=\"extension-puzzle\" class=\"red\" *ngIf=\"type === POPOVER_TYPES.TOPPINGS.TYPE\"></ion-icon> {{title |\n      translate}} {{ uniqueId && type === POPOVER_TYPES.ORDER_SUMMARY.TYPE ? ' - ' + uniqueId : ''}} {{\n      selectedQuestionCategory ? ' + ' + selectedQuestionCategory.name : ''}}\n    </ion-title>\n    <div slot=\"end\" class=\"modal-close\">\n      <ion-icon class=\"pointer close\"\n        (click)=\"type === POPOVER_TYPES.FAVOURITE_RESTAURANT.TYPE ? clearRedirectInterval(true) : close()\"\n        name=\"close-outline\"\n        [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.popupTitleText : appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\">\n      </ion-icon>\n    </div>\n  </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n  <div *ngIf=\"type === POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECT.TYPE\">\n    <div\n      [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.primaryColor, 'height' : '20px'}\">\n    </div>\n    <div class=\"select-restaurant-alert\">\n      <div class=\"icon-container\">\n        <ion-icon name=\"information-circle\"></ion-icon>\n      </div>\n      <div>\n        {{'key.to_get_start_select_favourite_restaurant' | translate}}\n      </div>\n    </div>\n    <div class=\"select-restaurant-btn text-center\">
10287\n      <span (click)=\"chooseFavouriteRestaurant()\" class=\"btn-sm-alert\" [ngStyle]=\"{'background': appService.appObject.theme[appService.themeConfigFor]?.primaryColor,\n      'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n        {{'key.choose_restaurant' | translate}}\n      </span>\n\n      <span (click)=\"modalCtr.dismiss()\" class=\"btn-link\"\n        [ngStyle]=\"{'color': appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\">\n        {{'key.may_be_later' | translate}}\n      </span>\n    </div>\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.FAVOURITE_RESTAURANT_SELECTED.TYPE\" class=\"text-center\">\n    <div\n      [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.primaryColor, 'height' : '20px'}\">\n    </div>\n    <div class=\"popup-container-inner favorite-restaurant-marked-container\"\n      [ngStyle]=\"{'border-top': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? ('5px solid ' + appService.appObject.theme[appService.themeConfigFor]?.primaryColor) : ''}\">\n      <div class=\"line-top\"></div>\n      <div class=\"favourite-message\">\n        <span\n          [ngStyle]=\"{'color': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''}\">\n          <ion-icon name=\"checkmark-circle\"></ion-icon>\n        </span>\n        <span>{{'key.you_ve_selected' | translate}}&nbsp;<strong\n            [ngStyle]=\"{'color': appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''}\">{{appService.appObject.favouriteRestaurant.name}}</strong>&nbsp;{{'key.as_your_favourite_restaurant'\n          | translate }}.</span>\n      </div>
10287\n      <span class=\"you-can-change-this\">{{'key.you_can_change_this_at_any_time' | translate}}.</span>\n      <div class=\"btn-ok\">\n        <span (click)=\"modalCtr.dismiss()\" [ngStyle]=\"{'background': appService.appObject.theme[appService.themeConfigFor]?.primaryColor,\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n          {{'key.ok' | translate}}\n        </span>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.FAVOURITE_RESTAURANT_SEARCH.TYPE\">\n    <div class=\"searchbar\">\n      <ion-label position=\"stacked\">{{ 'key.location' | translate }}</ion-label>\n      <ion-input (ngModelChange)=\"addressInputChanged = true;\" [(ngModel)]=\"address\" #googleaddressweb class=\"input\">\n      </ion-input>\n      <ion-icon (click)=\"appService.clearAddress()\" class=\"closeicon pointer\" name=\"close-circle-outline\"></ion-icon>\n\n    </div>\n\n    <div class=\"alert\" *ngIf=\"appService?.appObject?.errors?.address\">\n      <div *ngFor=\"let error of appService?.appObject?.errors?.address | keyvalue\">\n        {{ 'key.'+ error.value | translate }}\n      </div>\n    </div>\n    <div class=\"dilivary-method-container\">\n      <div class=\"btn-container\">\n        <button class=\"red-button\" (click)=\"appService?.appObject?.errors?.address ? '' : favouriteRestaurantSearch()\"\n          [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n          <span>{{(isFromCheckoutToLocationSelect ? 'key.choose_address' : 'key.find_restaurants') | translate}}</span>\n        </button>\n      </div>\n      <div class=\"text-center\">\n        <button class=\"find-my-location-btn\" type=\"button\" (click)=\"getCurrentLocation()\"> {{ 'key.find_my_location' |\n          translate }} </button>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.UNABLE_TO_COMPLETE_ORDER.TYPE\">\n    <div\n      [ngStyle]=\"{'background' : appService.appObject.theme[appService.themeConfigFor]?.primaryColor, 'height' : '20px'}\">\n    </div>\n    <div class=\"unable-to-process-order-alert\">\n      <div class=\"icon-container-unavailable\">\n        <ion-icon name=\"information-circle\"></ion-icon>\n      </div>\n      <div>\n        {{'key.selected_menu_categories_are_not_available_at_the_selected_time_slot' | translate}}\n      </div>\n    </div>\n    <div class=\"text-center\">\n      {{'key.available_times_for' | translate}}&nbsp;<strong>{{appService.tempDeliveryDate}}</strong>\n    </div>\n    <div class=\"unavailable-menu-list\">\n      <div class=\"unavailable-menu-card-details\"\n        [ngStyle]=\"{'border-color' : appService.appObject.theme[appService.themeConfigFor]?.primaryColor}\"\n        *ngFor=\"let menu of appService.menusNotAvailable\">\n        <strong>{{menu.name}}</strong>&nbsp;:\n        <span class=\"available-times\">\n          <ion-icon name=\"alarm-outline\"></ion-icon>&nbsp;\n          {{menu.visibility.isActive ? (menu.visibility.timeSlot?.from !== 'All Day' ?\n          (menu.visibility.timeSlot?.from\n          + ' - ' + menu.visibility.timeSlot?.to) : 'All Day') : 'Not Available'}}</span>\n      </div>\n    </div>\n    <div class=\"\">
10287\n      <span (click)=\"closeUnavailableNote()\" class=\"btn-sm-alert unavailable-close-btn\" [ngStyle]=\"{'background': appService.appObject.theme[appService.themeConfigFor]?.primaryColor,\n      'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n        {{'key.close' | translate}}\n      </span>\n    </div>\n  </div>\n\n  <div class=\"dilivary-method-container\"\n    *ngIf=\"type === POPOVER_TYPES.DELIVERY_TYPE.TYPE || type === POPOVER_TYPES.ORDERING_TYPE.TYPE\">\n\n    <div class=\"btn-container\"\n      *ngFor=\"let option of ((!selectedBranch && appService.appObject.settings?.is_franchise === 'true') || justSelectOrderType ? availableDeliveryMethodsFranchise : appService.availableDeliveryMethods)\">\n      <button class=\"red-button\"\n        [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\"\n        (click)=\"tempSelectedOrderType = option; selectOrderType(option); type === POPOVER_TYPES.ORDERING_TYPE.TYPE ? '' : ((option === 'delivery' || selectfavouriteRestaurant || (appService.appObject.settings?.is_franchise === 'true' && !selectedBranch)) ? navigateTo(POPOVER_TYPES.LOCATION_SELECT): navigateTo((selectedBranch ? 'menu-page' : 'restaurant-list'),(selectedBranch ? selectedBranch : 'all')))\">\n        <ion-icon *ngIf=\"option === 'delivery'\" name=\"fast-food-outline\"></ion-icon>\n        <ion-icon *ngIf=\"option === 'pickup'\" name=\"footsteps-outline\"></ion-icon>\n        <ion-icon *ngIf=\"option === 'dine_in'\" name=\"restaurant-outline\"></ion-icon>\n        <span>{{('key.'+ option) | translate}}</span>\n      </button>\n    </div>\n\n    <div class=\"text-center mt-15px\"\n      *ngIf=\"!selectedBranch && this.appService.appObject.settings?.is_franchise === 'true'\">
10287\n      <span (click)=\"changeFavouriteRestaurant()\" class=\"change-favourite\"\n        *ngIf=\"appService.appObject.settings?.is_franchise === 'true'\"\n        [ngStyle]=\"{'color' : (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : '')}\">\n        <strong> {{(appService.appObject.favouriteRestaurant ? 'key.change_favourite_restaurant' :\n          'key.set_favourite_restaurant') | translate}}</strong>\n      </span>\n    </div>\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.LOCATION_SELECT.TYPE\">\n    <span *ngIf=\"!isPostalModeEnable\">\n      <div class=\"searchbar\">\n        <ion-label position=\"stacked\">{{ 'key.location' | translate }}</ion-label>\n        <ion-input (ngModelChange)=\"addressInputChanged = true;\" [(ngModel)]=\"address\" #googleaddressweb class=\"input\">\n        </ion-input>\n        <ion-icon (click)=\"appService.clearAddress()\" class=\"closeicon pointer\" name=\"close-circle-outline\"></ion-icon>\n\n      </div>\n\n      <div class=\"alert\" *ngIf=\"appService?.appObject?.errors?.address\">\n        <div *ngFor=\"let error of appService?.appObject?.errors?.address | keyvalue\">\n          {{ 'key.'+ error.value | translate }}\n        </div>\n      </div>\n\n      <!-- <div class=\"dilivary-method-container\">\n        <div class=\"btn-container\">\n          <button class=\"red-button\"\n            (click)=\"justSelectDeliveryAddress ? navigateTo(POPOVER_TYPES.CHECKOUT) : navigateTo('restaurant-list')\">\n            <span>{{(justSelectDeliveryAddress ? 'key.checkout' : 'key.find_restaurants') | translate}}</span>\n          </button>\n        </div>\n      </div> -->\n      <div class=\"dilivary-method-container\">\n        <div class=\"btn-container\">\n          <button class=\"red-button\" (click)=\"appService?.appObject?.errors?.address ? '' : addressSelectAction()\"\n            [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n          'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n            <span>{{(isFromCheckoutToLocationSelect ? 'key.choose_address'\n              : ((appService.appObject.settings.is_franchise === 'true' && !isFavouriteRestaurantDeliverySearch) ||\n              (!appService.appObject.settings.is_franchise || appService.appObject.settings.is_franchise === 'false') ?\n              'key.find_a_restaurant_web'\n              : 'key.order_now_web')) | translate}}</span>\n          </button>\n        </div>\n        <!-- <div class=\"get-current-address\">\n          <a (click)=\"getCurrentLocation()\">{{'key.get_current_address' | translate}}</a>d\n        </div> -->\n        <div class=\"text-center\">\n          <button class=\"find-my-location-btn\" type=\"button\" (click)=\"getCurrentLocation()\"> {{ 'key.find_my_location' |\n            translate }} </button>\n        </div>\n      </div>\n    </span>\n    <!-- postal searchbar -->\n    <div class=\"form-container\" *ngIf=\"isPostalModeEnable\">\n      <div class=\"container\">\n        <ion-input placeholder=\"{{ 'key.select_delivery_area' | translate }}\" class=\"postal-code-input\" type=\"text\"\n          debounce=\"500\" (ionChange)=\"getPostalItems($event)\" [(ngModel)]=\"selected_postal\" (click)=\"clearPostalArea()\">\n        </ion-input>\n        <ion-list *ngIf=\"postalFilterItem.length\" class=\"postal-code-list\">\n          <ion-item\n            [ngStyle]=\"{'border-left': '5px solid' + (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor)}\"\n            lines=\"none\" class=\"postal-item\" (click)=\"selectPostalCode(item)\" *ngFor=\"let item of postalFilterItem\">{{\n            item.code }} - {{item.name\n            }}</ion-item>\n        </ion-list>\n\n        <div class=\"alert\" *ngIf=\"appService?.appObject?.errors?.postalCode\">\n          <div *ngFor=\"let error of appService?.appObject?.errors?.postalCode | keyvalue\">\n            {{ 'key.'+ error.value | translate }}\n          </div>\n        </div>\n\n        <div *ngIf=\"!postalFilterItem.length && selected_postal && !selectedArea\" class=\"not-found-postals\">\n          <ion-icon name=\"sad-outline\"></ion-icon>\n          <!-- <p>{{ 'key.sorry_restaurants_not_found' | translate }}</p> -->\n          <p>{{'key.sorry_we_re_not_delivering_to_this_location' | translate}}</p>\n        </div>\n\n      </div>\n\n\n      <div class=\"text-center\">\n        <button class=\"red-button\"\n          [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n          'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\"\n          (click)=\"onPostalCodeSelect()\">{{'key.order_now' | translate}}</button>\n      </div>\n    </div>\n\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.RESTAURANT_SELECT.TYPE\">\n    <ion-row class=\"no-restaurants\" *ngIf=\"!appService?.appObject?.restaurants?.length\">\n      <h4><strong>{{'key.there_are_no_any_restaurants_at_the_moment' | translate}}...!</strong></h4>\n    </ion-row>\n    <ion-grid *ngFor=\"let restaurant of appService.appObject.restaurants;\" class=\"restaurant-card\"\n      (click)=\"selectfavouriteRestaurant ? markRestaurantAsFavourite(restaurant) : navigateTo('menu-page',restaurant)\"\n      [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.restaurantListCardBackgroun
10287d : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n        'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.restaurantListCardText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\">\n      <ion-row>\n        <ion-col size=\"10\">\n          <div class=\"branches-title\">{{ restaurant.name }}</div>\n        </ion-col>\n      </ion-row>\n      <ion-row class=\"branches-addrs\">\n        <ion-col size=\"12\">\n          <ion-icon name=\"location\"></ion-icon><span>{{ restaurant.address }}</span>\n        </ion-col>\n      </ion-row>\n    </ion-grid>\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.TABLE_SELECT.TYPE\">\n    <div *ngIf=\"selectedRestaurantTableList.length && !previousRestaurant\">\n      <div *ngFor=\"let table of selectedRestaurantTableList\"\n        class=\"restaurant-table-card {{selectedTable && selectedTable.id === table.id ? ' restaurant-table-card-checked' : ''}}\"\n        (click)=\"onSelectTable(table)\">\n        <span>{{'key.table' | translate}}&nbsp;<strong>{{table.number}}</strong></span>\n        <ion-icon name=\"checkmark-circle\"></ion-icon>\n      </div>\n    </div>\n    <div *ngIf=\"previousRestaurant && previousRestaurant.name\" class=\"table-msg-container\">\n      <div>\n        <img src=\"../../../../../assets/img/pending_order.jpg\" alt=\"vector4free\" srcset=\"\" style=\"max-height: 200px;\">\n      </div>
10287\n      <span>\n        {{'key.you_have_an_active_order_on_restaurant' | translate}} <br>\n        <strong>{{previousRestaurant.name}}<br>\n          {{'key.table' | translate}} #{{previousRestaurant.number}}</strong>\n      </span>\n      <br>\n      <!-- <a *ngIf=\"previousRestaurant.slug\"\n        [routerLink]=\"['menu',previousRestaurant.slug]\">go to menu</a>\n      <br> -->\n      <label class=\"timer\">{{previousRestaurant.countDown}}</label>\n    </div>\n    <!-- <ion-row class=\"no-restaurants\" *ngIf=\"!appService?.appObject?.restaurants?.length\">\n      <h4><strong>{{'key.there_are_no_any_restaurants_at_the_moment' | translate}}...!</strong></h4>\n    </ion-row>\n    <ion-grid *ngFor=\"let restaurant of appService.appObject.restaurants;\" class=\"restaurant-card\"\n      (click)=\"navigateTo('menu-page',restaurant)\">\n      <ion-row>\n        <ion-col size=\"10\">\n          <div class=\"branches-title\">{{ restaurant.name }}</div>\n        </ion-col>\n      </ion-row>\n      <ion-row class=\"branches-addrs\">\n        <ion-col size=\"12\">\n          <ion-icon name=\"location\"></ion-icon><span>{{ restaurant.address }}</span>\n        </ion-col>\n      </ion-row>\n    </ion-grid> -->\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.OPEN_HOURS.TYPE\">\n    <app-open-hours restaurantId=\"{{appService.appObject?.selectedRestaurantId}}\"></app-open-hours>\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.PAGES.TYPE\">\n    <app-pages slug=\"{{slug}}\"></app-pages>\n  </div>\n\n  <!-- <div *ngIf=\"type === POPOVER_TYPES.LOGIN.TYPE\">\n    <app-login (onLoginSuccess)=\"onLoginSuccess($event[0])\"></app-login>\n  </div> -->\n  <app-login [isOrderProcessing]=\"isOrderProcessing\" (onForgotPassword)=\"onForgotPassword()\"\n    (onRegisterClick)=\"onRegisterVia()\" *ngIf=\"type === POPOVER_TYPES.LOGIN.TYPE\"\n    (onLoginSuccess)=\"onLoginSuccess($event[0])\">\n  </app-login>\n\n  <!-- <div *ngIf=\"type === POPOVER_TYPES.USER_PROFILE.TYPE\">\n    <app-profile-update ></app-profile-update>\n  </div> -->\n  <app-profile-update *ngIf=\"type === POPOVER_TYPES.USER_PROFILE.TYPE\"></app-profile-update>\n\n\n  <app-register-via (onLoginSuccess)=\"onLoginSuccess(null)\" (onRegisterViaEmail)=\"onRegisterViaEmail()\"\n    *ngIf=\"type === POPOVER_TYPES.REGISTER_VIA.TYPE\"></app-register-via>\n\n  <app-register (onNavigatePages)=\"onNavigatePages($event[0])\" (onRegistrationSuccess)=\"onLoginSuccess(null)\"\n    *ngIf=\"type === POPOVER_TYPES.REGISTER.TYPE\"></app-register>\n\n  <app-forgot-password (onPasswordResetSuccess)=\"onPasswordResetSuccess()\"\n    *ngIf=\"type === POPOVER_TYPES.FORGOT_PASSWORD.TYPE\"></app-forgot-password>\n\n  <app-toppings [isFromCrossSelling]=\"isFromCrossSelling\" *ngIf=\"type === POPOVER_TYPES.TOPPINGS.TYPE\"></app-toppings>\n\n  <app-checkout (onOrderPlaced)=\"onOrderPlaced($event[0], $event[1])\"\n    (onChangeDeliveryAddress)=\"onChangeDeliveryAddress()\" (onNavigatePages)=\"onNavigatePages($event[0])\"\n    *ngIf=\"type === POPOVER_TYPES.CHECKOUT.TYPE\" (onBackLoginFromCheckout)=\"onBackLoginFromCheckout()\"\n    [backFromAddressSelect]=\"isFromCheckoutToLocationSelect\">\n  </app-checkout>\n\n  <app-order-summery *ngIf=\"type === POPOVER_TYPES.ORDER_SUMMARY.TYPE\" webUniqueId=\"{{uniqueId}}\">\n  </app-order-summery>\n\n  <app-past-order (onOrderSelect)=\"onOrderPlaced($event[0], $event[1])\" *ngIf=\"type === POPOVER_TYPES.PAST_ORDERS.TYPE\">\n  </app-past-order>\n\n  <div *ngIf=\"type === POPOVER_TYPES.DISH_IMAGE_PREVIEW.TYPE && dishImageURL\" class=\"text-center padding-5px\">\n    <img src=\"{{dishImageURL}}\" alt=\"\">\n  </div>\n\n  <app-cross-selling #crossSelling (openQuestionDishPage)=\"openQuestionDishPage($event[0])\"\n    [crossSellingProducts]=\"crossSellingProducts\" [selectedDishCategory]=\"selectedDishCategory\"\n    *ngIf=\"type === POPOVER_TYPES.CROSS_SELLING.TYPE\"></app-cross-selling>\n\n  <app-table-reservation (onReservationSuccess)=\"onReservationSuccess($event[0])\"\n    *ngIf=\"type === POPOVER_TYPES.TABLE_RESERVATION.TYPE && !reservationSuccess\"></app-table-reservation>\n\n  <div *ngIf=\"type === POPOVER_TYPES.TABLE_RESERVATION.TYPE && reservationSuccess\">\n    <div class=\"reservation-success-msg-container\">\n      <ion-icon name=\"checkmark-circle\"></ion-icon>\n      <div [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(reservationSuccess)\">\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.ALLERGY.TYPE\" class=\"allergy-content\">\n    <div *ngIf=\"htmlContent\" [innerHtml]=\"htmlContent\">\n    </div>\n  </div>\n\n  <div *ngIf=\"type === POPOVER_TYPES.FAVOURITE_RESTAURANT.TYPE\">\n    <div *ngIf=\"appService.appObject.favouriteRestaurant && !loadingFavourite\">\n      <div class=\"restaurant-details-card\" *ngIf=\"!fromFavouriteIcon\"\n        [ngStyle]=\"{'background' : (appService.appObject.favouriteRestaurant.openDetails.current_status === 'closed' ? '#fce0e3' : '#ddeed6') }\">\n        <strong>{{appService.appObject.favouriteRestaurant.name}}</strong>\n        <br>\n        <p *ngIf=\"appService.appObject.favouriteRestaurant.openDetails.current_status === 'open'\">\n          {{ 'key.favourite_restaurant_open' | translate }}\n        </p>\n\n        <p\n          *ngIf=\"appService.appObject.favouriteRestaurant.openDetails.current_status === 'closed' && !appService.appObject.favouriteRestaurant.openDetails.is_pre_order\">\n          {{ 'key.close_note' | translate }}\n        </p>\n\n        <p\n          *ngIf=\"appService.appObject.favouriteRestaurant.openDetails.current_status === 'closed' && appService.appObject.favouriteRestaurant.openDetails.is_pre_order\">\n          {{ 'key.restaurant_is_closed_but_preorder' | translate }}\n        </p>\n\n        <div class=\"open-time-note\"\n          *ngIf=\"appService.appObject.favouriteRestaurant.openDetails?.text != '' || appService.appObject.favouriteRestaurant.openDetails.text_delivery != ''\">\n          {{ appService.appObject.favouriteRestaurant.openDetails?.text }}\n          {{ appService.appObject.favouriteRestaurant.openDetails?.text != \"\" &&\n          appService.appObject.favouriteRestaurant.openDetails?.text_delivery != \"\" ? '|' : ''}}\n          {{ appService.appObject.favouriteRestaurant.openDetails?.text_delivery }}\n\n        </div>\n      </div>\n      <div class=\"go-now\">\n        <!-- <button class=\"red-button\" type=\"button\" (click)=\"redirectTofavouriteRestaurant()\"\n          [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''),\n          'color' : (appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor : '')}\">\n          <strong>Go Now</strong>&nbsp;<span>({{favouriteRedirectCountDown}})</span>\n        </button> -->\n        <div class=\"btn-container\" *ngFor=\"let option of favouriteRestaurantDeliveryMethods\">\n          <button class=\"red-button\"\n            [ngStyle]=\"{'background': (appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButton : appService.appObject.theme[appService.themeConfigFor]?.primaryColor),\n            'color' : appService.appObject.theme[appService.themeConfigFor]?.advance === true || appService.appObject.theme[appService.themeConfigFor]?.advance === 'true' ? appService.appObject.theme[appService.themeConfigFor]?.advanced.deliveryMethodTypeButtonText : appService.appObject.theme[appService.themeConfigFor]?.primaryTextColor}\"\n            (click)=\"onFavoriteModeDeliveryMethodSelect(option)\">\n            <ion-icon *ngIf=\"option === 'delivery'\" name=\"fast-food-outline\"></ion-icon>\n            <ion-icon *ngIf=\"option === 'pickup'\" name=\"footsteps-outline\"></ion-icon>\n            <ion-icon *ngIf=\"option === 'dine_in'\" name=\"restaurant-outline\"></ion-icon>\n            &nbsp;<span>{{('key.'+ option) | translate}}</span>\n          </button>\n        </div>\n        <br>
10287\n        <span (click)=\"changeFavouriteRestaurant()\" class=\"change-favourite\"\n          [ngStyle]=\"{'color' : (appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : '')}\">Change\n          your favorite restaurant</span>\n      </div>\n    </div>\n\n    <div *ngIf=\"loadingFavourite\" class=\"spinner-container\">\n      <ion-spinner name=\"crescent\"\n        [ngStyle]=\"{'color' : appService.appObject.theme[appService.themeConfigFor]?.primaryColor ? appService.appObject.theme[appService.themeConfigFor]?.primaryColor : ''}\">\n      </ion-spinner>\n    </div>\n  </div>\n  <div *ngIf=\"type === POPOVER_TYPES.ALLERGIES_AND_ADDITIVES.TYPE\">\n    <app-additives-and-substances></app-additives-and-substances>\n  </div>\n</ion-content>\n\n<!-- <app-login *ngIf=\"type === POPOVER_TYPES.LOGIN.TYPE\" (onLoginSuccess)=\"onLoginSuccess($event[0])\">\n</app-login> -->");
10288
10289/***/ }),
10290
10291/***/ 20991:
10292/*!********************************************************!*\
10293  !*** ./src/app/views/web-views/shared/constatnts.json ***!
10294  \********************************************************/
10295/***/ (function(module) {
10296
10297"use strict";
10298module.exports = JSON.parse('{"POPOVER_TYPES":{"DELIVERY_TYPE":{"TYPE":"delivery-type","TITLE":"key.select_order_type"},"BRANCH_SELECT":{"TYPE":"branch-select","TITLE":"key.select_a_restaurant"},"LOCATION_SELECT":{"TYPE":"location-select","TITLE":"key.select_delivery_address"},"RESTAURANT_SELECT":{"TYPE":"restaurant-select","TITLE":"key.select_a_restaurant"},"OPEN_HOURS":{"TYPE":"open-hours","TITLE":"key.open_hours"},"PAGES":{"TYPE":"pages","TITLE":""},"LOGIN":{"TYPE":"login","TITLE":"key.user_account"},"USER_PROFILE":{"TYPE":"user-profile","TITLE":"key.profile"},"REGISTER_VIA":{"TYPE":"register-via","TITLE":"key.user_account_register"},"REGISTER":{"TYPE":"register","TITLE":"key.register"},"FORGOT_PASSWORD":{"TYPE":"forgot-password","TITLE":"key.forgot_password"},"TOPPINGS":{"TYPE":"toppings","TITLE":""},"CHECKOUT":{"TYPE":"checkout","TITLE":"key.checkout"},"FIND_NEAR_BY":{"TYPE":"find-near-by","TITLE":"key.find_restaurant_near_by"},"ORDER_SUMMARY":{"TYPE":"order-summary","TITLE":""},"PAST_ORDERS":{"TYPE":"past-orders","TITLE":"key.my_orders_web"},"ORDERING_TYPE":{"TYPE":"ordering-type","TITLE":"key.select_order_type"},"DISH_IMAGE_PREVIEW":{"TYPE":"dish-image-preview","TITLE":""},"CROSS_SELLING":{"TYPE":"cross-selling","TITLE":""},"TABLE_RESERVATION":{"TYPE":"table-reservation","TITLE":"key.reserve_table"},"ALLERGY":{"TYPE":"allergy","TITLE":"key.allergies_and_additives"},"TABLE_SELECT":{"TYPE":"table-select","TITLE":"key.select_a_table"},"FAVOURITE_RESTAURANT":{"TYPE":"favourite_restaurant","TITLE":"key.favourite_restaurant"},"FAVOURITE_RESTAURANT_SELECT":{"TYPE":"favourite_restaurant_select","TITLE":"key.select_favourite_restaurant"},"FAVOURITE_RESTAURANT_SEARCH":{"TYPE":"favourite_restaurant_search","TITLE":"key.search_restaurants_nearby"},"FAVOURITE_RESTAURANT_SELECTED":{"TYPE":"favourite_restaurant_selected","TITLE":"key.select_favourite_restaurant"},"ALLERGIES_AND_ADDITIVES":{"TYPE":"allergies_and_additives","TITLE":"key.allergies_and_additives"},"UNABLE_TO_COMPLETE_ORDER":{"TYPE":"unable_to_complete_order","TITLE":"key.unable_to_complete_order_process"}}}');
10299
10300/***/ })
10301
10302},
10303/******/ function(__webpack_require__) { // webpackRuntimeModules
10304/******/ "use strict";
10305/******/ 
10306/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
10307/******/ __webpack_require__.O(0, ["vendor"], function() { return __webpack_exec__(14431); });
10308/******/ var __webpack_exports__ = __webpack_require__.O();
10309/******/ }
10310]);
10311//# sourceMappingURL=main-es2015.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.