{"version":3,"sources":["./src/app/swagger/model/orderTaxInfoModel.ts","./src/app/swagger/model/parentOrderShareRequest.ts","./src/app/swagger/api/offerRuleRestController.service.ts","./src/app/swagger/api/commonRestControllerForUsers.service.ts","./src/app/swagger/model/offerRuleModel.ts","./src/app/swagger/api/categoryRestControllerForAdmin.service.ts","./node_modules/@aws-amplify/ui-components/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./src/app/common/components/maps/address/address.component.scss","./src/app/common/components/item-selection/item-selection.component.ts","./src/app/common/components/item-upsertion/item-upsertion.component.scss","./src/app/common/components/quantity-selector/quantity-selector.component.scss","./src/app/swagger/api/paymentControllerForUsers.service.ts","crypto (ignored)","./src/app/core/pages/user-profile/user-profile.page.html","./src/app/swagger/model/models.ts","./src/app/swagger/api/inventoryAlertController.service.ts","./src/app/common/components/signature/signature.component.ts","./src/app/swagger/api/cartRestControllerForAdmins.service.ts","./src/app/swagger/model/parentOrderSummaryModel.ts","./src/app/swagger/api/inventoryEntryController.service.ts","./src/app/swagger/api/profileRestControllerForUsers.service.ts","webpack:///crypto (ignored)?8f6c","./src/app/common/components/profile-popover/profile-popover.component.html","./src/app/swagger/model/menuEntity.ts","net (ignored)","./src/app/common/components/side-bar/side-bar.component.ts","./src/app/common/components/custom-restaurant-select/restaurant-modal.component.ts","./src/app/swagger/model/restaurantFilter.ts","./src/app/common/services/side-menu/side-menu.service.ts","./src/app/swagger/model/orderStatusUpdateResponse.ts","./src/app/common/components/profile-popover/profile-popover.component.ts","./src/app/swagger/model/qRCodeInfo.ts","./src/app/swagger/model/restaurantTaxRuleMapEntity.ts","./src/app/common/components/notification/notification.component.ts","./src/app/common/components/resto-branch-upsertion/resto-branch-upsertion.component.ts","./src/app/swagger/model/categoryProductMapModel.ts","./src/app/common/components/menu-item-mappings/menu-item-mappings.component.html","./src/app/swagger/model/restaurantAdminModel.ts","./src/app/core/components/home/home.component.ts","./src/app/common/components/quantity-selector/quantity-selector.component.html","./src/app/common/components/order-type/order-type.component.ts","./src/app/common/components/messages/messages.component.ts","./src/app/common/components/order-type/order-type.component.html","./src/app/core/pages/home/home.page.scss","./src/app/common/components/tables/tables.component.scss","./src/app/swagger/model/cartItemModel.ts","./src/app/common/components/qr-scanner/qr-scanner.component.html","./src/app/swagger/model/menuItemEntity.ts","./src/app/core/pages/user-profile/user-profile.page.scss","./src/app/common/components/menu-selection/menu-selection.component.html","./src/app/common/components/menu-nav-bar/menu-nav-bar.component.html","./src/app/swagger/model/kitchenOrderModel.ts","./src/app/swagger/api/menuItemRestController.service.ts","./src/app/common/components/tables/tables.component.ts","./src/app/common/services/qr-scanner/qr-scanner.service.ts","./src/app/common/services/utilities/utilities.service.ts","./src/environments/environment.ts","./src/app/swagger/api/order-feedback.service.ts","./src/app/common/services/storage/storage.service.ts","./src/app/swagger/api/restaurantRestController.service.ts","./src/app/common/services/menu-nav/menu-nav.service.ts","./src/app/swagger/api/menuItemMapStockRestController.service.ts","./src/app/common/services/modal/modal.service.ts","./src/app/common/components/menu-upsertion/menu-upsertion.component.ts","./src/app/swagger/api/restaurantUsersRestController.service.ts","./src/app/common/components/qr-scanner/qr-scanner.component.scss","./src/app/swagger/model/orderItemTaxInfoModel.ts","./src/app/swagger/model/cartModel.ts","./src/app/common/components/catalog/catalog.component.ts","./src/app/core/components/tabs/tabs.component.ts","./src/app/swagger/api/reportsRestControllerForAdmin.service.ts","./src/app/swagger/model/itemQuantity.ts","./src/app/swagger/model/imageInfoModel.ts","./src/app/swagger/model/currencyModel.ts","./src/app/swagger/model/inventoryAlertModel.ts","./src/app/swagger/model/cartPriceModel.ts","./src/app/common/components/menu-items/menu-items.component.scss","./src/app/swagger/model/addressEntity.ts","./src/app/swagger/model/parentOrderStatusUpdateRequest.ts","./src/app/swagger/api/paymentOptionRestControllerForUsers.service.ts","./src/app/swagger/encoder.ts","./src/app/swagger/model/parentOrderModel.ts","./src/app/swagger/model/menuItemMapStockEntity.ts","./src/app/common/components/footer/footer.component.ts","./src/app/common/components/filters/filters.component.scss","./src/app/swagger/api/offerMappingRestController.service.ts","./src/app/swagger/model/orderOfferInfoModel.ts","./src/app/swagger/model/reportRow.ts","./src/app/swagger/api/taxRuleRestController.service.ts","./src/app/swagger/model/reportPageModel.ts","./src/app/swagger/model/cartOfferInfoModel.ts","./src/app/common/services/cart/cart.service.ts","./src/app/admin/pages/admin/admin.constant.ts","./src/app/common/components/item-upsertion/item-upsertion.component.ts","./src/app/swagger/api/restaurantQrCodeRestController.service.ts","./src/app/swagger/model/parentOrderShareResponse.ts","./src/app/swagger/index.ts","./src/app/common/components/qr-info/qr-info.component.html","./src/app/common/components/item-price-selecion/item-price-selecion.component.ts","./src/app/common/components/item-price-selecion/item-price-selecion.component.html","./src/app/core/pages/privacy/privacy.page.scss","./src/app/common/components/button-group/button-group.component.html","./src/app/swagger/model/addressModel.ts","./src/app/swagger/configuration.ts","./src/app/common/components/notification/notification.component.scss","./src/app/swagger/api/restaurantGroupMapRestController.service.ts","./src/app/common/components/logo/logo.component.scss","./src/app/common/components/side-bar/side-bar.component.scss","./src/app/common/components/messages/messages.component.scss","./src/app/swagger/model/parentOrderStatusUpdateResponse.ts","./src/app/core/pages/home/home.page.html","./src/app/core/pages/sign-up/sign-up.page.html","./src/app/swagger/model/restaurantModelPrefTimeZone.ts","./src/app/swagger/model/restaurantBranchModel.ts","./src/app/swagger/api/redirectUser.service.ts","./src/app/core/pages/login/login.page.html","./src/app/swagger/api/restaurantRegistrationRestControllerForUsers.service.ts","./src/app/swagger/model/orderPriceModel.ts","./src/app/swagger/model/orderSummaryModel.ts","./src/app/core/components/home/home.component.scss","./src/app/common/components/menu-nav-bar/menu-nav-bar.component.ts","./src/app/common/components/side-bar/side-bar.component.html","./src/app/swagger/api/parentOrderRestController.service.ts","./src/app/common/components/order-status/order-progress-bar.component.ts","./src/app/common/components/help-support/help-support.component.ts","./src/app/common/components/maps/address/address.component.ts","./src/app/swagger/model/orderItemModel.ts","./src/app/common/services/message/message.service.ts","./src/app/swagger/api/restaurantTaxRuleMapRestController.service.ts","./src/app/swagger/api/restaurantBranchTableRestController.service.ts","./src/app/core/pages/privacy/privacy.page.ts","./src/app/swagger/model/paymentOptionModel.ts","./src/app/swagger/api/smartdineImageRestController.service.ts","./src/app/core/components/home/home.component.html","./src/app/swagger/model/orderModel.ts","./src/app/resto-admin/pages/resto-admin/resto-admin.constant.ts","./src/app/common/components/profile-popover/profile-popover.component.scss","./src/app/swagger/model/productModel.ts","./src/app/swagger/api/paymentControllerForAdmin.service.ts","./src/app/common/components/custom-restaurant-select/restaurant-modal.component.html","./src/app/core/services/auth/auth.service.ts","./src/app/swagger/api/categoryProductMapRestController.service.ts","./src/app/common/directives/appear.directive.ts","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/common/components/menu-item-mappings/menu-item-mappings.component.scss","./src/app/common/components/search-bar/search-bar.component.html","./src/app/swagger/api/domainConfigRestController.service.ts","./src/app/app.component.ts","./src/app/swagger/api/google-places.service.ts","./src/app/common/components/shareoptions/shareoptions.component.html","./src/app/common/components/resto-branch-upsertion/resto-branch-upsertion.component.html","./src/app/common/components/menus/menus.component.html","./src/app/swagger/model/reportRequestParams.ts","./src/app/common/components/qr-info/qr-info.component.scss","./src/app/common/enums/role.enum.ts","./src/app/swagger/api/groupRestController.service.ts","./src/app/swagger/model/restaurantGroupMapEntity.ts","./src/app/common/components/restaurant-upsertion/restaurant-upsertion.component.ts","./src/app/common/components/restaurant-upsertion/data-list.helper.ts","./src/app/swagger/api/menuItemMapPriceRestController.service.ts","./src/app/common/components/header/header.component.scss","./src/app/app.component.html","./src/app/swagger/model/geoLocation.ts","./src/app/swagger/model/adminImagesBody1.ts","./src/app/swagger/model/restaurantEntity.ts","./src/app/core/pages/privacy/privacy.page.html","./src/app/core/guards/role/role.guard.ts","./src/app/swagger/api/paymentOptionRestController.service.ts","./src/app/common/components/order-status/order-progress-bar.component.scss","./src/app/common/components/tables/tables.component.html","./src/app/swagger/model/restaurantBranchEntity.ts","./src/app/common/components/qr-info/qr-info.component.ts","./src/app/common/components/custom-restaurant-select/restaurant-modal.component.scss","./src/app/common/components/side-menu/side-menu.component.ts","./src/app/swagger/api/restaurantCurrency.service.ts","./src/app/app.module.ts","./src/app/common/services/restaurants/restaurants.service.ts","./src/app/common/common.module.ts","./src/app/customer/pages/customer/customer.constant.ts","./src/app/customer/components/user-info/user-info.component.html","./src/app/common/components/feedback/feedback-form.component.ts","./src/app/common/components/signature/signature.component.scss","./src/app/swagger/model/razorPayPaymentGatewayResponse.ts","./src/app/common/components/search-bar/search-bar.component.scss","./src/app/swagger/model/cartTaxInfoModel.ts","./src/app/core/pages/user-profile/user-profile.page.ts","./src/app/common/components/feedback/feedback-form.component.scss","./src/app/swagger/api/cartRestControllerForUsers.service.ts","./src/app/common/components/resto-branch-upsertion/resto-branch-upsertion.component.scss","./src/app/common/pipes/capitalize-replace.pipe.ts","./src/app/common/components/header/header.component.ts","./src/app/common/services/loader/loader.service.ts","./src/app/swagger/api/menuItemMapRestController.service.ts","./src/app/common/services/admincart/admincart.service.ts","./src/app/common/services/notification/notification.service.ts","./src/app/common/components/food-type-indicator/food-type-indicator.component.ts","./src/app/common/models/menu-item-mapping/menu-item-mapping.model.ts","./src/app/common/components/item-price-selecion/item-price-selecion.component.scss","./src/app/core/pages/user-settings/user-settings.page.html","./src/app/shared.module.ts","./src/app/swagger/variables.ts","./src/app/common/components/side-menu/side-menu.component.scss","./src/app/common/components/menu-selection/menu-selection.component.ts","./src/app/common/components/catalog/catalog-side-menus/catalog-side-menus.component.ts","./src/app/common/components/catalog/catalog.component.html","./src/app/common/components/maps/address/address.component.html","./src/app/common/components/restaurant-upsertion/restaurant-upsertion.component.scss","./src/app/common/components/item-upsertion/item-upsertion.component.html","./src/app/swagger/model/profileModel.ts","./src/app/common/components/order-type/order-type.component.scss","./src/app/swagger/model/groupEntity.ts","./src/app/swagger/model/taxRuleEntity.ts","./src/app/common/components/order-status/order-progress-bar.component.html","./src/app/common/services/user-profile/user-profile.service.ts","./src/app/common/components/side-menu/side-menu.component.html","./src/app/core/pages/password-recovery/password-recovery.page.scss","./src/app/swagger/api/productRestControllerForAdmin.service.ts","./src/app/swagger/api/userRestController.service.ts","./src/app/swagger/api/statisticsRestController.service.ts","./src/app/common/components/feedback/feedback-form.component.html","./src/app/swagger/model/orderStatusModel.ts","./src/app/core/components/tabs/tabs.component.scss","./src/app/common/components/filters/filters.component.html","./src/app/core/pages/user-settings/user-settings.page.ts","./src/app/core/pages/sign-up/sign-up.page.ts","./src/app/common/components/messages/messages.component.html","./src/app/swagger/model/adminImagesBody.ts","./src/app/common/components/filters/filters.component.ts","./src/app/swagger/api/restaurantContactRestController.service.ts","./src/app/core/pages/sign-up/sign-up.page.scss","./src/app/swagger/api/razorPayWebhookController.service.ts","./src/app/common/components/catalog/catalog.component.scss","./src/app/swagger/model/reportInfoModel.ts","./src/app/swagger/api/menuUsersRestController.service.ts","./src/app/core/pages/password-recovery/password-recovery.page.ts","./node_modules/@ionic/core/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./src/app/swagger/model/smartDineResponseHeader.ts","./src/app/common/components/menu-nav-bar/menu-nav-bar.component.scss","./src/app/customer/components/user-info/user-info.component.scss","./src/app/common/components/catalog/catalog-side-menus/catalog-side-menus.component.scss","./src/app/common/components/notification/notification.component.html","./src/app/core/pages/user-settings/user-settings.page.scss","./src/app/common/components/footer/footer.component.html","./src/app/core/pages/login/login.page.ts","./src/app/common/components/menu-items/menu-items.component.ts","./src/app/swagger/model/paymentTransactionValidationModel.ts","./src/app/swagger/api/restaurantBranchRestController.service.ts","./src/app/core/pages/password-recovery/password-recovery.page.html","./src/app/common/components/item-selection/item-selection.component.scss","./src/app/customer/components/user-info/user-info.component.ts","./src/app/common/components/menu-items/menu-items.component.html","./src/app/common/components/button-group/button-group.component.scss","./src/app/common/components/menus/menus.component.ts","./src/app/common/components/item-selection/item-selection.component.html","./src/app/swagger/model/restaurantModel.ts","./src/app/common/services/web-sound/web-sound.service.ts","./src/app/common/components/food-type-indicator/food-type-indicator.component.scss","./src/app/swagger/model/orderStatusUpdateRequest.ts","./src/app/common/directives/dnd.directive.ts","./src/app/common/components/search-bar/search-bar.component.ts","./src/app/core/core.module.ts","./src/app/swagger/model/paymentTransactionModel.ts","./src/app/common/components/menu-upsertion/menu-upsertion.component.html","./src/app/common/components/base/base.component.ts","./src/app/common/components/quantity-selector/quantity-selector.component.ts","./src/app/swagger/model/statisticsOrderModel.ts","./src/app/common/components/logo/logo.component.html","./src/app/common/components/shareoptions/shareoptions.component.ts","./src/app/swagger/api/offerRestControllerForUsers.service.ts","./src/app/swagger/model/paymentOptionEntity.ts","./src/app/swagger/model/paymentGatewayPaymentRefEntity.ts","./src/app/swagger/api/menuRestController.service.ts","./src/app/common/components/signature/signature.component.html","./src/app/swagger/model/smartDineImage.ts","./src/aws-exports.js","./src/app/swagger/api/domainConfigRestControllerForCommon.service.ts","./src/app/swagger/api/userGroupMapRestController.service.ts","./src/app/swagger/model/restaurantBranchTableEntity.ts","./src/app/swagger/model/offerMappingModel.ts","./src/app/common/components/menu-upsertion/menu-upsertion.component.scss","./src/app/common/components/feedback/star-rating/star-rating.component.ts","./src/app/core/pages/login/login.page.scss","./src/app/swagger/api.module.ts","./src/app/swagger/api/inventoryMasterController.service.ts","./src/app/swagger/model/reportHeaderCell.ts","./src/app/swagger/model/razorPayPrefill.ts","./src/app/swagger/model/userGroupMapEntity.ts","./src/app/common/components/menus/menus.component.scss","./src/app/common/components/qr-scanner/qr-scanner.component.ts","./src/app/common/components/menu-selection/menu-selection.component.scss","./src/app/common/pipes/remove-under-score-and-captitalize.pipe.ts","./src/app/swagger/api/api.ts","./src/app/swagger/model/restaurantContactModel.ts","./src/app/core/pages/home/home.page.ts","./src/app/common/components/shareoptions/shareoptions.component.scss","./src/app/common/components/footer/footer.component.scss","./src/app/swagger/model/inventoryEntryModel.ts","./src/app/common/components/logo/logo.component.ts","./src/app/core/components/tabs/tabs.component.html","./src/app/swagger/model/inventoryMasterModel.ts","./src/app/app-routing.module.ts","./src/app/swagger/api/restaurantRegistrationForAdmin.service.ts","./src/app/common/components/catalog/catalog-side-menus/catalog-side-menus.component.html","./src/app/common/components/menu-item-mappings/menu-item-mappings.component.ts","./src/app/common/components/button-group/button-group.component.ts","./src/app/swagger/api/kitchenOrderRestController.service.ts","./src/app/common/components/header/header.component.html","./src/app/common/components/food-type-indicator/food-type-indicator.component.html","./src/app/swagger/model/sortByParam.ts","./src/app/app.component.scss","./src/app/common/components/restaurant-upsertion/restaurant-upsertion.component.html","./src/app/swagger/api/orderRestControllerForUsers.service.ts","./src/main.ts","./src/app/swagger/api/orderRestController.service.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;ACtJA;AAAe,6GAA8C,2HAA2H,E;;;;;;;;;;;;;;;;;;;;;;;;;ACA/H;AACU;AAClB;AAWxB;IAOZ,sBAAsB,oCAAtB,sBAAsB;IAoBjC,YACU,eAAgC,EAChC,6BAA4D,EAC5D,WAAwB,EACxB,yBAAoD,EACpD,gCAAkE;QAJlE,oBAAe,GAAf,eAAe,CAAiB;QAChC,kCAA6B,GAA7B,6BAA6B,CAA+B;QAC5D,gBAAW,GAAX,WAAW,CAAa;QACxB,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,qCAAgC,GAAhC,gCAAgC,CAAkC;QApBrE,WAAM,GAAkB,IAAI,CAAC;QAG7B,iBAAY,GAAkB,IAAI,CAAC;QAGnC,uBAAkB,GAAkB,IAAI,CAAC;QAGzC,qBAAgB,GAAwB,EAAE,CAAC;IAY9C,CAAC;IAEL,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAA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BACtB;YAEH,CAAC;SACF,CAAC;IACJ,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAEO,SAAS,CAAC,OAAoB;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;QACjE,MAAM,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,CACb,iBAAiB,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG;YAC3C,iBAAiB,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI;YAC7C,iBAAiB,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM;YACjD,iBAAiB,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAChD,CAAC;QACF,kDAAkD;QAClD,IAAI,MAAM,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;SAC9C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF;;YA/DmB,wDAAU;;;wBAS3B,mDAAK;2BAEL,mDAAK;uBAEL,oDAAM;;AANI,eAAe;IAH3B,+DAAS,CAAC;QACT,QAAQ,EAAE,YAAY;KACvB,CAAC;GACW,eAAe,CAwD3B;AAxD2B;;;;;;;;;;;;;;;;;;;;;;;;;;ACP5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;;;;;;ACnSA;AAAe,gGAAiC,8BAA8B,uBAAuB,GAAG,4CAA4C,eAAe,oBAAoB,qBAAqB,GAAG,2CAA2C,0BAA0B,GAAG,oHAAoH,qBAAqB,GAAG,SAAS,mBAAmB,GAAG,kCAAkC,qBAAqB,qBAAqB,oBAAoB,GAAG,yCAAyC,kBAAkB,GAAG,YAAY,cAAc,gDAAgD,qBAAqB,kCAAkC,2BAA2B,oD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oBAAoB,CA6OhC;AA7OgC;;;;;;;;;;;;ACrCjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;ACnOA;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","file":"main.js","sourcesContent":["/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OrderTaxInfoModel { \n taxRuleName?: string;\n taxRuleDesc?: string;\n taxPerc?: number;\n taxAmount?: number;\n taxedAmount?: number;\n taxRuleCode?: string;\n taxRuleGroup?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ParentOrderShareRequest { \n restaurantId?: string;\n restaurantBranchId?: string;\n orderId?: string;\n parentOrderId?: string;\n emailIds?: Array;\n phoneNos?: Array;\n sendBillBySms?: boolean;\n sendBillByEmail?: boolean;\n sendBillByWhatsApp?: boolean;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { OfferRuleModel } from '../model/offerRuleModel';\nimport { SmartDineResponseOfferRuleModel } from '../model/smartDineResponseOfferRuleModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class OfferRuleRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOfferRules(body: OfferRuleModel, observe?: 'body', reportProgress?: boolean): Observable;\n public createOfferRules(body: OfferRuleModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public createOfferRules(body: OfferRuleModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public createOfferRules(body: OfferRuleModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createOfferRules.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/offerrules`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param offerRuleId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteOfferRule(offerRuleId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteOfferRule(offerRuleId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteOfferRule(offerRuleId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteOfferRule(offerRuleId: string, restaurantId: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (offerRuleId === null || offerRuleId === undefined) {\n throw new Error('Required parameter offerRuleId was null or undefined when calling deleteOfferRule.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteOfferRule.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/offerrules/${encodeURIComponent(String(offerRuleId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param offerRuleId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOfferRule(offerRuleId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getOfferRule(offerRuleId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOfferRule(offerRuleId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOfferRule(offerRuleId: string, restaurantId: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (offerRuleId === null || offerRuleId === undefined) {\n throw new Error('Required parameter offerRuleId was null or undefined when calling getOfferRule.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getOfferRule.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/offerrules/${encodeURIComponent(String(offerRuleId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOfferRules(restaurantId: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getOfferRules(restaurantId: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOfferRules(restaurantId: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOfferRules(restaurantId: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getOfferRules.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/offerrules`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param offerRuleId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateOfferRule(body: OfferRuleModel, offerRuleId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateOfferRule(body: OfferRuleModel, offerRuleId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateOfferRule(body: OfferRuleModel, offerRuleId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateOfferRule(body: OfferRuleModel, offerRuleId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateOfferRule.');\n }\n\n if (offerRuleId === null || offerRuleId === undefined) {\n throw new Error('Required parameter offerRuleId was null or undefined when calling updateOfferRule.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/offerrules/${encodeURIComponent(String(offerRuleId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseMapStringString } from '../model/smartDineResponseMapStringString';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class CommonRestControllerForUsersService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getConfiguredLocales(observe?: 'body', reportProgress?: boolean): Observable;\n public getConfiguredLocales(observe?: 'response', reportProgress?: boolean): Observable>;\n public getConfiguredLocales(observe?: 'events', reportProgress?: boolean): Observable>;\n public getConfiguredLocales(observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/users/common/locales`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OfferRuleModel { \n offerRuleId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n offerCode?: string;\n offerName?: string;\n offerRuleLevel?: OfferRuleModel.OfferRuleLevelEnum;\n minItemQty?: number;\n maxItemQty?: number;\n minPrice?: number;\n maxPrice?: number;\n discountPercRate?: number;\n discountFlatRate?: number;\n maxNoOfTimesAllowed?: number;\n offerRuleType?: OfferRuleModel.OfferRuleTypeEnum;\n applicableItemTypes?: Array;\n active?: boolean;\n}\nexport namespace OfferRuleModel {\n export type OfferRuleLevelEnum = 'ITEM_LEVEL' | 'CART_LEVEL';\n export const OfferRuleLevelEnum = {\n ITEMLEVEL: 'ITEM_LEVEL' as OfferRuleLevelEnum,\n CARTLEVEL: 'CART_LEVEL' as OfferRuleLevelEnum\n };\n export type OfferRuleTypeEnum = 'FLAT_FIXED_DISCOUNT' | 'FLAT_PERC_DISCOUNT' | 'FLAT_FIXED_DISCOUNT_BY_ORDERS_COUNT' | 'FLAT_PERC_DISCOUNT_BY_ORDERS_COUNT';\n export const OfferRuleTypeEnum = {\n FIXEDDISCOUNT: 'FLAT_FIXED_DISCOUNT' as OfferRuleTypeEnum,\n PERCDISCOUNT: 'FLAT_PERC_DISCOUNT' as OfferRuleTypeEnum,\n FIXEDDISCOUNTBYORDERSCOUNT: 'FLAT_FIXED_DISCOUNT_BY_ORDERS_COUNT' as OfferRuleTypeEnum,\n PERCDISCOUNTBYORDERSCOUNT: 'FLAT_PERC_DISCOUNT_BY_ORDERS_COUNT' as OfferRuleTypeEnum\n };\n export type ApplicableItemTypesEnum = 'FOOD' | 'LIQUOR' | 'FOOD_5' | 'FOOD_12' | 'FOOD_18';\n export const ApplicableItemTypesEnum = {\n FOOD: 'FOOD' as ApplicableItemTypesEnum,\n LIQUOR: 'LIQUOR' as ApplicableItemTypesEnum,\n FOOD5: 'FOOD_5' as ApplicableItemTypesEnum,\n FOOD12: 'FOOD_12' as ApplicableItemTypesEnum,\n FOOD18: 'FOOD_18' as ApplicableItemTypesEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CategoryModel } from '../model/categoryModel';\nimport { SmartDineResponseCategoryModel } from '../model/smartDineResponseCategoryModel';\nimport { SmartDineResponseListCategoryModel } from '../model/smartDineResponseListCategoryModel';\nimport { SortByParam } from '../model/sortByParam';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class CategoryRestControllerForAdminService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createCategory(body: CategoryModel, observe?: 'body', reportProgress?: boolean): Observable;\n public createCategory(body: CategoryModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public createCategory(body: CategoryModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public createCategory(body: CategoryModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createCategory.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/categories`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param categoryId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteCategory(categoryId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteCategory(categoryId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteCategory(categoryId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteCategory(categoryId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (categoryId === null || categoryId === undefined) {\n throw new Error('Required parameter categoryId was null or undefined when calling deleteCategory.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/categories/${encodeURIComponent(String(categoryId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param parentCategoryId \n * @param pageNo \n * @param pageSize \n * @param sortByParams \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCategories(parentCategoryId?: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'body', reportProgress?: boolean): Observable;\n public getCategories(parentCategoryId?: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'response', reportProgress?: boolean): Observable>;\n public getCategories(parentCategoryId?: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'events', reportProgress?: boolean): Observable>;\n public getCategories(parentCategoryId?: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (parentCategoryId !== undefined && parentCategoryId !== null) {\n queryParameters = queryParameters.set('parentCategoryId', parentCategoryId);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (pageSize !== undefined && pageSize !== null) {\n queryParameters = queryParameters.set('pageSize', pageSize);\n }\n if (sortByParams) {\n sortByParams.forEach((element) => {\n queryParameters = queryParameters.append('sortByParams', element);\n })\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/categories`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param categoryId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCategory(categoryId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getCategory(categoryId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getCategory(categoryId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getCategory(categoryId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (categoryId === null || categoryId === undefined) {\n throw new Error('Required parameter categoryId was null or undefined when calling getCategory.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/categories/${encodeURIComponent(String(categoryId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param categoryId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCategory(body: CategoryModel, categoryId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateCategory(body: CategoryModel, categoryId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateCategory(body: CategoryModel, categoryId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateCategory(body: CategoryModel, categoryId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateCategory.');\n }\n\n if (categoryId === null || categoryId === undefined) {\n throw new Error('Required parameter categoryId was null or undefined when calling updateCategory.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/categories/${encodeURIComponent(String(categoryId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","var map = {\n\t\"./amplify-amazon-button_5.entry.js\": [\n\t\t\"pptk\",\n\t\t0,\n\t\t13\n\t],\n\t\"./amplify-auth-container.entry.js\": [\n\t\t\"SL4s\",\n\t\t14\n\t],\n\t\"./amplify-auth-fields_9.entry.js\": [\n\t\t\"5Azo\",\n\t\t3\n\t],\n\t\"./amplify-authenticator.entry.js\": [\n\t\t\"HaBs\",\n\t\t0,\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./amplify-button_3.entry.js\": [\n\t\t\"W1Jz\",\n\t\t16\n\t],\n\t\"./amplify-chatbot.entry.js\": [\n\t\t\"OkRK\",\n\t\t4\n\t],\n\t\"./amplify-checkbox.entry.js\": [\n\t\t\"jZr9\",\n\t\t17\n\t],\n\t\"./amplify-confirm-sign-in_7.entry.js\": [\n\t\t\"VFVT\",\n\t\t0,\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./amplify-container.entry.js\": [\n\t\t\"l2YT\",\n\t\t19\n\t],\n\t\"./amplify-federated-buttons_2.entry.js\": [\n\t\t\"4pA8\",\n\t\t0,\n\t\t20\n\t],\n\t\"./amplify-federated-sign-in.entry.js\": [\n\t\t\"GWfx\",\n\t\t9\n\t],\n\t\"./amplify-form-field_4.entry.js\": [\n\t\t\"svTr\",\n\t\t0,\n\t\t21\n\t],\n\t\"./amplify-greetings.entry.js\": [\n\t\t\"2uVw\",\n\t\t0,\n\t\t22\n\t],\n\t\"./amplify-icon-button.entry.js\": [\n\t\t\"5+i5\",\n\t\t23\n\t],\n\t\"./amplify-icon.entry.js\": [\n\t\t\"ATNG\",\n\t\t1,\n\t\t24\n\t],\n\t\"./amplify-link.entry.js\": [\n\t\t\"CLig\",\n\t\t25\n\t],\n\t\"./amplify-nav_2.entry.js\": [\n\t\t\"29kL\",\n\t\t0,\n\t\t26\n\t],\n\t\"./amplify-photo-picker.entry.js\": [\n\t\t\"fEjz\",\n\t\t10\n\t],\n\t\"./amplify-picker.entry.js\": [\n\t\t\"TkC1\",\n\t\t11\n\t],\n\t\"./amplify-radio-button_3.entry.js\": [\n\t\t\"QHHC\",\n\t\t0,\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./amplify-s3-album.entry.js\": [\n\t\t\"GV60\",\n\t\t\"common\",\n\t\t5\n\t],\n\t\"./amplify-s3-image-picker.entry.js\": [\n\t\t\"V0P2\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./amplify-s3-image.entry.js\": [\n\t\t\"mwoW\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./amplify-s3-text-picker.entry.js\": [\n\t\t\"/MiJ\",\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./amplify-s3-text.entry.js\": [\n\t\t\"Kukj\",\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./amplify-select-mfa-type.entry.js\": [\n\t\t\"oogQ\",\n\t\t2\n\t],\n\t\"./amplify-sign-in-button.entry.js\": [\n\t\t\"DW50\",\n\t\t1,\n\t\t28\n\t],\n\t\"./amplify-tooltip.entry.js\": [\n\t\t\"vSUa\",\n\t\t29\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"+uQQ\";\nmodule.exports = webpackAsyncContext;","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGRyZXNzLmNvbXBvbmVudC5zY3NzIn0= */\";","import { Component, Input, OnInit } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { ModalController } from '@ionic/angular';\nimport {\n MenuEntity,\n MenuItemEntity,\n MenuItemMapEntity,\n MenuItemMapRestControllerService,\n MenuItemRestControllerService,\n MenuRestControllerService,\n SmartDineResponseMenuEntity,\n SmartDineResponseMenuItemEntity,\n SmartDineResponseMenuItemMapEntity,\n} from 'src/app/swagger';\n\n@Component({\n selector: 'app-item-selection',\n templateUrl: './item-selection.component.html',\n styleUrls: ['./item-selection.component.scss'],\n})\nexport class ItemSelectionComponent implements OnInit {\n\n public static readonly id = 'item-selection-modal';\n\n @Input()\n public menuId: string | null = null;\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n @Input()\n public selectedItemMaps: MenuItemMapEntity[] = [];\n\n public menu: MenuEntity;\n public menuItems: MenuItemEntity[];\n public form: FormGroup;\n\n constructor(\n private modalController: ModalController,\n private menuItemRestControllerService: MenuItemRestControllerService,\n private formBuilder: FormBuilder,\n private menuRestControllerService: MenuRestControllerService,\n private menuItemMapRestControllerService: MenuItemMapRestControllerService,\n ) { }\n\n get itemControls() {\n return this.form.get('items') as FormArray;\n }\n\n public ngOnInit() {\n this.init();\n }\n\n public onSaveClick() {\n this.form.markAllAsTouched();\n const values = this.itemControls.value;\n const selectedItems = this.menuItems.filter((item, i) => values[i] && !this.selectedItemMaps.find(each => each.itemId === item.itemId));\n const deselectedItems = this.menuItems.filter((item, i) => !values[i] && this.selectedItemMaps.find(each => each.itemId === item.itemId));\n const deselectedItemMaps = deselectedItems.map((item) => this.selectedItemMaps.find(each => each.itemId === item.itemId));\n\n Promise.all([\n this.createMappings(selectedItems),\n this.deleteMappings(deselectedItemMaps),\n ]).then((res) => {\n this.modalController.dismiss({\n createdMappings: (res[0] as SmartDineResponseMenuItemMapEntity[]).map(e => e.item),\n deletedMappings: deselectedItemMaps,\n }, '', ItemSelectionComponent.id);\n });\n }\n\n public onCloseClick() {\n this.modalController.dismiss(null, '', ItemSelectionComponent.id);\n }\n\n public onItemClick(_event: MouseEvent, _item: MenuItemEntity, index: number) {\n const control = this.itemControls.at(index);\n control.setValue(!control.value);\n }\n\n private init() {\n if (this.menuId) {\n this.setMenu();\n }\n this.setMenuItems();\n }\n\n private setMenu() {\n this.menuRestControllerService.getMenu(this.menuId, this.restaurantId, this.restaurantBranchId).subscribe({\n next: (res: SmartDineResponseMenuEntity) => {\n this.menu = res.item;\n }\n });\n }\n\n private setMenuItems() {\n this.menuItems = [];\n const restaurantBranchId = null; // TODO: Need Publish functionality\n this.menuItemRestControllerService.getMenuItems(this.restaurantId, restaurantBranchId).subscribe({\n next: (res: SmartDineResponseMenuItemEntity) => {\n this.menuItems = res.items;\n this.createForm();\n },\n error: (err) => {\n console.error('Unable to get menu items!', err);\n }\n });\n }\n\n private createForm() {\n const controls = this.menuItems.map((item) => {\n const isSelected = !!this.selectedItemMaps.find(each => each.itemId === item.itemId);\n const control = this.formBuilder.control(isSelected);\n return control;\n });\n\n this.form = new FormGroup({\n items: this.formBuilder.array(controls)\n });\n }\n\n private async createMappings(items: MenuItemEntity[]) {\n const promises = items.map((item) => {\n const mapping = {\n menuItemMapId: null,\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n itemId: item.itemId,\n menuEntity: this.menu,\n menuId: this.menuId,\n menuItemEntity: item\n } as MenuItemMapEntity;\n\n return this.menuItemMapRestControllerService.createMenuItemMaps(\n mapping, this.restaurantId, this.restaurantBranchId\n ).toPromise().catch((err) => {\n console.error('Unable to create mapping for', this.menu.name, item.name, err);\n });\n });\n\n return Promise.all(promises);\n }\n\n private async deleteMappings(items: MenuItemMapEntity[]) {\n const promises = items.map((item) => {\n return this.menuItemMapRestControllerService.deleteMenuItemMap(\n item.menuItemMapId, this.restaurantId, this.restaurantBranchId\n ).toPromise().catch((err) => {\n console.error('Unable to delete mapping for', this.menu.name, item.menuItemEntity.name, err);\n });\n });\n\n return Promise.all(promises);\n }\n}\n","export default \".template-selection-link,\\n.template-selection-link.ion-activatable:hover {\\n --color-hover: var(--ion-color-primary);\\n color: var(--ion-color-primary);\\n}\\n\\n.template-selection-link ion-icon {\\n margin-right: 12px;\\n}\\n\\n.template-selection-link ion-label {\\n max-width: unset;\\n overflow: visible;\\n}\\n\\n.template-selection-link .indicator {\\n position: absolute;\\n right: 9px;\\n top: 12px;\\n z-index: 2;\\n background-color: var(--ion-color-success);\\n width: 12px;\\n height: 12px;\\n border-radius: 50%;\\n}\\n\\n.selection-name {\\n flex-grow: 0;\\n flex-basis: unset;\\n}\\n\\n.banner {\\n position: relative;\\n}\\n\\n.banner .thumbnail {\\n height: 150px;\\n max-height: 150px;\\n min-width: 200px;\\n max-width: 431px;\\n background-image: url(\\\"https://ionicframework.com/docs/demos/api/thumbnail/thumbnail.svg\\\");\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: cover;\\n clip-path: polygon(0 0, 80% 0, 100% 100%, 0 100%);\\n}\\n\\n.banner .image-upload-container {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n}\\n\\n.banner .image-upload-container:focus-within > .image-upload, .banner .image-upload-container:hover > .image-upload {\\n opacity: 1;\\n}\\n\\n.banner .image-upload-container .image-upload {\\n opacity: 0;\\n width: 72%;\\n height: 100%;\\n text-align: center;\\n padding: 0.5rem;\\n position: relative;\\n z-index: 10;\\n transition: opacity 0.5s;\\n}\\n\\n.banner .image-upload-container .image-upload.fileover {\\n opacity: 1;\\n}\\n\\n.banner .image-upload-container .image-upload ion-icon {\\n font-size: 3rem;\\n color: var(--ion-color-primary-shade);\\n}\\n\\n.banner .image-upload-container .image-upload input {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1;\\n opacity: 0;\\n width: 100%;\\n cursor: pointer;\\n}\\n\\n.banner .image-upload-container .image-upload label {\\n color: var(--ion-color-primary-contrast);\\n background-color: var(--ion-color-primary);\\n border-radius: 21.5px;\\n padding: 8px 16px;\\n display: inline-block;\\n}\\n\\n.banner .image-upload-container .image-upload h3 {\\n font-size: 1rem;\\n color: var(--ion-color-primary-shade);\\n margin: 0;\\n margin-bottom: 0.25rem;\\n}\\n\\n.banner .header-container {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 50%;\\n right: -20%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL3RlbXBsYXRlLWxpbmstZGVzaWduLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9pdGVtLXVwc2VydGlvbi5jb21wb25lbnQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFLHVDQUFBO0VBQ0EsK0JBQUE7QUNDRjs7QURHRTtFQUNFLGtCQUFBO0FDQUo7O0FER0U7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FDREo7O0FESUU7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLDBDQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0ZKOztBRE1BO0VBQ0UsWUFBQTtFQUNBLGlCQUFBO0FDSEY7O0FBdEJBO0VBQ0Usa0JBQUE7QUF5QkY7O0FBdkJFO0VBQ0UsYUFOZTtFQU9mLGlCQVBlO0VBUWYsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLDBGQUFBO0VBQ0EsNEJBQUE7RUFDQSxrQ0FBQTtFQUVBLHNCQUFBO0VBQ0EsaURBQUE7QUF5Qko7O0FBdEJFO0VDYkEsa0JBUWtCO0VBUGxCLE1EYUU7RUNaRixRRFlFO0VDWEYsU0RXRTtFQ1ZGLE9EVUU7QUE0Qko7O0FBMUJJO0VBRUUsVUFBQTtBQTJCTjs7QUF4Qkk7RUFDRSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSx3QkFBQTtBQTBCTjs7QUF4Qk07RUFDRSxVQUFBO0FBMEJSOztBQXZCTTtFQUNFLGVBQUE7RUFDQSxxQ0FBQTtBQXlCUjs7QUF0Qk07RUN4Q0osa0JBUWtCO0VBUGxCLE1Ed0NNO0VDdkNOLFFEdUNNO0VDdENOLFNEc0NNO0VDckNOLE9EcUNNO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQTRCUjs7QUF6Qk07RUFDRSx3Q0FBQTtFQUNBLDBDQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0FBMkJSOztBQXhCTTtFQUNFLGVBQUE7RUFDQSxxQ0FBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtBQTBCUjs7QUFyQkU7RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7QUF1QkoiLCJmaWxlIjoiaXRlbS11cHNlcnRpb24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGVtcGxhdGUtc2VsZWN0aW9uLWxpbmssXG4udGVtcGxhdGUtc2VsZWN0aW9uLWxpbmsuaW9uLWFjdGl2YXRhYmxlOmhvdmVyIHtcbiAgLS1jb2xvci1ob3ZlcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xufVxuXG4udGVtcGxhdGUtc2VsZWN0aW9uLWxpbmsge1xuICBpb24taWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB9XG5cbiAgaW9uLWxhYmVsIHtcbiAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLmluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA5cHg7XG4gICAgdG9wOiAxMnB4O1xuICAgIHotaW5kZXg6IDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3MpO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cbn1cblxuLnNlbGVjdGlvbi1uYW1lIHtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LWJhc2lzOiB1bnNldDtcbn1cbiIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lL3RlbXBsYXRlLWxpbmstZGVzaWduLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWUvbWl4aW5zLnNjc3MnO1xuXG4kbWVudS1pY29uLWhlaWdodDogMTUwcHg7XG5cbi5iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLnRodW1ibmFpbCB7XG4gICAgaGVpZ2h0OiAkbWVudS1pY29uLWhlaWdodDtcbiAgICBtYXgtaGVpZ2h0OiAkbWVudS1pY29uLWhlaWdodDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIG1heC13aWR0aDogNDMxcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2RlbW9zL2FwaS90aHVtYm5haWwvdGh1bWJuYWlsLnN2ZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCA4MCUgMCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICB9XG5cbiAgLmltYWdlLXVwbG9hZC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uLWFic29sdXRlKDAsIDAsIDAsIDApO1xuICBcbiAgICAmOmZvY3VzLXdpdGhpbj4uaW1hZ2UtdXBsb2FkLFxuICAgICY6aG92ZXI+LmltYWdlLXVwbG9hZCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgXG4gICAgLmltYWdlLXVwbG9hZCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgd2lkdGg6IDcyJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG5cbiAgICAgICYuZmlsZW92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXNoYWRlKTtcbiAgICAgIH1cbiAgICBcbiAgICAgIGlucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24tYWJzb2x1dGUoMCwgMCwgMCwgMCk7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgXG4gICAgICBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTs7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIxLjVweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICBcbiAgICAgIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktc2hhZGUpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC4yNXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHJpZ2h0OiAtMjAlO1xuICB9XG59IiwiXG5AbWl4aW4gdGV4dC1lbGxpcHNpcyB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uLCAkdG9wOiBudWxsLCAkcmlnaHQ6IG51bGwsICRib3R0b206IG51bGwsICRsZWZ0OiBudWxsKSB7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gIHRvcDogJHRvcDtcbiAgcmlnaHQ6ICRyaWdodDtcbiAgYm90dG9tOiAkYm90dG9tO1xuICBsZWZ0OiAkbGVmdDtcbn1cblxuQG1peGluIHBvc2l0aW9uLWFic29sdXRlKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAkYXJncy4uLik7XG59Il19 */\";","export default \":host {\\n display: inline-block;\\n}\\n\\nion-buttons {\\n border: 1px solid var(--ion-color-primary);\\n border-radius: 25px;\\n width: 150px;\\n margin: auto;\\n}\\n\\nion-buttons.no-borders {\\n border-width: 0;\\n}\\n\\nion-input {\\n --padding-start: 0;\\n --padding-end: 0;\\n}\\n\\n.count {\\n width: 50px;\\n font-size: 16px;\\n}\\n\\n.count ::ng-deep .native-input[disabled].sc-ion-input-md {\\n opacity: 1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3F1YW50aXR5LXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UscUJBQUE7QUFDRjs7QUFFQTtFQUNFLDBDQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtBQUNGOztBQUNFO0VBQ0UsZUFBQTtBQUNKOztBQUdBO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtBQUFGOztBQUdBO0VBQ0UsV0FBQTtFQUNBLGVBQUE7QUFBRjs7QUFFRTtFQUNFLFVBQUE7QUFBSiIsImZpbGUiOiJxdWFudGl0eS1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5pb24tYnV0dG9ucyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgd2lkdGg6IDE1MHB4O1xuICBtYXJnaW46IGF1dG87XG5cbiAgJi5uby1ib3JkZXJzIHtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gIH1cbn1cblxuaW9uLWlucHV0IHtcbiAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xuICAtLXBhZGRpbmctZW5kOiAwO1xufVxuXG4uY291bnQge1xuICB3aWR0aDogNTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuXG4gIDo6bmctZGVlcCAubmF0aXZlLWlucHV0W2Rpc2FibGVkXS5zYy1pb24taW5wdXQtbWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn0iXX0= */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { PaymentRequestModel } from '../model/paymentRequestModel';\nimport { PaymentTransactionValidationModel } from '../model/paymentTransactionValidationModel';\nimport { SmartDineResponsePaymentTransactionModel } from '../model/smartDineResponsePaymentTransactionModel';\nimport { SmartDineResponsePaymentTransactionValidationModel } from '../model/smartDineResponsePaymentTransactionValidationModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class PaymentControllerForUsersService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public initiatePayment(body: PaymentRequestModel, observe?: 'body', reportProgress?: boolean): Observable;\n public initiatePayment(body: PaymentRequestModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public initiatePayment(body: PaymentRequestModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public initiatePayment(body: PaymentRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling initiatePayment.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/users/paymenttransactions/initiate`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public validatePayment(body: PaymentTransactionValidationModel, observe?: 'body', reportProgress?: boolean): Observable;\n public validatePayment(body: PaymentTransactionValidationModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public validatePayment(body: PaymentTransactionValidationModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public validatePayment(body: PaymentTransactionValidationModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling validatePayment.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/users/paymenttransactions/validate`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/* (ignored) */","export default \"\\n\\n\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n\\n
\\n\\n
\\n\\n \\n \\n {{userProfile?.firstName}} {{userProfile?.lastName}}\\n \\n\\n \\n \\n {{userProfile?.emailId}}\\n \\n\\n
\\n
\\n\\n \\n \\n {{userProfile?.addressModels[0]?.city}}\\n \\n\\n \\n \\n {{userProfile?.phoneNumber}}\\n \\n\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n\\n \\n \\n Edit Profile\\n \\n\\n \\n \\n Add Address\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n 0; else noAddressContent\\\" class=\\\"py-2 bg-color-f7f7fc\\\">\\n\\n \\n\\n \\n\\n \\n \\n
\\n View\\n Edit\\n Delete\\n
\\n
\\n \\n
\\n {{address?.houseNumber}}, {{address?.buildingName}}\\n
\\n
\\n {{address?.address}}\\n
\\n
\\n {{address?.city}}, {{address?.country}}\\n
\\n
\\n \\n Pincode: {{address?.pinCode}}\\n \\n
\\n \\n Landmark:- {{address?.landmark}}\\n \\n
\\n
\\n\\n
\\n\\n
\\n\\n \\n\\n
\\n\\n
\\n\\n
\\n\\n \\\"No\\n\\n \\n

No Data Available

\\n\\n

There is no address to display at the moment. Please add new address

\\n \\n
\\n\\n
\\n\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n
\\n\";","export * from './addressEntity';\nexport * from './addressModel';\nexport * from './adminImagesBody';\nexport * from './adminImagesBody1';\nexport * from './cartItemModel';\nexport * from './cartModel';\nexport * from './cartOfferInfoModel';\nexport * from './cartPriceModel';\nexport * from './cartTaxInfoModel';\nexport * from './categoryModel';\nexport * from './categoryProductMapModel';\nexport * from './currencyModel';\nexport * from './domainConfigModel';\nexport * from './geoLocation';\nexport * from './groupEntity';\nexport * from './imageInfoModel';\nexport * from './inventoryAlertModel';\nexport * from './inventoryEntryModel';\nexport * from './inventoryMasterModel';\nexport * from './itemQuantity';\nexport * from './kitchenOrderModel';\nexport * from './menuEntity';\nexport * from './menuItemEntity';\nexport * from './menuItemMapEntity';\nexport * from './menuItemMapModel';\nexport * from './menuItemMapPriceEntity';\nexport * from './menuItemMapStockEntity';\nexport * from './menuItemModel';\nexport * from './menuModel';\nexport * from './offerMappingModel';\nexport * from './offerRuleModel';\nexport * from './orderItemModel';\nexport * from './orderItemTaxInfoModel';\nexport * from './orderModel';\nexport * from './orderOfferInfoModel';\nexport * from './orderPriceModel';\nexport * from './orderStatusModel';\nexport * from './orderStatusUpdateRequest';\nexport * from './orderStatusUpdateResponse';\nexport * from './orderSummaryModel';\nexport * from './orderTaxInfoModel';\nexport * from './parentOrderModel';\nexport * from './parentOrderShareRequest';\nexport * from './parentOrderShareResponse';\nexport * from './parentOrderStatusUpdateRequest';\nexport * from './parentOrderStatusUpdateResponse';\nexport * from './parentOrderSummaryModel';\nexport * from './paymentGatewayPaymentRefEntity';\nexport * from './paymentOptionEntity';\nexport * from './paymentOptionModel';\nexport * from './paymentRequestModel';\nexport * from './paymentTransactionModel';\nexport * from './paymentTransactionValidationModel';\nexport * from './productModel';\nexport * from './profileModel';\nexport * from './qRCodeInfo';\nexport * from './qRCodeModel';\nexport * from './razorPayPaymentGatewayRequest';\nexport * from './razorPayPaymentGatewayResponse';\nexport * from './razorPayPrefill';\nexport * from './reportHeaderCell';\nexport * from './reportInfoModel';\nexport * from './reportModel';\nexport * from './reportPageModel';\nexport * from './reportRequestParams';\nexport * from './reportRow';\nexport * from './restaurantBranchEntity';\nexport * from './restaurantBranchModel';\nexport * from './restaurantBranchTableEntity';\nexport * from './restaurantBranchTableModel';\nexport * from './restaurantContactModel';\nexport * from './restaurantEntity';\nexport * from './restaurantFilter';\nexport * from './restaurantGroupMapEntity';\nexport * from './restaurantModel';\nexport * from './restaurantModelPrefTimeZone';\nexport * from './restaurantRegistrationModel';\nexport * from './restaurantTaxRuleMapEntity';\nexport * from './smartDineImage';\nexport * from './smartDineResponseCartModel';\nexport * from './smartDineResponseCategoryModel';\nexport * from './smartDineResponseCategoryProductMapModel';\nexport * from './smartDineResponseDomainConfigModel';\nexport * from './smartDineResponseGroupEntity';\nexport * from './smartDineResponseHeader';\nexport * from './smartDineResponseImageInfoModel';\nexport * from './smartDineResponseInventoryAlertModel';\nexport * from './smartDineResponseInventoryEntryModel';\nexport * from './smartDineResponseInventoryMasterModel';\nexport * from './smartDineResponseKitchenOrderModel';\nexport * from './smartDineResponseListCategoryModel';\nexport * from './smartDineResponseListCategoryProductMapModel';\nexport * from './smartDineResponseListInventoryAlertModel';\nexport * from './smartDineResponseListInventoryEntryModel';\nexport * from './smartDineResponseListInventoryMasterModel';\nexport * from './smartDineResponseListProductModel';\nexport * from './smartDineResponseListRestaurantContactModel';\nexport * from './smartDineResponseLong';\nexport * from './smartDineResponseMapStringString';\nexport * from './smartDineResponseMenuEntity';\nexport * from './smartDineResponseMenuItemEntity';\nexport * from './smartDineResponseMenuItemMapEntity';\nexport * from './smartDineResponseMenuItemMapModel';\nexport * from './smartDineResponseMenuItemMapPriceEntity';\nexport * from './smartDineResponseMenuItemMapStockEntity';\nexport * from './smartDineResponseMenuModel';\nexport * from './smartDineResponseOfferMappingModel';\nexport * from './smartDineResponseOfferRuleModel';\nexport * from './smartDineResponseOrderModel';\nexport * from './smartDineResponseOrderStatusModel';\nexport * from './smartDineResponseOrderStatusUpdateResponse';\nexport * from './smartDineResponseOrderSummaryModel';\nexport * from './smartDineResponseParentOrderModel';\nexport * from './smartDineResponseParentOrderShareResponse';\nexport * from './smartDineResponseParentOrderStatusUpdateResponse';\nexport * from './smartDineResponsePaymentOptionEntity';\nexport * from './smartDineResponsePaymentOptionModel';\nexport * from './smartDineResponsePaymentTransactionModel';\nexport * from './smartDineResponsePaymentTransactionValidationModel';\nexport * from './smartDineResponseProductModel';\nexport * from './smartDineResponseProfileModel';\nexport * from './smartDineResponseQRCodeModel';\nexport * from './smartDineResponseReportInfoModel';\nexport * from './smartDineResponseReportModel';\nexport * from './smartDineResponseRestaurantBranchEntity';\nexport * from './smartDineResponseRestaurantBranchModel';\nexport * from './smartDineResponseRestaurantBranchTableEntity';\nexport * from './smartDineResponseRestaurantBranchTableModel';\nexport * from './smartDineResponseRestaurantContactModel';\nexport * from './smartDineResponseRestaurantEntity';\nexport * from './smartDineResponseRestaurantGroupMapEntity';\nexport * from './smartDineResponseRestaurantModel';\nexport * from './smartDineResponseRestaurantRegistrationModel';\nexport * from './smartDineResponseRestaurantTaxRuleMapEntity';\nexport * from './smartDineResponseStatisticsOrderModel';\nexport * from './smartDineResponseTaxRuleEntity';\nexport * from './smartDineResponseUserEntity';\nexport * from './smartDineResponseUserGroupMapEntity';\nexport * from './sortByParam';\nexport * from './statisticsOrderModel';\nexport * from './taxRuleEntity';\nexport * from './userEntity';\nexport * from './userGroupMapEntity';\nexport * from './userModel';\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { InventoryAlertModel } from '../model/inventoryAlertModel';\nimport { SmartDineResponseInventoryAlertModel } from '../model/smartDineResponseInventoryAlertModel';\nimport { SmartDineResponseListInventoryAlertModel } from '../model/smartDineResponseListInventoryAlertModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class InventoryAlertControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createInventoryAlert(body: InventoryAlertModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createInventoryAlert(body: InventoryAlertModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createInventoryAlert(body: InventoryAlertModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createInventoryAlert(body: InventoryAlertModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createInventoryAlert.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createInventoryAlert.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling createInventoryAlert.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling createInventoryAlert.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/inventoryalerts`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param inventoryAlertId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteInventoryAlert(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteInventoryAlert(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteInventoryAlert(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteInventoryAlert(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteInventoryAlert.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling deleteInventoryAlert.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling deleteInventoryAlert.');\n }\n\n if (inventoryAlertId === null || inventoryAlertId === undefined) {\n throw new Error('Required parameter inventoryAlertId was null or undefined when calling deleteInventoryAlert.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/inventoryalerts/${encodeURIComponent(String(inventoryAlertId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param inventoryAlertId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInventoryAlert(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getInventoryAlert(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getInventoryAlert(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getInventoryAlert(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getInventoryAlert.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getInventoryAlert.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling getInventoryAlert.');\n }\n\n if (inventoryAlertId === null || inventoryAlertId === undefined) {\n throw new Error('Required parameter inventoryAlertId was null or undefined when calling getInventoryAlert.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/inventoryalerts/${encodeURIComponent(String(inventoryAlertId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInventoryAlerts(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getInventoryAlerts(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getInventoryAlerts(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getInventoryAlerts(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getInventoryAlerts.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getInventoryAlerts.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling getInventoryAlerts.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/inventoryalerts`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param inventoryAlertId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateInventoryAlert(body: InventoryAlertModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateInventoryAlert(body: InventoryAlertModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateInventoryAlert(body: InventoryAlertModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateInventoryAlert(body: InventoryAlertModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryAlertId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateInventoryAlert.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateInventoryAlert.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updateInventoryAlert.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling updateInventoryAlert.');\n }\n\n if (inventoryAlertId === null || inventoryAlertId === undefined) {\n throw new Error('Required parameter inventoryAlertId was null or undefined when calling updateInventoryAlert.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/inventoryalerts/${encodeURIComponent(String(inventoryAlertId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-signature',\n templateUrl: './signature.component.html',\n styleUrls: ['./signature.component.scss'],\n})\nexport class SignatureComponent implements OnInit {\n\n public customIconLocation: string = null;\n\n public disablePoweredBy = false;\n\n constructor() {\n const parsedUrl = new URL(window.location.href);\n if (parsedUrl && (parsedUrl.hostname == 'dev-chariot.smartdinenow.com' || parsedUrl.hostname == 'chariot.smartdinenow.com')) {\n this.customIconLocation = 'assets/img/chariotLogo.png'\n }\n }\n\n ngOnInit() {}\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CartModel } from '../model/cartModel';\nimport { SmartDineResponseCartModel } from '../model/smartDineResponseCartModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class CartRestControllerForAdminsService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createCart1(body: CartModel, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createCart1(body: CartModel, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createCart1(body: CartModel, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createCart1(body: CartModel, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createCart1.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/carts`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param cartId \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateItemInCart1(body: CartModel, cartId: string, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateItemInCart1(body: CartModel, cartId: string, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateItemInCart1(body: CartModel, cartId: string, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateItemInCart1(body: CartModel, cartId: string, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateItemInCart1.');\n }\n\n if (cartId === null || cartId === undefined) {\n throw new Error('Required parameter cartId was null or undefined when calling updateItemInCart1.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('patch',`${this.basePath}/api/admin/carts/${encodeURIComponent(String(cartId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { OrderPriceModel } from './orderPriceModel';\n\nexport interface ParentOrderSummaryModel { \n parentOrderId?: string;\n parentOrderNumber?: number;\n orderType?: ParentOrderSummaryModel.OrderTypeEnum;\n restaurantId?: string;\n restaurantBranchId?: string;\n tableId?: string;\n userId?: string;\n customerPhoneNumber?: string;\n orderIds?: Array;\n orderStatus?: ParentOrderSummaryModel.OrderStatusEnum;\n orderPaymentStatus?: ParentOrderSummaryModel.OrderPaymentStatusEnum;\n orderPriceModel?: OrderPriceModel;\n nextPossibleOrderPaymentStatuses?: Array;\n}\nexport namespace ParentOrderSummaryModel {\n export type OrderTypeEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const OrderTypeEnum = {\n DINEIN: 'DINE_IN' as OrderTypeEnum,\n DELIVERY: 'DELIVERY' as OrderTypeEnum,\n TAKEAWAY: 'TAKEAWAY' as OrderTypeEnum\n };\n export type OrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const OrderStatusEnum = {\n DRAFT: 'DRAFT' as OrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as OrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as OrderStatusEnum,\n CANCELLED: 'CANCELLED' as OrderStatusEnum,\n DECLINED: 'DECLINED' as OrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as OrderStatusEnum,\n PREPARING: 'PREPARING' as OrderStatusEnum,\n PREPARED: 'PREPARED' as OrderStatusEnum,\n DELIVERED: 'DELIVERED' as OrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as OrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as OrderStatusEnum\n };\n export type OrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const OrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as OrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as OrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as OrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as OrderPaymentStatusEnum,\n PAID: 'PAID' as OrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as OrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as OrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as OrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as OrderPaymentStatusEnum\n };\n export type NextPossibleOrderPaymentStatusesEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const NextPossibleOrderPaymentStatusesEnum = {\n PAYLATER: 'PAY_LATER' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as NextPossibleOrderPaymentStatusesEnum,\n PAID: 'PAID' as NextPossibleOrderPaymentStatusesEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as NextPossibleOrderPaymentStatusesEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTNA: 'PAYMENT_NA' as NextPossibleOrderPaymentStatusesEnum,\n PAYBYCASH: 'PAY_BY_CASH' as NextPossibleOrderPaymentStatusesEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as NextPossibleOrderPaymentStatusesEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { InventoryEntryModel } from '../model/inventoryEntryModel';\nimport { SmartDineResponseInventoryEntryModel } from '../model/smartDineResponseInventoryEntryModel';\nimport { SmartDineResponseListInventoryEntryModel } from '../model/smartDineResponseListInventoryEntryModel';\nimport { SortByParam } from '../model/sortByParam';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class InventoryEntryControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createInventoryEntry(body: InventoryEntryModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createInventoryEntry(body: InventoryEntryModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createInventoryEntry(body: InventoryEntryModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createInventoryEntry(body: InventoryEntryModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createInventoryEntry.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createInventoryEntry.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling createInventoryEntry.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/inventoryentries`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param inventoryEntryId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteInventoryEntry(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteInventoryEntry(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteInventoryEntry(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteInventoryEntry(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteInventoryEntry.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling deleteInventoryEntry.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling deleteInventoryEntry.');\n }\n\n if (inventoryEntryId === null || inventoryEntryId === undefined) {\n throw new Error('Required parameter inventoryEntryId was null or undefined when calling deleteInventoryEntry.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/inventoryentries/${encodeURIComponent(String(inventoryEntryId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param pageNo \n * @param pageSize \n * @param sortByParams \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInventoryEntries(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'body', reportProgress?: boolean): Observable;\n public getInventoryEntries(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'response', reportProgress?: boolean): Observable>;\n public getInventoryEntries(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'events', reportProgress?: boolean): Observable>;\n public getInventoryEntries(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getInventoryEntries.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getInventoryEntries.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling getInventoryEntries.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (pageSize !== undefined && pageSize !== null) {\n queryParameters = queryParameters.set('pageSize', pageSize);\n }\n if (sortByParams) {\n sortByParams.forEach((element) => {\n queryParameters = queryParameters.append('sortByParams', element);\n })\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/inventoryentries`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param inventoryEntryId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInventoryEntry(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getInventoryEntry(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getInventoryEntry(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getInventoryEntry(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getInventoryEntry.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getInventoryEntry.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling getInventoryEntry.');\n }\n\n if (inventoryEntryId === null || inventoryEntryId === undefined) {\n throw new Error('Required parameter inventoryEntryId was null or undefined when calling getInventoryEntry.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/inventoryentries/${encodeURIComponent(String(inventoryEntryId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param inventoryEntryId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateInventoryEntry(body: InventoryEntryModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateInventoryEntry(body: InventoryEntryModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateInventoryEntry(body: InventoryEntryModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateInventoryEntry(body: InventoryEntryModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, inventoryEntryId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateInventoryEntry.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateInventoryEntry.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updateInventoryEntry.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling updateInventoryEntry.');\n }\n\n if (inventoryEntryId === null || inventoryEntryId === undefined) {\n throw new Error('Required parameter inventoryEntryId was null or undefined when calling updateInventoryEntry.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (inventoryMasterId !== undefined && inventoryMasterId !== null) {\n queryParameters = queryParameters.set('inventoryMasterId', inventoryMasterId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/inventoryentries/${encodeURIComponent(String(inventoryEntryId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ProfileModel } from '../model/profileModel';\nimport { SmartDineResponseProfileModel } from '../model/smartDineResponseProfileModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class ProfileRestControllerForUsersService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLoggedInUserProfile(observe?: 'body', reportProgress?: boolean): Observable;\n public getLoggedInUserProfile(observe?: 'response', reportProgress?: boolean): Observable>;\n public getLoggedInUserProfile(observe?: 'events', reportProgress?: boolean): Observable>;\n public getLoggedInUserProfile(observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/users/profile`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateLoggedInUserProfile(body: ProfileModel, observe?: 'body', reportProgress?: boolean): Observable;\n public updateLoggedInUserProfile(body: ProfileModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateLoggedInUserProfile(body: ProfileModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateLoggedInUserProfile(body: ProfileModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateLoggedInUserProfile.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('patch',`${this.basePath}/api/users/profile`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/* (ignored) */","export default \"\\n \\n \\n Home\\n \\n \\n \\n \\n

{{userProfile?.firstName + userProfile?.lastName}}

\\n

\\n

\\n \\n \\n\\n \\n \\n Switch Account \\n \\n\\n \\n \\n Logout\\n \\n\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { SmartDineImage } from './smartDineImage';\n\nexport interface MenuEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n menuId?: string;\n name?: string;\n code?: string;\n description?: string;\n template?: boolean;\n restaurantId?: string;\n restaurantBranchId?: string;\n parentMenuId?: string;\n tags?: Array;\n menuIconUrl?: string;\n menuIconImage?: SmartDineImage;\n menuImages?: Array;\n noOfChildMenus?: number;\n orderableFromTime?: string;\n orderableToTime?: string;\n menuStatus?: MenuEntity.MenuStatusEnum;\n}\nexport namespace MenuEntity {\n export type MenuStatusEnum = 'DRAFT' | 'PUBLISHED';\n export const MenuStatusEnum = {\n DRAFT: 'DRAFT' as MenuStatusEnum,\n PUBLISHED: 'PUBLISHED' as MenuStatusEnum\n };\n}","/* (ignored) */","import { Component, Input, OnInit } from '@angular/core';\nimport { MenuItem } from '../../services/side-menu/side-menu.service';\nimport { StorageService } from '../../services/storage/storage.service';\n\ntype SideMenuState = 'collapsed' | 'expanded';\n\n@Component({\n selector: 'app-side-bar',\n templateUrl: './side-bar.component.html',\n styleUrls: ['./side-bar.component.scss'],\n})\nexport class SideBarComponent implements OnInit {\n\n private readonly storageKey = 'side-bar-status';\n\n public sideMenuState: SideMenuState = 'expanded';\n\n constructor(\n private storageService: StorageService,\n ) { }\n\n public async onSideMenuExpandCollapseClick() {\n if (this.sideMenuState === 'expanded') {\n this.sideMenuState = 'collapsed';\n } else {\n this.sideMenuState = 'expanded';\n }\n await this.storageService.set(this.storageKey, this.sideMenuState);\n }\n\n public ngOnInit() {\n this.setSideBarStatus();\n }\n\n private setSideBarStatus() {\n this.storageService.get(this.storageKey).then(\n (value: SideMenuState | null) => {\n this.sideMenuState = 'expanded';\n if (value) {\n setTimeout(() => {\n this.sideMenuState = value;\n }, 500); // Notifying the users that sidebar has more info & it is currently getting minimized..\n } \n },\n );\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { Auth } from 'aws-amplify';\nimport { RestaurantsService } from 'src/app/common/services/restaurants/restaurants.service';\nimport { RestaurantRestControllerService, RestaurantModel} from 'src/app/swagger';\n\n@Component({\n selector: 'app-restaurant-modal',\n templateUrl: './restaurant-modal.component.html',\n styleUrls: ['./restaurant-modal.component.scss'],\n})\nexport class RestaurantModalComponent implements OnInit {\n public restaurants: RestaurantModel[] = [];\n public currentPage: number = 1;\n public itemsPerPage: number = 10;\n public totalRecords: number = 0;\n public selectedRestaurant: RestaurantModel = null;\n\n constructor(\n private modalController: ModalController,\n private restaurantRestControllerService: RestaurantRestControllerService,\n private restaurantService: RestaurantsService\n ) {}\n\n ngOnInit() {\n this.selectedRestaurant = this.restaurantService.getSelectedRestaurant();\n this.loadRestaurants(this.currentPage, this.itemsPerPage);\n }\n\n get totalPages() {\n return Math.ceil(this.restaurants.length / this.itemsPerPage);\n }\n\n private loadRestaurants(pageNo: number, rows: number) {\n Auth.currentSession().then((currentSession) => {\n this.restaurantRestControllerService.configuration.accessToken = currentSession.getAccessToken().getJwtToken();\n this.restaurantRestControllerService.getRestaurants1(undefined, pageNo, rows).subscribe({\n next: (res) => {\n this.totalRecords = res.items.length || this.totalRecords;\n const newRestaurants = res.items.filter((item) => !this.restaurants.find((r) => r.restaurantId === item.restaurantId));\n this.restaurants.push(...newRestaurants);\n },\n error: (err) => {\n console.error('Unable to get restaurant details!', err);\n },\n });\n });\n }\n\n public loadData(event: any) {\n if (this.currentPage > this.totalPages) {\n event.target.disabled = true;\n return;\n }\n\n setTimeout(() => {\n this.currentPage++;\n this.loadRestaurants(this.currentPage, this.itemsPerPage);\n event.target.complete();\n }, 500);\n }\n\n public dismiss() {\n this.modalController.dismiss();\n }\n\n public selectRestaurant(restaurant: RestaurantModel) {\n this.restaurantService.setSelectedRestaurant(restaurant);\n this.selectedRestaurant = restaurant;\n this.modalController.dismiss(restaurant);\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface RestaurantFilter { \n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ProfileModel } from 'src/app/swagger';\n\nexport interface BadgeInfo {\n count: number;\n color?: 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'dark' | 'medium' | 'light'; \n}\n\nexport interface MenuItem {\n id: string;\n iconName: string;\n iconSource?: 'ionic' | 'bootstrap';\n name: string;\n link: string;\n pages: string[];\n enabled: boolean;\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum;\n badge?: BadgeInfo;\n label?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SideMenuService {\n\n private subject: BehaviorSubject = new BehaviorSubject([]);\n private selectedMenuItemIndexSubject: BehaviorSubject = new BehaviorSubject(-1);\n private selectedPageName: string;\n\n constructor() { }\n\n public setMenuItems(navMenu: MenuItem[]) {\n this.subject.next(navMenu);\n this.setSelectedMenuItemIndexByPageName();\n }\n\n public getMenuItems(): Observable {\n return this.subject.asObservable();\n }\n\n public setSelectedMenuItemIndex(index: number) {\n this.selectedMenuItemIndexSubject.next(index);\n }\n\n public setSelectedMenuItemIndexByPageName(pageName?: string) {\n if (pageName) { this.selectedPageName = pageName; }\n let menuItems = this.subject.getValue();\n if(menuItems)\n menuItems.forEach((item, index) => {\n if (item.pages.includes(this.selectedPageName)) {\n this.setSelectedMenuItemIndex(index);\n }\n });\n }\n\n public getSelectedMenuItemIndex() {\n return this.selectedMenuItemIndexSubject.asObservable();\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OrderStatusUpdateResponse { \n restaurantId?: string;\n restaurantBranchId?: string;\n orderId?: string;\n currentOrderStatus?: OrderStatusUpdateResponse.CurrentOrderStatusEnum;\n prevOrderStatus?: OrderStatusUpdateResponse.PrevOrderStatusEnum;\n orderNumber?: number;\n}\nexport namespace OrderStatusUpdateResponse {\n export type CurrentOrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const CurrentOrderStatusEnum = {\n DRAFT: 'DRAFT' as CurrentOrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as CurrentOrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as CurrentOrderStatusEnum,\n CANCELLED: 'CANCELLED' as CurrentOrderStatusEnum,\n DECLINED: 'DECLINED' as CurrentOrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as CurrentOrderStatusEnum,\n PREPARING: 'PREPARING' as CurrentOrderStatusEnum,\n PREPARED: 'PREPARED' as CurrentOrderStatusEnum,\n DELIVERED: 'DELIVERED' as CurrentOrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as CurrentOrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as CurrentOrderStatusEnum\n };\n export type PrevOrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const PrevOrderStatusEnum = {\n DRAFT: 'DRAFT' as PrevOrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as PrevOrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as PrevOrderStatusEnum,\n CANCELLED: 'CANCELLED' as PrevOrderStatusEnum,\n DECLINED: 'DECLINED' as PrevOrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as PrevOrderStatusEnum,\n PREPARING: 'PREPARING' as PrevOrderStatusEnum,\n PREPARED: 'PREPARED' as PrevOrderStatusEnum,\n DELIVERED: 'DELIVERED' as PrevOrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as PrevOrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as PrevOrderStatusEnum\n };\n}","import { Component, OnInit } from '@angular/core';\nimport { PopoverController } from '@ionic/angular';\nimport { AuthService } from 'src/app/core/services/auth/auth.service';\nimport { ProfileModel } from 'src/app/swagger';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-profile-popover',\n templateUrl: './profile-popover.component.html',\n styleUrls: ['./profile-popover.component.scss'],\n})\nexport class ProfilePopoverComponent implements OnInit {\n\n public static readonly id = 'profile-options-modal';\n\n public userProfile: ProfileModel | null = null;\n public dashboardLink: string | null = null;\n public userType: string | null = null\n private currentPopover: HTMLIonPopoverElement | null = null;\n\n constructor(\n private popoverController: PopoverController,\n private authService: AuthService,\n private userProfileService: UserProfileService,\n private router: Router,\n ) { }\n\n public onItemClick(): void {\n if(this.userType === 'Users'){\n this.router.navigate(['/customer/user-profile']);\n }else if(this.userType === 'RestaurantAdmins'){\n this.router.navigate(['/resto-admin/user-profile']);\n }else if(this.userType === 'Admins'){\n this.router.navigate(['/admin/user-profile']);\n }\n this.popoverController.dismiss('', '', ProfilePopoverComponent.id);\n }\n\n public onDashboardClick(_: Event) {\n this.router.navigateByUrl(this.dashboardLink);\n this.popoverController.dismiss('', '', ProfilePopoverComponent.id);\n }\n\n public onLogoutClick(_: MouseEvent) {\n this.authService.clearSession();\n this.popoverController.dismiss(\"logout\", \"\", ProfilePopoverComponent.id);\n this.userProfileService.setUserProfile(null);\n this.router.navigateByUrl('/');\n }\n\n public onSwitchClick(event:Event){\n event.preventDefault();\n event.stopPropagation();\n this.authService.clearSession();\n this.popoverController.dismiss(\"switch\", \"\", ProfilePopoverComponent.id);\n this.router.navigateByUrl('/login');\n }\n\n public ngOnInit() {\n this.init();\n }\n\n private init() {\n this.setUserProfile();\n }\n\n private setUserProfile() {\n this.userProfile = null;\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n if(userProfile){\n this.userType = this.userProfile.roles[0];\n this.updateDashboardLink(this.userType);\n }\n }\n });\n }\n\n public updateDashboardLink(user_type:string){\n if(user_type === 'Users'){\n this.dashboardLink = '/customer/home';\n }else if(user_type === 'RestaurantAdmins'){\n this.dashboardLink = '/resto-admin/home';\n }else if(user_type === 'Admins'){\n this.dashboardLink = '/admin/home';\n }\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface QRCodeInfo { \n rc?: string;\n rbc?: string;\n rbtc?: string;\n restaurantId?: string;\n tableId?: string;\n restaurantBranchId?: string;\n domainHostName?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface RestaurantTaxRuleMapEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n restaurantTaxRuleMapId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n taxRuleId?: string;\n active?: boolean;\n}","import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NotificationService } from '../../services/notification/notification.service';\nimport { PopoverController } from '@ionic/angular';\n\n@Component({\n selector: 'app-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n})\nexport class NotificationComponent implements OnInit {\n\n public notificationList: any[] = [];\n\n constructor(\n private notificationService: NotificationService, \n private popoverController: PopoverController\n ) { }\n\n ngOnInit() {\n this.notificationService.notification$.subscribe(notifications => {\n this.notificationList = notifications;\n });\n\n }\n\n close() {\n this.popoverController.dismiss();\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ModalController, ToastController } from '@ionic/angular';\nimport { ProfileModel, RestaurantBranchRestControllerService, SmartDineResponseRestaurantBranchEntity } from 'src/app/swagger';\nimport { RestaurantBranchEntity } from 'src/app/swagger';\nimport { RestaurantsService } from '../../services/restaurants/restaurants.service';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\n\n@Component({\n selector: 'app-resto-branch-upsertion',\n templateUrl: './resto-branch-upsertion.component.html',\n styleUrls: ['./resto-branch-upsertion.component.scss'],\n})\nexport class RestoBranchUpsertionComponent implements OnInit {\n\n public static readonly id = 'resto-branch-upsertion-modal';\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n public form: FormGroup;\n private branch: RestaurantBranchEntity | null = null;\n private userProfile: ProfileModel | null = null;\n\n constructor(\n private modalController: ModalController,\n private userProfileService: UserProfileService,\n private restaurantBranchRestControllerService: RestaurantBranchRestControllerService,\n private restaurantsService: RestaurantsService,\n private toastController: ToastController,\n ) {\n this.createForm();\n }\n\n public ngOnInit() {\n this.init();\n }\n\n public onSaveClick() {\n this.form.markAllAsTouched();\n if (this.form.valid) {\n this.save();\n }\n }\n\n public onCloseClick() {\n this.modalController.dismiss('', '', RestoBranchUpsertionComponent.id);\n }\n\n private init() {\n this.setUserProfile();\n if (this.restaurantBranchId) { // Updating existing one..\n this.setBranch();\n }\n }\n\n private setUserProfile() {\n this.userProfile = null;\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n }\n });\n }\n\n private setBranch() {\n this.restaurantBranchRestControllerService.getRestaurantBranch(this.restaurantId, this.restaurantBranchId).subscribe({\n next: (res) => {\n this.branch = res.item;\n this.form.patchValue(this.branch);\n },\n error: (err) => {\n console.error('Unable to get branch details!', err);\n }\n });\n }\n\n private createForm() {\n this.form = new FormGroup({\n name: new FormControl('', [Validators.required]),\n description: new FormControl('', [Validators.required]),\n restaurantBranchCode: new FormControl('', [Validators.required]),\n address: new FormControl('', [Validators.required]),\n city: new FormControl('', [Validators.required]),\n state: new FormControl('', [Validators.required]),\n country: new FormControl('', [Validators.required]),\n countryCode: new FormControl('', [Validators.required]),\n emailId: new FormControl('', [Validators.required]),\n website: new FormControl('', [Validators.required]),\n contactNumber: new FormControl('', [Validators.required]),\n pincode: new FormControl('', [Validators.required]),\n gstIN: new FormControl('', [Validators.required]),\n });\n }\n\n private save() {\n const branch = this.branch || {} as RestaurantBranchEntity;\n Object.assign(branch, this.form.value);\n if (this.branch) {\n branch.modifier = this.userProfile.userId;\n branch.modifiedAt = new Date();\n } else {\n branch.restaurantBranchId = null;\n branch.creator = this.userProfile.userId;\n branch.createdAt = new Date();\n branch.restaurantId = this.restaurantId;\n branch.restaurantBranchImages = [];\n }\n this.upsertBranch(branch);\n }\n\n private upsertBranch(branch: RestaurantBranchEntity) {\n this.restaurantBranchRestControllerService.createRestaurantBranch(branch, this.restaurantId).subscribe({\n next: (res: SmartDineResponseRestaurantBranchEntity) => {\n \n this.restaurantsService.getBranches(true);\n this.modalController.dismiss('', '', RestoBranchUpsertionComponent.id);\n this.showToast(`Branch - ${ branch.name } Created Successfully!`);\n },\n error: (err) => {\n console.error('Unable to create brach!', err);\n this.showToast(`Branch - ${ branch.name } Creation Failed!`);\n }\n });\n }\n\n private async showToast(message: string) {\n const toast = await this.toastController.create({\n message,\n duration: 2000\n });\n toast.present();\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface CategoryProductMapModel { \n categoryProductMapId?: string;\n categoryId?: string;\n productId?: string;\n}","export default \"
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n Price: \\n \\n {{mapping?.priceDetails?.currencyModel?.currencysymbol}} \\n \\n Unavailable\\n \\n \\n \\n \\n \\n \\n\\n \\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n\\n \\n \\n \\n No Items to Display!\\n \\n \\n \\n
\\n\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CurrencyModel } from './currencyModel';\nimport { GeoLocation } from './geoLocation';\n// import { RestaurantModelPrefTimeZone } from './restaurantModelPrefTimeZone';\n// import { SmartDineImage } from './smartDineImage';\n\nexport interface RestaurantAdminModel { \n restaurantId?: string;\n restaurantCode?: string;\n restaurantName?: string;\n restaurantDescription?: string;\n fssai?: string;\n gstId?: string;\n prefTimeZone?: string;\n prefTimeZoneId?: string;\n restaurantStatus?: RestaurantAdminModel.RestaurantStatusEnum;\n restaurantLogoUrl?: string;\n prefCurrencyCode?: string;\n prefCurrency?: CurrencyModel;\n maxNoOfTables?: number;\n maxNoOfRestaurantBranches?: number;\n\n restaurantBranchId?:string;\n restaurantBranchName?: string;\n restaurantBranchCode?: string;\n restaurantBranchAddress?: string;\n allowedOrderTypes?: Array;\n allowedPaymentPreferences?: Array;\n restaurantBranchCity?:string;\n restaurantBranchContactNo?:string;\n restaurantCountry?:string;\n restaurantBranchCountryCode?:string;\n restaurantBranchDescription?:string;\n restaurantBranchEmailId?:string;\n restaurantBranchFssai?:string;\n restaurantBranchGstId?:string;\n geoLocation?:GeoLocation;\n restaurantBranchState?:string;\n restaurantBranchWebsite?:string;\n\n restaurantAdminUserId?:string;\n restaurantSubscriptionEntitiy?: string;\n \n}\nexport namespace RestaurantAdminModel {\n export type RestaurantStatusEnum = 'DRAFT' | 'PENDING_APPROVAL' | 'APPROVED' | 'REJECTED' | 'PUBLISHED' | 'UNPUBLISHED' | 'PAYMENT_PENDING';\n export const RestaurantStatusEnum = {\n DRAFT: 'DRAFT' as RestaurantStatusEnum,\n PENDINGAPPROVAL: 'PENDING_APPROVAL' as RestaurantStatusEnum,\n APPROVED: 'APPROVED' as RestaurantStatusEnum,\n REJECTED: 'REJECTED' as RestaurantStatusEnum,\n PUBLISHED: 'PUBLISHED' as RestaurantStatusEnum,\n UNPUBLISHED: 'UNPUBLISHED' as RestaurantStatusEnum,\n PAYMENTPENDING: 'PAYMENT_PENDING' as RestaurantStatusEnum\n };\n export type AllowedOrderTypesEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const AllowedOrderTypesEnum = {\n DINE_IN: 'DINE_IN' as AllowedOrderTypesEnum,\n DELIVERY: 'DELIVERY' as AllowedOrderTypesEnum,\n TAKEAWAY: 'TAKEAWAY' as AllowedOrderTypesEnum\n };\n export type AllowedPaymentPreferencesEnum = 'PAY_BY_ONLINE' | 'PAY_BY_CASH';\n export const AllowedPaymentPreferencesEnum = {\n PAY_BY_ONLINE: 'PAY_BY_ONLINE' as AllowedPaymentPreferencesEnum,\n PAY_BY_CASH: 'PAY_BY_CASH' as AllowedPaymentPreferencesEnum\n };\n}\n","import { Component } from '@angular/core';\nimport { MenuController } from '@ionic/angular';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss'],\n})\nexport class HomeComponent {\n\n public static readonly sideMenuId = 'side-menu'; // In case of change, do the same in the template.\n\n constructor(\n private menuController: MenuController\n ){\n\n }\n \n ngAfterViewInit() {\n this.menuController.enable(true, HomeComponent.sideMenuId);\n }\n\n}\n","export default \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\";","import { Component, Input, OnInit } from '@angular/core';\n\nexport type OrderTypes = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n\nexport interface OrderTypeInfo {\n id: string;\n classId: string;\n label: string;\n color: string;\n}\n\nexport const orderTypeInfo: { [key in OrderTypes]?: OrderTypeInfo; } = {\n DINE_IN: {\n id: 'DINE_IN',\n classId: 'order-type-dine_in',\n color: '#5598ff', // blue,\n label: 'Dine In',\n },\n DELIVERY: {\n id: 'DELIVERY',\n classId: 'order-type-delivery',\n color: '#498f7a', // green,\n label: 'Delivery',\n },\n TAKEAWAY: {\n id: 'TAKEAWAY',\n classId: 'order-type-takeaway',\n color: '#e0ac08', // yellow,\n label: 'Takeaway',\n },\n};\n\n@Component({\n selector: 'app-order-type',\n templateUrl: './order-type.component.html',\n styleUrls: ['./order-type.component.scss'],\n})\nexport class OrderTypeComponent implements OnInit {\n\n public typeInfo: OrderTypeInfo | null = null;\n\n @Input()\n set orderType(value: OrderTypes) {\n this.typeInfo = orderTypeInfo[value];\n }\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AlertController } from '@ionic/angular';\nimport { Subscription } from 'rxjs';\nimport { MessageService } from '../../services/message/message.service';\n@Component({\n selector: 'app-messages',\n templateUrl: './messages.component.html',\n styleUrls: ['./messages.component.scss'],\n})\nexport class MessagesComponent implements OnInit {\n\n public message: string = null; \n private messageSubscription: Subscription;\n constructor(private messageService: MessageService, private alertController: AlertController) { \n \n }\n\n ngOnInit() {\n this.messageSubscription = this.messageService.getCurrentMessages().subscribe(async (message) => {\n this.message = message;\n if (message != null && message.length > 0) {\n const alert = await this.alertController.create({\n header: 'Alert',\n message: message,\n buttons: ['OK'],\n });\n \n await alert.present();\n } \n });\n }\n ngOnDestroy() {\n this.messageSubscription.unsubscribe();\n }\n}\n","export default \"
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n\";","export default \"ion-card-title {\\n --color: hwb(32 32% 0%);\\n text-align: center;\\n}\\n\\nion-card-subtitle {\\n --color: #54d4c1;\\n text-align: center;\\n font-weight: 600;\\n}\\n\\nion-card-subtitle ion-label:hover {\\n color: #44a899;\\n cursor: pointer !important;\\n}\\n\\nion-card-content {\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2hvbWUucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksdUJBQUE7RUFDQSxrQkFBQTtBQUNKOztBQUdFO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0FBQUo7O0FBRUk7RUFDRSxjQUFBO0VBQ0EsMEJBQUE7QUFBTjs7QUFHRTtFQUNFLGtCQUFBO0FBQUoiLCJmaWxlIjoiaG9tZS5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tY2FyZC10aXRsZSB7XG4gICAgLS1jb2xvcjogaHdiKDMyIDMyJSAwJSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIH1cbiAgXG4gIGlvbi1jYXJkLXN1YnRpdGxlIHtcbiAgICAtLWNvbG9yOiAjNTRkNGMxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgaW9uLWxhYmVsOmhvdmVye1xuICAgICAgY29sb3I6ICM0NGE4OTk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgaW9uLWNhcmQtY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICJdfQ== */\";","export default \".tables ion-icon {\\n color: #000;\\n cursor: pointer;\\n}\\n\\n.headers {\\n --border-color: #666;\\n --highlight-background: #666;\\n --show-full-highlight: 0;\\n}\\n\\n.values {\\n --show-full-highlight: 0;\\n}\\n\\n.action {\\n --color-focused: transparent;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxlcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFRTtFQUNFLFdBQUE7RUFDQSxlQUFBO0FBREo7O0FBS0E7RUFDRSxvQkFBQTtFQUNBLDRCQUFBO0VBQ0Esd0JBQUE7QUFGRjs7QUFLQTtFQUNFLHdCQUFBO0FBRkY7O0FBS0E7RUFDRSw0QkFBQTtBQUZGIiwiZmlsZSI6InRhYmxlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLnRhYmxlcyB7XG4gIGlvbi1pY29uIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLmhlYWRlcnMge1xuICAtLWJvcmRlci1jb2xvcjogIzY2NjtcbiAgLS1oaWdobGlnaHQtYmFja2dyb3VuZDogIzY2NjtcbiAgLS1zaG93LWZ1bGwtaGlnaGxpZ2h0OiAwO1xufVxuXG4udmFsdWVzIHtcbiAgLS1zaG93LWZ1bGwtaGlnaGxpZ2h0OiAwO1xufVxuXG4uYWN0aW9uIHtcbiAgLS1jb2xvci1mb2N1c2VkOiB0cmFuc3BhcmVudDtcbn1cbiJdfQ== */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { ItemQuantity } from './itemQuantity';\nimport { OfferRuleModel } from './offerRuleModel';\nimport { OrderItemTaxInfoModel } from './orderItemTaxInfoModel';\n\nexport interface CartItemModel { \n menuItemMapId?: string;\n itemId?: string;\n menuItemType?: CartItemModel.MenuItemTypeEnum;\n quantity?: number;\n unitPrice?: number;\n price?: number;\n priceWithDiscount?: number;\n itemName?: string;\n itemDescription?: string;\n orderItemTaxInfoModels?: { [key: string]: OrderItemTaxInfoModel; };\n itemQuantity?: ItemQuantity;\n discountAmount?: number;\n offerRuleModel?: OfferRuleModel;\n}\nexport namespace CartItemModel {\n export type MenuItemTypeEnum = 'FOOD' | 'LIQUOR' | 'FOOD_5' | 'FOOD_12' | 'FOOD_18';\n export const MenuItemTypeEnum = {\n FOOD: 'FOOD' as MenuItemTypeEnum,\n LIQUOR: 'LIQUOR' as MenuItemTypeEnum,\n FOOD5: 'FOOD_5' as MenuItemTypeEnum,\n FOOD12: 'FOOD_12' as MenuItemTypeEnum,\n FOOD18: 'FOOD_18' as MenuItemTypeEnum\n };\n}\n\nexport interface iCatalogDetails {\n restaurantId:string;\n restaurantBranchId: string;\n tableId?: string;\n orderType?: string;\n}","export default \"\\n \\n \\n Close\\n \\n \\n\\n\\n \\n \\n \\n\\n\\n\\n\\n\\n\\n\\n\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { ItemQuantity } from './itemQuantity';\nimport { SmartDineImage } from './smartDineImage';\n\nexport interface MenuItemEntity { \n itemId?: string;\n name?: string;\n description?: string;\n iconUrl?: string;\n categoryIds?: Array;\n template?: boolean;\n vegetarian?: boolean;\n restaurantId?: string;\n restaurantBranchId?: string;\n tags?: Array;\n iconImage?: SmartDineImage;\n itemType?: MenuItemEntity.ItemTypeEnum;\n itemQuantity?: ItemQuantity;\n}\nexport namespace MenuItemEntity {\n export type ItemTypeEnum = 'FOOD' | 'LIQUOR' | 'FOOD_5' | 'FOOD_12' | 'FOOD_18';\n export const ItemTypeEnum = {\n FOOD: 'FOOD' as ItemTypeEnum,\n LIQUOR: 'LIQUOR' as ItemTypeEnum,\n FOOD5: 'FOOD_5' as ItemTypeEnum,\n FOOD12: 'FOOD_12' as ItemTypeEnum,\n FOOD18: 'FOOD_18' as ItemTypeEnum\n };\n}","export default \"@import url(\\\"https://fonts.googleapis.com/css2?family=Chivo:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&family=Nunito:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&family=Poppins:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap\\\");\\n.user-profile-info {\\n min-height: 240px;\\n background: url('cover-picture.png') 0% 0% no-repeat padding-box;\\n background-size: 100% 100%;\\n}\\n.overlay-container {\\n background: #00000055;\\n height: 100%;\\n color: #ffffff;\\n font: normal normal 600 15px/21px Poppins;\\n}\\n.user-profile {\\n width: 120px;\\n height: 120px;\\n border: 2px solid #ffffff;\\n border-radius: 50%;\\n}\\n.btn-edit-profile {\\n --background: #ef4f5f !important;\\n --padding: 25px 20px !important;\\n --border-radius: 10px;\\n font: normal normal 500 15px/21px Poppins !important;\\n --color: #ffffff !important;\\n --background-hover: #df4352 !important;\\n cursor: pointer !important;\\n}\\n.btn-address {\\n --background: #4853f7 !important;\\n --padding: 25px 20px !important;\\n --border-radius: 10px;\\n font: normal normal 500 15px/21px Poppins !important;\\n --color: #ffffff !important;\\n --background-hover: #3c4fdf !important;\\n cursor: pointer !important;\\n}\\n.edit-icon {\\n font-size: 14px !important;\\n}\\n.address-icon {\\n color: #ffffff !important;\\n font-size: 16px !important;\\n}\\n.view-address-card {\\n border-radius: 20px !important;\\n box-shadow: 4px 6px 12px #00000034 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3VzZXItcHJvZmlsZS5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVEsaVBBQUE7QUFDUjtFQUNFLGlCQUFBO0VBQ0EsZ0VBQUE7RUFFQSwwQkFBQTtBQUFGO0FBRUE7RUFDRSxxQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EseUNBQUE7QUFDRjtBQUNBO0VBQ0UsWUFBQTtFQUNBLGFBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0FBRUY7QUFBQTtFQUNFLGdDQUFBO0VBQ0EsK0JBQUE7RUFDQSxxQkFBQTtFQUNBLG9EQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQ0FBQTtFQUNBLDBCQUFBO0FBR0Y7QUFEQTtFQUNFLGdDQUFBO0VBQ0EsK0JBQUE7RUFDQSxxQkFBQTtFQUNBLG9EQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQ0FBQTtFQUNBLDBCQUFBO0FBSUY7QUFGQTtFQUNFLDBCQUFBO0FBS0Y7QUFIQTtFQUNFLHlCQUFBO0VBQ0EsMEJBQUE7QUFNRjtBQUpBO0VBQ0UsOEJBQUE7RUFDQSw2Q0FBQTtBQU9GIiwiZmlsZSI6InVzZXItcHJvZmlsZS5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1DaGl2bzppdGFsLHdnaHRAMCw0MDA7MCw2MDA7MCw3MDA7MSw0MDA7MSw2MDA7MSw3MDAmZmFtaWx5PU51bml0bzppdGFsLHdnaHRAMCw0MDA7MCw2MDA7MCw3MDA7MSw0MDA7MSw2MDA7MSw3MDAmZmFtaWx5PVBvcHBpbnM6aXRhbCx3Z2h0QDAsNDAwOzAsNjAwOzAsNzAwOzEsNDAwOzEsNjAwOzEsNzAwJmRpc3BsYXk9c3dhcCcpO1xuLnVzZXItcHJvZmlsZS1pbmZvIHtcbiAgbWluLWhlaWdodDogMjQwcHg7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWcvY292ZXItcGljdHVyZS5wbmdcIikgMCUgMCUgbm8tcmVwZWF0XG4gICAgcGFkZGluZy1ib3g7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xufVxuLm92ZXJsYXktY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDU1O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250OiBub3JtYWwgbm9ybWFsIDYwMCAxNXB4LzIxcHggUG9wcGlucztcbn1cbi51c2VyLXByb2ZpbGUge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMTIwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5idG4tZWRpdC1wcm9maWxlIHtcbiAgLS1iYWNrZ3JvdW5kOiAjZWY0ZjVmICFpbXBvcnRhbnQ7XG4gIC0tcGFkZGluZzogMjVweCAyMHB4ICFpbXBvcnRhbnQ7XG4gIC0tYm9yZGVyLXJhZGl1czogMTBweDtcbiAgZm9udDogbm9ybWFsIG5vcm1hbCA1MDAgMTVweC8yMXB4IFBvcHBpbnMgIWltcG9ydGFudDtcbiAgLS1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAtLWJhY2tncm91bmQtaG92ZXI6ICNkZjQzNTIgIWltcG9ydGFudDtcbiAgY3Vyc29yOiAgcG9pbnRlciAhaW1wb3J0YW50O1xufVxuLmJ0bi1hZGRyZXNzIHtcbiAgLS1iYWNrZ3JvdW5kOiAjNDg1M2Y3ICFpbXBvcnRhbnQ7XG4gIC0tcGFkZGluZzogMjVweCAyMHB4ICFpbXBvcnRhbnQ7XG4gIC0tYm9yZGVyLXJhZGl1czogMTBweDtcbiAgZm9udDogbm9ybWFsIG5vcm1hbCA1MDAgMTVweC8yMXB4IFBvcHBpbnMgIWltcG9ydGFudDtcbiAgLS1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAtLWJhY2tncm91bmQtaG92ZXI6ICMzYzRmZGYgIWltcG9ydGFudDtcbiAgY3Vyc29yOiAgcG9pbnRlciAhaW1wb3J0YW50O1xufVxuLmVkaXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuLmFkZHJlc3MtaWNvbntcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG59XG4udmlldy1hZGRyZXNzLWNhcmR7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHggIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogNHB4IDZweCAxMnB4ICMwMDAwMDAzNCAhaW1wb3J0YW50O1xufSJdfQ== */\";","export default \"\\n \\n \\n \\n \\n \\n \\n\\n\\n\\n \\n \\n \\n \\n \\\"\\\"\\n\\n \\n \\n

\\n

\\n \\n \\n

\\n
\\n \\n
\\n
\\n
\\n\";","export default \"
    \\n
  • \\n \\n \\n \\n \\n \\n
  • \\n
  • \\n \\n \\n \\n \\n
  • \\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { OrderItemModel } from './orderItemModel';\nimport { OrderPriceModel } from './orderPriceModel';\nimport { ParentOrderSummaryModel } from './parentOrderSummaryModel';\nimport { RestaurantBranchModel } from './restaurantBranchModel';\nimport { RestaurantBranchTableModel } from './restaurantBranchTableModel';\nimport { RestaurantModel } from './restaurantModel';\nimport { UserModel } from './userModel';\n\nexport interface KitchenOrderModel { \n restaurantId?: string;\n restaurantBranchId?: string;\n restaurantModel?: RestaurantModel;\n restaurantBranchModel?: RestaurantBranchModel;\n restaurantBranchTableModel?: RestaurantBranchTableModel;\n orderId?: string;\n parentOrderId?: string;\n orderNumber?: number;\n parentOrderNumber?: number;\n orderType?: KitchenOrderModel.OrderTypeEnum;\n noOfItems?: number;\n orderPriceModel?: OrderPriceModel;\n orderStatus?: KitchenOrderModel.OrderStatusEnum;\n orderPaymentStatus?: KitchenOrderModel.OrderPaymentStatusEnum;\n createdAt?: Date;\n createdBy?: UserModel;\n parentOrderModel?: ParentOrderSummaryModel;\n showPayNow?: boolean;\n showBill?: boolean;\n showParentOrderOption?: boolean;\n orderItemModels?: { [key: string]: OrderItemModel; };\n customerPhoneNo?: string;\n customerName?: string;\n comments?: string;\n customerUserId?: string;\n}\nexport namespace KitchenOrderModel {\n export type OrderTypeEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const OrderTypeEnum = {\n DINEIN: 'DINE_IN' as OrderTypeEnum,\n DELIVERY: 'DELIVERY' as OrderTypeEnum,\n TAKEAWAY: 'TAKEAWAY' as OrderTypeEnum\n };\n export type OrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const OrderStatusEnum = {\n DRAFT: 'DRAFT' as OrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as OrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as OrderStatusEnum,\n CANCELLED: 'CANCELLED' as OrderStatusEnum,\n DECLINED: 'DECLINED' as OrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as OrderStatusEnum,\n PREPARING: 'PREPARING' as OrderStatusEnum,\n PREPARED: 'PREPARED' as OrderStatusEnum,\n DELIVERED: 'DELIVERED' as OrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as OrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as OrderStatusEnum\n };\n export type OrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const OrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as OrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as OrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as OrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as OrderPaymentStatusEnum,\n PAID: 'PAID' as OrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as OrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as OrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as OrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as OrderPaymentStatusEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MenuItemEntity } from '../model/menuItemEntity';\nimport { SmartDineResponseMenuItemEntity } from '../model/smartDineResponseMenuItemEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class MenuItemRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createMenuItem(body: MenuItemEntity, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createMenuItem(body: MenuItemEntity, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createMenuItem(body: MenuItemEntity, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createMenuItem(body: MenuItemEntity, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createMenuItem.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/items`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuItemId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteMenuItem(menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteMenuItem(menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteMenuItem(menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteMenuItem(menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuItemId === null || menuItemId === undefined) {\n throw new Error('Required parameter menuItemId was null or undefined when calling deleteMenuItem.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/items/${encodeURIComponent(String(menuItemId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuItemId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItem(menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItem(menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItem(menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItem(menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuItemId === null || menuItemId === undefined) {\n throw new Error('Required parameter menuItemId was null or undefined when calling getMenuItem.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/items/${encodeURIComponent(String(menuItemId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItems(restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItems(restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItems(restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItems(restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/items`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param menuItemId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateMenuItem(body: MenuItemEntity, menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateMenuItem(body: MenuItemEntity, menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateMenuItem(body: MenuItemEntity, menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateMenuItem(body: MenuItemEntity, menuItemId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateMenuItem.');\n }\n\n if (menuItemId === null || menuItemId === undefined) {\n throw new Error('Required parameter menuItemId was null or undefined when calling updateMenuItem.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/items/${encodeURIComponent(String(menuItemId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AlertController, ModalController, ToastController } from '@ionic/angular';\nimport { map } from 'rxjs/operators';\nimport {\n ProfileModel,\n QRCodeModel,\n RestaurantBranchTableEntity,\n RestaurantBranchTableRestControllerService,\n RestaurantQrCodeRestControllerService,\n SmartDineResponseQRCodeModel,\n SmartDineResponseRestaurantBranchTableEntity,\n} from 'src/app/swagger';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { QrInfoComponent } from '../qr-info/qr-info.component';\n\n@Component({\n selector: 'app-tables',\n templateUrl: './tables.component.html',\n styleUrls: ['./tables.component.scss'],\n})\nexport class TablesComponent implements OnInit {\n\n public static readonly id = 'tables-modal';\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n public form: FormGroup;\n public tables: RestaurantBranchTableEntity[] = [];\n private userProfile: ProfileModel | null = null;\n\n public qrCodes: QRCodeModel[] = [];\n\n constructor(\n private modalController: ModalController,\n private alertController: AlertController,\n private restaurantBranchTableRestControllerService: RestaurantBranchTableRestControllerService,\n private userProfileService: UserProfileService,\n private restaurantQrCodeRestControllerService: RestaurantQrCodeRestControllerService,\n private toastController:ToastController,\n ) { }\n\n get tableControls() {\n return this.form.get('tables') as FormArray;\n }\n\n public ngOnInit() {\n this.setUserProfile();\n this.setTables();\n }\n\n public onSaveClick() {\n this.form.markAllAsTouched();\n if (this.form.invalid) { return; }\n this.tables.forEach((table, index) => {\n const control = this.tableControls.at(index);\n if (control.pristine && table.tableId) { return; }\n const details = {\n tableId: null,\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n creator: this.userProfile.userId,\n createdAt: new Date(),\n } as RestaurantBranchTableEntity;\n Object.assign(details, control.value);\n const existingDetails = this.tables[index];\n if (existingDetails?.tableId) {\n details.tableId = existingDetails.tableId;\n details.creator = existingDetails.creator || this.userProfile.userId;\n details.createdAt = existingDetails.createdAt || new Date();\n details.modifier = this.userProfile.userId;\n details.modifiedAt = new Date();\n }\n this.saveTable(details, index);\n });\n }\n\n public onCloseClick() {\n this.modalController.dismiss('', '', TablesComponent.id);\n }\n\n public async onNewClick() {\n const alert = await this.alertController.create({\n header: 'Table or Room Code',\n inputs: [\n {\n name: 'tableCode',\n type: 'text',\n placeholder: 'Enter Table or Room Code'\n }\n ],\n buttons: [\n {\n text: 'Cancel',\n role: 'cancel',\n handler: () => { }\n },\n {\n text: 'Add',\n role: 'submit',\n handler: () => { }\n },\n ]\n });\n alert.onDidDismiss().then((res) => {\n const role = res?.role || '';\n const tableCode = res?.data?.values?.tableCode || null;\n if (role === 'submit' && tableCode) {\n this.updateForm(tableCode);\n }\n });\n await alert.present();\n }\n\n public onQrClick(_event: Event, table: { tableId?: string; }) {\n if (!table.tableId) { return; }\n this.getQrCode(table.tableId).subscribe({\n next: (res) => {\n const qrInfo = res.item;\n this.showQrPopup(qrInfo);\n },\n error: (err) => {\n console.error('Unable to retrieve Qr codes!', err);\n }\n });\n }\n\n public createForm(value?: any) {\n this.form = null;\n const tableControls = this.tables.map((table) => {\n return new FormGroup({\n tableCode: new FormControl(table.tableCode, Validators.required),\n capacity: new FormControl(table.capacity, [Validators.required, Validators.min(1), Validators.pattern(/^[0-9]+$/)]),\n captain: new FormControl(table.captain, []),\n });\n });\n this.form = new FormGroup({ tables: new FormArray(tableControls) });\n if (value) {\n this.form.patchValue(value);\n }\n }\n\n public updateForm(tableCode: string) {\n this.tables.push({ tableCode, capacity: 0 });\n const value = this.form.value;\n this.createForm(value);\n }\n\n private setUserProfile() {\n this.userProfile = null;\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n }\n });\n }\n\n private setTables() {\n if (!this.restaurantId || !this.restaurantBranchId) { return; }\n this.restaurantBranchTableRestControllerService.getRestaurantBranchTables1(\n this.restaurantId, this.restaurantBranchId\n ).subscribe({\n next: (res: SmartDineResponseRestaurantBranchTableEntity) => {\n this.tables = res.items;\n this.createForm();\n },\n error: (err) => {\n console.error('Unable to get tables info!');\n }\n });\n }\n\n private saveTable(table: RestaurantBranchTableEntity, position: number) {\n this.restaurantBranchTableRestControllerService.createRestaurantBranchTable(\n table, this.restaurantId, this.restaurantBranchId\n ).subscribe({\n next: (res) => {\n \n this.tables[position] = res.item;\n this.tableControls.at(position).reset(this.tables[position]);\n },\n error: (err) => {\n console.error('Unable to save the table info!');\n }\n });\n }\n\n public async showQrPopup(qrInfo: QRCodeModel) {\n const model = await this.modalController.create({\n component: QrInfoComponent,\n id: QrInfoComponent.id,\n componentProps: { qrInfo }\n });\n await model.present();\n }\n\n private getQrCode(tableId: string) {\n if (!this.restaurantId || !this.restaurantBranchId) { return; }\n const parsedUrl = new URL(window.location.href);\n let domainHostName = null;\n if (parsedUrl) {\n domainHostName = parsedUrl.hostname;\n }\n return this.restaurantQrCodeRestControllerService.getQRCodes(\n this.restaurantId, this.restaurantBranchId, tableId, domainHostName\n ).pipe(\n map((res: SmartDineResponseQRCodeModel) => {\n return { item: res.items[2] };\n })\n );\n }\n\n public onDeleteTable(_event:Event,tableInfo:RestaurantBranchTableEntity,index:number){\n _event.stopPropagation();\n this.removeTable(tableInfo,index);\n }\n\n private removeTable(table:RestaurantBranchTableEntity,index:number) {\n this.restaurantBranchTableRestControllerService.deleteRestaurantBranchTable(table.restaurantId,this.restaurantBranchId,table.tableId).subscribe({\n next:()=>{\n this.tables.splice(index, 1);\n this.showToast('Table deleted successfully.');\n },\n error:(err)=>{\n this.showToast('Unable to Delete the table');\n }\n })\n }\n\n private async showToast(message: string) {\n const toast = await this.toastController.create({\n message,\n duration: 2000\n });\n toast.present();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport interface QrSNotification {\n action: 'open-scanner';\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QrScannerService {\n\n private notificationSubject = new Subject();\n\n public getNotifications(): Observable {\n return this.notificationSubject.asObservable();\n }\n\n public notify(message: QrSNotification) {\n this.notificationSubject.next(message);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AlertController, Platform, ToastController } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilityService {\n\n constructor(\n public platform: Platform,\n private toastController: ToastController,\n private alertController: AlertController\n ) { }\n\n public isBrowser() {\n return !this.platform.is('cordova') && !this.platform.is('capacitor');\n }\n\n public async showToast(message: string, type: 'success' | 'error' = 'success', duration: number = 3000): Promise {\n const toast = await this.toastController.create({\n message,\n duration,\n position: 'top',\n color: type === 'success' ? 'primary' : 'danger',\n translucent: true,\n });\n await toast.present();\n }\n\n public async showAlert(message: string, header: string = 'Error', color: 'valid' | 'invalid', duration?: number): Promise {\n const alert = await this.alertController.create({\n header,\n message,\n buttons: ['OK'],\n cssClass: `alert-${color}`,\n });\n \n await alert.present();\n await alert.onDidDismiss();\n \n if (duration) {\n setTimeout(async () => {\n await alert.dismiss();\n }, duration);\n }\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n\n apiBaseUrl: 'https://api.smartdinenow.com',\n\n //apiBaseUrl: 'http://localhost',\n apiKey:'AIzaSyAt9HbkIBaytv9hi6nSP8UMqb0kzdac8Dg'\n \n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\n import { Inject, Injectable, Optional } from '@angular/core';\n import { HttpClient, HttpHeaders, HttpParams, HttpResponse, HttpEvent,} from '@angular/common/http';\n \n import { Observable } from 'rxjs';\n import { BASE_PATH, COLLECTION_FORMATS } from '../variables';\n import { Configuration } from '../configuration';\n import { iCommonApiResponse, iTableBookingEntity,} from '../model/table-booking/table-booking.interface';\n import { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { iOrderReviewDto } from '../model/menuModel';\n \n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrderFeedbackService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(\n protected httpClient: HttpClient,\n @Optional() @Inject(BASE_PATH) basePath: string,\n @Optional() configuration: Configuration\n ) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n private getHeaderConfig(): HttpHeaders {\n let headers = this.defaultHeaders;\n\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n\n let httpHeaderAccepts: string[] = ['*/*'];\n const httpHeaderAcceptSelected: string | undefined =\n this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n const consumes: string[] = ['application/json'];\n const httpContentTypeSelected: string | undefined =\n this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return headers;\n }\n\n public saveOrderReview(body: iOrderReviewDto, isCustomer: boolean, observe?: 'body', reportProgress?: boolean): Observable;\n public saveOrderReview(body: iOrderReviewDto, isCustomer: boolean, observe?: 'response', reportProgress?: boolean): Observable>;\n public saveOrderReview(body: iOrderReviewDto, isCustomer: boolean, observe?: 'events', reportProgress?: boolean): Observable>;\n public saveOrderReview(body: iOrderReviewDto, isCustomer: boolean, observe: any = 'body', reportProgress: boolean = false): Observable {\n \n if (body === null || body === undefined) {\n throw new Error( 'Required parameter body was null or undefined when calling initiatePayment.');\n }\n\n const headers = this.getHeaderConfig();\n const apiEndpoint = isCustomer ? `${this.basePath}/api/user/review`: `${this.basePath}/api/admin/review`;\n return this.httpClient.request(\n 'post',\n apiEndpoint,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress,\n }\n );\n }\n\n public getAllReviews(restaurantId?: string, restaurantBranchId?: string, isCustomer?: boolean, reportProgress?: boolean): Observable {\n\n let queryParameters = new HttpParams({\n encoder: new CustomHttpUrlEncodingCodec(),\n });\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set(\n 'restaurantBranchId',\n restaurantBranchId\n );\n }\n\n \n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken =\n typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n \n // to determine the Accept header\n let httpHeaderAccepts: string[] = ['*/*'];\n const httpHeaderAcceptSelected: string | undefined =\n this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n const apiEndpoint = isCustomer ? `${this.basePath}/api/user/review`: `${this.basePath}/api/admin/review`;\n\n return this.httpClient.request(\n 'get',\n apiEndpoint,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n reportProgress: reportProgress,\n }\n );\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Storage } from '@ionic/storage-angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n\n private _storage: Storage | null = null;\n\n constructor(\n private storage: Storage\n ) { }\n\n public async init() {\n this._storage = await this.storage.create();\n }\n\n public set(key: string, value: any): Promise {\n return this._storage.set(key, value);\n }\n\n public get(key: string): Promise {\n return this._storage.get(key);\n }\n\n public remove(key: string): Promise {\n return this._storage.remove(key);\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RestaurantFilter } from '../model/restaurantFilter';\nimport { RestaurantModel } from '../model/restaurantModel';\nimport { SmartDineResponseRestaurantEntity } from '../model/smartDineResponseRestaurantEntity';\nimport { SmartDineResponseRestaurantModel } from '../model/smartDineResponseRestaurantModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createRestaurants1(body: RestaurantModel, observe?: 'body', reportProgress?: boolean): Observable;\n public createRestaurants1(body: RestaurantModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public createRestaurants1(body: RestaurantModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public createRestaurants1(body: RestaurantModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createRestaurants1.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/restaurants`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRestaurant(restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteRestaurant(restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteRestaurant(restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteRestaurant(restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteRestaurant.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurant(restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurant(restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurant(restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurant(restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurant.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param filter \n * @param pageNo \n * @param rows \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurants1(filter?: RestaurantFilter, pageNo?: number, rows?: number, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurants1(filter?: RestaurantFilter, pageNo?: number, rows?: number, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurants1(filter?: RestaurantFilter, pageNo?: number, rows?: number, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurants1(filter?: RestaurantFilter, pageNo?: number, rows?: number, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (filter !== undefined && filter !== null) {\n queryParameters = queryParameters.set('filter', filter);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restaurants`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateRestaurant(body: RestaurantModel, restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateRestaurant(body: RestaurantModel, restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateRestaurant(body: RestaurantModel, restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateRestaurant(body: RestaurantModel, restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateRestaurant.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateRestaurant.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { MenuEntity } from 'src/app/swagger';\nimport { StorageService } from '../storage/storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MenuNavService {\n\n private readonly storageKey = 'current-menu-nav';\n private menus: MenuEntity[] = [];\n private subject: BehaviorSubject = new BehaviorSubject([]);\n\n constructor(\n private storageService: StorageService\n ) {\n this.init();\n }\n\n get lastMenuId(): string | null {\n const lastMenu = this.menus[this.menus.length - 1];\n let lastMenuId = null;\n if (lastMenu) {\n lastMenuId = lastMenu.menuId;\n }\n return lastMenuId;\n }\n\n private dispatchEvent() {\n this.subject.next(this.menus);\n this.storageService.set(this.storageKey, this.menus);\n }\n\n public async init() {\n const currentNavMenus: MenuEntity[] = await this.storageService.get(this.storageKey);\n if (currentNavMenus && currentNavMenus.length) {\n this.menus = currentNavMenus;\n this.subject.next(this.menus);\n }\n }\n\n public getMenus(): Observable {\n return this.subject.asObservable();\n }\n\n public push(menu: MenuEntity) {\n const parentMenuId = menu.parentMenuId;\n if (!parentMenuId) {\n this.menus = [];\n } else if (!this.lastMenuId) {\n // TODO: parentMenuId is there and lastMenuId is not there.\n return;\n } else if (parentMenuId !== this.lastMenuId) {\n this.pop();\n this.push(menu);\n return;\n }\n\n this.menus.push(menu);\n this.dispatchEvent();\n }\n\n public pop() {\n this.menus.pop();\n this.dispatchEvent();\n }\n\n public set(menus: MenuEntity[]) {\n if (!menus.length) {\n this.clear();\n return;\n }\n\n this.menus = menus;\n this.dispatchEvent();\n }\n\n public clear() {\n this.menus = [];\n this.dispatchEvent();\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MenuItemMapStockEntity } from '../model/menuItemMapStockEntity';\nimport { SmartDineResponseMenuItemMapStockEntity } from '../model/smartDineResponseMenuItemMapStockEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class MenuItemMapStockRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createMenuItemMapStock(body: MenuItemMapStockEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createMenuItemMapStock(body: MenuItemMapStockEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createMenuItemMapStock(body: MenuItemMapStockEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createMenuItemMapStock(body: MenuItemMapStockEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createMenuItemMapStock.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createMenuItemMapStock.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling createMenuItemMapStock.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling createMenuItemMapStock.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/stocks`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param menuItemMapStockId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteMenuItemMapStock(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteMenuItemMapStock(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteMenuItemMapStock(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteMenuItemMapStock(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteMenuItemMapStock.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling deleteMenuItemMapStock.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling deleteMenuItemMapStock.');\n }\n\n if (menuItemMapStockId === null || menuItemMapStockId === undefined) {\n throw new Error('Required parameter menuItemMapStockId was null or undefined when calling deleteMenuItemMapStock.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/stocks/${encodeURIComponent(String(menuItemMapStockId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param menuItemMapStockId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItemMapStock(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItemMapStock(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItemMapStock(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItemMapStock(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getMenuItemMapStock.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getMenuItemMapStock.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling getMenuItemMapStock.');\n }\n\n if (menuItemMapStockId === null || menuItemMapStockId === undefined) {\n throw new Error('Required parameter menuItemMapStockId was null or undefined when calling getMenuItemMapStock.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/stocks/${encodeURIComponent(String(menuItemMapStockId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param date \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItemMapStocks(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, date?: Date, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItemMapStocks(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, date?: Date, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItemMapStocks(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, date?: Date, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItemMapStocks(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, date?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getMenuItemMapStocks.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getMenuItemMapStocks.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling getMenuItemMapStocks.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (date !== undefined && date !== null) {\n queryParameters = queryParameters.set('date', date.toISOString());\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/stocks`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param menuItemMapStockId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateMenuItemMapStock(body: MenuItemMapStockEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateMenuItemMapStock(body: MenuItemMapStockEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateMenuItemMapStock(body: MenuItemMapStockEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateMenuItemMapStock(body: MenuItemMapStockEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapStockId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateMenuItemMapStock.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateMenuItemMapStock.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updateMenuItemMapStock.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling updateMenuItemMapStock.');\n }\n\n if (menuItemMapStockId === null || menuItemMapStockId === undefined) {\n throw new Error('Required parameter menuItemMapStockId was null or undefined when calling updateMenuItemMapStock.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/stocks/${encodeURIComponent(String(menuItemMapStockId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n\n private modalSource = new BehaviorSubject('modalSource');\n currentModal = this.modalSource.asObservable();\n\n constructor() { }\n\n changeCurrentModalId(currentModalId: string) {\n this.modalSource.next(currentModalId)\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ModalController, ToastController , AlertController } from '@ionic/angular';\nimport { UserProfileService } from 'src/app/common/services/user-profile/user-profile.service';\nimport { MenuEntity, MenuRestControllerService, ProfileModel, SmartdineImageRestControllerService, SmartDineResponseMenuEntity } from 'src/app/swagger';\nimport { LoaderService } from '../../services/loader/loader.service';\nimport { MenuSelectionComponent } from '../menu-selection/menu-selection.component';\n@Component({\n selector: 'app-menu-upsertion',\n templateUrl: './menu-upsertion.component.html',\n styleUrls: ['./menu-upsertion.component.scss'],\n})\nexport class MenuUpsertionComponent implements OnInit {\n\n public static readonly id = 'menu-upsertion-modal';\n public selImg: string;\n\n @Input()\n public menuId: string | null = null;\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n @Input()\n public parentMenuId: string | null = null;\n\n public menu: MenuEntity | null = null;\n public selectedMenu: MenuEntity | null = null; // cloning purpose to create new menu..\n public form: FormGroup;\n public selectedFileBLOB: any;\n public getImgKeyId: any;\n public selectItem = '';\n public btnPublishText = '';\n public files: any[] = [];\n\n private userProfile: ProfileModel;\n sanitizer: any;\n\n constructor(\n private modalController: ModalController,\n private alertController: AlertController,\n private loaderService: LoaderService,\n private menuRestControllerService: MenuRestControllerService,\n private toastController: ToastController,\n private userProfileService: UserProfileService,\n private smartDineImage: SmartdineImageRestControllerService,\n ) {\n this.createForm();\n }\n\n get isNew(): boolean {\n return !this.menuId;\n }\n\n get isImageAvailable(): boolean {\n return !!this.getFormValue('menuIconUrl');\n }\n\n public getFormValue(controlName: string): string {\n const control = this.form.get(controlName);\n let controlValue = null;\n if (control) {\n controlValue = control.value;\n }\n return controlValue;\n }\n\n public ngOnInit() {\n this.init();\n }\n\n public onMenuTemplatesClick() {\n this.showMenuSelectionPopup();\n }\n\n public onPublishClick() {\n this.alertController.create({\n header: 'SmartDine',\n subHeader: '',\n message: `Are you sure? you want to ${(this.btnPublishText === 'Published') ? 'Unpublish' : 'Publish' } the item ?`,\n buttons: [\n {\n text: 'Yes',\n handler: () => {\n if (this.menu.menuStatus === 'DRAFT'){\n this.menu.menuStatus = 'PUBLISHED';\n this.btnPublishText = 'Published';\n } else {\n this.menu.menuStatus = 'DRAFT';\n this.btnPublishText = 'Unpublished';\n }\n\n if (this.form.valid) {\n this.save();\n }\n }\n },\n {\n text: 'No',\n handler: () => {\n console.log('Whatever');\n }\n }\n ]\n }).then(res => {\n res.present();\n });\n }\n\n public onSaveClick() {\n this.form.markAllAsTouched();\n if (this.selectedMenu) {\n this.upsertMenu({}, { templateMenuId: this.selectedMenu.menuId });\n } else if (this.form.valid) {\n this.save();\n }\n }\n\n public onSubmit() {\n if (this.form.valid) {\n this.save();\n }\n }\n\n public onCloseClick() {\n this.modalController.dismiss(null, '', MenuUpsertionComponent.id);\n }\n\n public onUndoClick() {\n this.form.reset();\n this.form.patchValue(this.menu);\n }\n\n /**\n * Method handler to be called on image file browsing/drop.\n */\n onImageSelection(event) {\n const files = event.target.files;\n if (files.length) {\n this.uploadImage(files[0]);\n }\n }\n\n private init() {\n this.setUserProfile();\n if (this.menuId) { // Updating existing one..\n this.setMenu();\n }\n }\n\n private createForm() {\n this.form = new FormGroup({\n name: new FormControl('', Validators.required),\n code: new FormControl('', Validators.required),\n description: new FormControl(''),\n template: new FormControl(false, Validators.required),\n tags: new FormControl([], Validators.required),\n });\n }\n\n public save(options = { shouldClosePopup: true }) {\n this.loaderService.showLoader();\n const menu = {\n menuId: null,\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n parentMenuId: this.parentMenuId,\n childMenus: [],\n noOfChildMenus: 0,\n menuStatus: this.menu?.menuStatus || 'DRAFT',\n // orderableFromTime: '',\n // orderableToTime: '',\n // menuItemMaps: [],\n } as MenuEntity;\n\n if (this.menu) {\n Object.assign(menu, this.menu);\n }\n\n // Correcting improper child menus count..\n /*if (!Array.isArray(menu.childMenus)) {\n menu.childMenus = [];\n }\n menu.noOfChildMenus = menu.childMenus.length;*/\n\n if (!menu.menuStatus) {\n menu.menuStatus = 'DRAFT';\n }\n\n Object.assign(menu, this.form.value);\n\n if (this.isNew) {\n menu.createdAt = new Date();\n menu.creator = this.userProfile.userId;\n } else {\n menu.modifiedAt = new Date();\n menu.modifier = this.userProfile.userId;\n }\n this.loaderService.hideLoader();\n this.upsertMenu(menu, options);\n }\n\n private upsertMenu(menu: MenuEntity, options?: { shouldClosePopup?: boolean, templateMenuId?: string }) {\n const templateMenuId = options?.templateMenuId || null;\n const shouldClosePopup = options?.shouldClosePopup ?? true;\n\n this.menuRestControllerService.createMenus(menu, this.restaurantId, this.restaurantBranchId, templateMenuId).subscribe(\n (res: SmartDineResponseMenuEntity) => {\n const response = {} as any;\n if (this.isNew) {\n response.createdMenu = res.item;\n } else {\n response.updatedMenu = res.item;\n }\n if (shouldClosePopup) {\n this.modalController.dismiss(response, '', MenuUpsertionComponent.id);\n this.loaderService.hideLoader();\n this.showToast('Details saved successfully.');\n }\n },\n (err) => {\n this.loaderService.hideLoader();\n console.error('Unable to upsert menu!', err);\n }\n );\n }\n\n private setMenu() {\n this.menuRestControllerService.getMenu(this.menuId, this.restaurantId, this.restaurantBranchId).subscribe(\n (res: SmartDineResponseMenuEntity) => {\n this.menu = res.item;\n this.btnPublishText = (this.menu?.menuStatus === 'DRAFT') ? 'Unpublished' : 'Published';\n this.form.patchValue(this.menu);\n },\n (err) => {\n console.error('Unable to get menu details!', err);\n }\n );\n }\n\n private setUserProfile() {\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n }\n });\n }\n\n private async showMenuSelectionPopup() {\n const modal = await this.modalController.create({\n component: MenuSelectionComponent,\n id: MenuSelectionComponent.id,\n componentProps: {\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n }\n });\n modal.onDidDismiss().then((res) => {\n this.selectedMenu = res?.data?.selectedMenu || null as MenuEntity;\n if (this.selectedMenu) {\n this.form.patchValue(this.selectedMenu);\n this.form.disable();\n }\n });\n await modal.present();\n }\n\n private async showToast(message: string) {\n const toast = await this.toastController.create({\n message,\n duration: 2000\n });\n toast.present();\n }\n\n /**\n * Upload Image.\n * @param file Image File.\n */\n uploadImage(imageFile: any) {\n const fileKey = this.menu?.menuIconImage?.key;\n let uploadRequest = this.smartDineImage.uploadFileForm(imageFile, this.restaurantId, this.restaurantBranchId, this.menuId);\n if (fileKey) {\n this.loaderService.showLoader();\n uploadRequest = this.smartDineImage.updateFileForm(fileKey, imageFile, this.restaurantId, this.restaurantBranchId, this.menuId);\n }\n\n this.loaderService.showLoader();\n uploadRequest.subscribe(\n (res) => {\n console.info('Image uploaded successfully!');\n this.menu.menuIconImage = res.item;\n this.loaderService.hideLoader();\n },\n (err) => {\n console.error('Unable to upload image!', err);\n this.loaderService.hideLoader();\n }\n );\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseRestaurantBranchModel } from '../model/smartDineResponseRestaurantBranchModel';\nimport { SmartDineResponseRestaurantBranchTableModel } from '../model/smartDineResponseRestaurantBranchTableModel';\nimport { SmartDineResponseRestaurantModel } from '../model/smartDineResponseRestaurantModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantUsersRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param locale \n * @param pageNo \n * @param rows \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantBranchTables(restaurantId: string, restaurantBranchId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantBranchTables(restaurantId: string, restaurantBranchId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantBranchTables(restaurantId: string, restaurantBranchId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantBranchTables(restaurantId: string, restaurantBranchId: string, locale?: string, pageNo?: number, rows?: number, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurantBranchTables.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getRestaurantBranchTables.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/users/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}/tables`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param locale \n * @param pageNo \n * @param rows \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantBranches(restaurantId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantBranches(restaurantId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantBranches(restaurantId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantBranches(restaurantId: string, locale?: string, pageNo?: number, rows?: number, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurantBranches.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/users/restaurants/${encodeURIComponent(String(restaurantId))}/branches`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantDetail(restaurantId: string, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantDetail(restaurantId: string, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantDetail(restaurantId: string, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantDetail(restaurantId: string, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurantDetail.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/users/restaurants/${encodeURIComponent(String(restaurantId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param keyword \n * @param locale \n * @param pageNo \n * @param rows \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurants(keyword: string, locale?: string, pageNo?: number, rows?: number, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurants(keyword: string, locale?: string, pageNo?: number, rows?: number, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurants(keyword: string, locale?: string, pageNo?: number, rows?: number, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurants(keyword: string, locale?: string, pageNo?: number, rows?: number, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (keyword === null || keyword === undefined) {\n throw new Error('Required parameter keyword was null or undefined when calling getRestaurants.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (keyword !== undefined && keyword !== null) {\n queryParameters = queryParameters.set('keyword', keyword);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/users/restaurants`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"ion-content.class-view {\\n background: transparent none !important;\\n display: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3FyLXNjYW5uZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSx1Q0FBQTtFQUNBLGFBQUE7QUFERiIsImZpbGUiOiJxci1zY2FubmVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWUvbWl4aW5zLnNjc3MnO1xuXG5pb24tY29udGVudC5jbGFzcy12aWV3IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBub25lO1xufVxuIl19 */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OrderItemTaxInfoModel { \n taxRuleName?: string;\n taxRuleDesc?: string;\n taxRuleLevel?: OrderItemTaxInfoModel.TaxRuleLevelEnum;\n taxPerc?: number;\n flatTaxRate?: number;\n taxAmount?: number;\n taxedAmount?: number;\n taxRuleCode?: string;\n taxRuleGroup?: string;\n}\nexport namespace OrderItemTaxInfoModel {\n export type TaxRuleLevelEnum = 'ITEM_LEVEL' | 'CART_LEVEL';\n export const TaxRuleLevelEnum = {\n ITEMLEVEL: 'ITEM_LEVEL' as TaxRuleLevelEnum,\n CARTLEVEL: 'CART_LEVEL' as TaxRuleLevelEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CartItemModel } from './cartItemModel';\nimport { CartOfferInfoModel } from './cartOfferInfoModel';\nimport { CartPriceModel } from './cartPriceModel';\nimport { CartTaxInfoModel } from './cartTaxInfoModel';\nimport { RestaurantBranchModel } from './restaurantBranchModel';\nimport { RestaurantModel } from './restaurantModel';\n\nexport interface CartModel { \n restaurantId?: string;\n restaurantBranchId?: string;\n tableId?: string;\n addressId?: string;\n restaurantModel?: RestaurantModel;\n restaurantBranchModel?: RestaurantBranchModel;\n cartId?: string;\n orderType?: CartModel.OrderTypeEnum;\n noOfItems?: string;\n cartPriceModel?: CartPriceModel;\n cartItemModels?: { [key: string]: CartItemModel; };\n cartTaxInfoModels?: { [key: string]: CartTaxInfoModel; };\n cartStatus?: CartModel.CartStatusEnum;\n cartOfferInfoModels?: { [key: string]: CartOfferInfoModel; };\n cartPriceModelsByItemType?: { [key: string]: CartPriceModel; };\n}\nexport namespace CartModel {\n export type OrderTypeEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const OrderTypeEnum = {\n DINEIN: 'DINE_IN' as OrderTypeEnum,\n DELIVERY: 'DELIVERY' as OrderTypeEnum,\n TAKEAWAY: 'TAKEAWAY' as OrderTypeEnum\n };\n export type CartStatusEnum = 'DRAFT' | 'ORDERED' | 'ORDERING_INPROGRESS' | 'RETURNED' | 'NOT_ACCEPTED';\n export const CartStatusEnum = {\n DRAFT: 'DRAFT' as CartStatusEnum,\n ORDERED: 'ORDERED' as CartStatusEnum,\n ORDERINGINPROGRESS: 'ORDERING_INPROGRESS' as CartStatusEnum,\n RETURNED: 'RETURNED' as CartStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as CartStatusEnum\n };\n}","import {Component, Input, OnChanges, SimpleChanges, OnInit,} from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { CartItemModel, MenuModel, MenuUsersRestControllerService, SmartDineResponseMenuItemMapModel, SmartDineResponseMenuModel,} from 'src/app/swagger';\nimport { MenuItemMapping } from '../../models/menu-item-mapping/menu-item-mapping.model';\nimport { CartService } from '../../services/cart/cart.service';\nimport { AdminCartService } from '../../services/admincart/admincart.service';\nimport { QuantityChangeEvent } from '../quantity-selector/quantity-selector.component';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { ProfileModel } from '../../../swagger';\nimport { Role } from 'src/app/common/enums/role.enum';\nimport { RedirectUserService } from 'src/app/swagger/api/redirectUser.service';\nimport { Router } from '@angular/router';\nimport { CatalogSideMenusComponent } from './catalog-side-menus/catalog-side-menus.component';\n\ninterface MenuItemMappingsDictionary {\n [key: string]: MenuItemMapping;\n}\n\ninterface Menu extends MenuModel {\n menuId?: string;\n itemsMappings?: MenuItemMapping[];\n}\n\ninterface SdEvent extends MouseEvent {\n value: any;\n}\n\n@Component({\n selector: 'app-sd-catalog',\n templateUrl: './catalog.component.html',\n styleUrls: ['./catalog.component.scss'],\n})\nexport class CatalogComponent implements OnChanges, OnInit {\n\n @Input() public catalogDetails: any = null;\n \n public menus: Menu[] | any = [];\n public itemMappings: MenuItemMappingsDictionary = {};\n public selectedMenu: MenuModel | null = null;\n\n private cartService: CartService | AdminCartService | null = null;\n public isUserLoggedIn: boolean = false;\n public userProfile: ProfileModel | null = null;\n public filteredItems: any[] = [];\n public specialNote: string[] = [];\n\n constructor(\n private menuUsersRestControllerService: MenuUsersRestControllerService,\n private modalController: ModalController,\n private userProfileService: UserProfileService,\n private userCartService: CartService,\n private adminCartService: AdminCartService,\n private router: Router,\n private redirectUserService: RedirectUserService,\n ) {\n this.getUserDetails();\n }\n\n ngOnInit(): void {\n this.setUrlParams();\n this.init();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes && changes?.['catalogDetails']?.currentValue) {\n this.init();\n }\n }\n\n public onMenuListClick() {\n this.showMenus();\n }\n\n public onMenuClick(event: SdEvent): void {\n this.selectedMenu = event.value as MenuModel;\n this.scrollToMenu(this.selectedMenu);\n }\n\n public onQuantityChange(event: QuantityChangeEvent, item: MenuItemMapping | any): void {\n const cartItem = item.cartItem;\n const quantity = event.value;\n cartItem.quantity = quantity;\n cartItem.price = cartItem.unitPrice * quantity;\n if (quantity === 0 && this.cartService != null) {\n this.cartService.removeItem(cartItem);\n this.removeNoteForItem(item.itemId)\n } else {\n this.specialNote[item.itemId] = this.specialNote[item.itemId] ?? '';\n cartItem['note'] = this.specialNote[item?.itemId];\n this.cartService?.setItem(cartItem);\n }\n }\n\n private removeNoteForItem(itemId: string) {\n if (this.specialNote && this.specialNote[itemId]) {\n delete this.specialNote[itemId];\n }\n }\n\n public onAppear(_event: Event, menu: MenuModel) {\n this.selectedMenu = menu;\n }\n\n private init() {\n this.isUserLoggedIn = this.userProfile && this.userProfile?.userId ? true : false;\n\n if (this.catalogDetails?.restaurantId && this.catalogDetails?.restaurantBranchId) {\n this.setMenus();\n }\n\n this.setUrlParams();\n }\n\n private setMenus() {\n const storageKey = `menus_${this.catalogDetails?.restaurantId}_${this.catalogDetails?.restaurantBranchId}`;\n const cachedMenus = this.loadMenusFromStorage(storageKey);\n\n if (cachedMenus) {\n this.processMenus(cachedMenus, false);\n } else {\n this.fetchMenusFromAPI(storageKey);\n }\n }\n \n private loadMenusFromStorage(storageKey: string): Menu[] | null {\n const cachedData = sessionStorage.getItem(storageKey);\n return cachedData ? JSON.parse(cachedData) : null;\n }\n \n private fetchMenusFromAPI(storageKey: string) {\n this.menus = [];\n this.itemMappings = {};\n \n this.menuUsersRestControllerService\n .getTopLevelMenus(this.catalogDetails?.restaurantId, this.catalogDetails?.restaurantBranchId)\n .subscribe({\n next: (res: SmartDineResponseMenuModel) => {\n this.menus = res.items;\n this.loadItemsMappingsForMenus(this.menus, storageKey);\n },\n error: (err) => {\n console.error('Unable to get menus info!', err);\n },\n });\n }\n \n private loadItemsMappingsForMenus(menus: Menu[], storageKey: string) {\n const requests = menus.map(menu =>\n this.menuUsersRestControllerService\n .getMenuItemMaps(this.catalogDetails?.restaurantId, this.catalogDetails?.restaurantBranchId, menu.menuId)\n .toPromise()\n .then((res: SmartDineResponseMenuItemMapModel) => {\n menu.itemsMappings = res.items.map((e) => MenuItemMapping.create(e));\n\n this.updateItemMappings(menu.itemsMappings);\n })\n .catch((err) => {\n console.error(`Unable to get items for menu ${menu.menuId}`, err);\n menu.itemsMappings = [];\n })\n );\n \n Promise.all(requests).then(() => {\n sessionStorage.setItem(storageKey, JSON.stringify(menus));\n this.processMenus(menus, false);\n });\n }\n \n private processMenus(menus: Menu[], fetchItems: boolean) {\n this.menus = menus;\n this.menus.forEach((each, index) => {\n if (index === 0) {\n this.selectedMenu = each;\n }\n this.initializeItemsMappings(each, fetchItems);\n });\n this.filteredItems = this.menus;\n }\n\n private initializeItemsMappings(menu: Menu, fetchItems: boolean) {\n menu.itemsMappings = menu.itemsMappings || [];\n \n if (!fetchItems) {\n this.updateItemMappings(menu.itemsMappings);\n } else if (fetchItems && menu.itemsMappings.length === 0) {\n this.menuUsersRestControllerService\n .getMenuItemMaps(this.catalogDetails?.restaurantId, this.catalogDetails?.restaurantBranchId, menu.menuId)\n .subscribe({\n next: (res: SmartDineResponseMenuItemMapModel) => {\n menu.itemsMappings = res.items.map((e) => MenuItemMapping.create(e));\n this.updateItemMappings(menu.itemsMappings);\n },\n error: (err) => {\n console.error('Unable to get menu items info!', err);\n },\n });\n }\n \n // this.subscribeToCartService();\n }\n \n private updateItemMappings(itemsMappings: any) {\n itemsMappings.forEach((each) => {\n this.itemMappings[each.menuItemMapId] = each;\n this.setMenuItemCartInfo(each);\n });\n }\n \n private subscribeToCartService() {\n if (this.cartService) {\n this.cartService.getItems().subscribe({\n next: () => {\n Object.keys(this.itemMappings).forEach((each) => {\n this.setMenuItemCartInfo(this.itemMappings[each]);\n });\n },\n error: (err) => {\n console.error('Failed to get items', err.message);\n },\n });\n }\n }\n\n private setMenuItemCartInfo(menuItemMap: MenuItemMapping) {\n if (this.cartService == null) {\n return;\n }\n let cartItem = this.cartService.getItem(menuItemMap?.menuItemMapId);\n if (!cartItem) {\n cartItem = {\n itemId: menuItemMap.itemId,\n menuItemMapId: menuItemMap.menuItemMapId,\n menuItemType: CartItemModel.MenuItemTypeEnum.FOOD,\n unitPrice: menuItemMap?.priceDetails?.price,\n quantity: 0,\n price: 0,\n itemName: menuItemMap.menuItem.name,\n itemDescription: menuItemMap.menuItem?.description,\n } as CartItemModel;\n }\n\n menuItemMap.cartItem = cartItem;\n }\n\n private async showMenus() {\n const modal = await this.modalController.create({\n component: CatalogSideMenusComponent,\n componentProps: {\n menus: this.menus,\n value: this.selectedMenu,\n totalCount: this.getTotalItems(),\n isMobileView: true,\n },\n })\n modal.onDidDismiss().then((data: any) => {\n const selectedMenu = data?.data?.value as MenuModel;\n if (selectedMenu) {\n this.selectedMenu = selectedMenu;\n this.scrollToMenu(this.selectedMenu);\n }\n });\n await modal.present();\n }\n\n private scrollToMenu(menu: MenuModel | string) {\n let target: any = null;\n if (menu === 'All') {\n target = document.getElementById('AllMenus');\n } else {\n target = document.getElementById(menu['menuId']);\n }\n target?.scrollIntoView({ behavior: 'smooth' });\n }\n\n private setUrlParams() {\n if (!this.isUserLoggedIn) {\n const currentUrl = this.router.url;\n const encodedUrl = encodeURIComponent(currentUrl);\n this.redirectUserService.setRedirectUrl(encodedUrl);\n }\n }\n\n public searchFoodItems(searchValue: string) {\n if (!searchValue?.trim()) {\n this.menus = this.filteredItems.slice();\n } else {\n const lowerSearchValue = searchValue.toLowerCase();\n \n this.menus = this.filteredItems\n .map((menu) => {\n const filteredMappings = menu.itemsMappings.filter((mapping) =>\n mapping.menuItem.name.toLowerCase().includes(lowerSearchValue)\n );\n return { ...menu, itemsMappings: filteredMappings };\n })\n .filter((menu) => menu.itemsMappings.length > 0);\n }\n }\n\n public getUserDetails(): void {\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n this.isUserLoggedIn = userProfile && userProfile?.userId ? true : false;\n if (userProfile?.roles && (userProfile?.roles.includes(Role.ADMINS) || userProfile?.roles.includes(Role.RESTO_ADMINS))) {\n this.cartService = this.adminCartService;\n } else {\n this.cartService = this.userCartService;\n }\n },\n error: (err) => {\n this.cartService = null;\n },\n });\n }\n\n public getTotalItems(): number {\n return this.menus?.reduce((count, menu) => \n count + (menu?.itemsMappings?.length || 0), \n 0\n ) || 0;\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Role } from 'src/app/common/enums/role.enum';\nimport { QrScannerService } from 'src/app/common/services/qr-scanner/qr-scanner.service';\nimport { UserProfileService } from 'src/app/common/services/user-profile/user-profile.service';\nimport { ProfileModel } from 'src/app/swagger';\n\n@Component({\n selector: 'app-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent implements OnInit {\n\n public userProfile: ProfileModel;\n public isAdmin = false;\n public isRestoAdmin = false;\n public isCustomer = false;\n\n constructor(\n private userProfileService: UserProfileService,\n private qrScannerService: QrScannerService,\n ) { }\n\n public ngOnInit() {\n this.init();\n }\n\n public onScanClick() {\n this.qrScannerService.notify({ action: 'open-scanner' });\n }\n\n public init() {\n this.setUserProfile();\n }\n\n private setUserProfile() {\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n if(userProfile){\n this.userProfile = userProfile;\n this.isRestoAdmin = userProfile.roles.includes(Role.RESTO_ADMINS);\n this.isCustomer = userProfile.roles.includes(Role.USERS);\n }\n },\n error:(err) => {\n console.error('Unable to Get UserProfile ',err);\n }\n });\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ReportRequestParams } from '../model/reportRequestParams';\nimport { SmartDineResponseReportInfoModel } from '../model/smartDineResponseReportInfoModel';\nimport { SmartDineResponseReportModel } from '../model/smartDineResponseReportModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class ReportsRestControllerForAdminService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReport(body: ReportRequestParams, restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getReport(body: ReportRequestParams, restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getReport(body: ReportRequestParams, restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getReport(body: ReportRequestParams, restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling getReport.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getReport.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getReport.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/reports`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReportAsFile(body: ReportRequestParams, restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getReportAsFile(body: ReportRequestParams, restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getReportAsFile(body: ReportRequestParams, restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getReportAsFile(body: ReportRequestParams, restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling getReportAsFile.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getReportAsFile.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getReportAsFile.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/reports/file`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReportsList(restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getReportsList(restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getReportsList(restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getReportsList(restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getReportsList.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getReportsList.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/reports/list`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ItemQuantity { \n measurementUnit?: ItemQuantity.MeasurementUnitEnum;\n value?: string;\n}\nexport namespace ItemQuantity {\n export type MeasurementUnitEnum = 'MILLI_LITERS' | 'LITERS' | 'KILO_LITERS' | 'PINT' | 'GALLON' | 'MILLI_GRAMS' | 'GRAMS' | 'KILO_GRAMS' | 'TONNE' | 'SMALL' | 'LARGE' | 'HALF' | 'FULL';\n export const MeasurementUnitEnum = {\n MILLILITERS: 'MILLI_LITERS' as MeasurementUnitEnum,\n LITERS: 'LITERS' as MeasurementUnitEnum,\n KILOLITERS: 'KILO_LITERS' as MeasurementUnitEnum,\n PINT: 'PINT' as MeasurementUnitEnum,\n GALLON: 'GALLON' as MeasurementUnitEnum,\n MILLIGRAMS: 'MILLI_GRAMS' as MeasurementUnitEnum,\n GRAMS: 'GRAMS' as MeasurementUnitEnum,\n KILOGRAMS: 'KILO_GRAMS' as MeasurementUnitEnum,\n TONNE: 'TONNE' as MeasurementUnitEnum,\n SMALL: 'SMALL' as MeasurementUnitEnum,\n LARGE: 'LARGE' as MeasurementUnitEnum,\n HALF: 'HALF' as MeasurementUnitEnum,\n FULL: 'FULL' as MeasurementUnitEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ImageInfoModel { \n key?: string;\n url?: string;\n urlValidity?: Date;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface CurrencyModel { \n currencyCode?: string;\n currencysymbol?: string;\n displayName?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface InventoryAlertModel { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n inventoryAlertId?: string;\n inventoryMasterId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n alertCondition?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface CartPriceModel { \n totalPrice?: number;\n totalPriceWithDiscount?: number;\n totalPriceWithDiscountAndTax?: number;\n itemLevelTotalPriceWithDiscount?: number;\n itemLevelDiscountAmount?: number;\n discountAmount?: number;\n taxAmount?: number;\n}","export default \".toolbar-container ion-toolbar {\\n --background: transparent;\\n --min-height: auto;\\n}\\n.toolbar-container ion-toolbar ion-title {\\n padding: 0;\\n font-size: 28px;\\n font-weight: 500;\\n}\\n.toolbar-container ion-toolbar .actions {\\n margin-right: -0.5rem;\\n}\\n.toolbar-container ion-toolbar .actions > ion-button, .toolbar-container ion-toolbar .actions > app-button-group {\\n margin: 0 0.5rem;\\n}\\n:host {\\n display: block;\\n}\\nsection.items-container.row {\\n --bs-gutter-x: 0;\\n --bs-gutter-y: 0;\\n padding: 0.5rem;\\n}\\nsection.items-container.row > .col {\\n padding: 1rem;\\n}\\nion-card {\\n margin: 0;\\n border-radius: var(--card-border-radius, 0);\\n box-shadow: none;\\n border: 1px solid transparent;\\n box-sizing: border-box;\\n transition: border-color 0.1s ease-in-out 0.25s;\\n min-width: 200px;\\n}\\nion-card:focus-within, ion-card:hover {\\n border-color: rgba(0, 0, 0, 0.13);\\n}\\nion-card:focus-within ion-card-header .actions, ion-card:hover ion-card-header .actions {\\n opacity: 1;\\n}\\nion-card .thumbnail {\\n height: 100px;\\n max-height: 100px;\\n overflow: hidden;\\n background-image: url(\\\"https://ionicframework.com/docs/demos/api/thumbnail/thumbnail.svg\\\");\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: cover;\\n position: relative;\\n}\\nion-card .thumbnail app-food-type-indicator {\\n position: absolute;\\n right: 0.25rem;\\n top: 0.25rem;\\n}\\nion-card ion-card-header {\\n padding: 0;\\n}\\nion-card ion-card-header .title-container {\\n margin-bottom: -18px;\\n}\\nion-card ion-card-header ion-card-title {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n}\\nion-card ion-card-header ion-card-subtitle {\\n margin-top: 4px;\\n}\\nion-card ion-card-header ion-card-subtitle > * {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 0 2px;\\n}\\nion-card ion-card-header ion-card-subtitle ion-icon {\\n vertical-align: middle;\\n}\\nion-card ion-card-header ion-card-subtitle.tags ion-icon {\\n vertical-align: text-bottom;\\n}\\nion-card ion-card-header section.actions {\\n position: absolute;\\n top: -8px;\\n right: 0;\\n opacity: 0;\\n}\\nion-card ion-card-header section.actions ion-button {\\n margin: 0;\\n}\\nion-card ion-card-header section.actions ion-button ion-icon {\\n font-size: 20px;\\n}\\nion-card ion-card-content {\\n padding: 0;\\n padding-top: 0.25rem;\\n}\\nion-card ion-card-content > * {\\n padding: 0.25rem 0;\\n}\\nion-card ion-card-content .dashboard {\\n border: 1px solid red;\\n}\\nion-card ion-card-content .description {\\n text-align: justify;\\n padding: 5px 10px;\\n}\\nion-card .bold-text {\\n font-weight: bold;\\n}\\nion-card .quantity-info {\\n display: flex;\\n justify-content: space-between;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL3Rvb2xiYXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL21lbnUtaXRlbXMuY29tcG9uZW50LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90aGVtZS9taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFRTtFQUNFLHlCQUFBO0VBQ0Esa0JBQUE7QUNESjtBREdJO0VBQ0UsVUFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ0ROO0FESUk7RUFDRSxxQkFBQTtBQ0ZOO0FESU07RUFFRSxnQkFBQTtBQ0hSO0FBVEE7RUFDRSxjQUFBO0FBWUY7QUFSRTtFQUNFLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FBV0o7QUFUSTtFQUNFLGFBQUE7QUFXTjtBQUxBO0VBQ0UsU0FBQTtFQUNBLDJDQUFBO0VBQ0EsZ0JBQUE7RUFDQSw2QkFBQTtFQUNBLHNCQUFBO0VBQ0EsK0NBQUE7RUFDQSxnQkFBQTtBQVFGO0FBTEU7RUFFRSxpQ0FBQTtBQU1KO0FBSkk7RUFDRSxVQUFBO0FBTU47QUFERTtFQUNFLGFBeENlO0VBeUNmLGlCQXpDZTtFQTBDZixnQkFBQTtFQUNBLDBGQUFBO0VBQ0EsNEJBQUE7RUFDQSxrQ0FBQTtFQUVBLHNCQUFBO0VBQ0Esa0JBQUE7QUFHSjtBQURJO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtBQUdOO0FBQ0U7RUFDRSxVQUFBO0FBQ0o7QUFDSTtFQUNFLG9CQUFBO0FBQ047QUFFSTtFQ2pFRix1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QURrRUY7QUFDSTtFQUNFLGVBQUE7QUFDTjtBQUNNO0VBQ0UscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7QUFDUjtBQUVNO0VBQ0Usc0JBQUE7QUFBUjtBQUdNO0VBQ0UsMkJBQUE7QUFEUjtBQUtJO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7QUFITjtBQUtNO0VBQ0UsU0FBQTtBQUhSO0FBS1E7RUFDRSxlQUFBO0FBSFY7QUFTRTtFQUNFLFVBQUE7RUFDQSxvQkFBQTtBQVBKO0FBU0k7RUFDRSxrQkFBQTtBQVBOO0FBVUk7RUFDRSxxQkFBQTtBQVJOO0FBVUk7RUFDRSxtQkFBQTtFQUNBLGlCQUFBO0FBUk47QUFZRTtFQUNFLGlCQUFBO0FBVko7QUFZRTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtBQVZKIiwiZmlsZSI6Im1lbnUtaXRlbXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi50b29sYmFyLWNvbnRhaW5lciB7XG4gIGlvbi10b29sYmFyIHtcbiAgICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIC0tbWluLWhlaWdodDogYXV0bztcbiAgXG4gICAgaW9uLXRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLS41cmVtO1xuXG4gICAgICAmPmlvbi1idXR0b24sXG4gICAgICAmPmFwcC1idXR0b24tZ3JvdXAge1xuICAgICAgICBtYXJnaW46IDAgLjVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWUvbWl4aW5zLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWUvdG9vbGJhci5zY3NzJztcblxuJG1lbnUtaWNvbi1oZWlnaHQ6IDEwMHB4O1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zZWN0aW9uLml0ZW1zLWNvbnRhaW5lciB7XG4gICYucm93IHtcbiAgICAtLWJzLWd1dHRlci14OiAwO1xuICAgIC0tYnMtZ3V0dGVyLXk6IDA7XG4gICAgcGFkZGluZzogLjVyZW07XG5cbiAgICA+LmNvbCB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG5cbmlvbi1jYXJkIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMsIDApO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xcyBlYXNlLWluLW91dCAuMjVzO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICAvLyBtYXgtd2lkdGg6IDQzMXB4O1xuXG4gICY6Zm9jdXMtd2l0aGluLFxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMyk7XG5cbiAgICBpb24tY2FyZC1oZWFkZXIgLmFjdGlvbnMge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgfVxuXG4gIC50aHVtYm5haWwge1xuICAgIGhlaWdodDogJG1lbnUtaWNvbi1oZWlnaHQ7XG4gICAgbWF4LWhlaWdodDogJG1lbnUtaWNvbi1oZWlnaHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tL2RvY3MvZGVtb3MvYXBpL3RodW1ibmFpbC90aHVtYm5haWwuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGFwcC1mb29kLXR5cGUtaW5kaWNhdG9yIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAuMjVyZW07XG4gICAgICB0b3A6IC4yNXJlbTtcbiAgICB9XG4gIH1cblxuICBpb24tY2FyZC1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAudGl0bGUtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xOHB4O1xuICAgIH1cblxuICAgIGlvbi1jYXJkLXRpdGxlIHtcbiAgICAgIEBpbmNsdWRlIHRleHQtZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgaW9uLWNhcmQtc3VidGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogNHB4O1xuXG4gICAgICA+KiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICB9XG5cbiAgICAgIGlvbi1pY29uIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgJi50YWdzIGlvbi1pY29uIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlY3Rpb24uYWN0aW9ucyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC04cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgIGlvbi1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlvbi1jYXJkLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcGFkZGluZy10b3A6IC4yNXJlbTtcblxuICAgID4qIHtcbiAgICAgIHBhZGRpbmc6IC4yNXJlbSAwO1xuICAgIH1cblxuICAgIC5kYXNoYm9hcmQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICAgIH1cbiAgICAuZGVzY3JpcHRpb257XG4gICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLmJvbGQtdGV4dCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLnF1YW50aXR5LWluZm97XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbn1cbiIsIlxuQG1peGluIHRleHQtZWxsaXBzaXMge1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbiwgJHRvcDogbnVsbCwgJHJpZ2h0OiBudWxsLCAkYm90dG9tOiBudWxsLCAkbGVmdDogbnVsbCkge1xuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuICB0b3A6ICR0b3A7XG4gIHJpZ2h0OiAkcmlnaHQ7XG4gIGJvdHRvbTogJGJvdHRvbTtcbiAgbGVmdDogJGxlZnQ7XG59XG5cbkBtaXhpbiBwb3NpdGlvbi1hYnNvbHV0ZSgkYXJncy4uLikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgJGFyZ3MuLi4pO1xufSJdfQ== */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { GeoLocation } from './geoLocation';\n\nexport interface AddressEntity { \n addressId?: string;\n addressName?: string;\n userId?: string;\n houseNumber?: string;\n buildingName?: string;\n address?: string;\n city?: string;\n district?: string;\n landmark?: string;\n state?: string;\n country?: string;\n countryCode?: string;\n pinCode?: string;\n location?: GeoLocation;\n addressType?: AddressEntity.AddressTypeEnum;\n addressTypeClassification?: AddressEntity.AddressTypeClassificationEnum;\n}\nexport namespace AddressEntity {\n export type AddressTypeEnum = 'HOME' | 'OFFICE';\n export const AddressTypeEnum = {\n HOME: 'HOME' as AddressTypeEnum,\n OFFICE: 'OFFICE' as AddressTypeEnum\n };\n export type AddressTypeClassificationEnum = 'BILLING' | 'SHIPPING';\n export const AddressTypeClassificationEnum = {\n BILLING: 'BILLING' as AddressTypeClassificationEnum,\n SHIPPING: 'SHIPPING' as AddressTypeClassificationEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ParentOrderStatusUpdateRequest { \n restaurantId?: string;\n restaurantBranchId?: string;\n parentOrderId?: string;\n orderPaymentStatus?: ParentOrderStatusUpdateRequest.OrderPaymentStatusEnum;\n}\nexport namespace ParentOrderStatusUpdateRequest {\n export type OrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const OrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as OrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as OrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as OrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as OrderPaymentStatusEnum,\n PAID: 'PAID' as OrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as OrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as OrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as OrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as OrderPaymentStatusEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponsePaymentOptionModel } from '../model/smartDineResponsePaymentOptionModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class PaymentOptionRestControllerForUsersService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPaymentOptions(restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getPaymentOptions(restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getPaymentOptions(restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getPaymentOptions(restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getPaymentOptions.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getPaymentOptions.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/users/paymentoptions`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n"," import { HttpUrlEncodingCodec } from '@angular/common/http';\n\n/**\n* CustomHttpUrlEncodingCodec\n* Fix plus sign (+) not encoding, so sent as blank space\n* See: https://github.com/angular/angular/issues/11058#issuecomment-247367318\n*/\nexport class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec {\n encodeKey(k: string): string {\n k = super.encodeKey(k);\n return k.replace(/\\+/gi, '%2B');\n }\n encodeValue(v: string): string {\n v = super.encodeValue(v);\n return v.replace(/\\+/gi, '%2B');\n }\n}\n\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CurrencyModel } from './currencyModel';\nimport { OrderModel } from './orderModel';\nimport { OrderPriceModel } from './orderPriceModel';\n\nexport interface ParentOrderModel { \n parentOrderId?: string;\n parentOrderNumber?: number;\n orderType?: ParentOrderModel.OrderTypeEnum;\n restaurantId?: string;\n restaurantBranchId?: string;\n tableId?: string;\n userId?: string;\n customerPhoneNumber?: string;\n orderIds?: Array;\n orderStatus?: ParentOrderModel.OrderStatusEnum;\n orderPaymentStatus?: ParentOrderModel.OrderPaymentStatusEnum;\n orderPriceModel?: OrderPriceModel;\n nextPossibleOrderPaymentStatuses?: Array;\n orderModelsMap?: { [key: string]: OrderModel; };\n paymentPreference?: ParentOrderModel.PaymentPreferenceEnum;\n currencyModel?: CurrencyModel;\n}\nexport namespace ParentOrderModel {\n export type OrderTypeEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const OrderTypeEnum = {\n DINEIN: 'DINE_IN' as OrderTypeEnum,\n DELIVERY: 'DELIVERY' as OrderTypeEnum,\n TAKEAWAY: 'TAKEAWAY' as OrderTypeEnum\n };\n export type OrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const OrderStatusEnum = {\n DRAFT: 'DRAFT' as OrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as OrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as OrderStatusEnum,\n CANCELLED: 'CANCELLED' as OrderStatusEnum,\n DECLINED: 'DECLINED' as OrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as OrderStatusEnum,\n PREPARING: 'PREPARING' as OrderStatusEnum,\n PREPARED: 'PREPARED' as OrderStatusEnum,\n DELIVERED: 'DELIVERED' as OrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as OrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as OrderStatusEnum\n };\n export type OrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const OrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as OrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as OrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as OrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as OrderPaymentStatusEnum,\n PAID: 'PAID' as OrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as OrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as OrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as OrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as OrderPaymentStatusEnum\n };\n export type NextPossibleOrderPaymentStatusesEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const NextPossibleOrderPaymentStatusesEnum = {\n PAYLATER: 'PAY_LATER' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as NextPossibleOrderPaymentStatusesEnum,\n PAID: 'PAID' as NextPossibleOrderPaymentStatusesEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as NextPossibleOrderPaymentStatusesEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as NextPossibleOrderPaymentStatusesEnum,\n PAYMENTNA: 'PAYMENT_NA' as NextPossibleOrderPaymentStatusesEnum,\n PAYBYCASH: 'PAY_BY_CASH' as NextPossibleOrderPaymentStatusesEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as NextPossibleOrderPaymentStatusesEnum\n };\n export type PaymentPreferenceEnum = 'PAY_BY_ONLINE' | 'PAY_BY_CASH';\n export const PaymentPreferenceEnum = {\n ONLINE: 'PAY_BY_ONLINE' as PaymentPreferenceEnum,\n CASH: 'PAY_BY_CASH' as PaymentPreferenceEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface MenuItemMapStockEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n menuItemStockMapId?: string;\n menuItemMapId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n totalQuantity?: number;\n availableQuantity?: number;\n reservedQuantity?: number;\n stockCheckEnabled?: boolean;\n resetStockDaily?: boolean;\n date?: Date;\n active?: boolean;\n}","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\nexport class FooterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJmaWx0ZXJzLmNvbXBvbmVudC5zY3NzIn0= */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { OfferMappingModel } from '../model/offerMappingModel';\nimport { SmartDineResponseOfferMappingModel } from '../model/smartDineResponseOfferMappingModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class OfferMappingRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOfferMappings(body: OfferMappingModel, observe?: 'body', reportProgress?: boolean): Observable;\n public createOfferMappings(body: OfferMappingModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public createOfferMappings(body: OfferMappingModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public createOfferMappings(body: OfferMappingModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createOfferMappings.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/offermappings`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param offerMappingId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteOfferMapping(offerMappingId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteOfferMapping(offerMappingId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteOfferMapping(offerMappingId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteOfferMapping(offerMappingId: string, restaurantId: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (offerMappingId === null || offerMappingId === undefined) {\n throw new Error('Required parameter offerMappingId was null or undefined when calling deleteOfferMapping.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteOfferMapping.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/offermappings/${encodeURIComponent(String(offerMappingId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param offerMappingId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOfferMapping(offerMappingId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getOfferMapping(offerMappingId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOfferMapping(offerMappingId: string, restaurantId: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOfferMapping(offerMappingId: string, restaurantId: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (offerMappingId === null || offerMappingId === undefined) {\n throw new Error('Required parameter offerMappingId was null or undefined when calling getOfferMapping.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getOfferMapping.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/offermappings/${encodeURIComponent(String(offerMappingId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param offerRuleId \n * @param menuItemMapId \n * @param menuId \n * @param userId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOfferMappings(restaurantId: string, restaurantBranchId?: string, offerRuleId?: string, menuItemMapId?: string, menuId?: string, userId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getOfferMappings(restaurantId: string, restaurantBranchId?: string, offerRuleId?: string, menuItemMapId?: string, menuId?: string, userId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOfferMappings(restaurantId: string, restaurantBranchId?: string, offerRuleId?: string, menuItemMapId?: string, menuId?: string, userId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOfferMappings(restaurantId: string, restaurantBranchId?: string, offerRuleId?: string, menuItemMapId?: string, menuId?: string, userId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getOfferMappings.');\n }\n\n\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (offerRuleId !== undefined && offerRuleId !== null) {\n queryParameters = queryParameters.set('offerRuleId', offerRuleId);\n }\n if (menuItemMapId !== undefined && menuItemMapId !== null) {\n queryParameters = queryParameters.set('menuItemMapId', menuItemMapId);\n }\n if (menuId !== undefined && menuId !== null) {\n queryParameters = queryParameters.set('menuId', menuId);\n }\n if (userId !== undefined && userId !== null) {\n queryParameters = queryParameters.set('userId', userId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/offermappings`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param offerMappingId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateOfferMapping(body: OfferMappingModel, offerMappingId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateOfferMapping(body: OfferMappingModel, offerMappingId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateOfferMapping(body: OfferMappingModel, offerMappingId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateOfferMapping(body: OfferMappingModel, offerMappingId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateOfferMapping.');\n }\n\n if (offerMappingId === null || offerMappingId === undefined) {\n throw new Error('Required parameter offerMappingId was null or undefined when calling updateOfferMapping.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/offermappings/${encodeURIComponent(String(offerMappingId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OrderOfferInfoModel { \n orderOfferInfoId?: string;\n orderId?: string;\n parentOrderId?: string;\n offerCode?: string;\n offerName?: string;\n discountAmount?: number;\n discountedAmount?: number;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ReportRow { \n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseTaxRuleEntity } from '../model/smartDineResponseTaxRuleEntity';\nimport { TaxRuleEntity } from '../model/taxRuleEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class TaxRuleRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createTaxRules(body: TaxRuleEntity, observe?: 'body', reportProgress?: boolean): Observable;\n public createTaxRules(body: TaxRuleEntity, observe?: 'response', reportProgress?: boolean): Observable>;\n public createTaxRules(body: TaxRuleEntity, observe?: 'events', reportProgress?: boolean): Observable>;\n public createTaxRules(body: TaxRuleEntity, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createTaxRules.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/taxrules`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param taxRuleId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteTaxRule(taxRuleId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteTaxRule(taxRuleId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteTaxRule(taxRuleId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteTaxRule(taxRuleId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (taxRuleId === null || taxRuleId === undefined) {\n throw new Error('Required parameter taxRuleId was null or undefined when calling deleteTaxRule.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/taxrules/${encodeURIComponent(String(taxRuleId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param taxRuleId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTaxRule(restaurantId: string, restaurantBranchId: string, taxRuleId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getTaxRule(restaurantId: string, restaurantBranchId: string, taxRuleId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getTaxRule(restaurantId: string, restaurantBranchId: string, taxRuleId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getTaxRule(restaurantId: string, restaurantBranchId: string, taxRuleId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getTaxRule.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getTaxRule.');\n }\n\n if (taxRuleId === null || taxRuleId === undefined) {\n throw new Error('Required parameter taxRuleId was null or undefined when calling getTaxRule.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/taxrules/${encodeURIComponent(String(taxRuleId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTaxRules(restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getTaxRules(restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getTaxRules(restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getTaxRules(restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getTaxRules.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getTaxRules.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/taxrules`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param taxRuleId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateTaxRule(body: TaxRuleEntity, taxRuleId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateTaxRule(body: TaxRuleEntity, taxRuleId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateTaxRule(body: TaxRuleEntity, taxRuleId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateTaxRule(body: TaxRuleEntity, taxRuleId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateTaxRule.');\n }\n\n if (taxRuleId === null || taxRuleId === undefined) {\n throw new Error('Required parameter taxRuleId was null or undefined when calling updateTaxRule.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/taxrules/${encodeURIComponent(String(taxRuleId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ReportPageModel { \n size?: number;\n totalElements?: number;\n totalPages?: number;\n pageNumber?: number;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface CartOfferInfoModel { \n offerCode?: string;\n offerName?: string;\n discountAmount?: number;\n discountedAmount?: number;\n}","import { ActivatedRoute } from '@angular/router';\nimport { Injectable, Input } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { ProfileModel, CartItemModel, CartModel, CartRestControllerForUsersService, RestaurantBranchModel, RestaurantBranchTableModel, RestaurantModel, SmartDineResponseCartModel } from '../../../swagger';\nimport { LoaderService } from '../loader/loader.service';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { Role } from 'src/app/common/enums/role.enum';\n\nexport interface CartItems {\n [key: string]: CartItemModel;\n}\n\nexport interface TableInfo {\n restaurant: RestaurantModel;\n restaurantBranch: RestaurantBranchModel;\n table: RestaurantBranchTableModel;\n}\n\nexport interface CartSNotification {\n action: 'open-cart';\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CartService {\n\n private notificationSubject = new Subject();\n\n private cart: CartModel | null = null;\n private subject: BehaviorSubject = new BehaviorSubject({});\n\n private restaurantId: string | null = null;\n private restaurantBranchId: string | null = null;\n private tableId: string | null = null;\n public userProfile: ProfileModel | null = null;\n public isAdmin = false;\n public isRestoAdmin = false;\n public isCustomer = false;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n public cartRestControllerForUsersService: CartRestControllerForUsersService,\n private loaderService: LoaderService,\n private userProfileService: UserProfileService,\n ) {\n this.init();\n this.userProfile = null;\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n if(userProfile){\n this.userProfile = userProfile;\n this.isAdmin = userProfile.roles.includes(Role.ADMINS);\n this.isRestoAdmin = userProfile.roles.includes(Role.RESTO_ADMINS);\n this.isCustomer = userProfile.roles.includes(Role.USERS);\n }\n }\n });\n\n }\n\n public init(options?: { restaurantId: string, restaurantBranchId: string, tableId: string }) {\n let isInitialized = false;\n if (options) {\n this.restaurantId = options.restaurantId;\n this.restaurantBranchId = options.restaurantBranchId;\n this.tableId = options.tableId;\n isInitialized = true;\n }\n\n if (!isInitialized) {\n const queryParams = this.activatedRoute.snapshot.queryParams;\n this.restaurantId = queryParams?.restaurantId || null;\n this.restaurantBranchId = queryParams?.restaurantBranchId || null;\n this.tableId = queryParams?.tableId || null;\n }\n\n if (this.restaurantId && this.restaurantBranchId) {\n this.loadCart();\n }\n }\n\n public getCart() {\n return this.cart;\n }\n\n public setCart(cart: CartModel) {\n this.cart = cart;\n\n // TODO: noOfItems, cartPriceModel, tableId\n if (!cart.noOfItems) {\n cart.noOfItems = '0';\n }\n if (!cart.cartPriceModel) {\n cart.cartPriceModel = {\n totalPrice: 0,\n totalPriceWithDiscountAndTax: 0,\n };\n }\n if (!cart.tableId) {\n cart.tableId = this.tableId;\n }\n\n this.subject.next(cart.cartItemModels);\n }\n\n public clearCart() {\n this.subject.next({});\n this.cart = null;\n }\n\n public createCart() {\n const cart = {\n addressId: null,\n cartId: null,\n cartItemModels: {},\n cartPriceModel: {\n totalPrice: 0,\n totalPriceWithDiscountAndTax: 0,\n },\n cartStatus: 'DRAFT',\n cartTaxInfoModels: null,\n orderType: 'DINE_IN',\n noOfItems: '0',\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n tableId: this.tableId,\n } as CartModel;\n\n this.cartRestControllerForUsersService.createCart(cart).subscribe({\n next: (smartDineResponseCartModel: SmartDineResponseCartModel) => {\n console.info('Cart created successfully!', smartDineResponseCartModel);\n this.setCart(smartDineResponseCartModel.item);\n },\n error: (err) => {\n console.error('Unable to create new cart!', err);\n }\n });\n }\n\n public loadCart() {\n this.createCart();\n }\n\n public updateCart() {\n const cartItems = this.subject.getValue();\n const items = Object.values(cartItems);\n\n // Updating total items count..\n const totalItems = items.reduce((acc, each) => acc + each.quantity, 0);\n this.cart.noOfItems = '' + totalItems;\n }\n\n public saveCart(cartStatus?: 'DRAFT' | 'ORDERED' | 'ORDERING_INPROGRESS' | 'RETURNED' | 'NOT_ACCEPTED', isAdmin?: boolean) {\n this.loaderService.showLoader();\n if (cartStatus) {\n this.cart.cartStatus = cartStatus;\n }\n this.updateCart();\n this.cartRestControllerForUsersService.updateItemInCart(this.cart, this.cart.cartId).subscribe({\n next: (res: SmartDineResponseCartModel) => {\n this.setCart(res.item);\n \n this.loaderService.hideLoader();\n },\n error: (err) => {\n console.error('Unable to update exsting cart!', err);\n this.loaderService.hideLoader();\n }\n });\n }\n\n public removeCart() {\n if (!this.cart) { return; }\n this.clearCart();\n\n this.init();\n }\n\n public getItems(): Observable {\n return this.subject.asObservable();\n }\n\n public getItem(menuItemMapId: string): CartItemModel | null {\n let cartItems = this.subject.getValue();\n return cartItems[menuItemMapId] || null;\n }\n\n public setItem(cartItem: CartItemModel) {\n const cartItems = this.subject.getValue();\n cartItems[cartItem.menuItemMapId] = cartItem;\n this.subject.next(cartItems);\n }\n\n public removeItem(cartItem: CartItemModel) {\n const cartItems = this.subject.getValue();\n delete (cartItems[cartItem.menuItemMapId]);\n this.subject.next(cartItems);\n }\n\n public getNotifications(): Observable {\n return this.notificationSubject.asObservable();\n }\n\n public notify(message: CartSNotification) {\n this.notificationSubject.next(message);\n }\n}","import { MenuItem } from \"src/app/common/services/side-menu/side-menu.service\";\n\nexport const sideMenuItems: MenuItem[] = [\n {\n id: 'HOME',\n iconName: 'home-outline',\n name: 'Home',\n link: '/admin/home',\n pages: ['HomePage'],\n enabled: true,\n functionality_name: null\n },\n {\n id: 'RESTAURANTS',\n iconName: 'restaurant-outline',\n name: 'Restaurants',\n link: '/admin/restaurants',\n pages: ['RestaurantsPage', 'RestaurantDetailsPage', 'RestaurantBranchesPage'],\n enabled: true,\n functionality_name: null\n },\n {\n id: 'BRANCHES',\n iconName: 'menu-outline',\n name: 'Branches',\n link: '/admin/branches/',\n pages: ['RestaurantBranchesPage', 'RestaurantDetailsPage'],\n enabled: true,\n functionality_name: null\n },\n {\n id: 'MENU_TEMPLATES',\n iconName: 'grid-outline',\n name: 'Menu Templates',\n link: '/admin/menus',\n pages: ['MenusPage', 'MenuDetailsPage'],\n enabled: true,\n functionality_name: null\n },\n {\n id: 'FOOD_ITEM_TEMPLATES',\n iconName: 'fast-food-outline',\n name: 'Food Item Templates',\n link: '/admin/items',\n pages: ['ItemsPage', 'ItemDetailsPage'],\n enabled: true,\n functionality_name: null\n },\n {\n id: 'GROUP_MANAGEMENT',\n iconName: 'albums-outline',\n name: 'Group Management',\n link: '/admin/group-mgmt',\n pages: ['GroupMgmtPage'],\n enabled: true,\n functionality_name: null\n },\n {\n id: 'USER_MANAGEMENT',\n iconName: 'people-outline',\n name: 'User Management',\n link: '/admin/user-mgmt',\n pages: ['UserMgmtPage'],\n enabled: true,\n functionality_name: null\n },\n];","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ModalController, ToastController } from '@ionic/angular';\nimport { ItemQuantity, MenuItemEntity, MenuItemRestControllerService, SmartdineImageRestControllerService, SmartDineResponseMenuItemEntity } from 'src/app/swagger';\nimport { LoaderService } from '../../services/loader/loader.service';\n\n\n@Component({\n selector: 'app-item-upsertion',\n templateUrl: './item-upsertion.component.html',\n styleUrls: ['./item-upsertion.component.scss'],\n})\nexport class ItemUpsertionComponent implements OnInit {\n\n public static readonly id = 'item-upsertion-modal';\n\n @Input()\n public itemId: string | null = null;\n\n @Input()\n public menuId: string | null = null;\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n public item: MenuItemEntity | null = null;\n\n public form: FormGroup;\n\n public tempMenuId: string | null = null; // TODO: Needs removal\n\n isQuantitySelected: boolean = true;\n\n specializations = ['👨‍🍳 Chef Special', '🔥 High Calories', '🥗 Healthy', '🌶️ Hot & Spicy', '🍬 Low Sugar'];\n\n constructor(\n private menuItemRestControllerService: MenuItemRestControllerService,\n private loaderService: LoaderService,\n private toastController: ToastController,\n private modalController: ModalController,\n private smartDineImage: SmartdineImageRestControllerService,\n ) {\n this.createForm();\n }\n\n get isNew(): boolean {\n return !this.itemId;\n }\n\n ngOnInit() {\n this.setInitialItemType();\n this.init();\n }\n\n public onSaveClick() {\n this.form.markAllAsTouched();\n if (this.form.valid) {\n this.save();\n }\n }\n\n public onCloseClick() {\n this.modalController.dismiss(null, '', ItemUpsertionComponent.id);\n }\n\n private init() {\n if (this.itemId) { // Updating existing one..\n this.setItem();\n }\n }\n\n private createForm() {\n\n this.form = new FormGroup({\n name: new FormControl('', Validators.required),\n description: new FormControl(''),\n template: new FormControl(false, Validators.required),\n vegetarian: new FormControl(false, Validators.required),\n itemType: new FormControl('FOOD', Validators.required),\n tags: new FormControl([]),\n iconUrl: new FormControl(''),\n menuIcon: new FormControl(''),\n quantityItemType: new FormControl('', []),\n itemQuantity: new FormGroup({\n value: new FormControl(''),\n measurementUnit: new FormControl('')\n })\n\n });\n }\n\n setInitialItemType(): void {\n const value = this.form.get('itemQuantity.value').value;\n this.isQuantitySelected = !this.specializations.includes(value);\n }\n\n onItemTypeChange(event: any) {\n const value = event.detail.value;\n this.isQuantitySelected = value === 'quantity';\n }\n\n public save() {\n if (this.form.invalid) { return; }\n\n const item = {\n itemId: null,\n categoryIds: [],\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId\n } as MenuItemEntity;\n\n if (this.item) {\n Object.assign(item, this.item);\n }\n Object.assign(item, this.form.value);\n \n this.upsertItem(item);\n }\n\n private upsertItem(item: MenuItemEntity) {\n this.menuItemRestControllerService.createMenuItem(item, this.restaurantId, this.restaurantBranchId).subscribe({\n next: (res: SmartDineResponseMenuItemEntity) => {\n const response = {} as { createdItem?: MenuItemEntity, updatedItem?: MenuItemEntity };\n if (this.isNew) {\n response.createdItem = res.item;\n } else {\n response.updatedItem = res.item;\n }\n this.modalController.dismiss(response, '', ItemUpsertionComponent.id);\n this.showToast('Details saved successfully.');\n },\n error: (err) => {\n console.error('Unable to upsert item!', err);\n }\n });\n }\n\n private setItem() {\n this.menuItemRestControllerService.getMenuItem(this.itemId, this.restaurantId, this.restaurantBranchId).subscribe({\n next: (res: SmartDineResponseMenuItemEntity) => {\n this.item = res.item;\n this.form.patchValue(this.item);\n },\n error: (err) => {\n console.error('Unable to get menu item details!', err);\n }\n });\n }\n\n private async showToast(message: string) {\n const toast = await this.toastController.create({\n message,\n duration: 2000\n });\n toast.present();\n }\n\n /**\n * Method handler to be called on image file browsing/drop.\n */\n onImageSelection(event) {\n const files = event.target.files;\n if (files.length) {\n this.uploadImage(files[0]);\n }\n }\n\n /**\n * Upload Image.\n * @param file Image File.\n */\n uploadImage(imageFile: any) {\n const menuId = this.tempMenuId || this.menuId; // TODO: Bug in API; Need fixing..\n const fileKey = this.item?.iconImage?.key;\n let uploadRequest = this.smartDineImage.uploadFileForm(imageFile, this.restaurantId, this.restaurantBranchId, menuId); // TODO: this.menuId\n if (fileKey) {\n this.loaderService.showLoader();\n uploadRequest = this.smartDineImage.updateFileForm(fileKey, imageFile, this.restaurantId, this.restaurantBranchId, this.menuId);\n }\n\n this.loaderService.showLoader();\n uploadRequest.subscribe(\n (res) => {\n console.info('Image uploaded successfully!');\n this.item.iconImage = res.item;\n this.loaderService.hideLoader();\n },\n (err) => {\n console.error('Unable to upload image!', err);\n this.loaderService.hideLoader();\n }\n );\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseQRCodeModel } from '../model/smartDineResponseQRCodeModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantQrCodeRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param tableId \n * @param domainHostName \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getQRCodes(restaurantId: string, restaurantBranchId?: string, tableId?: string, domainHostName?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getQRCodes(restaurantId: string, restaurantBranchId?: string, tableId?: string, domainHostName?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getQRCodes(restaurantId: string, restaurantBranchId?: string, tableId?: string, domainHostName?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getQRCodes(restaurantId: string, restaurantBranchId?: string, tableId?: string, domainHostName?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getQRCodes.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (tableId !== undefined && tableId !== null) {\n queryParameters = queryParameters.set('tableId', tableId);\n }\n if (domainHostName !== undefined && domainHostName !== null) {\n queryParameters = queryParameters.set('domainHostName', domainHostName);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/qrcodes`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ParentOrderShareResponse { \n actionStatusMap?: { [key: string]: string; };\n actionMessageMap?: { [key: string]: string; };\n}","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","export default \"\\n \\n QR Info\\n \\n Print\\n Close\\n \\n \\n\\n\\n\\n
\\n
\\n \\n \\\"\\\"\\n E-Menu\\n
\\n
\\n Scan the QR code\\n
\\n
\\n \\n
\\n \\n  /\\n  /\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\";","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ModalController, AlertController } from '@ionic/angular';\nimport { CalendarModal, CalendarModalOptions, CalendarResult } from 'ion2-calendar';\nimport {\n MenuItemMapPriceEntity,\n MenuItemMapPriceRestControllerService,\n MenuItemMapStockEntity,\n MenuItemMapStockRestControllerService,\n ProfileModel,\n SmartDineResponseMenuItemMapPriceEntity,\n SmartDineResponseMenuItemMapStockEntity,\n} from 'src/app/swagger';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { MenuItemMapping } from '../menu-item-mappings/menu-item-mappings.component';\nimport { OverlayEventDetail } from '@ionic/core';\n\n\n\n@Component({\n selector: 'app-item-price-selecion',\n templateUrl: './item-price-selecion.component.html',\n styleUrls: ['./item-price-selecion.component.scss'],\n})\nexport class ItemPriceSelecionComponent implements OnInit {\n\n public static readonly id = 'item-price-modal';\n\n @Input()\n public menuId: string | null = null;\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n @Input()\n public priceHistory: any | null = null;\n\n @Input()\n public priceFlag: 'price' | 'stock' = 'price';\n\n @Input()\n public menuItemMapping: MenuItemMapping | null = null;\n\n public priceForm: FormGroup;\n public stockForm: FormGroup;\n\n private userProfile: ProfileModel | null = null;\n\n public itemPriceList: any | null = null;\n public itemPriceHistory = [];\n public priceId:string | null = null;\n public menuItemMapPriceId:string | null = null;\n\n constructor(\n private modalController: ModalController,\n private alertController: AlertController,\n private menuItemMapPriceRestControllerService: MenuItemMapPriceRestControllerService,\n private menuItemMapStockRestControllerService: MenuItemMapStockRestControllerService,\n private userProfileService: UserProfileService,\n ) { }\n\n ngOnInit() {\n this.setUserProfile();\n if (this.priceFlag === 'price') {\n this.createPriceForm();\n const priceDetails = this.menuItemMapping?.priceDetails || {};\n this.menuItemMapPriceId = (this.menuItemMapping.priceDetails) ?this.menuItemMapping.priceDetails.menuItemMapPriceId: null;\n this.priceForm.patchValue(priceDetails);\n } else {\n this.createStockForm();\n const stockDetails = this.menuItemMapping?.stockDetails || {};\n this.stockForm.patchValue(stockDetails);\n }\n \n const { itemPriceList, itemPriceHistory } = this.getPriceHistoryData(this.priceHistory, this.menuItemMapping);\n \n this.itemPriceList = itemPriceList;\n this.itemPriceHistory = itemPriceHistory;\n }\n\n public onSaveClick() {\n this.stockForm?.markAllAsTouched();\n this.priceForm?.markAllAsTouched();\n\n if (this.priceFlag === 'stock' && this.stockForm.valid) {\n this.saveNewStock();\n } else if (this.priceForm.valid) {\n this.saveNewPrice();\n }\n }\n\n public onCloseClick() {\n this.modalController.dismiss(null, 'close', ItemPriceSelecionComponent.id);\n }\n\n private setUserProfile() {\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n }\n });\n }\n\n async openCalendarToDt() {\n const options: CalendarModalOptions = {\n title: 'To Date',\n cssClass: 'datepicker-modal',\n closeLabel: 'Close',\n autoDone: true,\n };\n\n const myCalendar = await this.modalController.create({\n component: CalendarModal,\n componentProps: { options }\n });\n\n myCalendar.present();\n\n const event: OverlayEventDetail = await myCalendar.onDidDismiss();\n const date = (event.data as CalendarResult)?.dateObj || null;\n if (event.role === 'done' && date) {\n this.priceForm.get('toDate').setValue(date.toISOString());\n }\n }\n\n async openCalendarFromDt() {\n const options: CalendarModalOptions = {\n title: 'From Date',\n cssClass: 'datepicker-modal',\n closeLabel: 'Close',\n autoDone: true,\n };\n\n const myCalendar = await this.modalController.create({\n component: CalendarModal,\n componentProps: { options }\n });\n\n myCalendar.present();\n\n const event: OverlayEventDetail = await myCalendar.onDidDismiss();\n const date = (event.data as CalendarResult)?.dateObj || null;\n if (event.role === 'done' && date) {\n this.priceForm.get('fromDate').setValue(date.toISOString());\n }\n }\n\n async openCalendarDt() {\n const options: CalendarModalOptions = {\n title: 'Stock Date',\n cssClass: 'datepicker-modal',\n closeLabel: 'Close',\n autoDone: true,\n };\n\n const myCalendar = await this.modalController.create({\n component: CalendarModal,\n componentProps: { options }\n });\n\n myCalendar.present();\n\n const event: OverlayEventDetail = await myCalendar.onDidDismiss();\n const date = (event.data as CalendarResult)?.dateObj || null;\n if (event.role === 'done' && date) {\n this.stockForm.get('date').setValue(date.toISOString());\n }\n }\n\n private createPriceForm() {\n this.priceForm = new FormGroup({\n price: new FormControl(0, [Validators.required]),\n costPrice: new FormControl(0, [Validators.required]),\n fromDate: new FormControl(new Date().toISOString(), [Validators.required]),\n toDate: new FormControl(new Date().toISOString(), [Validators.required]),\n }, (controls: AbstractControl) => {\n const fromDate = new Date(controls.get('fromDate').value);\n const toDate = new Date(controls.get('toDate').value);\n if (fromDate > toDate) {\n return { lowerToDate: 'From Date should be less than To Date!' };\n }\n return null;\n });\n }\n\n private createStockForm() {\n this.stockForm = new FormGroup({\n menuItemStockMapId: new FormControl(null),\n reservedQuantity: new FormControl(0, [Validators.required]),\n availableQuantity: new FormControl(0, [Validators.required]),\n totalQuantity: new FormControl(0, [Validators.required]),\n date: new FormControl(new Date().toISOString(), [Validators.required]),\n stockCheckEnabled: new FormControl(false, [Validators.required]),\n }, (formGroup: AbstractControl) => {\n const availableQuantity = formGroup.get('availableQuantity').value;\n const totalQuantity = formGroup.get('totalQuantity').value;\n if (availableQuantity <= totalQuantity) { return null; }\n return { error: 'Available Quantity should be less that or equal to Total Quantity!' };\n });\n }\n\n private saveNewPrice() {\n const newPriceDetails = {\n menuItemMapPriceId: null,\n menuItemMapId: this.menuItemMapping.menuItemMapId,\n restaurantBranchId: this.restaurantBranchId,\n restaurantId: this.restaurantId,\n fromDate: new Date(),\n toDate: new Date(),\n active: true,\n price: 0,\n costPrice:0,\n } as MenuItemMapPriceEntity;\n Object.assign(newPriceDetails, this.priceForm.value);\n\n if(!this.menuItemMapping.hasOwnProperty('priceDetails') || this.menuItemMapping.priceDetails === null || this.menuItemMapPriceId === null){\n this.menuItemMapPriceRestControllerService.createMenuItemMapPrice(\n newPriceDetails, this.restaurantId, this.restaurantBranchId, this.menuItemMapping.menuItemMapId)\n .subscribe({\n next: (res) => {\n\n this.modalController.dismiss({ value: res.item }, 'save', ItemPriceSelecionComponent.id);\n this.getPriceHistoryData(this.priceHistory, this.menuItemMapping);\n },\n error: (err) => {\n console.error('Unable to create new price details!', err);\n }\n });\n } else {\n this.menuItemMapPriceRestControllerService.updateMenuItemMapPrice( \n newPriceDetails, this.restaurantId, this.restaurantBranchId, this.menuItemMapping.menuItemMapId,this.menuItemMapPriceId)\n .subscribe({\n next: (res) => {\n \n this.modalController.dismiss({ value: res.item }, 'save', ItemPriceSelecionComponent.id);\n this.getPriceHistoryData(this.priceHistory, this.menuItemMapping);\n },\n error: (err) => {\n console.error('Unable to update new price details!', err);\n }\n });\n }\n }\n\n private saveNewStock() {\n const newStockDetails = {\n menuItemStockMapId: null,\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n menuItemMapId: this.menuItemMapping.menuItemMapId,\n date: null,\n availableQuantity: 0,\n reservedQuantity: 0,\n totalQuantity: 0,\n createdAt: new Date(),\n creator: this.userProfile.userId,\n active: true,\n stockCheckEnabled: false\n } as MenuItemMapStockEntity;\n const newStack = Object.assign(newStockDetails, this.stockForm.value);\n //const oldStack = Object.assign({...newStack}, { date: null });\n Promise.all([\n this.makeStockCreationRequest(newStack),\n //this.makeStockCreationRequest(oldStack),\n ]).then((res: [void | SmartDineResponseMenuItemMapStockEntity]) => {\n if (res[0]) {\n this.modalController.dismiss({ value: res[0].item }, 'save', ItemPriceSelecionComponent.id);\n }\n });\n }\n\n private makeStockCreationRequest(stockDetails) {\n return this.menuItemMapStockRestControllerService.createMenuItemMapStock(\n stockDetails, this.restaurantId, this.restaurantBranchId, this.menuItemMapping.menuItemMapId\n ).toPromise().catch((err) => {\n console.error('Unable to update stock details!', stockDetails, err);\n });\n }\n\n private getPriceHistoryData(priceHistory: any[], menuItemMapping: any) {\n let itemPriceList = [];\n let itemPriceHistory = [];\n \n if (priceHistory) {\n priceHistory.forEach((data: { menuItemId: string; priceHistory: any; })=>{\n if(menuItemMapping.menuItemMapId === data.menuItemId){\n itemPriceList = data.priceHistory;\n }\n });\n }\n \n if (itemPriceList) {\n const priceDetails = menuItemMapping.priceDetails;\n const currentPriceExists = itemPriceList.find((item: MenuItemMapPriceEntity) => item.menuItemMapPriceId === this.priceId);\n if (!currentPriceExists && priceDetails) {\n // Filter out any existing price history data that has the same date range as the new price details\n itemPriceList = itemPriceList.filter((item: MenuItemMapPriceEntity) => {\n return !(priceDetails.fromDate >= item.fromDate && priceDetails.fromDate <= item.toDate) &&\n !(priceDetails.toDate >= item.fromDate && priceDetails.toDate <= item.toDate) &&\n !(priceDetails.fromDate <= item.fromDate && priceDetails.toDate >= item.toDate);\n });\n \n itemPriceList.push(priceDetails);\n } else if (currentPriceExists && priceDetails) {\n const index = itemPriceList.findIndex((item: MenuItemMapPriceEntity) => item.menuItemMapPriceId === this.priceId);\n \n itemPriceList = itemPriceList.filter((item: MenuItemMapPriceEntity) => {\n return !(priceDetails.fromDate >= item.fromDate && priceDetails.fromDate <= item.toDate) &&\n !(priceDetails.toDate >= item.fromDate && priceDetails.toDate <= item.toDate) &&\n !(priceDetails.fromDate <= item.fromDate && priceDetails.toDate >= item.toDate) ||\n (item.menuItemMapPriceId === this.priceId);\n });\n \n itemPriceList.splice(index, 1, priceDetails);\n }\n \n itemPriceHistory = [...itemPriceList];\n }\n \n return {\n itemPriceList,\n itemPriceHistory\n };\n }\n \n}\n","export default \"\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n

\\n \\n \\n \\n
\\n {{history.fromDate | date:'mediumDate'}}    to    {{history.toDate | date:'mediumDate'}}\\n
\\n
\\n \\n
\\n {{history.price}} \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n\";","export default \"@import url(\\\"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&family=Roboto+Condensed:wght@400;500;600;700&display=swap\\\");\\n:root {\\n --poppins-font: \\\"Poppins\\\", sans-serif;\\n --roboto-font: \\\"Roboto Condensed\\\", sans-serif;\\n}\\n.heading-title {\\n font-size: 22px;\\n color: #fff;\\n font-family: var(--poppins-font);\\n font-weight: 600;\\n}\\n.descriptions {\\n font-size: 16px;\\n font-weight: normal;\\n line-height: 22px;\\n font-family: var(--roboto-font);\\n color: #444444 !important;\\n text-align: justify !important;\\n}\\n.page-title {\\n font-size: 28px;\\n font-family: var(--poppins-font);\\n font-weight: 700;\\n line-height: 42px;\\n color: #417432;\\n}\\n.page-subtitle {\\n font-size: 22px;\\n font-family: var(--poppins-font);\\n font-weight: 600;\\n line-height: 32px;\\n color: #1d1b1b;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3ByaXZhY3kucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFRLDBJQUFBO0FBQ1I7RUFDSSxxQ0FBQTtFQUNBLDZDQUFBO0FBQ0o7QUFDQTtFQUNJLGVBQUE7RUFDQSxXQUFBO0VBQ0EsZ0NBQUE7RUFDQSxnQkFBQTtBQUVKO0FBQUE7RUFDSSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLCtCQUFBO0VBQ0EseUJBQUE7RUFDQSw4QkFBQTtBQUdKO0FBREE7RUFDSSxlQUFBO0VBQ0EsZ0NBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBQUlKO0FBRkE7RUFDSSxlQUFBO0VBQ0EsZ0NBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBQUtKIiwiZmlsZSI6InByaXZhY3kucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UG9wcGluczp3Z2h0QDQwMDs1MDA7NzAwJmZhbWlseT1Sb2JvdG8rQ29uZGVuc2VkOndnaHRANDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCcpO1xuOnJvb3Qge1xuICAgIC0tcG9wcGlucy1mb250OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7XG4gICAgLS1yb2JvdG8tZm9udDogJ1JvYm90byBDb25kZW5zZWQnLCBzYW5zLXNlcmlmO1xufVxuLmhlYWRpbmctdGl0bGV7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1wb3BwaW5zLWZvbnQpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVzY3JpcHRpb25ze1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1yb2JvdG8tZm9udCk7XG4gICAgY29sb3I6ICM0NDQ0NDQgIWltcG9ydGFudDsgXG4gICAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50O1xufVxuLnBhZ2UtdGl0bGV7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1wb3BwaW5zLWZvbnQpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDQycHg7XG4gICAgY29sb3I6ICM0MTc0MzI7IFxufVxuLnBhZ2Utc3VidGl0bGV7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1wb3BwaW5zLWZvbnQpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgY29sb3I6ICMxZDFiMWI7IFxufSJdfQ== */\";","export default \"\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { GeoLocation } from './geoLocation';\n\nexport interface AddressModel { \n addressId?: string;\n addressName?: string;\n userId?: string;\n houseNumber?: string;\n buildingName?: string;\n address?: string;\n city?: string;\n district?: string;\n landmark?: string;\n state?: string;\n country?: string;\n countryCode?: string;\n pinCode?: string;\n location?: GeoLocation;\n addressType?: AddressModel.AddressTypeEnum;\n addressTypeClassification?: AddressModel.AddressTypeClassificationEnum;\n}\nexport namespace AddressModel {\n export type AddressTypeEnum = 'HOME' | 'OFFICE';\n export const AddressTypeEnum = {\n HOME: 'HOME' as AddressTypeEnum,\n OFFICE: 'OFFICE' as AddressTypeEnum\n };\n export type AddressTypeClassificationEnum = 'BILLING' | 'SHIPPING';\n export const AddressTypeClassificationEnum = {\n BILLING: 'BILLING' as AddressTypeClassificationEnum,\n SHIPPING: 'SHIPPING' as AddressTypeClassificationEnum\n };\n}","export interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length == 0) {\n return undefined;\n }\n\n let type = contentTypes.find(x => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length == 0) {\n return undefined;\n }\n\n let type = accepts.find(x => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime != null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","export default \"ion-card.notification-popup {\\n max-height: 400px;\\n border-radius: 8px;\\n overflow: auto;\\n}\\nion-card.notification-popup ion-title {\\n padding: 10px;\\n color: #0089ff;\\n font-weight: 600;\\n}\\nion-card.notification-popup .notify-text {\\n font-size: 15px;\\n color: #010010;\\n font-weight: 500;\\n}\\nion-card.notification-popup .highlight {\\n color: #0e0f10;\\n font-weight: 700;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0FBQ0o7QUFDSTtFQUNJLGFBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7QUFDUjtBQUVJO0VBQ0ksZUFBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtBQUFSO0FBR0k7RUFDSSxjQUFBO0VBQ0EsZ0JBQUE7QUFEUiIsImZpbGUiOiJub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tY2FyZC5ub3RpZmljYXRpb24tcG9wdXB7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIFxuICAgIGlvbi10aXRsZXtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgY29sb3I6ICMwMDg5ZmY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICAgIFxuICAgIC5ub3RpZnktdGV4dHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBjb2xvcjogIzAxMDAxMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAuaGlnaGxpZ2h0e1xuICAgICAgICBjb2xvcjogIzBlMGYxMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG59Il19 */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RestaurantGroupMapEntity } from '../model/restaurantGroupMapEntity';\nimport { SmartDineResponseRestaurantGroupMapEntity } from '../model/smartDineResponseRestaurantGroupMapEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantGroupMapRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createUserRestaurantGroupMapMaps(body: RestaurantGroupMapEntity, observe?: 'body', reportProgress?: boolean): Observable;\n public createUserRestaurantGroupMapMaps(body: RestaurantGroupMapEntity, observe?: 'response', reportProgress?: boolean): Observable>;\n public createUserRestaurantGroupMapMaps(body: RestaurantGroupMapEntity, observe?: 'events', reportProgress?: boolean): Observable>;\n public createUserRestaurantGroupMapMaps(body: RestaurantGroupMapEntity, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createUserRestaurantGroupMapMaps.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/restaurantgroupmaps`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantGroupMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRestaurantGroupMap(restaurantGroupMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteRestaurantGroupMap(restaurantGroupMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteRestaurantGroupMap(restaurantGroupMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteRestaurantGroupMap(restaurantGroupMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantGroupMapId === null || restaurantGroupMapId === undefined) {\n throw new Error('Required parameter restaurantGroupMapId was null or undefined when calling deleteRestaurantGroupMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/restaurantgroupmaps/${encodeURIComponent(String(restaurantGroupMapId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantGroupMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantGroupMap(restaurantGroupMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantGroupMap(restaurantGroupMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantGroupMap(restaurantGroupMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantGroupMap(restaurantGroupMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantGroupMapId === null || restaurantGroupMapId === undefined) {\n throw new Error('Required parameter restaurantGroupMapId was null or undefined when calling getRestaurantGroupMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restaurantgroupmaps/${encodeURIComponent(String(restaurantGroupMapId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantGroupMaps(observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantGroupMaps(observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantGroupMaps(observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantGroupMaps(observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restaurantgroupmaps`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantGroupMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateRestaurantGroupMap(body: RestaurantGroupMapEntity, restaurantGroupMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateRestaurantGroupMap(body: RestaurantGroupMapEntity, restaurantGroupMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateRestaurantGroupMap(body: RestaurantGroupMapEntity, restaurantGroupMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateRestaurantGroupMap(body: RestaurantGroupMapEntity, restaurantGroupMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateRestaurantGroupMap.');\n }\n\n if (restaurantGroupMapId === null || restaurantGroupMapId === undefined) {\n throw new Error('Required parameter restaurantGroupMapId was null or undefined when calling updateRestaurantGroupMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/restaurantgroupmaps/${encodeURIComponent(String(restaurantGroupMapId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \":host {\\n display: inline-block;\\n font-size: 1rem;\\n}\\n\\n.logo-container {\\n font-size: inherit;\\n display: flex;\\n align-items: center;\\n}\\n\\n.logo-container > * {\\n padding: 0.5em;\\n}\\n\\n.logo-container .logo {\\n font-size: inherit;\\n}\\n\\n.logo-container .logo .logo-image {\\n width: 4em;\\n}\\n\\n.logo-container .headings {\\n font-size: inherit;\\n}\\n\\n.logo-container .headings .title {\\n font-size: 1.7em;\\n line-height: 1em;\\n font-family: \\\"Staatliches\\\";\\n color: var(--ion-color-secondary);\\n letter-spacing: 5px;\\n vertical-align: text-top;\\n text-align: left;\\n}\\n\\n.logo-container .headings .title .dine {\\n color: var(--ion-color-tertiary);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xvZ28uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxxQkFBQTtFQUNBLGVBQUE7QUFDRjs7QUFFQTtFQUNFLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0FBQ0Y7O0FBQ0U7RUFDRSxjQUFBO0FBQ0o7O0FBRUU7RUFDRSxrQkFBQTtBQUFKOztBQUVJO0VBQ0UsVUFBQTtBQUFOOztBQUlFO0VBQ0Usa0JBQUE7QUFGSjs7QUFJSTtFQUNFLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwwQkFBQTtFQUNBLGlDQUFBO0VBQ0EsbUJBQUE7RUFDQSx3QkFBQTtFQUNBLGdCQUFBO0FBRk47O0FBSU07RUFDRSxnQ0FBQTtBQUZSIiwiZmlsZSI6ImxvZ28uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4ubG9nby1jb250YWluZXIge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgPioge1xuICAgIHBhZGRpbmc6IC41ZW07XG4gIH1cblxuICAubG9nbyB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuXG4gICAgLmxvZ28taW1hZ2Uge1xuICAgICAgd2lkdGg6IDRlbTtcbiAgICB9XG4gIH1cblxuICAuaGVhZGluZ3Mge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuICAgIC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuN2VtO1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgIGZvbnQtZmFtaWx5OiAnU3RhYXRsaWNoZXMnO1xuICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDVweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgXG4gICAgICAuZGluZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItdGVydGlhcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19 */\";","export default \":host {\\n display: block;\\n height: 100%;\\n}\\n\\n.side-bar {\\n border-right: 1px solid rgba(0, 0, 0, 0.07);\\n height: 100%;\\n position: relative;\\n box-sizing: border-box;\\n max-width: var(--side-menu-width);\\n transition: width 0.3s cubic-bezier(0.5, 1, 0.89, 1);\\n}\\n\\n.side-bar ion-item.expand-collapse {\\n --inner-padding-end: 22px;\\n}\\n\\n.side-bar ion-item.expand-collapse i {\\n margin: 0;\\n transition: transform 0.3s ease;\\n}\\n\\n.side-bar.expanded {\\n width: var(--side-menu-width);\\n}\\n\\n.side-bar.collapsed {\\n width: var(--side-menu-collapsed-width);\\n}\\n\\n.side-bar.collapsed ion-item.expand-collapse i {\\n transform: rotate(180deg);\\n -ms-transform: rotate(180deg);\\n -webkit-transform: rotate(180deg);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NpZGUtYmFyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsY0FBQTtFQUNBLFlBQUE7QUFBRjs7QUFHQTtFQUNFLDJDQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxpQ0FBQTtFQUNBLG9EQUFBO0FBQUY7O0FBRUU7RUFDRSx5QkFBQTtBQUFKOztBQUVJO0VBQ0UsU0FBQTtFQUdBLCtCQUFBO0FBQU47O0FBSUU7RUFDRSw2QkFBQTtBQUZKOztBQUtFO0VBQ0UsdUNBQUE7QUFISjs7QUFLSTtFQUNFLHlCQUFBO0VBQ0EsNkJBQUE7RUFDQSxpQ0FBQTtBQUhOIiwiZmlsZSI6InNpZGUtYmFyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5zaWRlLWJhciB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXgtd2lkdGg6IHZhcigtLXNpZGUtbWVudS13aWR0aCk7XG4gIHRyYW5zaXRpb246IHdpZHRoIC4zcyBjdWJpYy1iZXppZXIoMC41LCAxLCAwLjg5LCAxKTtcblxuICBpb24taXRlbS5leHBhbmQtY29sbGFwc2Uge1xuICAgIC0taW5uZXItcGFkZGluZy1lbmQ6IDIycHg7XG5cbiAgICBpIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMXMgZWFzZS1pbi1vdXQ7XG4gICAgICAtbXMtdHJhbnNpdGlvbjogLW1zLXRyYW5zZm9ybSAxcyBlYXNlLWluLW91dDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZTtcbiAgICB9XG4gIH1cblxuICAmLmV4cGFuZGVkIHtcbiAgICB3aWR0aDogdmFyKC0tc2lkZS1tZW51LXdpZHRoKTtcbiAgfVxuXG4gICYuY29sbGFwc2VkIHtcbiAgICB3aWR0aDogdmFyKC0tc2lkZS1tZW51LWNvbGxhcHNlZC13aWR0aCk7XG5cbiAgICBpb24taXRlbS5leHBhbmQtY29sbGFwc2UgaSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICB9XG59Il19 */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJtZXNzYWdlcy5jb21wb25lbnQuc2NzcyJ9 */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ParentOrderStatusUpdateResponse { \n restaurantId?: string;\n restaurantBranchId?: string;\n parentOrderId?: string;\n currentOrderPaymentStatus?: ParentOrderStatusUpdateResponse.CurrentOrderPaymentStatusEnum;\n prevOrderPaymentStatus?: ParentOrderStatusUpdateResponse.PrevOrderPaymentStatusEnum;\n}\nexport namespace ParentOrderStatusUpdateResponse {\n export type CurrentOrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const CurrentOrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as CurrentOrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as CurrentOrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as CurrentOrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as CurrentOrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as CurrentOrderPaymentStatusEnum,\n PAID: 'PAID' as CurrentOrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as CurrentOrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as CurrentOrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as CurrentOrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as CurrentOrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as CurrentOrderPaymentStatusEnum\n };\n export type PrevOrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const PrevOrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as PrevOrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as PrevOrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as PrevOrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as PrevOrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as PrevOrderPaymentStatusEnum,\n PAID: 'PAID' as PrevOrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as PrevOrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as PrevOrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as PrevOrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as PrevOrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as PrevOrderPaymentStatusEnum\n };\n}","export default \"\\n\\n \\n \\n Inside Restaurant\\n Scan QR code to see Menu\\n \\n \\n \\n \\n \\n Scan\\n \\n \\n \\n \\n \\n Want to view Special Menus\\n \\n \\n Select Restaurant and Branch to view Menu\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\";","export default \"\\n \\n \\n \\n \\n \\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\\"signup\\\"\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
Please provide below information.
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n +91\\n +1\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n {{ criterion.criterion }}\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n Create Account\\n \\n
\\n
\\n \\n
\\n
Please enter verification code.
\\n \\n \\n \\n \\n \\n \\n \\n Resend Code\\n \\n \\n
\\n \\n Verify\\n \\n
OR
\\n \\n Log in\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
Your account has been verifed successfully!
Please log in to continue.
\\n
\\n \\n Log in\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface RestaurantModelPrefTimeZone { \n id?: string;\n displayName?: string;\n dstsavings?: number;\n rawOffset?: number;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { GeoLocation } from './geoLocation';\n\nexport interface RestaurantBranchModel { \n restaurantBranchId?: string;\n restaurantBranchCode?: string;\n name?: string;\n description?: string;\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n countryCode?: string;\n location?: GeoLocation;\n restaurantId?: string;\n gstIN?: string;\n fssai?: string;\n emailId?: string;\n website?: string;\n contactNumber?: string;\n pincode?: string;\n allowedOrderTypes?: Array;\n allowedPaymentPreferences?: Array;\n}\nexport namespace RestaurantBranchModel {\n export type AllowedOrderTypesEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const AllowedOrderTypesEnum = {\n DINEIN: 'DINE_IN' as AllowedOrderTypesEnum,\n DELIVERY: 'DELIVERY' as AllowedOrderTypesEnum,\n TAKEAWAY: 'TAKEAWAY' as AllowedOrderTypesEnum\n };\n export type AllowedPaymentPreferencesEnum = 'PAY_BY_ONLINE' | 'PAY_BY_CASH';\n export const AllowedPaymentPreferencesEnum = {\n ONLINE: 'PAY_BY_ONLINE' as AllowedPaymentPreferencesEnum,\n CASH: 'PAY_BY_CASH' as AllowedPaymentPreferencesEnum\n };\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RedirectUserService {\n private redirectUrl: string | null = null;\n\n public setRedirectUrl(url: string): void {\n this.redirectUrl = url;\n }\n\n public getRedirectUrl(): string | null {\n return this.redirectUrl;\n }\n\n public clearRedirectUrl(): void {\n this.redirectUrl = null;\n }\n \n}","export default \"\\n \\n \\n \\n \\n \\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\\"login\\\"\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n\\n \\n \\n \\n +91\\n +1\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n
\\n Forgot Password?\\n \\n
\\n
\\n \\n
\\n \\n Log in\\n \\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n Change Password\\n \\n
OR
\\n \\n Sign up\\n \\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n Confirm\\n \\n
OR
\\n \\n Sign up\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RestaurantRegistrationModel } from '../model/restaurantRegistrationModel';\nimport { SmartDineResponseRestaurantRegistrationModel } from '../model/smartDineResponseRestaurantRegistrationModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantRegistrationRestControllerForUsersService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createRestaurants(body: RestaurantRegistrationModel, observe?: 'body', reportProgress?: boolean): Observable;\n public createRestaurants(body: RestaurantRegistrationModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public createRestaurants(body: RestaurantRegistrationModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public createRestaurants(body: RestaurantRegistrationModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createRestaurants.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/common/restaurants/register`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OrderPriceModel { \n totalPriceWithDiscount?: number;\n itemLevelTotalPriceWithDiscount?: number;\n itemLevelDiscountAmount?: number;\n totalPriceWithDiscountAndTax?: number;\n totalPrice?: number;\n discountAmount?: number;\n taxAmount?: number;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { OrderPriceModel } from './orderPriceModel';\nimport { ParentOrderSummaryModel } from './parentOrderSummaryModel';\nimport { RestaurantBranchModel } from './restaurantBranchModel';\nimport { RestaurantBranchTableModel } from './restaurantBranchTableModel';\nimport { RestaurantModel } from './restaurantModel';\nimport { UserModel } from './userModel';\n\nexport interface OrderSummaryModel { \n restaurantId?: string;\n restaurantBranchId?: string;\n restaurantModel?: RestaurantModel;\n restaurantBranchModel?: RestaurantBranchModel;\n restaurantBranchTableModel?: RestaurantBranchTableModel;\n orderId?: string;\n parentOrderId?: string;\n orderNumber?: number;\n parentOrderNumber?: number;\n orderType?: OrderSummaryModel.OrderTypeEnum;\n noOfItems?: number;\n orderPriceModel?: OrderPriceModel;\n orderStatus?: OrderSummaryModel.OrderStatusEnum;\n orderPaymentStatus?: OrderSummaryModel.OrderPaymentStatusEnum;\n createdAt?: Date;\n createdBy?: UserModel;\n parentOrderModel?: ParentOrderSummaryModel;\n showPayNow?: boolean;\n showBill?: boolean;\n showParentOrderOption?: boolean;\n}\nexport namespace OrderSummaryModel {\n export type OrderTypeEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const OrderTypeEnum = {\n DINEIN: 'DINE_IN' as OrderTypeEnum,\n DELIVERY: 'DELIVERY' as OrderTypeEnum,\n TAKEAWAY: 'TAKEAWAY' as OrderTypeEnum\n };\n export type OrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const OrderStatusEnum = {\n DRAFT: 'DRAFT' as OrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as OrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as OrderStatusEnum,\n CANCELLED: 'CANCELLED' as OrderStatusEnum,\n DECLINED: 'DECLINED' as OrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as OrderStatusEnum,\n PREPARING: 'PREPARING' as OrderStatusEnum,\n PREPARED: 'PREPARED' as OrderStatusEnum,\n DELIVERED: 'DELIVERED' as OrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as OrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as OrderStatusEnum\n };\n export type OrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const OrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as OrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as OrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as OrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as OrderPaymentStatusEnum,\n PAID: 'PAID' as OrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as OrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as OrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as OrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as OrderPaymentStatusEnum\n };\n}","export default \"ion-menu {\\n --width: var(--side-menu-width, 304px);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2hvbWUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxzQ0FBQTtBQUFGIiwiZmlsZSI6ImhvbWUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbmlvbi1tZW51IHtcbiAgLS13aWR0aDogdmFyKC0tc2lkZS1tZW51LXdpZHRoLCAzMDRweCk7XG59Il19 */\";","import { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\nimport {\n MenuRestControllerService,\n RestaurantEntity,\n RestaurantRestControllerService,\n SmartDineResponseMenuEntity,\n MenuEntity,\n SmartDineResponseRestaurantEntity,\n} from 'src/app/swagger';\nimport { MenuNavService } from '../../services/menu-nav/menu-nav.service';\n\n@Component({\n selector: 'app-sd-menu-nav-bar',\n templateUrl: './menu-nav-bar.component.html',\n styleUrls: ['./menu-nav-bar.component.scss'],\n})\nexport class MenuNavBarComponent implements OnInit {\n\n public restaurantId: string | null = null;\n public restaurantBranchId: string | null = null;\n public tableId: string | null = null;\n public restaurant: RestaurantEntity | null = null;\n\n public menus: MenuEntity[] = [];\n\n public forCustomer = false;\n\n constructor(\n activatedRoute: ActivatedRoute,\n private menuNavService: MenuNavService,\n private router: Router,\n private menuRestControllerService: MenuRestControllerService,\n private restaurantRestControllerService: RestaurantRestControllerService,\n ) {\n const currentUrl = this.router.routerState.snapshot.url;\n this.forCustomer = currentUrl.startsWith('/customer');\n\n activatedRoute.queryParams.subscribe((queryParams) => {\n this.restaurantId = queryParams?.restaurantId || null;\n this.restaurantBranchId = queryParams?.restaurantBranchId || null;\n this.tableId = queryParams?.tableId || null;\n this.init();\n });\n }\n\n public ngOnInit() {\n this.init();\n }\n\n public onHomeMenuClick(_: MouseEvent) {\n this.menuNavService.clear();\n const extras: NavigationExtras = { queryParams: {} };\n if (this.restaurantId) {\n extras.queryParams.restaurantId = this.restaurantId;\n }\n if (this.restaurantBranchId) {\n extras.queryParams.restaurantBranchId = this.restaurantBranchId;\n }\n if (this.tableId) {\n extras.queryParams.tableId = this.tableId;\n }\n const currentUrl = this.router.routerState.snapshot.url;\n const baseUrl = currentUrl.match(/(.*)menus/g)[0];\n this.router.navigateByUrl(baseUrl);\n this.router.navigate([baseUrl], extras);\n }\n\n public onMenuClick(_: MouseEvent, menu: MenuEntity, index: number) {\n this.menus.splice(index + 1);\n this.menuNavService.set(this.menus);\n const extras: NavigationExtras = { queryParams: {} };\n if (menu.restaurantId) {\n extras.queryParams.restaurantId = menu.restaurantId;\n }\n if (menu.restaurantBranchId) {\n extras.queryParams.restaurantBranchId = menu.restaurantBranchId;\n }\n if (this.tableId) {\n extras.queryParams.tableId = this.tableId;\n }\n const currentUrl = this.router.routerState.snapshot.url;\n const baseUrl = currentUrl.match(/(.*)menus/g)[0];\n this.router.navigate([baseUrl, menu.menuId], extras);\n }\n\n private init() {\n this.setMenus();\n\n if (!this.forCustomer && this.restaurantId) {\n this.setRestaurantInfo();\n }\n }\n\n private setMenus() {\n this.menuNavService.getMenus().subscribe({\n next: (menus: MenuEntity[]) => {\n this.menus = menus;\n }\n });\n }\n\n private setRestaurantInfo() {\n this.restaurantRestControllerService.getRestaurant(this.restaurantId).subscribe({\n next: (restaurantInfo: SmartDineResponseRestaurantEntity) => {\n this.restaurant = restaurantInfo.item;\n },\n error: (err) => {\n console.error('Unable to get restaurant info!', err);\n }\n });\n }\n\n public rebuild(menuId?: string) {\n this.menus = [];\n }\n\n private setMenu(menuId: string) {\n this.menuRestControllerService.getMenu(menuId).subscribe(\n (res: SmartDineResponseMenuEntity) => {\n // this.menu.res.item;\n // this.form.patchValue(this.menu);\n },\n (err) => {\n console.error('Unable to get menu details!', err);\n }\n );\n }\n\n}\n","export default \"
\\n \\n \\n \\n \\n \\n \\n
\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ParentOrderShareRequest } from '../model/parentOrderShareRequest';\nimport { ParentOrderStatusUpdateRequest } from '../model/parentOrderStatusUpdateRequest';\nimport { SmartDineResponseParentOrderModel } from '../model/smartDineResponseParentOrderModel';\nimport { SmartDineResponseParentOrderShareResponse } from '../model/smartDineResponseParentOrderShareResponse';\nimport { SmartDineResponseParentOrderStatusUpdateResponse } from '../model/smartDineResponseParentOrderStatusUpdateResponse';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class ParentOrderRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param parentOrderId \n * @param restaurantId \n * @param restaurantBranchId \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getParentOrderDetail(parentOrderId: string, restaurantId?: string, restaurantBranchId?: string, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getParentOrderDetail(parentOrderId: string, restaurantId?: string, restaurantBranchId?: string, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getParentOrderDetail(parentOrderId: string, restaurantId?: string, restaurantBranchId?: string, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getParentOrderDetail(parentOrderId: string, restaurantId?: string, restaurantBranchId?: string, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (parentOrderId === null || parentOrderId === undefined) {\n throw new Error('Required parameter parentOrderId was null or undefined when calling getParentOrderDetail.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/parentorders/${encodeURIComponent(String(parentOrderId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public shareParentOrder(body: ParentOrderShareRequest, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public shareParentOrder(body: ParentOrderShareRequest, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public shareParentOrder(body: ParentOrderShareRequest, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public shareParentOrder(body: ParentOrderShareRequest, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling shareParentOrder.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/parentorders/share`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateParentOrderStatus(body: ParentOrderStatusUpdateRequest, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateParentOrderStatus(body: ParentOrderStatusUpdateRequest, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateParentOrderStatus(body: ParentOrderStatusUpdateRequest, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateParentOrderStatus(body: ParentOrderStatusUpdateRequest, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateParentOrderStatus.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('patch',`${this.basePath}/api/admin/parentorders/updatestatus`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\nexport type OrderStatus = 'DRAFT' | 'ITEMS_RESERVED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'SUBMITTED' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'NOT_ACCEPTED' | 'PICKUP' | 'PICKED_UP' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED';\n\nconst statusProgress: { [key in OrderStatus]?: number; } = {\n ITEMS_RESERVED: 0,\n DRAFT: 0,\n PAYMENT_INITIATED: .4,\n PAYMENT_FAILED: .4,\n PAYMENT_REFUNDED: .4,\n REFUND_INITIATED: .4,\n REFUND_SUCCESS: .4,\n PAYMENT_SUCCESS: .5,\n SUBMITTED: .6,\n CANCELLED: .6,\n NOT_ACCEPTED: .6,\n DECLINED: .6,\n ACCEPTED: .7,\n PREPARING: .80,\n PREPARED: .85,\n PICKUP: .90,\n PICKED_UP: .90,\n DELIVERED: 1,\n}\n\nexport interface OrderStatusInfo {\n id: string;\n classId: string;\n label: string;\n color: string;\n progress: number;\n allowFor?: string[];\n}\n\nexport const statusInfo: { [key in OrderStatus]?: OrderStatusInfo; } = {\n ITEMS_RESERVED: {\n id: 'ITEMS_RESERVED',\n classId: 'items-reserved',\n label: 'Items Reserved',\n color: '#3880ff', // blue\n progress: 0,\n },\n DRAFT: {\n id: 'DRAFT',\n classId: 'draft',\n label: 'Draft',\n color: '#3880ff', // blue\n progress: 0,\n },\n PAYMENT_INITIATED: {\n id: 'PAYMENT_INITIATED',\n classId: 'payment-initiated',\n label: 'Payment Initiated',\n color: '#3880ff', // blue\n progress: .4,\n },\n PAYMENT_FAILED: {\n id: 'PAYMENT_FAILED',\n classId: 'payment-failed',\n label: 'Payment Failed',\n color: '#eb445a', // red\n progress: .4,\n },\n PAYMENT_REFUNDED: {\n id: 'PAYMENT_REFUNDED',\n classId: 'payment-refunded',\n label: 'Payment Refunded',\n color: '#ffc409', // yellow\n progress: .4,\n },\n REFUND_INITIATED: {\n id: 'REFUND_INITIATED',\n classId: 'refund-initiated',\n label: 'Refund Initiated',\n color: '#ffc409', // yellow\n progress: .4,\n },\n REFUND_SUCCESS: {\n id: 'REFUND_SUCCESS',\n classId: 'refund-success',\n label: 'Refund Success',\n color: '#ffc409', // yellow\n progress: .5,\n },\n PAYMENT_SUCCESS: {\n id: 'PAYMENT_SUCCESS',\n classId: 'payment-success',\n label: 'Payment Success',\n color: '#3880ff', // blue\n progress: .5,\n },\n SUBMITTED: {\n id: 'SUBMITTED',\n classId: 'submitted',\n label: 'Submitted',\n color: '#3880ff', // blue\n progress: .6,\n },\n CANCELLED: {\n id: 'CANCELLED',\n classId: 'cancelled',\n label: 'Cancelled',\n color: '#989aa2', // grey\n progress: .6,\n },\n NOT_ACCEPTED: {\n id: 'NOT_ACCEPTED',\n classId: 'not-accepted',\n label: 'Not Accepted',\n color: '#ffc409', // yellow\n progress: .6,\n },\n DECLINED: {\n id: 'DECLINED',\n classId: 'declined',\n label: 'Declined',\n color: '#eb445a', // red\n progress: .6,\n },\n ACCEPTED: {\n id: 'ACCEPTED',\n classId: 'accepted',\n label: 'Accepted',\n color: '#3880ff', // blue\n progress: .7,\n allowFor: ['kitchen'],\n },\n PREPARING: {\n id: 'PREPARING',\n classId: 'preparing',\n label: 'Preparing',\n color: '#3880ff', // blue\n progress: .8,\n allowFor: ['kitchen'],\n },\n PREPARED: {\n id: 'PREPARED',\n classId: 'prepared',\n label: 'Prepared',\n color: '#3880ff', // blue\n progress: .85,\n allowFor: ['kitchen'],\n },\n PICKUP: {\n id: 'PICKUP',\n classId: 'pickup',\n label: 'Pickup',\n color: '#3880ff', // blue\n progress: .9,\n },\n PICKED_UP: {\n id: 'PICKED_UP',\n classId: 'picked-up',\n label: 'Picked Up',\n color: '#3880ff', // blue\n progress: .9,\n },\n DELIVERED: {\n id: 'DELIVERED',\n classId: 'delivered',\n label: 'Delivered',\n color: '#2dd36f', // green\n progress: 1,\n },\n}\n\n\n@Component({\n selector: 'app-order-progress-bar',\n templateUrl: './order-progress-bar.component.html',\n styleUrls: ['./order-progress-bar.component.scss'],\n})\nexport class OrderProgressBarComponent implements OnInit {\n\n\n public statusInfo: OrderStatusInfo | null = null;\n public _status: string;\n @Input()\n set status(value: OrderStatus) {\n this._status = value;\n this.statusInfo = statusInfo[value];\n }\n\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component } from '@angular/core';\nimport { PopoverController } from '@ionic/angular';\n\n@Component({\n selector: 'app-help-support',\n template: `\n \n \n \n \n \n

\n For help and support, please create ticket from\n Help & Support\n

\n
\n
\n
`,\n styles: [\n `\n .text-label {\n font: normal normal normal 14px/21px Chivo;\n color: #0089ff;\n }\n .fw-600 {\n font-size: 16px !important;\n font-weight: 600 !important;\n }\n ion-content{\n position: relative;\n }\n .close-icon {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n ::ng-deep .custom-popover {\n position: absolute !important;\n left: -250px !important;\n top: -50px !important;\n right: auto;\n }\n `,\n ],\n})\nexport class HelpSupportComponent {\n public static readonly id = 'help-support-modal';\n\n constructor(private popoverController: PopoverController) {}\n\n public getSupportLink(): string {\n return 'https://smartdinenow.raiseaticket.com';\n }\n\n public closePopover() {\n this.popoverController.dismiss();\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { Geolocation, Position } from '@capacitor/geolocation';\nimport {MapInfoWindow, MapMarker} from '@angular/google-maps';\nimport { GeoLocation } from 'src/app/swagger';\nimport { ModalController } from '@ionic/angular';\n@Component({\n selector: 'app-address',\n templateUrl: './address.component.html',\n styleUrls: ['./address.component.scss'],\n})\nexport class AddressComponent implements OnInit {\n\n \n public static readonly id = 'map-address-modal';\n\n @Input()\n public location: GeoLocation | null = null;\n\n @ViewChild(MapInfoWindow) infoWindow: MapInfoWindow;\n\n center: google.maps.LatLngLiteral = {lat: 24, lng: 12};\n zoom = 16;\n infoWindowContent = '';\n markers: any = [];\n\n addMarker(location: GeoLocation) {\n this.markers.push({\n position: {\n lat: location.latitude,\n lng: location.longitude,\n },\n label: {\n color: 'red',\n text: 'Marker label ' + (this.markers.length + 1),\n },\n \n title: 'Marker title ' + (this.markers.length + 1),\n options: { draggable: true },\n });\n }\n\n openInfoWindow(marker: MapMarker, content) { \n \n const geocoder = new google.maps.Geocoder();\n\n this.markers[0].position = marker.getPosition().toJSON();;\n \n geocoder\n .geocode({ location: marker.getPosition()}, (geocoderResults) => {\n if (geocoderResults) {\n this.infoWindowContent = geocoderResults[0].formatted_address;\n this.infoWindow.open(marker);\n } else {\n window.alert(\"No results found\");\n }\n });\n\n\n\n }\n\n constructor(private modalController: ModalController) { \n \n \n }\n\n public async initMap() {\n if (this.location == null || this.location.latitude == null || this.location.longitude == null) {\n const coordinates = await Geolocation.getCurrentPosition();\n this.location = {latitude: coordinates.coords.latitude, longitude:coordinates.coords.longitude}; \n }\n this.center = {lat: this.location.latitude, lng: this.location.longitude};\n this.addMarker(this.location);\n }\n\n \n\n ngOnInit() {\n this.initMap(); \n }\n\n onSaveClick() {\n this.modalController.dismiss({location: this.markers[0].position},'', AddressComponent.id);\n }\n\n onCloseClick() {\n this.modalController.dismiss({}, '', AddressComponent.id);\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { ItemQuantity } from './itemQuantity';\nimport { OfferRuleModel } from './offerRuleModel';\nimport { OrderItemTaxInfoModel } from './orderItemTaxInfoModel';\n\nexport interface OrderItemModel {\n menuItemMapId?: string;\n menuName?: string;\n itemId?: string;\n menuItemType?: OrderItemModel.MenuItemTypeEnum;\n quantity?: number;\n unitPrice?: number;\n price?: number;\n priceWithDiscount?: number;\n outOfStock?: boolean;\n messageKey?: string;\n itemName?: string;\n itemDescription?: string;\n createdAt?: Date;\n orderItemTaxInfoModels?: { [key: string]: OrderItemTaxInfoModel };\n itemQuantity?: ItemQuantity;\n discountAmount?: number;\n offerRuleModel?: OfferRuleModel;\n}\nexport namespace OrderItemModel {\n export type MenuItemTypeEnum =\n | 'FOOD'\n | 'LIQUOR'\n | 'FOOD_5'\n | 'FOOD_12'\n | 'FOOD_18';\n export const MenuItemTypeEnum = {\n FOOD: 'FOOD' as MenuItemTypeEnum,\n LIQUOR: 'LIQUOR' as MenuItemTypeEnum,\n FOOD5: 'FOOD_5' as MenuItemTypeEnum,\n FOOD12: 'FOOD_12' as MenuItemTypeEnum,\n FOOD18: 'FOOD_18' as MenuItemTypeEnum,\n };\n}\n\nexport interface iOrderDetailDto {\n restaurantId: string;\n restaurantBranchId: string;\n orderId: string;\n orderNumber: number;\n status: string;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService {\n\n private messageSource = new BehaviorSubject('messageSource');\n private currentMessages = this.messageSource.asObservable();\n\n constructor() { }\n\n showMessage(message: string) {\n this.messageSource.next(message)\n }\n\n public getCurrentMessages() {\n return this.currentMessages;\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RestaurantTaxRuleMapEntity } from '../model/restaurantTaxRuleMapEntity';\nimport { SmartDineResponseRestaurantTaxRuleMapEntity } from '../model/smartDineResponseRestaurantTaxRuleMapEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantTaxRuleMapRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createUserRestaurantTaxRuleMapMaps(body: RestaurantTaxRuleMapEntity, observe?: 'body', reportProgress?: boolean): Observable;\n public createUserRestaurantTaxRuleMapMaps(body: RestaurantTaxRuleMapEntity, observe?: 'response', reportProgress?: boolean): Observable>;\n public createUserRestaurantTaxRuleMapMaps(body: RestaurantTaxRuleMapEntity, observe?: 'events', reportProgress?: boolean): Observable>;\n public createUserRestaurantTaxRuleMapMaps(body: RestaurantTaxRuleMapEntity, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createUserRestaurantTaxRuleMapMaps.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/restauranttaxrulemaps`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantTaxRuleMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRestaurantTaxRuleMap(restaurantTaxRuleMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteRestaurantTaxRuleMap(restaurantTaxRuleMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteRestaurantTaxRuleMap(restaurantTaxRuleMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteRestaurantTaxRuleMap(restaurantTaxRuleMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantTaxRuleMapId === null || restaurantTaxRuleMapId === undefined) {\n throw new Error('Required parameter restaurantTaxRuleMapId was null or undefined when calling deleteRestaurantTaxRuleMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/restauranttaxrulemaps/${encodeURIComponent(String(restaurantTaxRuleMapId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantTaxRuleMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantTaxRuleMap(restaurantTaxRuleMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantTaxRuleMap(restaurantTaxRuleMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantTaxRuleMap(restaurantTaxRuleMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantTaxRuleMap(restaurantTaxRuleMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantTaxRuleMapId === null || restaurantTaxRuleMapId === undefined) {\n throw new Error('Required parameter restaurantTaxRuleMapId was null or undefined when calling getRestaurantTaxRuleMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restauranttaxrulemaps/${encodeURIComponent(String(restaurantTaxRuleMapId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantTaxRuleMaps(restaurantId: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantTaxRuleMaps(restaurantId: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantTaxRuleMaps(restaurantId: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantTaxRuleMaps(restaurantId: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurantTaxRuleMaps.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restauranttaxrulemaps`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantTaxRuleMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateRestaurantTaxRuleMap(body: RestaurantTaxRuleMapEntity, restaurantTaxRuleMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateRestaurantTaxRuleMap(body: RestaurantTaxRuleMapEntity, restaurantTaxRuleMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateRestaurantTaxRuleMap(body: RestaurantTaxRuleMapEntity, restaurantTaxRuleMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateRestaurantTaxRuleMap(body: RestaurantTaxRuleMapEntity, restaurantTaxRuleMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateRestaurantTaxRuleMap.');\n }\n\n if (restaurantTaxRuleMapId === null || restaurantTaxRuleMapId === undefined) {\n throw new Error('Required parameter restaurantTaxRuleMapId was null or undefined when calling updateRestaurantTaxRuleMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/restauranttaxrulemaps/${encodeURIComponent(String(restaurantTaxRuleMapId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RestaurantBranchTableEntity } from '../model/restaurantBranchTableEntity';\nimport { SmartDineResponseRestaurantBranchTableEntity } from '../model/smartDineResponseRestaurantBranchTableEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantBranchTableRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createRestaurantBranchTable(body: RestaurantBranchTableEntity, restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createRestaurantBranchTable(body: RestaurantBranchTableEntity, restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createRestaurantBranchTable(body: RestaurantBranchTableEntity, restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createRestaurantBranchTable(body: RestaurantBranchTableEntity, restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createRestaurantBranchTable.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createRestaurantBranchTable.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling createRestaurantBranchTable.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}/tables`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param tableId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRestaurantBranchTable(restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteRestaurantBranchTable(restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteRestaurantBranchTable(restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteRestaurantBranchTable(restaurantId: string, restaurantBranchId: string, tableId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteRestaurantBranchTable.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling deleteRestaurantBranchTable.');\n }\n\n if (tableId === null || tableId === undefined) {\n throw new Error('Required parameter tableId was null or undefined when calling deleteRestaurantBranchTable.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}/tables/${encodeURIComponent(String(tableId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param tableId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantBranchTable(restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantBranchTable(restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantBranchTable(restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantBranchTable(restaurantId: string, restaurantBranchId: string, tableId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurantBranchTable.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getRestaurantBranchTable.');\n }\n\n if (tableId === null || tableId === undefined) {\n throw new Error('Required parameter tableId was null or undefined when calling getRestaurantBranchTable.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}/tables/${encodeURIComponent(String(tableId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantBranchTables1(restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantBranchTables1(restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantBranchTables1(restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantBranchTables1(restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurantBranchTables1.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getRestaurantBranchTables1.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}/tables`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param tableId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateRestaurantBranchTable(body: RestaurantBranchTableEntity, restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateRestaurantBranchTable(body: RestaurantBranchTableEntity, restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateRestaurantBranchTable(body: RestaurantBranchTableEntity, restaurantId: string, restaurantBranchId: string, tableId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateRestaurantBranchTable(body: RestaurantBranchTableEntity, restaurantId: string, restaurantBranchId: string, tableId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateRestaurantBranchTable.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateRestaurantBranchTable.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updateRestaurantBranchTable.');\n }\n\n if (tableId === null || tableId === undefined) {\n throw new Error('Required parameter tableId was null or undefined when calling updateRestaurantBranchTable.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}/tables/${encodeURIComponent(String(tableId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\n@Component({\n selector: 'app-privacy',\n templateUrl: './privacy.page.html',\n styleUrls: ['./privacy.page.scss'],\n})\nexport class PrivacyPage implements OnInit {\n\n public static readonly id = 'privacy-page-id';\n public isModalOpen: boolean = false;\n constructor(\n private modalController: ModalController) { }\n\n ngOnInit() {\n }\n\n public onCloseClick() {\n this.modalController.dismiss({}, '', PrivacyPage.id);\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PaymentOptionModel { \n paymentOptionId?: string;\n paymentGatewayName?: string;\n paymentGatewayCode?: string;\n paymentGatewayDescription?: string;\n paymentGatewayServiceName?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseImageInfoModel } from '../model/smartDineResponseImageInfoModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class SmartdineImageRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param fileKey \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteFile(fileKey: string, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteFile(fileKey: string, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteFile(fileKey: string, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteFile(fileKey: string, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (fileKey === null || fileKey === undefined) {\n throw new Error('Required parameter fileKey was null or undefined when calling deleteFile.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (menuId !== undefined && menuId !== null) {\n queryParameters = queryParameters.set('menuId', menuId);\n }\n if (fileKey !== undefined && fileKey !== null) {\n queryParameters = queryParameters.set('fileKey', fileKey);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/images/`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param fileKey \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public forwardToUrl(fileKey: string, observe?: 'body', reportProgress?: boolean): Observable;\n public forwardToUrl(fileKey: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public forwardToUrl(fileKey: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public forwardToUrl(fileKey: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (fileKey === null || fileKey === undefined) {\n throw new Error('Required parameter fileKey was null or undefined when calling forwardToUrl.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/images/url/${encodeURIComponent(String(fileKey))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getImages(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getImages(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getImages(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getImages(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuId === null || menuId === undefined) {\n throw new Error('Required parameter menuId was null or undefined when calling getImages.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/images/`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param fileKey \n * @param file \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateFileForm(fileKey: string, file?: Blob, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateFileForm(fileKey: string, file?: Blob, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateFileForm(fileKey: string, file?: Blob, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateFileForm(fileKey: string, file?: Blob, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (fileKey === null || fileKey === undefined) {\n throw new Error('Required parameter fileKey was null or undefined when calling updateFile.');\n }\n\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (menuId !== undefined && menuId !== null) {\n queryParameters = queryParameters.set('menuId', menuId);\n }\n if (fileKey !== undefined && fileKey !== null) {\n queryParameters = queryParameters.set('fileKey', fileKey);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): void; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/images/`,\n {\n body: convertFormParamsToString ? formParams.toString() : formParams,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param file \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public uploadFileForm(file?: Blob, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public uploadFileForm(file?: Blob, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public uploadFileForm(file?: Blob, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public uploadFileForm(file?: Blob, restaurantId?: string, restaurantBranchId?: string, menuId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (menuId !== undefined && menuId !== null) {\n queryParameters = queryParameters.set('menuId', menuId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): void; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/images/`,\n {\n body: convertFormParamsToString ? formParams.toString() : formParams,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"
\\n \\n
\\n\\n \\n\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AddressModel } from './addressModel';\nimport { OrderItemModel } from './orderItemModel';\nimport { OrderOfferInfoModel } from './orderOfferInfoModel';\nimport { OrderPriceModel } from './orderPriceModel';\nimport { OrderTaxInfoModel } from './orderTaxInfoModel';\nimport { RestaurantBranchModel } from './restaurantBranchModel';\nimport { RestaurantBranchTableModel } from './restaurantBranchTableModel';\nimport { RestaurantModel } from './restaurantModel';\nimport { UserModel } from './userModel';\n\nexport interface OrderModel { \n restaurantId?: string;\n restaurantBranchId?: string;\n tableId?: string;\n addressId?: string;\n restaurantModel?: RestaurantModel;\n restaurantBranchModel?: RestaurantBranchModel;\n restaurantBranchTableModel?: RestaurantBranchTableModel;\n cartId?: string;\n orderId?: string;\n orderNumber?: number;\n orderType?: OrderModel.OrderTypeEnum;\n noOfItems?: string;\n orderPriceModel?: OrderPriceModel;\n orderItemModels?: { [key: string]: OrderItemModel; };\n orderTaxInfoModels?: { [key: string]: OrderTaxInfoModel; };\n orderStatus?: OrderModel.OrderStatusEnum;\n nextPossibleOrderStatuses?: Array;\n createdAt?: Date;\n createdBy?: UserModel;\n parentOrderId?: string;\n parentOrderNumber?: number;\n orderPaymentStatus?: OrderModel.OrderPaymentStatusEnum;\n payLater?: boolean;\n orderOfferInfoModels?: { [key: string]: OrderOfferInfoModel; };\n paymentPreference?: OrderModel.PaymentPreferenceEnum;\n customerPhoneNo?: string;\n customerName?: string;\n customerAddressModel?: AddressModel;\n comments?: string;\n customerUserId?: string;\n}\nexport namespace OrderModel {\n export type OrderTypeEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const OrderTypeEnum = {\n DINEIN: 'DINE_IN' as OrderTypeEnum,\n DELIVERY: 'DELIVERY' as OrderTypeEnum,\n TAKEAWAY: 'TAKEAWAY' as OrderTypeEnum\n };\n export type OrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const OrderStatusEnum = {\n DRAFT: 'DRAFT' as OrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as OrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as OrderStatusEnum,\n CANCELLED: 'CANCELLED' as OrderStatusEnum,\n DECLINED: 'DECLINED' as OrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as OrderStatusEnum,\n PREPARING: 'PREPARING' as OrderStatusEnum,\n PREPARED: 'PREPARED' as OrderStatusEnum,\n DELIVERED: 'DELIVERED' as OrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as OrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as OrderStatusEnum\n };\n export type NextPossibleOrderStatusesEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const NextPossibleOrderStatusesEnum = {\n DRAFT: 'DRAFT' as NextPossibleOrderStatusesEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as NextPossibleOrderStatusesEnum,\n SUBMITTED: 'SUBMITTED' as NextPossibleOrderStatusesEnum,\n CANCELLED: 'CANCELLED' as NextPossibleOrderStatusesEnum,\n DECLINED: 'DECLINED' as NextPossibleOrderStatusesEnum,\n ACCEPTED: 'ACCEPTED' as NextPossibleOrderStatusesEnum,\n PREPARING: 'PREPARING' as NextPossibleOrderStatusesEnum,\n PREPARED: 'PREPARED' as NextPossibleOrderStatusesEnum,\n DELIVERED: 'DELIVERED' as NextPossibleOrderStatusesEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as NextPossibleOrderStatusesEnum,\n PICKEDUP: 'PICKED_UP' as NextPossibleOrderStatusesEnum\n };\n export type OrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const OrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as OrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as OrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as OrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as OrderPaymentStatusEnum,\n PAID: 'PAID' as OrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as OrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as OrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as OrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as OrderPaymentStatusEnum\n };\n export type PaymentPreferenceEnum = 'PAY_BY_ONLINE' | 'PAY_BY_CASH';\n export const PaymentPreferenceEnum = {\n ONLINE: 'PAY_BY_ONLINE' as PaymentPreferenceEnum,\n CASH: 'PAY_BY_CASH' as PaymentPreferenceEnum\n };\n}","import { MenuItem } from \"src/app/common/services/side-menu/side-menu.service\";\nimport { ProfileModel } from \"src/app/swagger\";\n\n\nexport const sideMenuItems: MenuItem[] = [\n {\n id: 'HOME',\n iconName: 'house-fill',\n iconSource: 'bootstrap',\n name: 'Home',\n link: '/resto-admin/home',\n pages: ['HomePage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.HOME,\n },\n {\n id: 'RESTAURANTS',\n iconName: 'restaurant-outline',\n name: 'Restaurants',\n link: '/resto-admin/restaurants',\n pages: ['RestaurantsPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.RESTAURANTS,\n },\n {\n id: 'MENUS',\n iconName: 'grid-outline',\n name: 'Menus',\n link: '/resto-admin/menus',\n pages: ['MenusPage', 'MenuDetailsPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.MENU,\n },\n {\n id: 'FOOD_ITEMS',\n iconName: 'fast-food-outline',\n name: 'Food Items',\n link: '/resto-admin/items',\n pages: ['ItemsPage', 'ItemDetailsPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.ITEMS,\n },\n {\n id: 'ORDER_MANAGEMENT',\n iconName: 'albums-outline',\n name: 'Order Management',\n link: '/resto-admin/orders',\n pages: ['OrdersPage', 'PaymentPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.ORDERS,\n label: 'Payment & Reviews'\n },\n {\n id: 'CAPTAIN_ORDER',\n iconName: 'newspaper-outline',\n name: 'Captain Order',\n link: '/resto-admin/captain-orders',\n pages: ['RaOrdersPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.CAPTAINORDERS,\n },\n {\n id: 'KITCHEN_MANAGEMENT',\n iconName: 'bonfire-outline',\n name: 'Kitchen Management',\n link: '/resto-admin/kitchen',\n pages: ['KitchenPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.KITCHEN,\n // badge: {\n // count: 5,\n // }, // TODO\n },\n {\n id: 'QR_CODE',\n iconName: 'qr-code-outline',\n name: 'QR Code',\n link: '/resto-admin/qr-codes',\n pages: ['QrCodesPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.QRCODE,\n }, \n {\n id: 'TAX_MANAGEMENT',\n iconName: 'briefcase-outline',\n name: 'Tax Management',\n link: '/resto-admin/tax',\n pages: ['TaxmanagementPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.TAX\n },\n {\n id: 'OFFER_MANAGEMENT',\n iconName: 'gift-outline',\n name: 'Offer Management',\n link: '/resto-admin/offers',\n pages: ['OffermanagementPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.OFFER,\n },\n {\n id: 'DAILY_EXPENSES',\n iconName: 'calculator',\n iconSource: 'bootstrap',\n name: 'Daily Expenses',\n link: '/resto-admin/daily-expenses',\n pages: ['DailyExpensesPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.DAILY_EXPENSES\n },\n {\n id: 'REPORTS',\n iconName: 'table',\n iconSource: 'bootstrap',\n name: 'Reports',\n link: '/resto-admin/reports',\n pages: ['ReportsPage'],\n enabled: true,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.REPORTS,\n },\n {\n id: 'INVENTORY',\n iconName: 'boxes',\n iconSource: 'bootstrap',\n name: 'Inventory',\n link: '/resto-admin/inventory',\n pages: ['InventoryPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.INVENTORY\n },\n {\n id: 'TABLE_BOOKING',\n iconName: 'calendar-outline',\n name: 'Table Booking',\n link: '/resto-admin/table-booking',\n pages: ['TableBookingPage'],\n enabled: false,\n functionality_name: ProfileModel.AllowedFunctionalitiesByRestaurantIdEnum.TABLE_BOOKING\n },\n];\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwcm9maWxlLXBvcG92ZXIuY29tcG9uZW50LnNjc3MifQ== */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { SmartDineImage } from './smartDineImage';\n\nexport interface ProductModel { \n productId?: string;\n name?: string;\n description?: string;\n images?: SmartDineImage;\n quantity?: number;\n qtyMeasurementUnit?: ProductModel.QtyMeasurementUnitEnum;\n}\nexport namespace ProductModel {\n export type QtyMeasurementUnitEnum = 'MILLI_LITERS' | 'LITERS' | 'KILO_LITERS' | 'PINT' | 'GALLON' | 'MILLI_GRAMS' | 'GRAMS' | 'KILO_GRAMS' | 'TONNE' | 'SMALL' | 'LARGE' | 'HALF' | 'FULL';\n export const QtyMeasurementUnitEnum = {\n MILLILITERS: 'MILLI_LITERS' as QtyMeasurementUnitEnum,\n LITERS: 'LITERS' as QtyMeasurementUnitEnum,\n KILOLITERS: 'KILO_LITERS' as QtyMeasurementUnitEnum,\n PINT: 'PINT' as QtyMeasurementUnitEnum,\n GALLON: 'GALLON' as QtyMeasurementUnitEnum,\n MILLIGRAMS: 'MILLI_GRAMS' as QtyMeasurementUnitEnum,\n GRAMS: 'GRAMS' as QtyMeasurementUnitEnum,\n KILOGRAMS: 'KILO_GRAMS' as QtyMeasurementUnitEnum,\n TONNE: 'TONNE' as QtyMeasurementUnitEnum,\n SMALL: 'SMALL' as QtyMeasurementUnitEnum,\n LARGE: 'LARGE' as QtyMeasurementUnitEnum,\n HALF: 'HALF' as QtyMeasurementUnitEnum,\n FULL: 'FULL' as QtyMeasurementUnitEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { PaymentRequestModel } from '../model/paymentRequestModel';\nimport { PaymentTransactionValidationModel } from '../model/paymentTransactionValidationModel';\nimport { SmartDineResponsePaymentTransactionModel } from '../model/smartDineResponsePaymentTransactionModel';\nimport { SmartDineResponsePaymentTransactionValidationModel } from '../model/smartDineResponsePaymentTransactionValidationModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class PaymentControllerForAdminService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public initiatePayment(body: PaymentRequestModel, observe?: 'body', reportProgress?: boolean): Observable;\n public initiatePayment(body: PaymentRequestModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public initiatePayment(body: PaymentRequestModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public initiatePayment(body: PaymentRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling initiatePayment.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/paymenttransactions/initiate`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public validatePayment(body: PaymentTransactionValidationModel, observe?: 'body', reportProgress?: boolean): Observable;\n public validatePayment(body: PaymentTransactionValidationModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public validatePayment(body: PaymentTransactionValidationModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public validatePayment(body: PaymentTransactionValidationModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling validatePayment.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/paymenttransactions/validate`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"\\n \\n Select Restaurant\\n \\n Cancel\\n \\n \\n\\n\\n\\n \\n \\n {{ restaurant.name }}\\n \\n \\n\\n \\n \\n \\n \\n\\n\";","import { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Auth } from '@aws-amplify/auth';\nimport { Configuration } from 'src/app/swagger';\nimport { CognitoUserSession } from 'amazon-cognito-identity-js';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n private session$: BehaviorSubject = new BehaviorSubject(null);\n\n private lock = false;\n\n public static configuration: Configuration = new Configuration({\n accessToken: ''\n });\n \n public static getConfiguration() {\n return AuthService.configuration;\n }\n\n public async init() {\n await this.getSession(true);\n }\n\n public async refresh() {\n await this.getSession(true);\n }\n\n public setSession(session: CognitoUserSession | null) {\n const accessToken = session?.getAccessToken().getJwtToken() || '';\n AuthService.configuration.accessToken = accessToken;\n\n this.session$.next(session);\n }\n\n public getSession(forceRefresh = false) {\n if (forceRefresh || !this.lock) {\n this.lock = true;\n this.loadSession();\n }\n return this.session$.asObservable();\n }\n\n public clearSession() {\n AuthService.configuration.accessToken = '';\n Auth.signOut().then(() => {\n this.session$.next(null);\n });\n }\n\n private loadSession() {\n return Auth.currentSession().then(\n (currentSession) => {\n const t = new Date();\n\n this.setSession(currentSession);\n },\n (err) => {\n console.error('Unable to get current session!', err);\n },\n );\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CategoryProductMapModel } from '../model/categoryProductMapModel';\nimport { SmartDineResponseCategoryProductMapModel } from '../model/smartDineResponseCategoryProductMapModel';\nimport { SmartDineResponseListCategoryProductMapModel } from '../model/smartDineResponseListCategoryProductMapModel';\nimport { SortByParam } from '../model/sortByParam';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class CategoryProductMapRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createCategoryProductMaps(body: CategoryProductMapModel, observe?: 'body', reportProgress?: boolean): Observable;\n public createCategoryProductMaps(body: CategoryProductMapModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public createCategoryProductMaps(body: CategoryProductMapModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public createCategoryProductMaps(body: CategoryProductMapModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createCategoryProductMaps.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/categoryproductmaps`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param categoryProductMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteCategoryProductMap(categoryProductMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteCategoryProductMap(categoryProductMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteCategoryProductMap(categoryProductMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteCategoryProductMap(categoryProductMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (categoryProductMapId === null || categoryProductMapId === undefined) {\n throw new Error('Required parameter categoryProductMapId was null or undefined when calling deleteCategoryProductMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/categoryproductmaps/${encodeURIComponent(String(categoryProductMapId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param categoryProductMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCategoryProductMap(categoryProductMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getCategoryProductMap(categoryProductMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getCategoryProductMap(categoryProductMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getCategoryProductMap(categoryProductMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (categoryProductMapId === null || categoryProductMapId === undefined) {\n throw new Error('Required parameter categoryProductMapId was null or undefined when calling getCategoryProductMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/categoryproductmaps/${encodeURIComponent(String(categoryProductMapId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param categoryId \n * @param pageNo \n * @param pageSize \n * @param sortByParams \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCategoryProductMaps(categoryId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'body', reportProgress?: boolean): Observable;\n public getCategoryProductMaps(categoryId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'response', reportProgress?: boolean): Observable>;\n public getCategoryProductMaps(categoryId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'events', reportProgress?: boolean): Observable>;\n public getCategoryProductMaps(categoryId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (categoryId === null || categoryId === undefined) {\n throw new Error('Required parameter categoryId was null or undefined when calling getCategoryProductMaps.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (categoryId !== undefined && categoryId !== null) {\n queryParameters = queryParameters.set('categoryId', categoryId);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (pageSize !== undefined && pageSize !== null) {\n queryParameters = queryParameters.set('pageSize', pageSize);\n }\n if (sortByParams) {\n sortByParams.forEach((element) => {\n queryParameters = queryParameters.append('sortByParams', element);\n })\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/categoryproductmaps`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param categoryProductMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCategoryProductMap(body: CategoryProductMapModel, categoryProductMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateCategoryProductMap(body: CategoryProductMapModel, categoryProductMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateCategoryProductMap(body: CategoryProductMapModel, categoryProductMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateCategoryProductMap(body: CategoryProductMapModel, categoryProductMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateCategoryProductMap.');\n }\n\n if (categoryProductMapId === null || categoryProductMapId === undefined) {\n throw new Error('Required parameter categoryProductMapId was null or undefined when calling updateCategoryProductMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/categoryproductmaps/${encodeURIComponent(String(categoryProductMapId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\nimport { fromEvent, Observable, Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\n\n@Directive({\n selector: '[sdAppear]'\n})\nexport class AppearDirective {\n\n @Input() scrollRef: HTMLElement;\n\n @Input() spotlightRef: HTMLElement;\n\n @Output()\n public sdAppear = new EventEmitter();\n\n public subscription: Subscription;\n\n constructor(\n private element: ElementRef,\n ) { }\n\n public ngOnInit() {\n this.subscribe();\n }\n\n public ngOnDestroy() {\n this.unsubscribe();\n }\n\n public subscribe() {\n let target: any = window;\n if (this.scrollRef) { target = this.scrollRef; }\n this.subscription = fromEvent(target, 'scroll').subscribe({\n next: (_event: Event) => {\n if (this.isVisible(this.element.nativeElement)) {\n this.sdAppear.emit();\n }\n \n }\n })\n }\n\n public unsubscribe() {\n this.subscription.unsubscribe();\n }\n\n private isVisible(element: HTMLElement) {\n const refElementRect = this.spotlightRef.getBoundingClientRect();\n const targetElementRect = element.getBoundingClientRect();\n const result = (\n targetElementRect.top >= refElementRect.top &&\n targetElementRect.left >= refElementRect.left &&\n targetElementRect.bottom <= refElementRect.bottom &&\n targetElementRect.right <= refElementRect.right\n );\n // console.log(refElementRect, targetElementRect);\n if (result) {\n console.log(' > someone has focus', element);\n }\n return result;\n }\n\n}\n","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","export default \".toolbar-container ion-toolbar {\\n --background: transparent;\\n --min-height: auto;\\n}\\n.toolbar-container ion-toolbar ion-title {\\n padding: 0;\\n font-size: 28px;\\n font-weight: 500;\\n}\\n.toolbar-container ion-toolbar .actions {\\n margin-right: -0.5rem;\\n}\\n.toolbar-container ion-toolbar .actions > ion-button, .toolbar-container ion-toolbar .actions > app-button-group {\\n margin: 0 0.5rem;\\n}\\n:host {\\n display: block;\\n}\\nsection.mappings-container.row {\\n --bs-gutter-x: 0;\\n --bs-gutter-y: 0;\\n padding: 0.5rem;\\n}\\nsection.mappings-container.row > .col {\\n padding: 1rem;\\n}\\nion-card {\\n margin: 0;\\n border-radius: var(--card-border-radius, 0);\\n box-shadow: none;\\n border: 1px solid transparent;\\n box-sizing: border-box;\\n transition: border-color 0.1s ease-in-out 0.25s;\\n min-width: 200px;\\n max-width: 431px;\\n}\\nion-card:focus-within, ion-card:hover {\\n border-color: rgba(0, 0, 0, 0.13);\\n}\\nion-card .thumbnail {\\n height: 100px;\\n max-height: 100px;\\n overflow: hidden;\\n background-image: url(\\\"https://ionicframework.com/docs/demos/api/thumbnail/thumbnail.svg\\\");\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: cover;\\n position: relative;\\n}\\nion-card .thumbnail app-food-type-indicator {\\n position: absolute;\\n right: 0.25rem;\\n top: 0.25rem;\\n}\\nion-card ion-card-header {\\n padding: 0;\\n}\\nion-card ion-card-header .title-container {\\n margin-bottom: -18px;\\n}\\nion-card ion-card-header ion-card-title {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n}\\nion-card .tags > * {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 0 2px;\\n}\\nion-card ion-card-content {\\n padding: 0;\\n padding-top: 0.25rem;\\n}\\nion-card ion-card-content > * {\\n padding: 0.25rem 0;\\n}\\nion-card ion-card-content .dashboard {\\n border: 1px solid red;\\n}\\n.card-footer {\\n position: absolute;\\n bottom: 0;\\n width: 100%;\\n}\\n.card-button {\\n border: none;\\n outline: 0;\\n padding: 8px;\\n color: white;\\n background-color: #000;\\n text-align: center;\\n cursor: pointer;\\n width: 100%;\\n font-size: 18px;\\n}\\n.color-dark {\\n color: var(--ion-color-dark);\\n}\\n.color-danger {\\n color: var(--ion-color-danger);\\n}\\n.price button,\\n.stock button {\\n padding: 0;\\n background-color: transparent;\\n display: block;\\n width: 100%;\\n text-align: left;\\n font-size: 1rem;\\n}\\n.price button:focus-visible, .price button:focus, .price button:hover,\\n.stock button:focus-visible,\\n.stock button:focus,\\n.stock button:hover {\\n outline: 0;\\n}\\n.price button:hover ion-icon.edit-icon, .price button:focus ion-icon.edit-icon,\\n.stock button:hover ion-icon.edit-icon,\\n.stock button:focus ion-icon.edit-icon {\\n display: inline-block;\\n color: #737373;\\n}\\n.price.no-pointer,\\n.stock.no-pointer {\\n cursor: default;\\n}\\n.price ion-icon.edit-icon,\\n.stock ion-icon.edit-icon {\\n vertical-align: top;\\n margin-left: 4px;\\n display: none;\\n}\\n.price .amount {\\n font-size: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL3Rvb2xiYXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL21lbnUtaXRlbS1tYXBwaW5ncy5jb21wb25lbnQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVFO0VBQ0UseUJBQUE7RUFDQSxrQkFBQTtBQ0RKO0FER0k7RUFDRSxVQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDRE47QURJSTtFQUNFLHFCQUFBO0FDRk47QURJTTtFQUVFLGdCQUFBO0FDSFI7QUFUQTtFQUNFLGNBQUE7QUFZRjtBQVJFO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUFXSjtBQVRJO0VBQ0UsYUFBQTtBQVdOO0FBTEE7RUFDRSxTQUFBO0VBQ0EsMkNBQUE7RUFDQSxnQkFBQTtFQUNBLDZCQUFBO0VBQ0Esc0JBQUE7RUFDQSwrQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUFRRjtBQU5FO0VBRUUsaUNBQUE7QUFPSjtBQUpFO0VBQ0UsYUFuQ2U7RUFvQ2YsaUJBcENlO0VBcUNmLGdCQUFBO0VBQ0EsMEZBQUE7RUFDQSw0QkFBQTtFQUNBLGtDQUFBO0VBRUEsc0JBQUE7RUFDQSxrQkFBQTtBQU1KO0FBSkk7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0FBTU47QUFGRTtFQUNFLFVBQUE7QUFJSjtBQUZJO0VBQ0Usb0JBQUE7QUFJTjtBQURJO0VDNURGLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtBRGdFRjtBQUFJO0VBQ0UscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7QUFFTjtBQUVFO0VBQ0UsVUFBQTtFQUNBLG9CQUFBO0FBQUo7QUFFSTtFQUNFLGtCQUFBO0FBQU47QUFHSTtFQUNFLHFCQUFBO0FBRE47QUFXQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7QUFSRjtBQVdBO0VBQ0UsWUFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7QUFSRjtBQVdBO0VBQ0UsNEJBQUE7QUFSRjtBQVdBO0VBQ0UsOEJBQUE7QUFSRjtBQWNFOztFQUNFLFVBQUE7RUFDQSw2QkFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FBVko7QUFjSTs7OztFQUdFLFVBQUE7QUFYTjtBQWtCTTs7O0VBQ0UscUJBQUE7RUFDQSxjQUFBO0FBZFI7QUFvQkU7O0VBQ0UsZUFBQTtBQWpCSjtBQW9CRTs7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtBQWpCSjtBQXFCQTtFQUNFLGVBQUE7QUFsQkYiLCJmaWxlIjoibWVudS1pdGVtLW1hcHBpbmdzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG4udG9vbGJhci1jb250YWluZXIge1xuICBpb24tdG9vbGJhciB7XG4gICAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAtLW1pbi1oZWlnaHQ6IGF1dG87XG4gIFxuICAgIGlvbi10aXRsZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0uNXJlbTtcblxuICAgICAgJj5pb24tYnV0dG9uLFxuICAgICAgJj5hcHAtYnV0dG9uLWdyb3VwIHtcbiAgICAgICAgbWFyZ2luOiAwIC41cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lL21peGlucy5zY3NzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lL3Rvb2xiYXIuc2Nzcyc7XG5cbiRtZW51LWljb24taGVpZ2h0OiAxMDBweDtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuc2VjdGlvbi5tYXBwaW5ncy1jb250YWluZXIge1xuICAmLnJvdyB7XG4gICAgLS1icy1ndXR0ZXIteDogMDtcbiAgICAtLWJzLWd1dHRlci15OiAwO1xuICAgIHBhZGRpbmc6IC41cmVtO1xuXG4gICAgPi5jb2wge1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICB9XG4gIH1cbn1cblxuXG5pb24tY2FyZCB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzLCAwKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMXMgZWFzZS1pbi1vdXQgLjI1cztcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgbWF4LXdpZHRoOiA0MzFweDtcblxuICAmOmZvY3VzLXdpdGhpbixcbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTMpO1xuICB9XG5cbiAgLnRodW1ibmFpbCB7XG4gICAgaGVpZ2h0OiAkbWVudS1pY29uLWhlaWdodDtcbiAgICBtYXgtaGVpZ2h0OiAkbWVudS1pY29uLWhlaWdodDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9pb25pY2ZyYW1ld29yay5jb20vZG9jcy9kZW1vcy9hcGkvdGh1bWJuYWlsL3RodW1ibmFpbC5zdmcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYXBwLWZvb2QtdHlwZS1pbmRpY2F0b3Ige1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IC4yNXJlbTtcbiAgICAgIHRvcDogLjI1cmVtO1xuICAgIH1cbiAgfVxuXG4gIGlvbi1jYXJkLWhlYWRlciB7XG4gICAgcGFkZGluZzogMDtcblxuICAgIC50aXRsZS1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTE4cHg7XG4gICAgfVxuXG4gICAgaW9uLWNhcmQtdGl0bGUge1xuICAgICAgQGluY2x1ZGUgdGV4dC1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICAudGFncyB7XG4gICAgPioge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgIH1cbiAgfVxuXG4gIGlvbi1jYXJkLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcGFkZGluZy10b3A6IC4yNXJlbTtcblxuICAgID4qIHtcbiAgICAgIHBhZGRpbmc6IC4yNXJlbSAwO1xuICAgIH1cblxuICAgIC5kYXNoYm9hcmQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIC5hY3Rpb25zIHtcbiAgLy8gICBtYXJnaW46IDA7XG4gIC8vICAgLy8gZGlzcGxheTogbm9uZTtcbiAgLy8gfVxufVxuXG4uY2FyZC1mb290ZXJ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhcmQtYnV0dG9uIHtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiAwO1xuICBwYWRkaW5nOiA4cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jb2xvci1kYXJrIHtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbn1cblxuLmNvbG9yLWRhbmdlciB7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcbn1cblxuLnByaWNlLFxuLnN0b2NrIHtcbiAgXG4gIGJ1dHRvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAvLyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAvLyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjFzIGVhc2UtaW4tb3V0IC4yNXM7XG5cbiAgICAmOmZvY3VzLXZpc2libGUsXG4gICAgJjpmb2N1cyxcbiAgICAmOmhvdmVyIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICAvLyBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgLjEzKTtcbiAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgLjEzKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgaW9uLWljb24uZWRpdC1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogIzczNzM3MztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gICYubm8tcG9pbnRlciB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgaW9uLWljb24uZWRpdC1pY29uIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ucHJpY2UgLmFtb3VudCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuIiwiXG5AbWl4aW4gdGV4dC1lbGxpcHNpcyB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uLCAkdG9wOiBudWxsLCAkcmlnaHQ6IG51bGwsICRib3R0b206IG51bGwsICRsZWZ0OiBudWxsKSB7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gIHRvcDogJHRvcDtcbiAgcmlnaHQ6ICRyaWdodDtcbiAgYm90dG9tOiAkYm90dG9tO1xuICBsZWZ0OiAkbGVmdDtcbn1cblxuQG1peGluIHBvc2l0aW9uLWFic29sdXRlKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAkYXJncy4uLik7XG59Il19 */\";","export default \"
\\n
\\n \\n \\n
\\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { DomainConfigModel } from '../model/domainConfigModel';\nimport { SmartDineResponseDomainConfigModel } from '../model/smartDineResponseDomainConfigModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class DomainConfigRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteDomainConfig(body: DomainConfigModel, restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling deleteDomainConfig.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteDomainConfig.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('delete',`${this.basePath}/api/admins/domain/configs`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDomainConfig1(restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getDomainConfig1(restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getDomainConfig1(restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getDomainConfig1(restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getDomainConfig1.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admins/domain/configs`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public saveDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public saveDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public saveDomainConfig(body: DomainConfigModel, restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling saveDomainConfig.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling saveDomainConfig.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admins/domain/configs`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateDomainConfig(body: DomainConfigModel, restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateDomainConfig(body: DomainConfigModel, restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateDomainConfig.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateDomainConfig.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admins/domain/configs`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { LoaderService } from './common/services/loader/loader.service';\nimport { Component, OnInit, NgZone, ViewChild, OnDestroy } from '@angular/core';\nimport { ProfileModel } from './swagger';\nimport { UserProfileService } from './common/services/user-profile/user-profile.service';\nimport { Role } from './common/enums/role.enum';\nimport { Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { AuthService } from './core/services/auth/auth.service';\nimport { CognitoUserSession } from 'amazon-cognito-identity-js';\nimport { publicRoutes } from './app-routing.module';\nimport { App, URLOpenListenerEvent } from '@capacitor/app';\nimport { AlertController, IonRouterOutlet, ModalController, Platform } from '@ionic/angular';\nimport { SplashScreen } from '@capacitor/splash-screen';\nimport { ModalService } from './common/services/modal/modal.service';\nimport { Subscription } from 'rxjs';\nimport { MessageService } from './common/services/message/message.service';\nimport { RedirectUserService } from './swagger/api/redirectUser.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss'],\n})\nexport class AppComponent implements OnInit, OnDestroy {\n\n @ViewChild(IonRouterOutlet, { static: true }) routerOutlet: IonRouterOutlet;\n private session: CognitoUserSession | null = null;\n private userProfile: ProfileModel | null = null;\n private currentModalId: string | null = null;\n modalSubscription: Subscription;\n\n private exitUrls: string[] = ['/customer/home', '/resto-admin/home', '/login', '/sign-up', '/password-recovery', '/privacy', '/home'];\n\n private timerIntervalId!: NodeJS.Timeout;\n\n constructor(\n private userProfileService: UserProfileService,\n private location: Location,\n private router: Router,\n private loaderService: LoaderService,\n private authService: AuthService, private zone: NgZone, private platform: Platform,\n private alertController: AlertController,\n private modalController: ModalController,\n private modalService: ModalService,\n private messageService: MessageService,\n private redirectUserService: RedirectUserService\n ) {\n\n this.platform.ready().then(async () => {\n this.messageService.showMessage('');\n SplashScreen.hide();\n });\n\n\n this.platform.backButton.subscribeWithPriority(10, (processNextHandler) => {\n let showExitButton = false;\n\n this.exitUrls.forEach((exitUrl) => {\n if (this.location.isCurrentPathEqualTo(exitUrl)) {\n showExitButton = true\n }\n });\n\n if (showExitButton) {\n // Show Exit Alert!\n this.showExitConfirm();\n processNextHandler();\n } else {\n // Navigate to back page\n if (this.currentModalId == null) {\n this.location.back();\n } else {\n this.modalController.dismiss({}, '', this.currentModalId);\n this.modalService.changeCurrentModalId(null);\n }\n }\n });\n }\n\n showExitConfirm() {\n this.alertController.create({\n header: 'SmartdineNow',\n message: 'Do you want to close the app?',\n backdropDismiss: false,\n buttons: [{\n text: 'Stay',\n role: 'cancel',\n handler: () => {\n console.log('Application exit prevented!');\n }\n }, {\n text: 'Exit',\n handler: () => {\n navigator['app'].exitApp();\n }\n }]\n })\n .then(alert => {\n alert.present();\n });\n }\n\n public async ngOnInit() {\n await this.loaderService.init();\n this.init();\n }\n\n public ngOnDestroy() {\n clearInterval(this.timerIntervalId);\n this.modalSubscription.unsubscribe();\n }\n\n public init() {\n this.setSession();\n this.initializeApp();\n\n this.modalSubscription = this.modalService.currentModal.subscribe(modalId => {\n this.currentModalId = modalId;\n });\n }\n\n initializeApp() {\n App.addListener('appUrlOpen', (event: URLOpenListenerEvent) => {\n this.zone.run(() => {\n const slug = event.url.split(\"smartdinenow.com\").pop();\n if (slug) {\n this.router.navigateByUrl(slug);\n }\n });\n });\n }\n\n private setSession() {\n this.session = null;\n this.authService.getSession().subscribe({\n next: (session: CognitoUserSession | null) => {\n this.session = session;\n this.setUserProfile();\n }\n });\n\n // forcing the session update every 30 seconds..\n //this.timerIntervalId = setInterval(() => {\n // this.authService.getSession(true);\n //}, 30000);\n }\n\n private setUserProfile() {\n this.userProfile = null;\n this.userProfileService.getUserProfile(true).subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n const redirectUrl = this.redirectUserService.getRedirectUrl();\n if (redirectUrl && this.userProfile) {\n const decodedUrl = decodeURIComponent(redirectUrl);\n this.router.navigateByUrl(decodedUrl);\n }\n else if (!redirectUrl && this.userProfile) {\n this.loadDefaultSecurePage();\n } else {\n this.loadDefaultPublicPage();\n }\n SplashScreen.hide();\n },\n error: (errorResponse) => {\n console.error('Unable to get the User-Profile! Please contact admin');\n }\n });\n }\n\n /**\n * Loads Default Public Page for the Guest Users.\n */\n private loadDefaultPublicPage() {\n const currentPath = this.location.path();\n if (currentPath) {\n // Allowing public routes to be loaded..\n let currentRoute:any;\n currentRoute = currentPath.split('/')[1];\n currentRoute = currentRoute.split('?')[0];\n const publicRoutePaths = publicRoutes.map(e => e.path);\n if (publicRoutePaths.includes(currentRoute) || currentRoute == 'customer') { return; }\n }\n SplashScreen.hide();\n }\n\n /**\n * Loads Default Secure Page for Logged In Users. \n */\n private loadDefaultSecurePage() {\n const currentPath = this.location.path();\n\n if (!this.isSecurePage(currentPath)) {\n const userRoles = (this.userProfile) ? this.userProfile.roles : '';\n \n if (userRoles.includes(Role.ADMINS)) {\n this.router.navigateByUrl('/admin/home');\n } else if (userRoles.includes(Role.RESTO_ADMINS)) {\n this.router.navigateByUrl('/resto-admin/home');\n } else if (userRoles.includes(Role.USERS)) {\n this.router.navigateByUrl('/customer/home');\n } else {\n console.warn('User missing roles!');\n // TODO: UI Display!\n this.router.navigateByUrl('/customer');\n }\n }\n }\n \n private isSecurePage(path: string): boolean {\n return path.startsWith('/admin/') || path.startsWith('/resto-admin/') || path.startsWith('/customer/');\n }\n\n}\n","// google-places.service.ts\n\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GooglePlacesService {\n private apiKey = 'AIzaSyB9ZVCAdsIiS7kZT13CKUdvAGqS1fg1kyE';\n\n constructor(private http: HttpClient) {}\n\n getPlaceId(restaurantName: string): Observable {\n const apiUrl = `https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=${restaurantName}&inputtype=textquery&fields=place_id&key=${this.apiKey}`;\n return this.http.get(apiUrl);\n }\n\n getReviews(placeId: string): Observable {\n const apiUrl = `https://maps.googleapis.com/maps/api/place/details/json?place_id=${placeId}&fields=name,reviews&key=${this.apiKey}`;\n return this.http.get(apiUrl);\n }\n \n}\n","export default \"\\n \\n Share\\n \\n\\n\\n \\n \\n Email Ids:\\n \\n \\n \\n Phone Numbers:\\n \\n \\n \\n Send\\n Cancel\\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n \\n \\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n\";","export default \"
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n\\n \\n \\n
\\n
\\n\\n \\n\\n \\n\\n
\\n
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n\\n \\n \\n Food Items\\n \\n\\n \\n\\n \\n Sub Menus\\n\\n \\n \\n
\\n\\n \\n \\n \\n\\n \\n \\n \\n\\n
\\n
\\n \\n
\\n
\\n \\n\\n \\n \\n \\n No Items to Display!\\n \\n \\n \\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ReportRequestParams {\n fromDate?: Date;\n toDate?: Date;\n reportType?: ReportRequestParams.ReportTypeEnum;\n statusList?: Array;\n orderTypeList?: Array;\n sortByFields?: { [key: string]: number };\n requiredHeaders?: { [key: string]: number };\n pageNo?: number;\n rows?: number;\n}\nexport namespace ReportRequestParams {\n export type ReportTypeEnum =\n | 'MADHUSHALA_LIQUOR_BILL_DETAILS'\n | 'MADHUSHALA_LIQUOR_BILL_TAX_DETAILS'\n | 'SALES_REPORT_BY_ORDERS'\n | 'SALES_REPORT_BY_ITEMS'\n | 'STOCKS_REPORT_BY_ITEMS'\n | 'ITEM_PROFITABILITY'\n | 'GST_REPORT'\n | 'SUMMARIZED_SALES_BY_ORDER'\n | 'SUMMARIZED_SALES_BY_ORDER_TYPE'\n | 'DAILY_EXPENSES'\n | 'DAILY_EXPENSES_SUMMARY';\n export const ReportTypeEnum = {\n MADHUSHALALIQUORBILLDETAILS:\n 'MADHUSHALA_LIQUOR_BILL_DETAILS' as ReportTypeEnum,\n MADHUSHALALIQUORBILLTAXDETAILS:\n 'MADHUSHALA_LIQUOR_BILL_TAX_DETAILS' as ReportTypeEnum,\n SALESREPORTBYORDERS: 'SALES_REPORT_BY_ORDERS' as ReportTypeEnum,\n SALESREPORTBYITEMS: 'SALES_REPORT_BY_ITEMS' as ReportTypeEnum,\n STOCKSREPORTBYITEMS: 'STOCKS_REPORT_BY_ITEMS' as ReportTypeEnum,\n ITEMPROFITABILITY: 'ITEM_PROFITABILITY' as ReportTypeEnum,\n GST_REPORT: 'GST_REPORT' as ReportTypeEnum,\n SUMMARIZEDSALESBYORDER: 'SUMMARIZED_SALES_BY_ORDER' as ReportTypeEnum,\n SUMMARIZEDSALESBYORDERTYPE:\n 'SUMMARIZED_SALES_BY_ORDER_TYPE' as ReportTypeEnum,\n DAILYEXPENSES: 'DAILY_EXPENSES' as ReportTypeEnum,\n DAILY_EXPENSESSUMMARY: 'DAILY_EXPENSES_SUMMARY' as ReportTypeEnum,\n };\n}\n","export default \"/** Ionic CSS Variables **/\\n:root {\\n /** primary **/\\n --ion-color-primary: #356859;\\n --ion-color-primary-rgb: 53, 104, 89;\\n --ion-color-primary-contrast: #ffffff;\\n --ion-color-primary-contrast-rgb: 255, 255, 255;\\n --ion-color-primary-shade: #142721;\\n --ion-color-primary-tint: #498f7a;\\n /** secondary **/\\n --ion-color-secondary: #f3ad6a;\\n --ion-color-secondary-rgb: 243, 173, 106;\\n --ion-color-secondary-contrast: #ffffff;\\n --ion-color-secondary-contrast-rgb: 255, 255, 255;\\n --ion-color-secondary-shade: #f2a358;\\n --ion-color-secondary-tint: #f7cda5;\\n /** tertiary **/\\n --ion-color-tertiary: #22254c;\\n --ion-color-tertiary-rgb: 34, 37, 76;\\n --ion-color-tertiary-contrast: #ffffff;\\n --ion-color-tertiary-contrast-rgb: 255, 255, 255;\\n --ion-color-tertiary-shade: #14162d;\\n --ion-color-tertiary-tint: #7a7c93;\\n /** success **/\\n --ion-color-success: #2dd36f;\\n --ion-color-success-rgb: 45, 211, 111;\\n --ion-color-success-contrast: #ffffff;\\n --ion-color-success-contrast-rgb: 255, 255, 255;\\n --ion-color-success-shade: #28ba62;\\n --ion-color-success-tint: #42d77d;\\n /** warning **/\\n --ion-color-warning: #ffc409;\\n --ion-color-warning-rgb: 255, 196, 9;\\n --ion-color-warning-contrast: #000000;\\n --ion-color-warning-contrast-rgb: 0, 0, 0;\\n --ion-color-warning-shade: #e0ac08;\\n --ion-color-warning-tint: #ffca22;\\n /** danger **/\\n --ion-color-danger: #eb445a;\\n --ion-color-danger-rgb: 235, 68, 90;\\n --ion-color-danger-contrast: #ffffff;\\n --ion-color-danger-contrast-rgb: 255, 255, 255;\\n --ion-color-danger-shade: #cf3c4f;\\n --ion-color-danger-tint: #ed576b;\\n /** dark **/\\n --ion-color-dark: #222428;\\n --ion-color-dark-rgb: 34, 36, 40;\\n --ion-color-dark-contrast: #ffffff;\\n --ion-color-dark-contrast-rgb: 255, 255, 255;\\n --ion-color-dark-shade: #1e2023;\\n --ion-color-dark-tint: #383a3e;\\n /** medium **/\\n --ion-color-medium: #92949c;\\n --ion-color-medium-rgb: 146, 148, 156;\\n --ion-color-medium-contrast: #ffffff;\\n --ion-color-medium-contrast-rgb: 255, 255, 255;\\n --ion-color-medium-shade: #808289;\\n --ion-color-medium-tint: #9d9fa6;\\n /** light **/\\n --ion-color-light: #f4f5f8;\\n --ion-color-light-rgb: 244, 245, 248;\\n --ion-color-light-contrast: #000000;\\n --ion-color-light-contrast-rgb: 0, 0, 0;\\n --ion-color-light-shade: #d7d8da;\\n --ion-color-light-tint: #f5f6f9;\\n --ion-color-link: #428cff;\\n --ion-color-link-rgb: 66,140,255;\\n --ion-color-link-contrast: #ffffff;\\n --ion-color-link-contrast-rgb: 255,255,255;\\n --ion-color-link-shade: #3a7be0;\\n --ion-color-link-tint: #5598ff;\\n --side-menu-width: 250px;\\n --side-menu-collapsed-width: 60px;\\n}\\nion-card {\\n --card-border-radius: 3px;\\n}\\nion-button {\\n --border-width: 1px;\\n --border-radius: 3px;\\n}\\nimg {\\n margin: 0 auto;\\n}\\nion-content .qr-code-container {\\n height: 100%;\\n position: relative;\\n background: linear-gradient(rgba(53, 104, 89, 0.6), rgba(53, 104, 89, 0.6)), url(\\\"/assets/qr-banner.jpg\\\") no-repeat center center;\\n background-size: cover;\\n}\\nion-content .qr-code-container .header img {\\n width: 100px;\\n}\\nion-content .qr-code-container .header .title {\\n font-family: \\\"Staatliches\\\";\\n letter-spacing: 5px;\\n vertical-align: text-top;\\n margin-left: 1rem;\\n}\\nion-content .qr-code-container .header,\\nion-content .qr-code-container .label,\\nion-content .qr-code-container .identity {\\n font-size: 1.3rem;\\n color: var(--ion-color-primary-contrast, #ffffff);\\n}\\nion-content .qr-code-container .header {\\n font-size: 3rem;\\n}\\nion-content .qr-code-container .qr-code {\\n margin: 1rem auto;\\n background-position: center;\\n height: 160px;\\n width: 160px;\\n}\\nion-content .qr-code-container .footer {\\n background-color: #ffffff;\\n padding: 1.5rem;\\n}\\n@media print {\\n ion-header {\\n display: none;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vcXItaW5mby5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSwwQkFBQTtBQUNBO0VBQ0UsY0FBQTtFQUNBLDRCQUFBO0VBQ0Esb0NBQUE7RUFDQSxxQ0FBQTtFQUNBLCtDQUFBO0VBQ0Esa0NBQUE7RUFDQSxpQ0FBQTtFQUVBLGdCQUFBO0VBQ0EsOEJBQUE7RUFDQSx3Q0FBQTtFQUNBLHVDQUFBO0VBQ0EsaURBQUE7RUFDQSxvQ0FBQTtFQUNBLG1DQUFBO0VBRUEsZUFBQTtFQUNBLDZCQUFBO0VBQ0Esb0NBQUE7RUFDQSxzQ0FBQTtFQUNBLGdEQUFBO0VBQ0EsbUNBQUE7RUFDQSxrQ0FBQTtFQUVBLGNBQUE7RUFDQSw0QkFBQTtFQUNBLHFDQUFBO0VBQ0EscUNBQUE7RUFDQSwrQ0FBQTtFQUNBLGtDQUFBO0VBQ0EsaUNBQUE7RUFFQSxjQUFBO0VBQ0EsNEJBQUE7RUFDQSxvQ0FBQTtFQUNBLHFDQUFBO0VBQ0EseUNBQUE7RUFDQSxrQ0FBQTtFQUNBLGlDQUFBO0VBRUEsYUFBQTtFQUNBLDJCQUFBO0VBQ0EsbUNBQUE7RUFDQSxvQ0FBQTtFQUNBLDhDQUFBO0VBQ0EsaUNBQUE7RUFDQSxnQ0FBQTtFQUVBLFdBQUE7RUFDQSx5QkFBQTtFQUNBLGdDQUFBO0VBQ0Esa0NBQUE7RUFDQSw0Q0FBQTtFQUNBLCtCQUFBO0VBQ0EsOEJBQUE7RUFFQSxhQUFBO0VBQ0EsMkJBQUE7RUFDQSxxQ0FBQTtFQUNBLG9DQUFBO0VBQ0EsOENBQUE7RUFDQSxpQ0FBQTtFQUNBLGdDQUFBO0VBRUEsWUFBQTtFQUNBLDBCQUFBO0VBQ0Esb0NBQUE7RUFDQSxtQ0FBQTtFQUNBLHVDQUFBO0VBQ0EsZ0NBQUE7RUFDQSwrQkFBQTtFQUVBLHlCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxrQ0FBQTtFQUNBLDBDQUFBO0VBQ0EsK0JBQUE7RUFDQSw4QkFBQTtFQUVBLHdCQUFBO0VBQ0EsaUNBQUE7QUNaRjtBRGVBO0VBQ0UseUJBQUE7QUNaRjtBRGVBO0VBQ0UsbUJBQUE7RUFDQSxvQkFBQTtBQ1pGO0FBaEZBO0VBQ0UsY0FBQTtBQW1GRjtBQTlFRTtFQUNFLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGlJQUFBO0VBRUEsc0JBQUE7QUFnRko7QUE1RU07RUFDRSxZQUFBO0FBOEVSO0FBM0VNO0VBQ0UsMEJBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsaUJBQUE7QUE2RVI7QUF6RUk7OztFQUdFLGlCQUFBO0VBQ0EsaURBQUE7QUEyRU47QUF4RUk7RUFDRSxlQUFBO0FBMEVOO0FBdkVJO0VBQ0UsaUJBQUE7RUFDQSwyQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0FBeUVOO0FBdEVJO0VBQ0UseUJBQUE7RUFDQSxlQUFBO0FBd0VOO0FBbkVBO0VBQ0U7SUFDRSxhQUFBO0VBc0VGO0FBQ0YiLCJmaWxlIjoicXItaW5mby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIElvbmljIFZhcmlhYmxlcyBhbmQgVGhlbWluZy4gRm9yIG1vcmUgaW5mbywgcGxlYXNlIHNlZTpcbi8vIGh0dHA6Ly9pb25pY2ZyYW1ld29yay5jb20vZG9jcy90aGVtaW5nL1xuXG4vKiogSW9uaWMgQ1NTIFZhcmlhYmxlcyAqKi9cbjpyb290IHtcbiAgLyoqIHByaW1hcnkgKiovXG4gIC0taW9uLWNvbG9yLXByaW1hcnk6ICMzNTY4NTk7XG4gIC0taW9uLWNvbG9yLXByaW1hcnktcmdiOiA1MywgMTA0LCA4OTtcbiAgLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdDogI2ZmZmZmZjtcbiAgLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdC1yZ2I6IDI1NSwgMjU1LCAyNTU7XG4gIC0taW9uLWNvbG9yLXByaW1hcnktc2hhZGU6ICMxNDI3MjE7XG4gIC0taW9uLWNvbG9yLXByaW1hcnktdGludDogIzQ5OGY3YTtcblxuICAvKiogc2Vjb25kYXJ5ICoqL1xuICAtLWlvbi1jb2xvci1zZWNvbmRhcnk6ICNmM2FkNmE7XG4gIC0taW9uLWNvbG9yLXNlY29uZGFyeS1yZ2I6IDI0MywgMTczLCAxMDY7XG4gIC0taW9uLWNvbG9yLXNlY29uZGFyeS1jb250cmFzdDogI2ZmZmZmZjtcbiAgLS1pb24tY29sb3Itc2Vjb25kYXJ5LWNvbnRyYXN0LXJnYjogMjU1LCAyNTUsIDI1NTtcbiAgLS1pb24tY29sb3Itc2Vjb25kYXJ5LXNoYWRlOiAjZjJhMzU4O1xuICAtLWlvbi1jb2xvci1zZWNvbmRhcnktdGludDogI2Y3Y2RhNTtcblxuICAvKiogdGVydGlhcnkgKiovXG4gIC0taW9uLWNvbG9yLXRlcnRpYXJ5OiAjMjIyNTRjO1xuICAtLWlvbi1jb2xvci10ZXJ0aWFyeS1yZ2I6IDM0LCAzNywgNzY7XG4gIC0taW9uLWNvbG9yLXRlcnRpYXJ5LWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWlvbi1jb2xvci10ZXJ0aWFyeS1jb250cmFzdC1yZ2I6IDI1NSwgMjU1LCAyNTU7XG4gIC0taW9uLWNvbG9yLXRlcnRpYXJ5LXNoYWRlOiAjMTQxNjJkO1xuICAtLWlvbi1jb2xvci10ZXJ0aWFyeS10aW50OiAjN2E3YzkzO1xuXG4gIC8qKiBzdWNjZXNzICoqL1xuICAtLWlvbi1jb2xvci1zdWNjZXNzOiAjMmRkMzZmO1xuICAtLWlvbi1jb2xvci1zdWNjZXNzLXJnYjogNDUsIDIxMSwgMTExO1xuICAtLWlvbi1jb2xvci1zdWNjZXNzLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWlvbi1jb2xvci1zdWNjZXNzLWNvbnRyYXN0LXJnYjogMjU1LCAyNTUsIDI1NTtcbiAgLS1pb24tY29sb3Itc3VjY2Vzcy1zaGFkZTogIzI4YmE2MjtcbiAgLS1pb24tY29sb3Itc3VjY2Vzcy10aW50OiAjNDJkNzdkO1xuXG4gIC8qKiB3YXJuaW5nICoqL1xuICAtLWlvbi1jb2xvci13YXJuaW5nOiAjZmZjNDA5O1xuICAtLWlvbi1jb2xvci13YXJuaW5nLXJnYjogMjU1LCAxOTYsIDk7XG4gIC0taW9uLWNvbG9yLXdhcm5pbmctY29udHJhc3Q6ICMwMDAwMDA7XG4gIC0taW9uLWNvbG9yLXdhcm5pbmctY29udHJhc3QtcmdiOiAwLCAwLCAwO1xuICAtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlOiAjZTBhYzA4O1xuICAtLWlvbi1jb2xvci13YXJuaW5nLXRpbnQ6ICNmZmNhMjI7XG5cbiAgLyoqIGRhbmdlciAqKi9cbiAgLS1pb24tY29sb3ItZGFuZ2VyOiAjZWI0NDVhO1xuICAtLWlvbi1jb2xvci1kYW5nZXItcmdiOiAyMzUsIDY4LCA5MDtcbiAgLS1pb24tY29sb3ItZGFuZ2VyLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWlvbi1jb2xvci1kYW5nZXItY29udHJhc3QtcmdiOiAyNTUsIDI1NSwgMjU1O1xuICAtLWlvbi1jb2xvci1kYW5nZXItc2hhZGU6ICNjZjNjNGY7XG4gIC0taW9uLWNvbG9yLWRhbmdlci10aW50OiAjZWQ1NzZiO1xuXG4gIC8qKiBkYXJrICoqL1xuICAtLWlvbi1jb2xvci1kYXJrOiAjMjIyNDI4O1xuICAtLWlvbi1jb2xvci1kYXJrLXJnYjogMzQsIDM2LCA0MDtcbiAgLS1pb24tY29sb3ItZGFyay1jb250cmFzdDogI2ZmZmZmZjtcbiAgLS1pb24tY29sb3ItZGFyay1jb250cmFzdC1yZ2I6IDI1NSwgMjU1LCAyNTU7XG4gIC0taW9uLWNvbG9yLWRhcmstc2hhZGU6ICMxZTIwMjM7XG4gIC0taW9uLWNvbG9yLWRhcmstdGludDogIzM4M2EzZTtcblxuICAvKiogbWVkaXVtICoqL1xuICAtLWlvbi1jb2xvci1tZWRpdW06ICM5Mjk0OWM7XG4gIC0taW9uLWNvbG9yLW1lZGl1bS1yZ2I6IDE0NiwgMTQ4LCAxNTY7XG4gIC0taW9uLWNvbG9yLW1lZGl1bS1jb250cmFzdDogI2ZmZmZmZjtcbiAgLS1pb24tY29sb3ItbWVkaXVtLWNvbnRyYXN0LXJnYjogMjU1LCAyNTUsIDI1NTtcbiAgLS1pb24tY29sb3ItbWVkaXVtLXNoYWRlOiAjODA4Mjg5O1xuICAtLWlvbi1jb2xvci1tZWRpdW0tdGludDogIzlkOWZhNjtcblxuICAvKiogbGlnaHQgKiovXG4gIC0taW9uLWNvbG9yLWxpZ2h0OiAjZjRmNWY4O1xuICAtLWlvbi1jb2xvci1saWdodC1yZ2I6IDI0NCwgMjQ1LCAyNDg7XG4gIC0taW9uLWNvbG9yLWxpZ2h0LWNvbnRyYXN0OiAjMDAwMDAwO1xuICAtLWlvbi1jb2xvci1saWdodC1jb250cmFzdC1yZ2I6IDAsIDAsIDA7XG4gIC0taW9uLWNvbG9yLWxpZ2h0LXNoYWRlOiAjZDdkOGRhO1xuICAtLWlvbi1jb2xvci1saWdodC10aW50OiAjZjVmNmY5O1xuXG4gIC0taW9uLWNvbG9yLWxpbms6ICM0MjhjZmY7XG4gIC0taW9uLWNvbG9yLWxpbmstcmdiOiA2NiwxNDAsMjU1O1xuICAtLWlvbi1jb2xvci1saW5rLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWlvbi1jb2xvci1saW5rLWNvbnRyYXN0LXJnYjogMjU1LDI1NSwyNTU7XG4gIC0taW9uLWNvbG9yLWxpbmstc2hhZGU6ICMzYTdiZTA7XG4gIC0taW9uLWNvbG9yLWxpbmstdGludDogIzU1OThmZjtcblxuICAtLXNpZGUtbWVudS13aWR0aDogMjUwcHg7XG4gIC0tc2lkZS1tZW51LWNvbGxhcHNlZC13aWR0aDogNjBweDtcbn1cblxuaW9uLWNhcmQge1xuICAtLWNhcmQtYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5pb24tYnV0dG9uIHtcbiAgLS1ib3JkZXItd2lkdGg6IDFweDtcbiAgLS1ib3JkZXItcmFkaXVzOiAzcHg7XG59XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi90aGVtZS92YXJpYWJsZXMuc2Nzcyc7XG5cbmltZyB7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5pb24tY29udGVudCB7XG5cbiAgLnFyLWNvZGUtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDUzLCAxMDQsIDg5LCAwLjYpLCByZ2JhKDUzLCAxMDQsIDg5LCAwLjYpKSxcbiAgICB1cmwoJy9hc3NldHMvcXItYmFubmVyLmpwZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAuaGVhZGVyIHtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgfVxuXG4gICAgICAudGl0bGUge1xuICAgICAgICBmb250LWZhbWlseTogJ1N0YWF0bGljaGVzJztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDVweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGVyLFxuICAgIC5sYWJlbCxcbiAgICAuaWRlbnRpdHkge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktY29udHJhc3QsICNmZmZmZmYpO1xuICAgIH1cblxuICAgIC5oZWFkZXIge1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgIH1cblxuICAgIC5xci1jb2RlIHtcbiAgICAgIG1hcmdpbjogMXJlbSBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgaGVpZ2h0OiAxNjBweDtcbiAgICAgIHdpZHRoOiAxNjBweDtcbiAgICB9XG5cbiAgICAuZm9vdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn0iXX0= */\";","export enum Role {\n USERS = 'Users',\n ADMINS = 'Admins',\n RESTO_ADMINS = 'RestaurantAdmins',\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { GroupEntity } from '../model/groupEntity';\nimport { SmartDineResponseGroupEntity } from '../model/smartDineResponseGroupEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class GroupRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createGroups(body: GroupEntity, observe?: 'body', reportProgress?: boolean): Observable;\n public createGroups(body: GroupEntity, observe?: 'response', reportProgress?: boolean): Observable>;\n public createGroups(body: GroupEntity, observe?: 'events', reportProgress?: boolean): Observable>;\n public createGroups(body: GroupEntity, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createGroups.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/groups`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param groupId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteGroup(groupId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteGroup(groupId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteGroup(groupId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteGroup(groupId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (groupId === null || groupId === undefined) {\n throw new Error('Required parameter groupId was null or undefined when calling deleteGroup.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/groups/${encodeURIComponent(String(groupId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param groupId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGroup(groupId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getGroup(groupId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getGroup(groupId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getGroup(groupId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (groupId === null || groupId === undefined) {\n throw new Error('Required parameter groupId was null or undefined when calling getGroup.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/groups/${encodeURIComponent(String(groupId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGroups(observe?: 'body', reportProgress?: boolean): Observable;\n public getGroups(observe?: 'response', reportProgress?: boolean): Observable>;\n public getGroups(observe?: 'events', reportProgress?: boolean): Observable>;\n public getGroups(observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/groups`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param groupId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateGroup(body: GroupEntity, groupId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateGroup(body: GroupEntity, groupId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateGroup(body: GroupEntity, groupId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateGroup(body: GroupEntity, groupId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateGroup.');\n }\n\n if (groupId === null || groupId === undefined) {\n throw new Error('Required parameter groupId was null or undefined when calling updateGroup.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/groups/${encodeURIComponent(String(groupId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface RestaurantGroupMapEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n restaurantGroupMapId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n groupId?: string;\n editAllowed?: boolean;\n active?: boolean;\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';\nimport { ModalController, ToastController } from '@ionic/angular';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { SmartdineImageRestControllerService, RestaurantEntity, ProfileModel, RestaurantRestControllerService, GeoLocation, SmartDineResponseRestaurantModel, CurrencyModel, RestaurantModelPrefTimeZone} from 'src/app/swagger';\nimport { LoaderService } from '../../services/loader/loader.service';\nimport { RestaurantAdminModel } from 'src/app/swagger/model/restaurantAdminModel';\nimport { AddressComponent } from '../maps/address/address.component';\nimport { RestaurantRegistrationForAdminService } from 'src/app/swagger/api/restaurantRegistrationForAdmin.service';\nimport { SmartDineResponseRestaurantForAdmin } from 'src/app/swagger/model/smartDineResponseRestaurantForAdmin';\n\nimport { COUNTRY_CODE, COUNTRY_LIST, CURRENCY_CODES, CURRENCY_LIST, INDIAN_STATES, TIME_ZONES, USA_STATES } from './data-list.helper';\nimport { UtilityService } from '../../services/utilities/utilities.service';\n\n@Component({\n selector: 'app-restaurant-upsertion',\n templateUrl: './restaurant-upsertion.component.html',\n styleUrls: ['./restaurant-upsertion.component.scss'],\n})\n\nexport class RestaurantUpsertionComponent implements OnInit {\n\n public static readonly id = 'resto-upsertion-modal';\n\n @Input() public restaurantId: string | null = null;\n @Input() restaurantTitle: string = 'New Restaurant';\n\n public restaurantEntity: RestaurantEntity | null = null;\n public restaurantAdminEntity: RestaurantAdminModel = {};\n public userProfile: ProfileModel | null = null;\n public restaurantForm: FormGroup | null = null;\n public countries: string[] = COUNTRY_LIST;\n public timeZones: RestaurantModelPrefTimeZone[] = [];\n public indianStates: string[] = INDIAN_STATES;\n public usaStates: string[] = USA_STATES;\n public countryCodes: string[] = COUNTRY_CODE;\n public currencyList: CurrencyModel[] = CURRENCY_LIST;\n public currencyCodes: string[] = CURRENCY_CODES;\n public selectedCountry: string = 'India';\n public selectedTimeZone: string = 'Asia/Kolkata';\n \n get restaurantStatus() {\n return Object.keys(RestaurantAdminModel.RestaurantStatusEnum);\n }\n\n get orderTypes() {\n return Object.keys(RestaurantAdminModel.AllowedOrderTypesEnum);\n }\n\n get paymentPreferences() {\n return Object.keys(RestaurantAdminModel.AllowedPaymentPreferencesEnum);\n }\n\n constructor(\n private modalController: ModalController,\n private userProfileService: UserProfileService,\n public formBuilder: FormBuilder,\n private restaurantRestControllerService: RestaurantRestControllerService,\n private toastController: ToastController,\n private loaderService: LoaderService,\n private smartdineImageRestControllerService: SmartdineImageRestControllerService,\n private registrationServiceForAdmin: RestaurantRegistrationForAdminService,\n private utilService: UtilityService\n ) {\n this.createForm();\n }\n\n private createForm() {\n this.restaurantForm = this.formBuilder.group({\n restaurantName: new FormControl('', [Validators.required]),\n restaurantLogoUrl: new FormControl('', []),\n restaurantDescription: new FormControl('', [Validators.required]),\n restaurantCode: new FormControl('', [Validators.required]),\n fssai: new FormControl('', [Validators.required]),\n gstId: new FormControl('', [Validators.required]),\n restaurantStatus: new FormControl('', [Validators.required]),\n prefTimeZone: new FormControl('', [Validators.required]),\n maxNoOfTables: new FormControl(1, [Validators.required]),\n maxNoOfRestaurantBranches: new FormControl(1, [Validators.required]),\n prefCurrencyCode: new FormControl('', [Validators.required]),\n\n restaurantBranchCode: new FormControl('', [Validators.required]),\n restaurantBranchName: new FormControl('', [Validators.required]),\n restaurantBranchFssai: new FormControl('', [Validators.required]),\n restaurantBranchGstId: new FormControl('', [Validators.required]),\n restaurantBranchEmailId: new FormControl('', [Validators.required]),\n restaurantBranchContactNo: new FormControl('', [Validators.required]),\n restaurantBranchAddress: new FormControl('', [Validators.required]),\n restaurantBranchWebsite: new FormControl('', []),\n restaurantBranchCity: new FormControl('', [Validators.required]),\n restaurantCountry: new FormControl('India', [Validators.required]),\n restaurantBranchState: new FormControl('', [Validators.required]),\n restaurantBranchCountryCode: new FormControl('+91', [Validators.required]),\n allowedPaymentPreferences: new FormControl('', [Validators.required]),\n allowedOrderTypes: new FormControl('', [Validators.required]),\n restaurantAdminUserId: new FormControl('', [Validators.required]),\n restaurantSubscriptionEntitiy: new FormControl('basicRestaurantSubscriptionEntityId', [Validators.required]),\n location: new FormControl(\n { latitude: 0, longitude: 0 } as GeoLocation,\n []\n ),\n });\n }\n\n public ngOnInit() {\n this.setUserProfile();\n this.updateTimeZones(this.selectedCountry);\n if (this.restaurantId) {\n this.setRestaurant();\n } \n }\n\n private setUserProfile() {\n this.userProfile = null;\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n },\n });\n }\n\n private setRestaurant() {\n this.restaurantRestControllerService.getRestaurant(this.restaurantId).subscribe({\n next: (res) => {\n this.restaurantEntity = res.item;\n\n this.restaurantForm.patchValue({\n restaurantId: this.restaurantEntity?.restaurantId ?? '',\n restaurantCode: this.restaurantEntity?.restaurantCode ?? '',\n restaurantName: this.restaurantEntity?.name ?? '',\n restaurantDescription: this.restaurantEntity?.description ?? '',\n restaurantLogoUrl: this.restaurantEntity?.iconUrl ?? '',\n gstId: this.restaurantEntity?.gstIN ?? '',\n iconImage: this.restaurantEntity?.iconImage ?? '',\n restaurantImages: this.restaurantEntity?.restaurantImages ?? '',\n restaurantStatus: this.restaurantEntity?.restaurantStatus ?? '',\n validUpto: this.restaurantEntity?.validUpto ?? '',\n maxNoOfTables: this.restaurantEntity?.maxNoOfTables ?? 0,\n maxNoOfRestaurantBranches: this.restaurantEntity?.maxNoOfRestaurantBranches ?? 0,\n active: this.restaurantEntity?.active ?? false,\n restaurantSubscriptionEntitiy: this.restaurantEntity?.restaurantSubscriptionEntityId ?? 'basicRestaurantSubscriptionEntityId',\n fssai: this.restaurantEntity?.fssai ?? '',\n prefCurrencyCode: this.restaurantEntity?.prefCurrencyCode ?? null,\n prefTimeZone: this.restaurantEntity?.prefTimeZone ?? null,\n prefCurrency: this.restaurantEntity?.prefCurrency ?? null,\n prefTimeZoneId: this.restaurantEntity?.prefTimeZoneId ?? null,\n });\n\n },\n error: (err) => {\n console.error('Unable to get Restaurant details!', err);\n },\n });\n }\n\n public onCloseClick() {\n this.modalController.dismiss('', '', RestaurantUpsertionComponent.id);\n }\n\n public onSaveClick() {\n if(this.restaurantForm.invalid) {\n this.utilService.showAlert(\n `Please fill all the required fields and try again.`, \n 'Invalid Input', \n 'invalid'\n );\n }\n\n if (this.restaurantForm?.valid && !this.restaurantId) {\n this.restaurantForm?.markAllAsTouched();\n this.registerRestaurant();\n } else if (this.restaurantForm?.valid && this.restaurantId) {\n this.restaurantForm?.markAllAsTouched();\n this.updateRestaurant();\n }\n }\n\n private registerRestaurant() {\n const restaurantModel: RestaurantAdminModel = this.restaurantAdminEntity || {};\n Object.assign(restaurantModel, this.restaurantForm.value);\n \n restaurantModel['restaurantId'] = restaurantModel.restaurantName.replace(/\\s+/g, '') + 'RestaurantId';\n restaurantModel['restaurantBranchId'] = restaurantModel.restaurantBranchName.replace(/\\s+/g, '') + 'BranchId';\n \n this.registerNewRestaurant(restaurantModel);\n }\n\n private registerNewRestaurant(restaurantModel: RestaurantAdminModel) {\n this.registrationServiceForAdmin.createRestaurant(restaurantModel).subscribe({\n next: (res: SmartDineResponseRestaurantForAdmin) => {\n\n let data = { refresh: 'true', type: 'created', restaurant: res.item };\n this.modalController.dismiss(data, '', RestaurantUpsertionComponent.id);\n this.utilService.showAlert(\n `Restaurant - ${res.item['name']}, Created Successfully.`, \n 'Restaurant Registeration', \n 'valid'\n );\n\n },\n error: (err) => {\n this.utilService.showAlert(\n `Something went wrong while registering the Restaurant - ${err.message}`, \n 'Registeration Failed', \n 'invalid'\n );\n \n },\n });\n }\n\n private updateRestaurant() {\n const formattedFormData: RestaurantEntity = this.mapFormToValidEntity(\n this.restaurantForm?.value\n );\n this.updatedRestaurant(formattedFormData);\n }\n\n private updatedRestaurant(restaurantModel: RestaurantEntity) {\n this.restaurantRestControllerService.updateRestaurant(restaurantModel, this.restaurantId).subscribe({\n next: (res: SmartDineResponseRestaurantModel) => {\n\n let data = { refresh: 'true', type: 'updated', restaurant: res.item };\n this.modalController.dismiss( data, '', RestaurantUpsertionComponent.id);\n this.utilService.showAlert(\n `Restaurant - ${res.item['name']}, Updated Successfully.`, \n 'Restaurant Updated', \n 'valid'\n );\n\n },\n error: (err) => {\n this.utilService.showAlert(\n `Something went wrong while updating the Restaurant - ${err.message}`, \n 'Registeration Failed', \n 'invalid'\n );\n },\n });\n }\n\n private async showToast(message: string) {\n const toast = await this.toastController.create({\n message,\n duration: 2000,\n });\n toast.present();\n }\n\n /**\n * Method handler to be called on image file browsing/drop.\n */\n onImageSelection(event) {\n const files = event.target.files;\n if (files.length && this.restaurantEntity.restaurantId) {\n this.uploadImage(files[0]);\n }\n }\n\n /**\n * Upload Image.\n * @param file Image File.\n */\n uploadImage(imageFile: any) {\n const restaurantId = this.restaurantEntity.restaurantId; // TODO: Bug in API; Need fixing..\n const fileKey = this.restaurantEntity?.iconImage?.key;\n let uploadRequest = this.smartdineImageRestControllerService.uploadFileForm(\n imageFile,\n this.restaurantId\n );\n if (fileKey) {\n this.loaderService.showLoader();\n uploadRequest = this.smartdineImageRestControllerService.updateFileForm(\n fileKey,\n imageFile,\n this.restaurantId\n );\n }\n\n this.loaderService.showLoader();\n uploadRequest.subscribe(\n (res) => {\n this.restaurantEntity.iconImage = res.item;\n this.loaderService.hideLoader();\n },\n (err) => {\n this.utilService.showAlert(\n `Unable to upload the image - ${err.message}! Please try again.`, \n 'Upload Failed', \n 'invalid'\n ); \n this.loaderService.hideLoader();\n }\n );\n }\n\n public onCountryChange(event: Event) {\n\n this.selectedCountry = event['detail']?.value;\n this.updateTimeZones(this.selectedCountry);\n\n if (event['detail'].value === 'India') {\n this.restaurantForm.get('restaurantBranchState').setValue('');\n } else if (event['detail'].value === 'USA') {\n this.restaurantForm.get('restaurantBranchState').setValue('');\n }\n\n }\n\n public showMap(locationFormControl: any) {\n this.showMapPopup(locationFormControl);\n }\n\n public async showMapPopup(locationControl: any) {\n const geolocation: GeoLocation = locationControl.value;\n const model = await this.modalController.create({\n component: AddressComponent,\n id: AddressComponent.id,\n componentProps: {\n location: geolocation,\n },\n });\n model.onDidDismiss().then((selLocation) => {\n locationControl.setValue({\n latitude: selLocation?.data?.location?.lat,\n longitude: selLocation?.data?.location?.lng,\n });\n });\n await model.present();\n }\n\n private mapFormToValidEntity(formValue: RestaurantAdminModel) {\n return {\n restaurantId: this.restaurantId,\n restaurantCode: formValue?.restaurantCode ?? '',\n name: formValue?.restaurantName ?? '',\n description: formValue?.restaurantDescription ?? '',\n iconUrl: formValue?.restaurantLogoUrl ?? '',\n gstIN: formValue?.gstId ?? '',\n fssai: formValue?.fssai ?? '',\n restaurantStatus: formValue?.restaurantStatus ?? 'PUBLISHED',\n maxNoOfTables: formValue?.maxNoOfTables ?? 0,\n maxNoOfRestaurantBranches: formValue?.maxNoOfRestaurantBranches ?? 0,\n restaurantSubscriptionEntityId: formValue?.restaurantSubscriptionEntitiy ?? 'basicRestaurantSubscriptionEntityId',\n prefTimeZoneId: formValue?.prefTimeZone ?? null,\n prefTimeZone: this.timeZones?.find(time => time.id === formValue?.prefTimeZoneId) ?? null,\n prefCurrencyCode: formValue?.prefCurrencyCode ?? null,\n prefCurrency: this.currencyList.find(currency => currency.currencyCode === formValue?.prefCurrencyCode) ?? null,\n };\n }\n\n private updateTimeZones(country: string) {\n\n if (country === 'India') {\n\n this.timeZones = TIME_ZONES.filter(zone => zone.id.startsWith('Asia'));\n this.selectedTimeZone = this.timeZones.find(t => t.id.startsWith('Asia')).id;\n\n } else if (country === 'USA') {\n\n this.timeZones = TIME_ZONES.filter(zone => zone.id.startsWith('US'));\n this.selectedTimeZone = this.timeZones.find(t => t.id.startsWith('US')).id;\n\n }\n\n }\n\n}\n","import { CurrencyModel, RestaurantModelPrefTimeZone } from 'src/app/swagger';\n\nexport const COUNTRY_LIST = ['India', 'USA'];\n\nexport const INDIAN_STATES = [\n 'Andhra Pradesh',\n 'Arunachal Pradesh',\n 'Assam',\n 'Bihar',\n 'Chhattisgarh',\n 'Goa',\n 'Gujarat',\n 'Haryana',\n 'Himachal Pradesh',\n 'Jharkhand',\n 'Karnataka',\n 'Kerala',\n 'Madhya Pradesh',\n 'Maharashtra',\n 'Manipur',\n 'Meghalaya',\n 'Mizoram',\n 'Nagaland',\n 'Odisha',\n 'Punjab',\n 'Rajasthan',\n 'Sikkim',\n 'Tamil Nadu',\n 'Telangana',\n 'Tripura',\n 'Uttar Pradesh',\n 'Uttarakhand',\n 'West Bengal',\n 'Andaman and Nicobar Islands',\n 'Chandigarh',\n 'Dadra and Nagar Haveli',\n 'Daman and Diu',\n 'Lakshadweep',\n 'Delhi',\n 'Puducherry',\n];\n\nexport const USA_STATES = [\n 'Alabama',\n 'Alaska',\n 'Arizona',\n 'Arkansas',\n 'California',\n 'Colorado',\n 'Connecticut',\n 'Delaware',\n 'Florida',\n 'Georgia',\n 'Hawaii',\n 'Idaho',\n 'Illinois',\n 'Indiana',\n 'Iowa',\n 'Kansas',\n 'Kentucky',\n 'Louisiana',\n 'Maine',\n 'Maryland',\n 'Massachusetts',\n 'Michigan',\n 'Minnesota',\n 'Mississippi',\n 'Missouri',\n 'Montana',\n 'Nebraska',\n 'Nevada',\n 'New Hampshire',\n 'New Jersey',\n 'New Mexico',\n 'New York',\n 'North Carolina',\n 'North Dakota',\n 'Ohio',\n 'Oklahoma',\n 'Oregon',\n 'Pennsylvania',\n 'Rhode Island',\n 'South Carolina',\n 'South Dakota',\n 'Tennessee',\n 'Texas',\n 'Utah',\n 'Vermont',\n 'Virginia',\n 'Washington',\n 'West Virginia',\n 'Wisconsin',\n 'Wyoming',\n];\n\nexport const COUNTRY_CODE = ['+91', '+1'];\n\nexport const CURRENCY_CODES = ['INR', 'USD'];\n\nexport const CURRENCY_LIST: CurrencyModel[] = [\n { currencyCode: 'INR', currencysymbol: '₹', displayName: 'Indian Rupee' },\n { currencyCode: 'USD', currencysymbol: '$', displayName: 'US Dollar' },\n];\n\nexport const TIME_ZONES: RestaurantModelPrefTimeZone[] = [\n {\n id: 'Asia/Kolkata',\n displayName: 'India Standard Time (IST)',\n dstsavings: 0,\n rawOffset: 5.5,\n },\n {\n id: 'US/Central',\n displayName: 'Central Standard Time',\n dstsavings: 1,\n rawOffset: -6,\n },\n {\n id: 'US/Eastern',\n displayName: 'Eastern Standard Time',\n dstsavings: 1,\n rawOffset: -5,\n },\n {\n id: 'US/Mountain',\n displayName: 'Mountain Standard Time',\n dstsavings: 1,\n rawOffset: -7,\n },\n {\n id: 'US/Pacific',\n displayName: 'Pacific Standard Time',\n dstsavings: 1,\n rawOffset: -8,\n },\n];\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MenuItemMapPriceEntity } from '../model/menuItemMapPriceEntity';\nimport { SmartDineResponseMenuItemMapPriceEntity } from '../model/smartDineResponseMenuItemMapPriceEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class MenuItemMapPriceRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createMenuItemMapPrice(body: MenuItemMapPriceEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createMenuItemMapPrice(body: MenuItemMapPriceEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createMenuItemMapPrice(body: MenuItemMapPriceEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createMenuItemMapPrice(body: MenuItemMapPriceEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createMenuItemMapPrice.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createMenuItemMapPrice.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling createMenuItemMapPrice.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling createMenuItemMapPrice.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/prices`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param menuItemMapPriceId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteMenuItemMapPrice(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteMenuItemMapPrice(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteMenuItemMapPrice(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteMenuItemMapPrice(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteMenuItemMapPrice.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling deleteMenuItemMapPrice.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling deleteMenuItemMapPrice.');\n }\n\n if (menuItemMapPriceId === null || menuItemMapPriceId === undefined) {\n throw new Error('Required parameter menuItemMapPriceId was null or undefined when calling deleteMenuItemMapPrice.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/prices/${encodeURIComponent(String(menuItemMapPriceId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param menuItemMapPriceId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItemMapPrice(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItemMapPrice(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItemMapPrice(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItemMapPrice(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getMenuItemMapPrice.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getMenuItemMapPrice.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling getMenuItemMapPrice.');\n }\n\n if (menuItemMapPriceId === null || menuItemMapPriceId === undefined) {\n throw new Error('Required parameter menuItemMapPriceId was null or undefined when calling getMenuItemMapPrice.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/prices/${encodeURIComponent(String(menuItemMapPriceId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItemMapPrices(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItemMapPrices(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItemMapPrices(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItemMapPrices(restaurantId: string, restaurantBranchId: string, menuItemMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getMenuItemMapPrices.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getMenuItemMapPrices.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling getMenuItemMapPrices.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/prices`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuItemMapId \n * @param menuItemMapPriceId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateMenuItemMapPrice(body: MenuItemMapPriceEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateMenuItemMapPrice(body: MenuItemMapPriceEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateMenuItemMapPrice(body: MenuItemMapPriceEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateMenuItemMapPrice(body: MenuItemMapPriceEntity, restaurantId: string, restaurantBranchId: string, menuItemMapId: string, menuItemMapPriceId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateMenuItemMapPrice.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateMenuItemMapPrice.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updateMenuItemMapPrice.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling updateMenuItemMapPrice.');\n }\n\n if (menuItemMapPriceId === null || menuItemMapPriceId === undefined) {\n throw new Error('Required parameter menuItemMapPriceId was null or undefined when calling updateMenuItemMapPrice.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}/prices/${encodeURIComponent(String(menuItemMapPriceId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"/** Ionic CSS Variables **/\\n:root {\\n /** primary **/\\n --ion-color-primary: #356859;\\n --ion-color-primary-rgb: 53, 104, 89;\\n --ion-color-primary-contrast: #ffffff;\\n --ion-color-primary-contrast-rgb: 255, 255, 255;\\n --ion-color-primary-shade: #142721;\\n --ion-color-primary-tint: #498f7a;\\n /** secondary **/\\n --ion-color-secondary: #f3ad6a;\\n --ion-color-secondary-rgb: 243, 173, 106;\\n --ion-color-secondary-contrast: #ffffff;\\n --ion-color-secondary-contrast-rgb: 255, 255, 255;\\n --ion-color-secondary-shade: #f2a358;\\n --ion-color-secondary-tint: #f7cda5;\\n /** tertiary **/\\n --ion-color-tertiary: #22254c;\\n --ion-color-tertiary-rgb: 34, 37, 76;\\n --ion-color-tertiary-contrast: #ffffff;\\n --ion-color-tertiary-contrast-rgb: 255, 255, 255;\\n --ion-color-tertiary-shade: #14162d;\\n --ion-color-tertiary-tint: #7a7c93;\\n /** success **/\\n --ion-color-success: #2dd36f;\\n --ion-color-success-rgb: 45, 211, 111;\\n --ion-color-success-contrast: #ffffff;\\n --ion-color-success-contrast-rgb: 255, 255, 255;\\n --ion-color-success-shade: #28ba62;\\n --ion-color-success-tint: #42d77d;\\n /** warning **/\\n --ion-color-warning: #ffc409;\\n --ion-color-warning-rgb: 255, 196, 9;\\n --ion-color-warning-contrast: #000000;\\n --ion-color-warning-contrast-rgb: 0, 0, 0;\\n --ion-color-warning-shade: #e0ac08;\\n --ion-color-warning-tint: #ffca22;\\n /** danger **/\\n --ion-color-danger: #eb445a;\\n --ion-color-danger-rgb: 235, 68, 90;\\n --ion-color-danger-contrast: #ffffff;\\n --ion-color-danger-contrast-rgb: 255, 255, 255;\\n --ion-color-danger-shade: #cf3c4f;\\n --ion-color-danger-tint: #ed576b;\\n /** dark **/\\n --ion-color-dark: #222428;\\n --ion-color-dark-rgb: 34, 36, 40;\\n --ion-color-dark-contrast: #ffffff;\\n --ion-color-dark-contrast-rgb: 255, 255, 255;\\n --ion-color-dark-shade: #1e2023;\\n --ion-color-dark-tint: #383a3e;\\n /** medium **/\\n --ion-color-medium: #92949c;\\n --ion-color-medium-rgb: 146, 148, 156;\\n --ion-color-medium-contrast: #ffffff;\\n --ion-color-medium-contrast-rgb: 255, 255, 255;\\n --ion-color-medium-shade: #808289;\\n --ion-color-medium-tint: #9d9fa6;\\n /** light **/\\n --ion-color-light: #f4f5f8;\\n --ion-color-light-rgb: 244, 245, 248;\\n --ion-color-light-contrast: #000000;\\n --ion-color-light-contrast-rgb: 0, 0, 0;\\n --ion-color-light-shade: #d7d8da;\\n --ion-color-light-tint: #f5f6f9;\\n --ion-color-link: #428cff;\\n --ion-color-link-rgb: 66,140,255;\\n --ion-color-link-contrast: #ffffff;\\n --ion-color-link-contrast-rgb: 255,255,255;\\n --ion-color-link-shade: #3a7be0;\\n --ion-color-link-tint: #5598ff;\\n --side-menu-width: 250px;\\n --side-menu-collapsed-width: 60px;\\n}\\nion-card {\\n --card-border-radius: 3px;\\n}\\nion-button {\\n --border-width: 1px;\\n --border-radius: 3px;\\n}\\nion-toolbar.in-toolbar {\\n --background: var(--ion-color-primary);\\n --min-height: 56px;\\n}\\nion-toolbar.in-toolbar ion-button.button {\\n --color: var(--ion-color-primary-contrast);\\n}\\nion-title {\\n color: var(--ion-color-secondary);\\n padding: 0 4px;\\n}\\nion-title .logo {\\n height: 2rem;\\n vertical-align: bottom;\\n}\\nion-title .title {\\n font-family: \\\"Staatliches\\\";\\n color: var(--ion-color-secondary);\\n letter-spacing: 5px;\\n vertical-align: text-top;\\n line-height: 30px;\\n}\\nion-title .title .dine {\\n color: var(--ion-color-tertiary);\\n}\\n.language-chooser {\\n color: var(--ion-color-primary-contrast);\\n}\\n@media only screen and (max-width: 400px) {\\n .title {\\n display: none;\\n }\\n}\\n.w-150px {\\n width: 150px;\\n}\\n.max-h-75px {\\n max-height: 75px !important;\\n}\\nion-button.btn-notification {\\n position: relative;\\n --padding-start: 0;\\n --padding-end: 0;\\n}\\nion-button.btn-notification ion-badge.notify-badge {\\n position: absolute;\\n top: -5px;\\n right: 10px;\\n z-index: 1;\\n color: #f1f1f1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vaGVhZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLDBCQUFBO0FBQ0E7RUFDRSxjQUFBO0VBQ0EsNEJBQUE7RUFDQSxvQ0FBQTtFQUNBLHFDQUFBO0VBQ0EsK0NBQUE7RUFDQSxrQ0FBQTtFQUNBLGlDQUFBO0VBRUEsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLHdDQUFBO0VBQ0EsdUNBQUE7RUFDQSxpREFBQTtFQUNBLG9DQUFBO0VBQ0EsbUNBQUE7RUFFQSxlQUFBO0VBQ0EsNkJBQUE7RUFDQSxvQ0FBQTtFQUNBLHNDQUFBO0VBQ0EsZ0RBQUE7RUFDQSxtQ0FBQTtFQUNBLGtDQUFBO0VBRUEsY0FBQTtFQUNBLDRCQUFBO0VBQ0EscUNBQUE7RUFDQSxxQ0FBQTtFQUNBLCtDQUFBO0VBQ0Esa0NBQUE7RUFDQSxpQ0FBQTtFQUVBLGNBQUE7RUFDQSw0QkFBQTtFQUNBLG9DQUFBO0VBQ0EscUNBQUE7RUFDQSx5Q0FBQTtFQUNBLGtDQUFBO0VBQ0EsaUNBQUE7RUFFQSxhQUFBO0VBQ0EsMkJBQUE7RUFDQSxtQ0FBQTtFQUNBLG9DQUFBO0VBQ0EsOENBQUE7RUFDQSxpQ0FBQTtFQUNBLGdDQUFBO0VBRUEsV0FBQTtFQUNBLHlCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxrQ0FBQTtFQUNBLDRDQUFBO0VBQ0EsK0JBQUE7RUFDQSw4QkFBQTtFQUVBLGFBQUE7RUFDQSwyQkFBQTtFQUNBLHFDQUFBO0VBQ0Esb0NBQUE7RUFDQSw4Q0FBQTtFQUNBLGlDQUFBO0VBQ0EsZ0NBQUE7RUFFQSxZQUFBO0VBQ0EsMEJBQUE7RUFDQSxvQ0FBQTtFQUNBLG1DQUFBO0VBQ0EsdUNBQUE7RUFDQSxnQ0FBQTtFQUNBLCtCQUFBO0VBRUEseUJBQUE7RUFDQSxnQ0FBQTtFQUNBLGtDQUFBO0VBQ0EsMENBQUE7RUFDQSwrQkFBQTtFQUNBLDhCQUFBO0VBRUEsd0JBQUE7RUFDQSxpQ0FBQTtBQ1pGO0FEZUE7RUFDRSx5QkFBQTtBQ1pGO0FEZUE7RUFDRSxtQkFBQTtFQUNBLG9CQUFBO0FDWkY7QUEvRUE7RUFDRSxzQ0FBQTtFQUNBLGtCQUFBO0FBa0ZGO0FBaEZFO0VBQ0UsMENBQUE7QUFrRko7QUE5RUE7RUFDRSxpQ0FBQTtFQUNBLGNBQUE7QUFpRkY7QUEvRUU7RUFDRSxZQUFBO0VBQ0Esc0JBQUE7QUFpRko7QUE5RUU7RUFDRSwwQkFBQTtFQUNBLGlDQUFBO0VBQ0EsbUJBQUE7RUFDQSx3QkFBQTtFQUNBLGlCQUFBO0FBZ0ZKO0FBOUVJO0VBQ0UsZ0NBQUE7QUFnRk47QUEzRUE7RUFDRSx3Q0FBQTtBQThFRjtBQTNFQTtFQUNFO0lBQ0UsYUFBQTtFQThFRjtBQUNGO0FBNUVBO0VBQ0UsWUFBQTtBQThFRjtBQTVFQTtFQUNFLDJCQUFBO0FBK0VGO0FBNUVBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0FBK0VGO0FBN0VFO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0FBK0VKIiwiZmlsZSI6ImhlYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIElvbmljIFZhcmlhYmxlcyBhbmQgVGhlbWluZy4gRm9yIG1vcmUgaW5mbywgcGxlYXNlIHNlZTpcbi8vIGh0dHA6Ly9pb25pY2ZyYW1ld29yay5jb20vZG9jcy90aGVtaW5nL1xuXG4vKiogSW9uaWMgQ1NTIFZhcmlhYmxlcyAqKi9cbjpyb290IHtcbiAgLyoqIHByaW1hcnkgKiovXG4gIC0taW9uLWNvbG9yLXByaW1hcnk6ICMzNTY4NTk7XG4gIC0taW9uLWNvbG9yLXByaW1hcnktcmdiOiA1MywgMTA0LCA4OTtcbiAgLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdDogI2ZmZmZmZjtcbiAgLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdC1yZ2I6IDI1NSwgMjU1LCAyNTU7XG4gIC0taW9uLWNvbG9yLXByaW1hcnktc2hhZGU6ICMxNDI3MjE7XG4gIC0taW9uLWNvbG9yLXByaW1hcnktdGludDogIzQ5OGY3YTtcblxuICAvKiogc2Vjb25kYXJ5ICoqL1xuICAtLWlvbi1jb2xvci1zZWNvbmRhcnk6ICNmM2FkNmE7XG4gIC0taW9uLWNvbG9yLXNlY29uZGFyeS1yZ2I6IDI0MywgMTczLCAxMDY7XG4gIC0taW9uLWNvbG9yLXNlY29uZGFyeS1jb250cmFzdDogI2ZmZmZmZjtcbiAgLS1pb24tY29sb3Itc2Vjb25kYXJ5LWNvbnRyYXN0LXJnYjogMjU1LCAyNTUsIDI1NTtcbiAgLS1pb24tY29sb3Itc2Vjb25kYXJ5LXNoYWRlOiAjZjJhMzU4O1xuICAtLWlvbi1jb2xvci1zZWNvbmRhcnktdGludDogI2Y3Y2RhNTtcblxuICAvKiogdGVydGlhcnkgKiovXG4gIC0taW9uLWNvbG9yLXRlcnRpYXJ5OiAjMjIyNTRjO1xuICAtLWlvbi1jb2xvci10ZXJ0aWFyeS1yZ2I6IDM0LCAzNywgNzY7XG4gIC0taW9uLWNvbG9yLXRlcnRpYXJ5LWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWlvbi1jb2xvci10ZXJ0aWFyeS1jb250cmFzdC1yZ2I6IDI1NSwgMjU1LCAyNTU7XG4gIC0taW9uLWNvbG9yLXRlcnRpYXJ5LXNoYWRlOiAjMTQxNjJkO1xuICAtLWlvbi1jb2xvci10ZXJ0aWFyeS10aW50OiAjN2E3YzkzO1xuXG4gIC8qKiBzdWNjZXNzICoqL1xuICAtLWlvbi1jb2xvci1zdWNjZXNzOiAjMmRkMzZmO1xuICAtLWlvbi1jb2xvci1zdWNjZXNzLXJnYjogNDUsIDIxMSwgMTExO1xuICAtLWlvbi1jb2xvci1zdWNjZXNzLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWlvbi1jb2xvci1zdWNjZXNzLWNvbnRyYXN0LXJnYjogMjU1LCAyNTUsIDI1NTtcbiAgLS1pb24tY29sb3Itc3VjY2Vzcy1zaGFkZTogIzI4YmE2MjtcbiAgLS1pb24tY29sb3Itc3VjY2Vzcy10aW50OiAjNDJkNzdkO1xuXG4gIC8qKiB3YXJuaW5nICoqL1xuICAtLWlvbi1jb2xvci13YXJuaW5nOiAjZmZjNDA5O1xuICAtLWlvbi1jb2xvci13YXJuaW5nLXJnYjogMjU1LCAxOTYsIDk7XG4gIC0taW9uLWNvbG9yLXdhcm5pbmctY29udHJhc3Q6ICMwMDAwMDA7XG4gIC0taW9uLWNvbG9yLXdhcm5pbmctY29udHJhc3QtcmdiOiAwLCAwLCAwO1xuICAtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlOiAjZTBhYzA4O1xuICAtLWlvbi1jb2xvci13YXJuaW5nLXRpbnQ6ICNmZmNhMjI7XG5cbiAgLyoqIGRhbmdlciAqKi9cbiAgLS1pb24tY29sb3ItZGFuZ2VyOiAjZWI0NDVhO1xuICAtLWlvbi1jb2xvci1kYW5nZXItcmdiOiAyMzUsIDY4LCA5MDtcbiAgLS1pb24tY29sb3ItZGFuZ2VyLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWlvbi1jb2xvci1kYW5nZXItY29udHJhc3QtcmdiOiAyNTUsIDI1NSwgMjU1O1xuICAtLWlvbi1jb2xvci1kYW5nZXItc2hhZGU6ICNjZjNjNGY7XG4gIC0taW9uLWNvbG9yLWRhbmdlci10aW50OiAjZWQ1NzZiO1xuXG4gIC8qKiBkYXJrICoqL1xuICAtLWlvbi1jb2xvci1kYXJrOiAjMjIyNDI4O1xuICAtLWlvbi1jb2xvci1kYXJrLXJnYjogMzQsIDM2LCA0MDtcbiAgLS1pb24tY29sb3ItZGFyay1jb250cmFzdDogI2ZmZmZmZjtcbiAgLS1pb24tY29sb3ItZGFyay1jb250cmFzdC1yZ2I6IDI1NSwgMjU1LCAyNTU7XG4gIC0taW9uLWNvbG9yLWRhcmstc2hhZGU6ICMxZTIwMjM7XG4gIC0taW9uLWNvbG9yLWRhcmstdGludDogIzM4M2EzZTtcblxuICAvKiogbWVkaXVtICoqL1xuICAtLWlvbi1jb2xvci1tZWRpdW06ICM5Mjk0OWM7XG4gIC0taW9uLWNvbG9yLW1lZGl1bS1yZ2I6IDE0NiwgMTQ4LCAxNTY7XG4gIC0taW9uLWNvbG9yLW1lZGl1bS1jb250cmFzdDogI2ZmZmZmZjtcbiAgLS1pb24tY29sb3ItbWVkaXVtLWNvbnRyYXN0LXJnYjogMjU1LCAyNTUsIDI1NTtcbiAgLS1pb24tY29sb3ItbWVkaXVtLXNoYWRlOiAjODA4Mjg5O1xuICAtLWlvbi1jb2xvci1tZWRpdW0tdGludDogIzlkOWZhNjtcblxuICAvKiogbGlnaHQgKiovXG4gIC0taW9uLWNvbG9yLWxpZ2h0OiAjZjRmNWY4O1xuICAtLWlvbi1jb2xvci1saWdodC1yZ2I6IDI0NCwgMjQ1LCAyNDg7XG4gIC0taW9uLWNvbG9yLWxpZ2h0LWNvbnRyYXN0OiAjMDAwMDAwO1xuICAtLWlvbi1jb2xvci1saWdodC1jb250cmFzdC1yZ2I6IDAsIDAsIDA7XG4gIC0taW9uLWNvbG9yLWxpZ2h0LXNoYWRlOiAjZDdkOGRhO1xuICAtLWlvbi1jb2xvci1saWdodC10aW50OiAjZjVmNmY5O1xuXG4gIC0taW9uLWNvbG9yLWxpbms6ICM0MjhjZmY7XG4gIC0taW9uLWNvbG9yLWxpbmstcmdiOiA2NiwxNDAsMjU1O1xuICAtLWlvbi1jb2xvci1saW5rLWNvbnRyYXN0OiAjZmZmZmZmO1xuICAtLWlvbi1jb2xvci1saW5rLWNvbnRyYXN0LXJnYjogMjU1LDI1NSwyNTU7XG4gIC0taW9uLWNvbG9yLWxpbmstc2hhZGU6ICMzYTdiZTA7XG4gIC0taW9uLWNvbG9yLWxpbmstdGludDogIzU1OThmZjtcblxuICAtLXNpZGUtbWVudS13aWR0aDogMjUwcHg7XG4gIC0tc2lkZS1tZW51LWNvbGxhcHNlZC13aWR0aDogNjBweDtcbn1cblxuaW9uLWNhcmQge1xuICAtLWNhcmQtYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5pb24tYnV0dG9uIHtcbiAgLS1ib3JkZXItd2lkdGg6IDFweDtcbiAgLS1ib3JkZXItcmFkaXVzOiAzcHg7XG59XG4iLCJAaW1wb3J0ICdzcmMvdGhlbWUvdmFyaWFibGVzLnNjc3MnO1xuXG5cbmlvbi10b29sYmFyLmluLXRvb2xiYXIge1xuICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgLS1taW4taGVpZ2h0OiA1NnB4O1xuXG4gIGlvbi1idXR0b24uYnV0dG9uIHtcbiAgICAtLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XG4gIH1cbn1cblxuaW9uLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnkpO1xuICBwYWRkaW5nOiAwIDRweDtcblxuICAubG9nbyB7XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIH1cblxuICAudGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiAnU3RhYXRsaWNoZXMnO1xuICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5KTtcbiAgICBsZXR0ZXItc3BhY2luZzogNXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcblxuICAgIC5kaW5lIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItdGVydGlhcnkpO1xuICAgIH1cbiAgfVxufVxuXG4ubGFuZ3VhZ2UtY2hvb3NlciB7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDAwcHgpe1xuICAudGl0bGV7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnctMTUwcHh7XG4gIHdpZHRoOiAxNTBweDtcbn1cbi5tYXgtaC03NXB4e1xuICBtYXgtaGVpZ2h0OiA3NXB4ICFpbXBvcnRhbnQ7XG59XG5cbmlvbi1idXR0b24uYnRuLW5vdGlmaWNhdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xuICAtLXBhZGRpbmctZW5kOiAwO1xuXG4gIGlvbi1iYWRnZS5ub3RpZnktYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC01cHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgei1pbmRleDogMTtcbiAgICBjb2xvcjogI2YxZjFmMTtcbiAgfVxufSJdfQ== */\";","export default \"\\n \\n\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface GeoLocation { \n latitude?: number;\n longitude?: number;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface AdminImagesBody1 { \n file: Blob;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CurrencyModel } from './currencyModel';\nimport { RestaurantModelPrefTimeZone } from './restaurantModelPrefTimeZone';\nimport { SmartDineImage } from './smartDineImage';\n\nexport interface RestaurantEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n restaurantId?: string;\n restaurantCode?: string;\n name?: string;\n description?: string;\n iconUrl?: string;\n gstIN?: string;\n fssai?: string;\n iconImage?: SmartDineImage;\n restaurantImages?: Array;\n restaurantStatus?: RestaurantEntity.RestaurantStatusEnum;\n validUpto?: Date;\n maxNoOfTables?: number;\n maxNoOfRestaurantBranches?: number;\n restaurantSubscriptionEntityId?: string;\n active?: boolean;\n prefCurrencyCode?: string;\n prefTimeZoneId?: string;\n prefTimeZone?: RestaurantModelPrefTimeZone;\n prefCurrency?: CurrencyModel;\n}\nexport namespace RestaurantEntity {\n export type RestaurantStatusEnum = 'DRAFT' | 'PENDING_APPROVAL' | 'APPROVED' | 'REJECTED' | 'PUBLISHED' | 'UNPUBLISHED' | 'PAYMENT_PENDING';\n export const RestaurantStatusEnum = {\n DRAFT: 'DRAFT' as RestaurantStatusEnum,\n PENDINGAPPROVAL: 'PENDING_APPROVAL' as RestaurantStatusEnum,\n APPROVED: 'APPROVED' as RestaurantStatusEnum,\n REJECTED: 'REJECTED' as RestaurantStatusEnum,\n PUBLISHED: 'PUBLISHED' as RestaurantStatusEnum,\n UNPUBLISHED: 'UNPUBLISHED' as RestaurantStatusEnum,\n PAYMENTPENDING: 'PAYMENT_PENDING' as RestaurantStatusEnum\n };\n}","export default \"\\n \\n Privacy Policy for SmartdineNow\\n \\n Close\\n \\n \\n\\n\\n\\n \\n

Privacy Policy for SmartdineNow

\\n\\n
\\n At SmartdineNow, accessible from https://www.smartdinenow.com, one of our main priorities is the privacy of our\\n visitors. This Privacy Policy document contains types of information that is collected and recorded by\\n SmartdineNow and how we use it.\\n If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact\\n us.\\n This Privacy Policy applies only to our online activities and is valid for visitors to our website with regards\\n to the information that they shared and/or collect in SmartdineNow. This policy is not applicable to any\\n information collected offline or via channels other than this website. Our Privacy Policy was created with the\\n help of the Free Privacy Policy Generator.\\n
\\n\\n

Consent:

\\n\\n
\\n By using our website, you hereby consent to our Privacy Policy and agree to its terms.\\n
\\n\\n

Information we collect:

\\n\\n
\\n The personal information that you are asked to provide, and the reasons why you are asked to provide it, will be\\n made clear to you at the point we ask you to provide your personal information.\\n If you contact us directly, we may receive additional information about you such as your name, email address,\\n phone number, the contents of the message and/or attachments you may send us, and any other information you may\\n choose to provide.\\n When you register for an Account, we may ask for your contact information, including items such as name, company\\n name, address, email address, and telephone number.\\n
\\n\\n

How we use your information:

\\n\\n
\\n We use the information we collect in various ways, including to:\\n
    \\n
  • Provide, operate, and maintain our website
  • \\n
  • Improve, personalize, and expand our website
  • \\n
  • Understand and analyze how you use our website
  • \\n
  • Develop new products, services, features, and functionality
  • \\n
  • Communicate with you, either directly or through one of our partners, including for customer service, to\\n provide you with updates and other information relating to the website, and for marketing and promotional\\n purposes
  • \\n
  • Send you emails
  • \\n
  • Find and prevent fraud
  • \\n
\\n
\\n\\n

Log Files:

\\n\\n
\\n SmartdineNow follows a standard procedure of using log files. These files log visitors when they visit websites.\\n All hosting companies do this and a part of hosting services' analytics. The information collected by log files\\n include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time stamp,\\n referring/exit pages, and possibly the number of clicks. These are not linked to any information that is\\n personally identifiable. The purpose of the information is for analyzing trends, administering the site, tracking\\n users' movement on the website, and gathering demographic information.\\n
\\n\\n

Cookies and Web Beacons:

\\n\\n
\\n Like any other website, SmartdineNow uses 'cookies'. These cookies are used to store information including\\n visitors' preferences, and the pages on the website that the visitor accessed or visited. The information is used\\n to optimize the users' experience by customizing our web page content based on visitors' browser type and/or other\\n information.\\n \\n For more general information on cookies, please read the Cookies article on Generate Privacy Policy website.\\n
\\n\\n

Advertising Partners Privacy Policies:

\\n\\n
\\n You may consult this list to find the Privacy Policy for each of the advertising partners of SmartdineNow.\\n Third-party ad servers or ad networks uses technologies like cookies, JavaScript, or Web Beacons that are used in\\n their respective advertisements and links that appear on SmartdineNow, which are sent directly to users' browser.\\n They automatically receive your IP address when this occurs. These technologies are used to measure the\\n effectiveness of their advertising campaigns and/or to personalize the advertising content that you see on\\n websites that you visit.\\n Note that SmartdineNow has no access to or control over these cookies that are used by third-party advertisers.\\n \\n
\\n\\n

Third Party Privacy Policies:

\\n\\n
\\n SmartdineNow's Privacy Policy does not apply to other advertisers or websites. Thus, we are advising you to\\n consult the respective Privacy Policies of these third-party ad servers for more detailed information. It may\\n include their practices and instructions about how to opt-out of certain options. \\n You can choose to disable cookies through your individual browser options. To know more detailed information\\n about cookie management with specific web browsers, it can be found at the browsers' respective websites.\\n
\\n\\n

CCPA Privacy Rights (Do Not Sell My Personal Information):

\\n\\n
\\n Under the CCPA, among other rights, California consumers have the right to:\\n Request that a business that collects a consumer's personal data disclose the categories and specific pieces of\\n personal data that a business has collected about consumers.\\n Request that a business delete any personal data about the consumer that a business has collected.\\n Request that a business that sells a consumer's personal data, not sell the consumer's personal data.\\n If you make a request, we have one month to respond to you. If you would like to exercise any of these rights,\\n please contact us.\\n
\\n\\n

GDPR Data Protection Rights:

\\n\\n
\\n We would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to\\n the following:\\n The right to access – You have the right to request copies of your personal data. We may charge you a small fee\\n for this service.\\n The right to rectification – You have the right to request that we correct any information you believe is\\n inaccurate. You also have the right to request that we complete the information you believe is incomplete.\\n The right to erasure – You have the right to request that we erase your personal data, under certain conditions.\\n \\n The right to restrict processing – You have the right to request that we restrict the processing of your personal\\n data, under certain conditions.\\n The right to object to processing – You have the right to object to our processing of your personal data, under\\n certain conditions.\\n The right to data portability – You have the right to request that we transfer the data that we have collected to\\n another organization, or directly to you, under certain conditions.\\n If you make a request, we have one month to respond to you. If you would like to exercise any of these rights,\\n please contact us.\\n
\\n\\n

Children's Information:

\\n\\n
\\n Another part of our priority is adding protection for children while using the internet. We encourage parents and\\n guardians to observe, participate in, and/or monitor and guide their online activity.\\n SmartdineNow does not knowingly collect any Personal Identifiable Information from children under the age of 13.\\n If you think that your child provided this kind of information on our website, we strongly encourage you to\\n contact us immediately and we will do our best efforts to promptly remove such information from our records.\\n
\\n
\";","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MessageService } from 'src/app/common/services/message/message.service';\nimport { UserProfileService } from 'src/app/common/services/user-profile/user-profile.service';\nimport { ProfileModel } from 'src/app/swagger';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RoleGuard implements CanActivate {\n\n constructor(\n private userProfileService: UserProfileService,\n private router: Router,\n private messageService: MessageService\n ) { }\n\n canActivate(route: ActivatedRouteSnapshot, _state: RouterStateSnapshot): Observable {\n const expectedRole = route.data.expectedRole;\n const skipRoleCheck = _state;\n \n if (skipRoleCheck) {\n return of(true);\n }\n \n if (this.userProfileService.getUserLoggedIn()) {\n return this.userProfileService.getUserProfile().pipe(\n map((userProfile: ProfileModel) => {\n const isAllowed = userProfile.roles.includes(expectedRole);\n if (!isAllowed) {\n this.router.navigateByUrl('/');\n }\n \n return isAllowed;\n })\n );\n } else {\n //this.messageService.showMessage('You are not logged In. Please login!')\n this.router.navigateByUrl('/');\n } \n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { PaymentOptionEntity } from '../model/paymentOptionEntity';\nimport { SmartDineResponsePaymentOptionEntity } from '../model/smartDineResponsePaymentOptionEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class PaymentOptionRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createPaymentOptions(body: PaymentOptionEntity, restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createPaymentOptions(body: PaymentOptionEntity, restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createPaymentOptions(body: PaymentOptionEntity, restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createPaymentOptions(body: PaymentOptionEntity, restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createPaymentOptions.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createPaymentOptions.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling createPaymentOptions.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/paymentoptions`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param paymentOptionId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deletePaymentOption(paymentOptionId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deletePaymentOption(paymentOptionId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deletePaymentOption(paymentOptionId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deletePaymentOption(paymentOptionId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (paymentOptionId === null || paymentOptionId === undefined) {\n throw new Error('Required parameter paymentOptionId was null or undefined when calling deletePaymentOption.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/paymentoptions/${encodeURIComponent(String(paymentOptionId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param paymentOptionId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPaymentOption(restaurantId: string, restaurantBranchId: string, paymentOptionId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getPaymentOption(restaurantId: string, restaurantBranchId: string, paymentOptionId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getPaymentOption(restaurantId: string, restaurantBranchId: string, paymentOptionId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getPaymentOption(restaurantId: string, restaurantBranchId: string, paymentOptionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getPaymentOption.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getPaymentOption.');\n }\n\n if (paymentOptionId === null || paymentOptionId === undefined) {\n throw new Error('Required parameter paymentOptionId was null or undefined when calling getPaymentOption.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/paymentoptions/${encodeURIComponent(String(paymentOptionId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPaymentOptions1(restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getPaymentOptions1(restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getPaymentOptions1(restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getPaymentOptions1(restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getPaymentOptions1.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getPaymentOptions1.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/paymentoptions`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param paymentOptionId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatePaymentOption(body: PaymentOptionEntity, restaurantId: string, restaurantBranchId: string, paymentOptionId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updatePaymentOption(body: PaymentOptionEntity, restaurantId: string, restaurantBranchId: string, paymentOptionId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updatePaymentOption(body: PaymentOptionEntity, restaurantId: string, restaurantBranchId: string, paymentOptionId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updatePaymentOption(body: PaymentOptionEntity, restaurantId: string, restaurantBranchId: string, paymentOptionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updatePaymentOption.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updatePaymentOption.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updatePaymentOption.');\n }\n\n if (paymentOptionId === null || paymentOptionId === undefined) {\n throw new Error('Required parameter paymentOptionId was null or undefined when calling updatePaymentOption.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/paymentoptions/${encodeURIComponent(String(paymentOptionId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \":host {\\n display: block;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL29yZGVyLXByb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUVFLGNBQUE7QUFERiIsImZpbGUiOiJvcmRlci1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbjpob3N0IHtcbiAgLy8gYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBkaXNwbGF5OiBibG9jaztcbn0iXX0= */\";","export default \"\\n \\n Tables or Rooms\\n \\n Save\\n Close\\n \\n \\n\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n No Tables or Rooms to Display!\\n \\n \\n\\n \\n \\n \\n Add New Table or Room\\n \\n \\n \\n \\n
\\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { GeoLocation } from './geoLocation';\nimport { SmartDineImage } from './smartDineImage';\n\nexport interface RestaurantBranchEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n restaurantBranchId?: string;\n restaurantBranchCode?: string;\n name?: string;\n description?: string;\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n countryCode?: string;\n location?: GeoLocation;\n restaurantId?: string;\n restaurantBranchImages?: Array;\n gstIN?: string;\n fssai?: string;\n emailId?: string;\n website?: string;\n contactNumber?: string;\n pincode?: string;\n allowedOrderTypes?: Array;\n allowedPaymentPreferences?: Array;\n}\nexport namespace RestaurantBranchEntity {\n export type AllowedOrderTypesEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const AllowedOrderTypesEnum = {\n DINEIN: 'DINE_IN' as AllowedOrderTypesEnum,\n DELIVERY: 'DELIVERY' as AllowedOrderTypesEnum,\n TAKEAWAY: 'TAKEAWAY' as AllowedOrderTypesEnum\n };\n export type AllowedPaymentPreferencesEnum = 'PAY_BY_ONLINE' | 'PAY_BY_CASH';\n export const AllowedPaymentPreferencesEnum = {\n ONLINE: 'PAY_BY_ONLINE' as AllowedPaymentPreferencesEnum,\n CASH: 'PAY_BY_CASH' as AllowedPaymentPreferencesEnum\n };\n}","import { AfterViewInit, Component, Input, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { QRCodeModel, RestaurantQrCodeRestControllerService, SmartDineResponseQRCodeModel } from 'src/app/swagger';\n//import { Printer, PrintOptions } from '@awesome-cordova-plugins/printer/ngx';\nimport { Capacitor } from '@capacitor/core';\nimport { LoaderService } from '../../services/loader/loader.service';\n\ntype Platform = 'web' | 'android' | 'ios';\n\ndeclare var window: any;\n\n@Component({\n selector: 'app-qr-info',\n templateUrl: './qr-info.component.html',\n styleUrls: ['./qr-info.component.scss'],\n})\nexport class QrInfoComponent implements OnInit {\n\n public static readonly id = 'qr-info-modal';\n\n @Input()\n public qrInfo: QRCodeModel | null = null;\n\n public printAvailability = false;\n\n constructor(\n private modalController: ModalController,\n //private printer: Printer,\n private loaderService: LoaderService,\n private elementRef: ElementRef,\n ) { }\n\n public onPrintClick() {\n const currentPlatform = Capacitor.getPlatform() as Platform;\n if (currentPlatform === 'web') {\n this.printWithWeb();\n } else {\n this.printWithDevice();\n }\n }\n\n public onCloseClick() {\n this.modalController.dismiss({}, '', QrInfoComponent.id);\n }\n\n public ngOnInit() {\n this.setPrintAvailability();\n }\n\n private setPrintAvailability() {\n this.printAvailability = false;\n const currentPlatform = Capacitor.getPlatform() as Platform;\n if (currentPlatform === 'web') {\n this.printAvailability = true;\n return;\n }\n\n // TODO: For now, enabling the print functionality for web.\n // this.printer.isAvailable().then(\n // (availability: boolean) => {\n // this.printAvailability = availability;\n // },\n // (err: any) => {\n // console.error('Print support unavailable! :(', err);\n // }\n // );\n }\n\n private printWithDevice() {\n this.loaderService.showLoader();\n // const printOptions: PrintOptions = {\n // name: this.getFileName(),\n // duplex: true,\n // orientation: 'portrait',\n // monochrome: true\n // };\n\n const content = this.elementRef.nativeElement as HTMLElement;\n // this.printer.print(content, printOptions).then((res) => {\n // this.loaderService.hideLoader();\n // console.log('Print Success!', res);\n // }, (err) => {\n // this.loaderService.hideLoader();\n // console.error('Print support unavailable! :(', err);\n // });\n }\n\n private printWithWeb() {\n window.print();\n }\n\n private getFileName() {\n const qrCodeInfo = this.qrInfo.qrCodeInfo;\n const restaurantCode = qrCodeInfo.rc;\n const branchCode = qrCodeInfo.rbc;\n let tableCode = qrCodeInfo.rbtc;\n return restaurantCode + '-' + branchCode + '-' + tableCode;\n }\n}\n","export default \"ion-item.selected {\\n background-color: #3880ff;\\n color: white;\\n}\\n\\nion-item.selected ion-label {\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Jlc3RhdXJhbnQtbW9kYWwuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx5QkFBQTtFQUNBLFlBQUE7QUFDSjs7QUFFQTtFQUNJLFlBQUE7QUFDSiIsImZpbGUiOiJyZXN0YXVyYW50LW1vZGFsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLWl0ZW0uc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzODgwZmY7IFxuICAgIGNvbG9yOiB3aGl0ZTsgXG59XG4gIFxuaW9uLWl0ZW0uc2VsZWN0ZWQgaW9uLWxhYmVsIHtcbiAgICBjb2xvcjogd2hpdGU7XG59XG4gICJdfQ== */\";","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MenuController } from '@ionic/angular';\nimport { MenuItem, SideMenuService } from '../../services/side-menu/side-menu.service';\nimport Auth from '@aws-amplify/auth';\nimport { MessageService } from '../../services/message/message.service';\nimport { HomeComponent } from 'src/app/core/components/home/home.component';\n\n@Component({\n selector: 'app-side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.scss'],\n})\nexport class SideMenuComponent implements OnInit {\n\n @Input()\n public menuItems: MenuItem[] = [];\n\n public selectedMenuItemIndex = -1;\n\n constructor(\n private sideMenuService: SideMenuService,\n private menuController: MenuController,\n private router: Router,\n private messageService: MessageService\n ) { }\n\n ngOnInit() {\n this.setMenuItems();\n }\n\n public onItemClick(_event: MouseEvent, _item: MenuItem, index: number) {\n this.sideMenuService.setSelectedMenuItemIndex(index);\n this.menuController.close(HomeComponent.sideMenuId);\n }\n\n private setMenuItems() {\n this.sideMenuService.getMenuItems().subscribe({\n next: (menuItems: MenuItem[]) => {\n this.menuItems = menuItems;\n }\n });\n\n this.sideMenuService.getSelectedMenuItemIndex().subscribe({\n next: (index: number) => {\n this.selectedMenuItemIndex = index;\n }\n })\n }\n\n public displayNotSubscribedMessage(feature: any) {\n this.messageService.showMessage(\"You have not subscribed to \" + feature + \". Please contact Administrator\");\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CurrencyModel } from '../model/currencyModel';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RestaurantCurrencyService {\n\n constructor() { }\n\n private prefCurrency: CurrencyModel;\n\n setPrefCurrency(currency: CurrencyModel) {\n this.prefCurrency = currency;\n }\n\n getPrefCurrency(): CurrencyModel {\n return this.prefCurrency;\n }\n}\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\n\n/* Add Amplify imports */\nimport { AmplifyUIAngularModule } from '@aws-amplify/ui-angular';\nimport Amplify from 'aws-amplify';\nimport awsconfig from '../aws-exports';\nimport { ApiModule, BASE_PATH } from './swagger';\n\nimport { HttpClientModule } from '@angular/common/http';\nimport { environment } from 'src/environments/environment';\nimport { AuthService } from './core/services/auth/auth.service';\nimport { CoreModule } from './core/core.module';\nimport { CommonModule as SdCommonModule } from './common/common.module';\nimport { Device } from '@ionic-native/device/ngx';\nimport { StorageService } from './common/services/storage/storage.service';\nimport { ZXingScannerModule } from '@zxing/ngx-scanner';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { HttpClient } from '@angular/common/http';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n// import { MapOfferModalComponent } from './resto-admin/components/map-offer-modal/map-offer-modal.component'\n\n\n//import { Printer } from '@awesome-cordova-plugins/printer/ngx';\n\nfunction storageFactory(storageService: StorageService) {\n return storageService.init.bind(storageService);\n}\n\nexport function createTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\n}\n\n/* Configure Amplify resources */\nAmplify.configure(awsconfig);\n\nfunction authFactory(authService: AuthService): Promise {\n return authService.init.bind(authService);\n}\n\n@NgModule({\n declarations: [AppComponent],\n entryComponents: [],\n imports: [\n AmplifyUIAngularModule, \n BrowserAnimationsModule,\n CommonModule,\n BrowserModule,\n IonicModule.forRoot(),\n AppRoutingModule,\n CoreModule,\n HttpClientModule,\n ApiModule.forRoot(AuthService.getConfiguration),\n SdCommonModule,\n ZXingScannerModule,\n ReactiveFormsModule,\n FormsModule,\n GoogleMapsModule,\n NgxChartsModule,\n TranslateModule.forRoot({\n defaultLanguage: 'en',\n loader: {\n provide: TranslateLoader,\n useFactory: (createTranslateLoader),\n deps: [HttpClient]\n }\n })\n ],\n providers: [\n { provide: APP_INITIALIZER, useFactory: storageFactory, deps: [StorageService], multi: true },\n { provide: APP_INITIALIZER, useFactory: authFactory, deps: [AuthService], multi: true },\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },\n { provide: BASE_PATH, useValue: environment.apiBaseUrl },\n Device,\n // Printer\n ],\n bootstrap: [AppComponent],\n exports: []\n})\nexport class AppModule {}\n\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport {\n RestaurantBranchRestControllerService,\n RestaurantEntity,\n RestaurantRestControllerService,\n RestaurantBranchEntity,\n RestaurantModel,\n SmartDineResponseRestaurantModel,\n CurrencyModel,\n RestaurantCurrencyService,\n} from 'src/app/swagger';\nimport { StorageService } from '../storage/storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RestaurantsService {\n\n private readonly storageKey = 'frequently-visited-restaurants';\n private fvrSubject: BehaviorSubject = new BehaviorSubject([]);\n\n private subject: ReplaySubject = new ReplaySubject(1);\n\n private selectedRestaurantId: string | null = null;\n private selectedRestaurantIdSubject: ReplaySubject = new ReplaySubject(1);\n\n private selectedBranchId: string | null = null;\n private selectedBranchIdSubject: ReplaySubject = new ReplaySubject(1);\n\n private isAvailableOrLoading = false;\n\n private branchesSubject: ReplaySubject = new ReplaySubject(1);\n\n private subscription;\n\n private logoUrlSubject: ReplaySubject = new ReplaySubject(null);\n\n private selectedRestaurantSubject = new BehaviorSubject(null);\n public selectedRestaurant$ = this.selectedRestaurantSubject.asObservable();\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private storageService: StorageService,\n private restaurantRestControllerService: RestaurantRestControllerService,\n private restaurantBranchRestControllerService: RestaurantBranchRestControllerService, // TODO\n private restaurantCurrencySerice: RestaurantCurrencyService\n ) {\n this.subscription = this.activatedRoute.queryParams.subscribe((queryParams) => {\n this.setSelectedRestaurantId(queryParams?.restaurantId || null, { updateRoute: false });\n this.setSelectedBranchId(queryParams?.restaurantBranchId || null, { updateRoute: false });\n Promise.resolve().then(() => {\n this.subscription?.unsubscribe();\n });\n });\n\n this.init();\n }\n\n public init() {\n this.loadFrequentlyVisitedRestaurants();\n }\n\n public getFrequentlyVisitedRestaurants() {\n return this.fvrSubject.asObservable();\n }\n\n public setFrequentlyVisitedRestaurants(restaurants: RestaurantModel[]) {\n this.storageService.set(this.storageKey, restaurants);\n this.fvrSubject.next(restaurants);\n }\n\n public updateFrequentlyVisitedRestaurants(restaurant: RestaurantModel) {\n let restaurants: RestaurantModel[];\n restaurants = this.fvrSubject.getValue();\n restaurants = restaurants.filter(e => e.restaurantId !== restaurant.restaurantId);\n restaurants.unshift(restaurant);\n this.setFrequentlyVisitedRestaurants(restaurants);\n }\n\n private async loadFrequentlyVisitedRestaurants() {\n const restaurants: RestaurantModel[] = await this.storageService.get(this.storageKey);\n if (Array.isArray(restaurants) && restaurants.length) {\n this.fvrSubject.next(restaurants);\n }\n }\n\n public getSelectedRestaurantId(): Observable {\n return this.selectedRestaurantIdSubject.asObservable();\n }\n\n public setSelectedRestaurantId(restaurantId: string | null, options = { updateRoute: true }) {\n this.selectedRestaurantId = restaurantId;\n this.selectedRestaurantIdSubject.next(restaurantId);\n\n // Updating URL query params..\n if (options.updateRoute) {\n const queryParams = {\n restaurantId: this.selectedRestaurantId,\n restaurantBranchId: this.selectedBranchId,\n };\n this.router.navigate([], { queryParams, queryParamsHandling: 'merge', replaceUrl: true });\n }\n\n // Updating branch options..\n if (restaurantId) {\n this.loadBranches(restaurantId);\n }\n }\n\n public getRestaurants(forceRefresh = false): Observable {\n if (forceRefresh || !this.isAvailableOrLoading) {\n this.isAvailableOrLoading = true;\n this.loadRestaurants();\n }\n return this.subject.asObservable();\n }\n\n public setRestaurants(restaurants: RestaurantEntity[]) {\n this.subject.next(restaurants);\n }\n\n private loadRestaurants() {\n this.restaurantRestControllerService.getRestaurants1().subscribe({\n next: (res: SmartDineResponseRestaurantModel) => {\n this.setRestaurants(res.items);\n if (res.items.length && !this.selectedRestaurantId) {\n \n this.setSelectedRestaurantId(res.items[0]?.restaurantId);\n this.setLogoUrl(res.items[0]?.iconUrl);\n const prefCurrency: CurrencyModel = {\n currencyCode: res.items[0]?.prefCurrency.currencyCode,\n currencysymbol: res.items[0]?.prefCurrency.currencysymbol,\n displayName: res.items[0]?.prefCurrency.displayName\n };\n this.restaurantCurrencySerice.setPrefCurrency(prefCurrency);\n }\n },\n error: (err) => {\n console.error('Unable to get restaurants!', err);\n this.isAvailableOrLoading = false;\n this.setLogoUrl(null);\n }\n });\n }\n\n public getSelectedBranchId(): Observable {\n return this.selectedBranchIdSubject.asObservable();\n }\n\n public setSelectedBranchId(branchId: string | null, options = { updateRoute: true }) {\n this.selectedBranchId = branchId;\n this.selectedBranchIdSubject.next(branchId);\n\n // Updating URL query params..\n if (options.updateRoute) {\n const queryParams = {\n restaurantId: this.selectedRestaurantId,\n restaurantBranchId: this.selectedBranchId,\n };\n this.router.navigate([], { queryParams, queryParamsHandling: 'merge', replaceUrl: true });\n }\n }\n\n public getBranches(forceRefresh = false): Observable {\n if (forceRefresh && this.selectedRestaurantId) {\n this.loadBranches(this.selectedRestaurantId);\n }\n return this.branchesSubject.asObservable();\n }\n\n public setBranches(branches: RestaurantBranchEntity[]) {\n this.branchesSubject.next(branches);\n }\n\n private loadBranches(restaurantId: string) {\n this.restaurantBranchRestControllerService.getRestaurantBranches1(restaurantId).subscribe({\n next: (res) => {\n this.setBranches(res.items);\n },\n error: (err) => {\n console.error('Unable to get branches!', err);\n }\n });\n }\n\n public getLogoUrl(): Observable {\n return this.logoUrlSubject.asObservable();\n }\n\n public setLogoUrl(url: string | null): void {\n this.logoUrlSubject.next(url);\n }\n\n public setSelectedRestaurant(restaurant: RestaurantModel | null) {\n this.selectedRestaurantSubject.next(restaurant);\n }\n\n public getSelectedRestaurant(): RestaurantModel {\n return this.selectedRestaurantSubject.value;\n }\n\n}\n","import { OrderProgressBarComponent } from './components/order-status/order-progress-bar.component';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { IonicModule } from '@ionic/angular';\nimport { IonicStorageModule } from '@ionic/storage-angular';\nimport { CommonModule as NgCommonModule } from '@angular/common';\n\nimport { BaseComponent } from './components/base/base.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { SideMenuComponent } from './components/side-menu/side-menu.component';\nimport { FoodTypeIndicatorComponent } from './components/food-type-indicator/food-type-indicator.component';\nimport { MenusComponent } from './components/menus/menus.component';\nimport { MenuNavBarComponent } from './components/menu-nav-bar/menu-nav-bar.component';\nimport { MenuItemsComponent } from './components/menu-items/menu-items.component';\nimport { MenuItemMappingsComponent } from './components/menu-item-mappings/menu-item-mappings.component';\nimport { ItemSelectionComponent } from './components/item-selection/item-selection.component';\nimport { MenuUpsertionComponent } from './components/menu-upsertion/menu-upsertion.component';\nimport { ItemUpsertionComponent } from './components/item-upsertion/item-upsertion.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RestoBranchUpsertionComponent } from './components/resto-branch-upsertion/resto-branch-upsertion.component';\nimport { MenuSelectionComponent } from './components/menu-selection/menu-selection.component';\nimport { ItemPriceSelecionComponent } from '../common/components/item-price-selecion/item-price-selecion.component';\nimport { CalendarModule } from 'ion2-calendar';\nimport { QrScannerComponent } from './components/qr-scanner/qr-scanner.component';\nimport { QrInfoComponent } from './components/qr-info/qr-info.component';\nimport { TablesComponent } from './components/tables/tables.component';\nimport { DndDirective } from './directives/dnd.directive';\nimport { QuantitySelectorComponent } from './components/quantity-selector/quantity-selector.component';\nimport { ZXingScannerModule } from '@zxing/ngx-scanner'\nimport { ButtonGroupComponent } from './components/button-group/button-group.component';\nimport { CatalogComponent } from './components/catalog/catalog.component';\nimport { AppearDirective } from './directives/appear.directive';\nimport { RestaurantUpsertionComponent } from './components/restaurant-upsertion/restaurant-upsertion.component';\nimport { LogoComponent } from './components/logo/logo.component';\nimport { SignatureComponent } from './components/signature/signature.component';\nimport { MessagesComponent } from './components/messages/messages.component';\nimport { ShareoptionsComponent } from './components/shareoptions/shareoptions.component';\nimport { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { createTranslateLoader } from '../app.module';\nimport { HttpClient } from '@angular/common/http';\nimport { AddressComponent } from './components/maps/address/address.component';\nimport { SideBarComponent } from './components/side-bar/side-bar.component';\nimport { OrderTypeComponent } from './components/order-type/order-type.component';\nimport { FiltersComponent } from './components/filters/filters.component';\nimport { CapitalizeReplacePipe } from './pipes/capitalize-replace.pipe';\nimport { SearchBarComponent } from './components/search-bar/search-bar.component';\nimport { RestaurantModalComponent } from './components/custom-restaurant-select/restaurant-modal.component';\nimport { NotificationComponent } from './components/notification/notification.component';\nimport { HelpSupportComponent } from './components/help-support/help-support.component';\nimport { ProfilePopoverComponent } from './components/profile-popover/profile-popover.component';\nimport { FeedbackFormComponent } from './components/feedback/feedback-form.component';\nimport { StarRatingComponent } from './components/feedback/star-rating/star-rating.component';\nimport { RemoveUnderScoreAndCaptitalizePipe } from './pipes/remove-under-score-and-captitalize.pipe';\nimport { CatalogSideMenusComponent } from './components/catalog/catalog-side-menus/catalog-side-menus.component';\n\n@NgModule({\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n declarations: [\n DndDirective,\n AppearDirective,\n\n // Common Components..\n BaseComponent,\n HeaderComponent,\n FooterComponent,\n SideMenuComponent,\n SideBarComponent,\n FoodTypeIndicatorComponent,\n CatalogComponent,\n CatalogSideMenusComponent,\n MenusComponent,\n MenuItemsComponent,\n MenuItemMappingsComponent,\n MenuUpsertionComponent,\n ItemUpsertionComponent,\n ItemSelectionComponent,\n MenuNavBarComponent,\n RestoBranchUpsertionComponent,\n RestaurantUpsertionComponent,\n MenuSelectionComponent,\n ItemPriceSelecionComponent,\n \n QrInfoComponent,\n TablesComponent,\n OrderProgressBarComponent,\n QuantitySelectorComponent,\n ButtonGroupComponent,\n LogoComponent,\n SignatureComponent,\n OrderTypeComponent,\n FiltersComponent,\n NotificationComponent,\n HelpSupportComponent,\n ProfilePopoverComponent,\n\n // Common Pages..\n MessagesComponent,\n ShareoptionsComponent,\n AddressComponent,\n QrScannerComponent,\n CapitalizeReplacePipe,\n SearchBarComponent,\n RestaurantModalComponent,\n StarRatingComponent,\n FeedbackFormComponent,\n RemoveUnderScoreAndCaptitalizePipe\n ],\n imports: [\n RouterModule,\n IonicModule,\n FormsModule,\n ReactiveFormsModule,\n NgCommonModule,\n IonicStorageModule.forRoot(),\n CalendarModule,\n ZXingScannerModule,\n GoogleMapsModule,\n TranslateModule,\n ],\n exports: [\n DndDirective,\n AppearDirective,\n\n // Common Components..\n BaseComponent,\n HeaderComponent,\n FooterComponent,\n SideMenuComponent,\n SideBarComponent,\n FoodTypeIndicatorComponent,\n CatalogComponent,\n MenusComponent,\n MenuItemsComponent,\n MenuItemMappingsComponent,\n MenuUpsertionComponent,\n ItemUpsertionComponent,\n ItemSelectionComponent,\n MenuNavBarComponent,\n RestoBranchUpsertionComponent,\n MenuSelectionComponent,\n ItemPriceSelecionComponent,\n QrInfoComponent,\n TablesComponent,\n OrderProgressBarComponent,\n QuantitySelectorComponent,\n ButtonGroupComponent,\n OrderTypeComponent,\n FiltersComponent,\n NotificationComponent,\n HelpSupportComponent,\n ProfilePopoverComponent,\n\n // Common Pages..\n MessagesComponent,\n ShareoptionsComponent,\n SearchBarComponent,\n CapitalizeReplacePipe,\n RemoveUnderScoreAndCaptitalizePipe,\n CatalogSideMenusComponent\n ]\n})\nexport class CommonModule { }\n","import { MenuItem } from \"src/app/common/services/side-menu/side-menu.service\";\n\nexport const sideMenuItems: MenuItem[] = [\n {\n id: '',\n iconName: 'home-outline',\n name: 'Home',\n link: '/customer/home',\n pages: ['HomePage', 'MenusPage', 'MenuDetailsPage', 'CatalogPage'],\n enabled: true,\n functionality_name: null\n },\n {\n id: '',\n iconName: 'grid-outline',\n name: 'Orders',\n link: '/customer/orders',\n pages: ['OrdersPage', 'OrderPage', 'PaymentPage'],\n enabled: true,\n functionality_name: null\n },\n {\n id: '',\n iconName: 'person-outline',\n name: 'Profile',\n link: '/customer/profile',\n pages: ['ProfilePage'],\n enabled: true,\n functionality_name: null\n },\n\n];","export default \"\\n \\n {{ modalTitle}}\\n \\n Save\\n Close\\n \\n \\n\\n\\n\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n First Name*\\n \\n \\n \\n First Name is required.\\n \\n \\n Last Name*\\n \\n \\n \\n Last Name is required.\\n \\n \\n Phone number*\\n \\n \\n \\n Phone number is required.\\n \\n \\n Roles\\n \\n \\n \\n \\n
\\n
\\n\\n
\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n *\\n \\n \\n
Address is required.
\\n \\n \\n *\\n \\n \\n
City is required.
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n *\\n \\n \\n
State is required.
\\n \\n \\n *\\n \\n \\n
Country is required.
\\n \\n \\n *\\n \\n \\n
Pincode is required.
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Latitue: {{userAddressForm.controls.location.value.latitude}} Longitude: {{userAddressForm.controls.location.value.longitude}}\\n \\n Map\\n \\n
\\n
\\n\\n
\\n \\n \\n Address Name:\\n {{ editAddress?.addressName }}\\n \\n \\n Address Type:\\n {{ editAddress?.addressType }}\\n \\n \\n House Name:\\n {{ editAddress?.houseNumber }}\\n \\n \\n Building Name:\\n {{ editAddress?.buildingName }}\\n \\n \\n Address Line:\\n {{ editAddress?.address }}\\n \\n \\n Your City:\\n {{ editAddress?.city }}\\n \\n \\n District:\\n {{ editAddress?.district }}\\n \\n \\n Landmark:\\n {{ editAddress?.landmark }}\\n \\n \\n Your PinCode:\\n {{ editAddress?.pinCode }}\\n \\n \\n Your Country:\\n {{ editAddress?.country }}\\n \\n \\n Location:\\n {{ editAddress?.location }}\\n \\n \\n
\\n
\\n\";","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ModalController } from '@ionic/angular';\nimport { UtilityService } from '../../services/utilities/utilities.service';\nimport { iRatingValue } from './star-rating/star-rating.component';\nimport { OrderFeedbackService } from 'src/app/swagger/api/order-feedback.service';\nimport { iOrderReviewDto } from 'src/app/swagger/model/menuModel';\n\n@Component({\n selector: 'app-feedback-form',\n templateUrl: './feedback-form.component.html',\n styleUrls: ['./feedback-form.component.scss'],\n})\nexport class FeedbackFormComponent implements OnInit {\n public static readonly id = 'order-review-modal';\n\n @Input() public restaurantId: string = null;\n @Input() public restaurantBranchId: string = null;\n @Input() public orderNumber: number = 0;\n @Input() public isCustomer: boolean = false;\n\n public overallRating: number = 0;\n public foodRating: number = 0;\n public serviceRating: number = 0;\n public ambianceRating: number = 0;\n\n public reviews: any[] = [];\n public isDisabled: boolean = false;\n\n public reviewForm: FormGroup = new FormGroup({\n name: new FormControl('', [Validators.required]),\n phoneNumber: new FormControl('', [\n Validators.required,\n Validators.pattern('^[0-9]{10}$'),\n ]),\n comments: new FormControl('', []),\n });\n\n constructor(\n private modal: ModalController,\n private utilService: UtilityService,\n private orderReviewService: OrderFeedbackService \n ) {}\n\n ngOnInit() {\n if(this.restaurantId && this.restaurantBranchId) {\n this.orderReviewService.getAllReviews(this.restaurantId, this.restaurantBranchId, this.isCustomer).subscribe({\n next: (resp: any) => {\n this.reviews = resp?.item;\n this.fillUpForm();\n }\n });\n }\n\n }\n\n private fillUpForm(): void {\n\n const formValue = this.reviews?.find(review => review?.orderNumber === this.orderNumber);\n \n if(formValue) {\n this.reviewForm.patchValue({\n name: formValue?.name,\n phoneNumber: formValue?.phoneNumber,\n comments: formValue?.comments,\n });\n this.ambianceRating = formValue?.ambianceRating;\n this.serviceRating = formValue?.serviceRating;\n this.foodRating = formValue?.foodRating;\n this.overallRating = formValue?.overallRating;\n this.isDisabled = true;\n this.reviewForm.disable();\n }\n\n if(!formValue || formValue === undefined){\n this.isDisabled = false;\n this.reviewForm.enable();\n }\n\n }\n\n public onRatingChange(value: iRatingValue) {\n if (value?.fieldName === 'ambiance') {\n this.ambianceRating = value?.rating;\n } else if (value?.fieldName === 'food') {\n this.foodRating = value?.rating;\n } else if (value?.fieldName === 'service') {\n this.serviceRating = value?.rating;\n } else {\n this.overallRating = value?.rating;\n }\n }\n\n public async onSave(): Promise {\n if (this.reviewForm?.invalid) {\n this.utilService.showAlert('Please fill all the required fields', 'Invalid Input','invalid');\n return;\n }\n\n if (this.validateData() && this.reviewForm?.valid) {\n const payload: iOrderReviewDto = {\n name: this.reviewForm?.get('name')?.value ?? '',\n phoneNumber: this.reviewForm?.get('phoneNumber')?.value ?? '',\n orderNumber: this.orderNumber,\n overallRating: this.overallRating ?? 0,\n foodRating: this.foodRating ?? 0,\n serviceRating: this.serviceRating ?? 0,\n ambianceRating: this.ambianceRating ?? 0,\n comments: this.reviewForm?.get('comments')?.value ?? '',\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n };\n this.orderReviewService.saveOrderReview(payload, this.isCustomer).subscribe({\n next: (resp: any) => {\n this.utilService.showAlert(\n `Thank you, ${resp.item?.name}, for your valuable feedback!`, \n 'Review Submission Successful', \n 'valid'\n );\n this.modal.dismiss();\n }\n })\n }\n }\n\n public validateData(): boolean {\n const formValue = this.reviewForm.value;\n\n if (formValue.name.trim() === '') {\n return false;\n }\n\n if (!/^[0-9]{10}$/.test(formValue.phoneNumber)) {\n return false;\n }\n\n return true;\n }\n\n public onClose(): void {\n this.modal.dismiss('', '', FeedbackFormComponent.id);\n }\n}\n","export default \":host {\\n display: inline-block;\\n font-size: 1rem;\\n}\\n\\n.logo-container {\\n font-size: inherit;\\n display: flex;\\n align-items: center;\\n}\\n\\n.logo-container > * {\\n padding: 0.5em;\\n}\\n\\n.logo-container .logo {\\n font-size: inherit;\\n}\\n\\n.logo-container .logo .logo-image {\\n width: 4em;\\n}\\n\\n.logo-container .headings {\\n font-size: inherit;\\n}\\n\\n.logo-container .headings .title {\\n font-size: 1.7em;\\n line-height: 1em;\\n font-family: \\\"Staatliches\\\";\\n color: var(--ion-color-secondary);\\n letter-spacing: 5px;\\n vertical-align: text-top;\\n text-align: left;\\n}\\n\\n.logo-container .headings .title .dine {\\n color: var(--ion-color-tertiary);\\n}\\n\\n.logo-container .headings .subtitle {\\n color: var(--ion-color-dark);\\n font-style: italic;\\n}\\n\\n.logo-container .headings .subtitle .powered-by {\\n color: #555;\\n text-transform: lowercase;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NpZ25hdHVyZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHFCQUFBO0VBQ0EsZUFBQTtBQUNGOztBQUVBO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7QUFDRjs7QUFDRTtFQUNFLGNBQUE7QUFDSjs7QUFFRTtFQUNFLGtCQUFBO0FBQUo7O0FBRUk7RUFDRSxVQUFBO0FBQU47O0FBSUU7RUFDRSxrQkFBQTtBQUZKOztBQUlJO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLDBCQUFBO0VBQ0EsaUNBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7QUFGTjs7QUFJTTtFQUNFLGdDQUFBO0FBRlI7O0FBTUk7RUFDRSw0QkFBQTtFQUNBLGtCQUFBO0FBSk47O0FBTU07RUFDRSxXQUFBO0VBQ0EseUJBQUE7QUFKUiIsImZpbGUiOiJzaWduYXR1cmUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4ubG9nby1jb250YWluZXIge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgPioge1xuICAgIHBhZGRpbmc6IC41ZW07XG4gIH1cblxuICAubG9nbyB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuXG4gICAgLmxvZ28taW1hZ2Uge1xuICAgICAgd2lkdGg6IDRlbTtcbiAgICB9XG4gIH1cblxuICAuaGVhZGluZ3Mge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuICAgIC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuN2VtO1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgIGZvbnQtZmFtaWx5OiAnU3RhYXRsaWNoZXMnO1xuICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDVweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgXG4gICAgICAuZGluZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItdGVydGlhcnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJ0aXRsZSB7XG4gICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuXG4gICAgICAucG93ZXJlZC1ieSB7XG4gICAgICAgIGNvbG9yOiAjNTU1O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19 */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface RazorPayPaymentGatewayResponse { \n razorpayPaymentId?: string;\n razorpayOrderId?: string;\n razorpaySignature?: string;\n}","export default \"ion-searchbar {\\n --padding-start: 8px;\\n --padding-end: 8px;\\n --background: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NlYXJjaC1iYXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QUFDSiIsImZpbGUiOiJzZWFyY2gtYmFyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLXNlYXJjaGJhciB7XG4gICAgLS1wYWRkaW5nLXN0YXJ0OiA4cHg7XG4gICAgLS1wYWRkaW5nLWVuZDogOHB4O1xuICAgIC0tYmFja2dyb3VuZDogd2hpdGU7XG4gIH1cbiAgIl19 */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface CartTaxInfoModel { \n taxRuleName?: string;\n taxRuleDesc?: string;\n taxRuleLevel?: CartTaxInfoModel.TaxRuleLevelEnum;\n taxPerc?: number;\n flatTaxRate?: number;\n taxAmount?: number;\n taxedAmount?: number;\n taxRuleCode?: string;\n taxRuleGroup?: string;\n}\nexport namespace CartTaxInfoModel {\n export type TaxRuleLevelEnum = 'ITEM_LEVEL' | 'CART_LEVEL';\n export const TaxRuleLevelEnum = {\n ITEMLEVEL: 'ITEM_LEVEL' as TaxRuleLevelEnum,\n CARTLEVEL: 'CART_LEVEL' as TaxRuleLevelEnum\n };\n}","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { AddressModel, ProfileModel} from 'src/app/swagger';\nimport { Role } from '../../../common/enums/role.enum';\nimport { UserProfileService } from '../../../common/services/user-profile/user-profile.service';\nimport { Router } from '@angular/router';\nimport { MenuItem, SideMenuService} from 'src/app/common/services/side-menu/side-menu.service';\nimport { v4 as uuidv4 } from 'uuid';\nimport { UserInfoComponent } from 'src/app/customer/components/user-info/user-info.component';\n\ninterface RoleItem {\n id: string;\n name: string;\n}\n\n@Component({\n selector: 'app-user-profile',\n templateUrl: './user-profile.page.html',\n styleUrls: ['./user-profile.page.scss'],\n})\nexport class UserProfilePage implements OnInit {\n @ViewChild('map')\n mapRef: ElementRef;\n\n public userProfile: ProfileModel | null = null;\n public roles: RoleItem[] = [];\n public isAdmin = false;\n public isRestoAdmin = false;\n public isCustomer = false;\n public addressID: string | null = null;\n\n constructor(\n private userProfileService: UserProfileService,\n private modalController: ModalController,\n private router: Router,\n private sideMenuService: SideMenuService\n ) {\n this.setRoles();\n }\n\n public sideMenuItems: MenuItem[];\n\n public generateAddressId() {\n return uuidv4();\n }\n\n ionViewWillEnter() {\n this.loadSidebarMenus();\n }\n\n public ngOnInit() {\n this.init();\n }\n\n private init() {\n this.addressID = this.generateAddressId();\n this.setUserProfile();\n }\n\n private setRoles() {\n const roles = Object.keys(Role);\n this.roles = roles.map((role) => ({\n id: Role[role],\n name: role,\n }));\n }\n\n private setUserProfile() {\n this.userProfile = null;\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n\n this.userProfile = userProfile;\n this.isAdmin = userProfile?.roles.includes(Role.ADMINS);\n this.isRestoAdmin = userProfile?.roles.includes(Role.RESTO_ADMINS);\n this.isCustomer = userProfile?.roles.includes(Role.USERS);\n this.loadSidebarMenus();\n },\n });\n }\n\n private loadSidebarMenus() {\n if(this.isAdmin){\n this.sideMenuItems = require('src/app/admin/pages/admin/admin.constant').sideMenuItems;\n } else if (this.isRestoAdmin){\n this.sideMenuItems = require('src/app/resto-admin/pages/resto-admin/resto-admin.constant').sideMenuItems;\n } else if (this.isCustomer){\n this.sideMenuItems = require('src/app/customer/pages/customer/customer.constant').sideMenuItems;\n }\n this.sideMenuService.setMenuItems(this.sideMenuItems);\n }\n\n public onCancelClick() {\n if (this.userProfile.roles[0] === 'Users') {\n this.router.navigateByUrl('/customer/home');\n } else if (this.userProfile.roles[0] === 'RestaurantAdmins') {\n this.router.navigateByUrl('/resto-admin/home');\n } else if (this.userProfile.roles[0] === 'Admins') {\n this.router.navigateByUrl('/admin/home');\n }\n }\n\n // public onRouteActivation(loadedCompInstance: object) {\n // const pageName = loadedCompInstance.constructor.name;\n // this.sideMenuService.setSelectedMenuItemIndexByPageName(pageName);\n // }\n\n public handleEditProfile() {\n let self = this;\n self.openUserInfoModal('Edit Your Profile', this.userProfile, 'PROFILE');\n }\n\n public handleAddAdress() {\n let self = this;\n self.openUserInfoModal('Add New Address', this.userProfile, 'ADDRESS');\n }\n\n public handleEditAddress(address: AddressModel) {\n let self = this;\n self.openUserInfoModal(\n 'Edit Your Address',\n this.userProfile,\n 'ADDRESS',\n address\n );\n }\n\n public handleViewAddress(address: AddressModel) {\n\n let self = this;\n self.openUserInfoModal(\n 'View Address Details',\n this.userProfile,\n 'OTHER',\n address,\n true\n );\n }\n\n public async openUserInfoModal(\n modalTitle?: string,\n userdata?: ProfileModel,\n formType?: string,\n address?: AddressModel,\n isViewAddress?: boolean\n ) {\n const modal = await this.modalController.create({\n id: UserInfoComponent.id,\n component: UserInfoComponent,\n componentProps: {\n modalTitle: modalTitle,\n userProfile: userdata,\n formType: formType,\n editAddress: address,\n isViewAddress: isViewAddress,\n },\n });\n modal.onDidDismiss().then((res) => {\n if (!res || !res.data) {\n return;\n }\n });\n return await modal.present();\n }\n\n public handleRemoveAddress(address: AddressModel) {\n }\n}\n","export default \".review-form .custom-control {\\n border-radius: 8px;\\n border-color: #D8EFD3;\\n background-color: #fff;\\n max-width: 440px !important;\\n color: #4a4947;\\n font-size: 14px;\\n margin: 0 15px;\\n}\\n.review-form .form-label {\\n color: #3C3D37;\\n font-size: 15px;\\n font-weight: 600;\\n width: 150px;\\n padding: 0 10px;\\n}\\n::ng-deep .modal-wrapper {\\n width: 500px !important;\\n padding: 10px 20px 15px !important;\\n border-radius: 10px !important;\\n height: 480px !important;\\n}\\n::ng-deep .modal-wrapper ion-title {\\n color: #f9fffe;\\n font-size: 18px;\\n font-weight: 600;\\n}\\n::ng-deep .modal-wrapper ion-header ion-toolbar.in-toolbar {\\n --background: #379777 !important;\\n height: 50px !important;\\n}\\n::ng-deep .alert-wrapper .alert-title {\\n color: #ffffff;\\n font-size: 16px;\\n font-weight: 700;\\n}\\n::ng-deep .alert-wrapper .alert-message {\\n padding: 5px 10px;\\n font-size: 14px;\\n}\\n::ng-deep .alert-wrapper {\\n padding: 0;\\n}\\n::ng-deep .alert-valid .alert-head {\\n padding: 10px 15px;\\n background: #6BBA62;\\n}\\n::ng-deep .alert-invalid .alert-head {\\n padding: 10px;\\n background: #DE3C3C;\\n}\\n::ng-deep .alert-invalid .alert-message {\\n color: #EC4646;\\n}\\n::ng-deep .alert-valid .alert-message {\\n color: #2C9E4B;\\n}\\n::ng-deep .alert-invalid .alert-button {\\n color: #EC4646;\\n}\\n::ng-deep .alert-valid .alert-button {\\n color: #2C9E4B;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2ZlZWRiYWNrLWZvcm0uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0U7RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSwyQkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtBQUFKO0FBR0U7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUFESjtBQU1FO0VBQ0UsdUJBQUE7RUFDQSxrQ0FBQTtFQUNBLDhCQUFBO0VBQ0Esd0JBQUE7QUFISjtBQUtJO0VBQ0UsY0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQUhOO0FBTUk7RUFDRSxnQ0FBQTtFQUNBLHVCQUFBO0FBSk47QUFXQTtFQUNFLGNBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUFSRjtBQVdBO0VBQ0UsaUJBQUE7RUFDQSxlQUFBO0FBUkY7QUFXQTtFQUNFLFVBQUE7QUFSRjtBQVdBO0VBQ0Usa0JBQUE7RUFDQSxtQkFBQTtBQVJGO0FBV0E7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7QUFSRjtBQVdBO0VBQ0UsY0FBQTtBQVJGO0FBVUE7RUFDRSxjQUFBO0FBUEY7QUFTQTtFQUNFLGNBQUE7QUFORjtBQVFBO0VBQ0UsY0FBQTtBQUxGIiwiZmlsZSI6ImZlZWRiYWNrLWZvcm0uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucmV2aWV3LWZvcm0ge1xuICAuY3VzdG9tLWNvbnRyb2wge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXItY29sb3I6ICNEOEVGRDM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBtYXgtd2lkdGg6IDQ0MHB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICM0YTQ5NDc7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbjogMCAxNXB4O1xuICB9XG5cbiAgLmZvcm0tbGFiZWwge1xuICAgIGNvbG9yOiAjM0MzRDM3O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gIH1cbn1cblxuOjpuZy1kZWVwIHtcbiAgLm1vZGFsLXdyYXBwZXIge1xuICAgIHdpZHRoOiA1MDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDEwcHggMjBweCAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogNDgwcHggIWltcG9ydGFudDtcblxuICAgIGlvbi10aXRsZSB7XG4gICAgICBjb2xvcjogI2Y5ZmZmZTtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgaW9uLWhlYWRlciBpb24tdG9vbGJhci5pbi10b29sYmFyIHtcbiAgICAgIC0tYmFja2dyb3VuZDogIzM3OTc3NyAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuXG46Om5nLWRlZXAgLmFsZXJ0LXdyYXBwZXIgLmFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuOjpuZy1kZWVwIC5hbGVydC13cmFwcGVyIC5hbGVydC1tZXNzYWdlIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuOjpuZy1kZWVwIC5hbGVydC13cmFwcGVyIHtcbiAgcGFkZGluZzogMDtcbn1cblxuOjpuZy1kZWVwIC5hbGVydC12YWxpZCAuYWxlcnQtaGVhZCB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYmFja2dyb3VuZDogIzZCQkE2Mjtcbn1cblxuOjpuZy1kZWVwIC5hbGVydC1pbnZhbGlkIC5hbGVydC1oZWFkIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZDogI0RFM0MzQztcbn1cblxuOjpuZy1kZWVwIC5hbGVydC1pbnZhbGlkIC5hbGVydC1tZXNzYWdlIHtcbiAgY29sb3I6ICNFQzQ2NDY7XG59XG46Om5nLWRlZXAgLmFsZXJ0LXZhbGlkIC5hbGVydC1tZXNzYWdlIHtcbiAgY29sb3I6ICMyQzlFNEI7XG59XG46Om5nLWRlZXAgLmFsZXJ0LWludmFsaWQgLmFsZXJ0LWJ1dHRvbiB7XG4gIGNvbG9yOiAjRUM0NjQ2O1xufVxuOjpuZy1kZWVwIC5hbGVydC12YWxpZCAuYWxlcnQtYnV0dG9uIHtcbiAgY29sb3I6ICMyQzlFNEI7XG59XG5cbiJdfQ== */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CartModel } from '../model/cartModel';\nimport { SmartDineResponseCartModel } from '../model/smartDineResponseCartModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class CartRestControllerForUsersService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createCart(body: CartModel, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createCart(body: CartModel, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createCart(body: CartModel, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createCart(body: CartModel, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createCart.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/user/carts`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param cartId \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateItemInCart(body: CartModel, cartId: string, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateItemInCart(body: CartModel, cartId: string, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateItemInCart(body: CartModel, cartId: string, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateItemInCart(body: CartModel, cartId: string, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateItemInCart.');\n }\n\n if (cartId === null || cartId === undefined) {\n throw new Error('Required parameter cartId was null or undefined when calling updateItemInCart.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('patch',`${this.basePath}/api/user/carts/${encodeURIComponent(String(cartId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJyZXN0by1icmFuY2gtdXBzZXJ0aW9uLmNvbXBvbmVudC5zY3NzIn0= */\";","// Pipe for Capitalize first letter of each word and replace underscores with spaces\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'capitalizeReplace'\n})\nexport class CapitalizeReplacePipe implements PipeTransform {\n\n transform(value: string): string {\n return value.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(' ');\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AlertController, MenuController, PopoverController } from '@ionic/angular';\nimport { Action } from '../../services/header/header.service';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { ProfileModel } from '../../../swagger';\nimport { Router } from '@angular/router';\nimport { HomeComponent } from 'src/app/core/components/home/home.component';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StorageService } from '../../services/storage/storage.service';\nimport { RestaurantsService } from '../../services/restaurants/restaurants.service';\nimport { NotificationComponent } from '../notification/notification.component';\nimport { NotificationService } from '../../services/notification/notification.service';\nimport { ProfilePopoverComponent } from '../profile-popover/profile-popover.component';\nimport { HelpSupportComponent } from '../help-support/help-support.component';\n\nconst languages = [\n {\n name: 'English',\n code: 'en',\n },\n // {\n // name: 'English(IN)',\n // code: 'en-IN',\n // },\n // {\n // name: 'हिंदी (Hindi)',\n // code: 'hi-IN',\n // },\n // {\n // name: 'বাঙালি (Bangali)',\n // code: 'ba-IN',\n // },\n // {\n // name: 'తెలుగు (Telugu)',\n // code: 'te-IN',\n // },\n // {\n // name: 'தமிழ் (Tamil)',\n // code: 'ta-IN',\n // },\n \n];\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit {\n\n private readonly storageKeyLangauge = 'selected-language';\n\n public userProfile: ProfileModel | null = null;\n public actions: Action[] = [];\n\n public customLogoLocation: string = null;\n\n public languages = languages;\n\n public selectedLanguage = 'en';\n\n public logoUrl:string | null = null;\n\n public notificationCount: number = 0;\n\n constructor(\n private menuController: MenuController,\n private popoverController: PopoverController,\n private userProfileService: UserProfileService,\n public alertController: AlertController,\n private storageService: StorageService,\n private translateService: TranslateService,\n private router: Router,\n private restaurantService: RestaurantsService,\n private notificationService: NotificationService\n ) {\n\n const parsedUrl = new URL(window.location.href);\n\n if (parsedUrl && (parsedUrl.hostname == 'dev-bmgrand.smartdinenow.com' || parsedUrl.hostname == 'bmgrand.smartdinenow.com')) {\n this.customLogoLocation = 'assets/img/bmgrandlogo.png'\n }\n\n }\n\n\n public async onLanguageChange() {\n const langCode = this.selectedLanguage;\n this.translateService.use(langCode);\n await this.storageService.set(this.storageKeyLangauge, langCode);\n }\n\n\n public ngOnInit() {\n this.init();\n this.getRestaurantLogo();\n this.getCurrentCount();\n }\n\n private getCurrentCount(){\n this.notificationService.notificationCount$.subscribe(count => {\n this.notificationCount = count;\n });\n }\n\n public async onMenuClick(_: Event) {\n await this.menuController.enable(true, HomeComponent.sideMenuId);\n await this.menuController.toggle(HomeComponent.sideMenuId);\n }\n\n public onActionClick(event: Event, action: Action) {\n if (action.handler) {\n action.handler(event);\n }\n }\n\n public ionViewWillEnter() {\n this.menuController.enable(true, HomeComponent.sideMenuId);\n }\n\n public async openProfilePopover(event: MouseEvent) {\n const popover = await this.popoverController.create({\n id: ProfilePopoverComponent.id,\n component: ProfilePopoverComponent,\n event,\n translucent: true\n });\n popover.onDidDismiss().then((res)=>{\n if(!res || !res.data) return;\n if(res.data === \"logout\"){\n this.userProfile = null;\n this.setUserProfile();\n }else if(res.data === \"switch\"){\n this.router.navigateByUrl('/login');\n }\n });\n return await popover.present();\n }\n\n public async openHelpAndSupport(event: MouseEvent) {\n const popover = await this.popoverController.create({\n id: HelpSupportComponent.id,\n component: HelpSupportComponent,\n event,\n translucent: true\n });\n popover.onDidDismiss().then((res)=>{\n if(!res || !res.data) return;\n });\n return await popover.present();\n }\n\n private init() {\n this.setUserProfile();\n this.setLanguage();\n }\n\n private setUserProfile() {\n this.userProfile = null;\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n }\n });\n }\n\n private setLanguage() {\n this.storageService.get(this.storageKeyLangauge).then(\n (langCode: string | null) => {\n if (langCode) {\n this.selectedLanguage = langCode;\n this.translateService.use(langCode);\n }\n },\n );\n }\n\n private getRestaurantLogo(){\n this.restaurantService.getLogoUrl().subscribe({\n next: (url: string |null) =>{\n this.logoUrl = url;\n }\n })\n }\n\n public async openNotifications(event: Event) {\n const popover = await this.popoverController.create({\n component: NotificationComponent,\n event: event,\n translucent: true\n });\n return await popover.present();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { LoadingController } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n\n private loader: HTMLIonLoadingElement | null = null;\n\n constructor(\n public loadingController: LoadingController\n ) { }\n\n public async init(message?:string, duration?:number) {\n this.loader = await this.loadingController.create({\n message: message ? message: 'SmartDine is loading, Please wait..',\n duration: duration ? duration: 1500,\n });\n }\n\n /**\n * Shows auto hide loader\n * @param duration Duration in millie seconds.\n */\n showAutoHideLoader(duration = 2000 ) {\n this.loadingController.create({\n message: 'This Loader Will Auto Hide in 2 Seconds',\n duration,\n }).then((res) => {\n res.present();\n res.onDidDismiss().then((e) => {\n });\n });\n\n }\n\n /**\n * Shows Loader.\n */\n async showLoader(message?: string, duration?:number) {\n\n await this.init(message, duration);\n await this.loader?.present();\n return new Promise((resolve) => {\n setTimeout(() => {\n this.loader.dismiss().then(() => {\n resolve(true); // Resolve with true when loader is dismissed\n });\n }, duration);\n });\n }\n\n /**\n * Hides Loader.\n */\n hideLoader() {\n this.loader?.dismiss();\n this.init(); // creating new instance and keeping ready for next use..\n }\n\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MenuItemMapEntity } from '../model/menuItemMapEntity';\nimport { SmartDineResponseLong } from '../model/smartDineResponseLong';\nimport { SmartDineResponseMenuItemMapEntity } from '../model/smartDineResponseMenuItemMapEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class MenuItemMapRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createMenuItemMaps(body: MenuItemMapEntity, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createMenuItemMaps(body: MenuItemMapEntity, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createMenuItemMaps(body: MenuItemMapEntity, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createMenuItemMaps(body: MenuItemMapEntity, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createMenuItemMaps.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/menuitemmaps`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuItemMapId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteMenuItemMap(menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteMenuItemMap(menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteMenuItemMap(menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteMenuItemMap(menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling deleteMenuItemMap.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuItemMapId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItemMap(menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItemMap(menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItemMap(menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItemMap(menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling getMenuItemMap.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItemMaps1(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItemMaps1(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItemMaps1(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItemMaps1(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuId === null || menuId === undefined) {\n throw new Error('Required parameter menuId was null or undefined when calling getMenuItemMaps1.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (menuId !== undefined && menuId !== null) {\n queryParameters = queryParameters.set('menuId', menuId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menuitemmaps`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItemsCount(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItemsCount(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItemsCount(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItemsCount(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuId === null || menuId === undefined) {\n throw new Error('Required parameter menuId was null or undefined when calling getMenuItemsCount.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (menuId !== undefined && menuId !== null) {\n queryParameters = queryParameters.set('menuId', menuId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menuitemmaps/count`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param menuItemMapId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateMenuItemMap(body: MenuItemMapEntity, menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateMenuItemMap(body: MenuItemMapEntity, menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateMenuItemMap(body: MenuItemMapEntity, menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateMenuItemMap(body: MenuItemMapEntity, menuItemMapId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateMenuItemMap.');\n }\n\n if (menuItemMapId === null || menuItemMapId === undefined) {\n throw new Error('Required parameter menuItemMapId was null or undefined when calling updateMenuItemMap.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/menuitemmaps/${encodeURIComponent(String(menuItemMapId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { Injectable, Input } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { ProfileModel, CartItemModel, CartModel, CartRestControllerForAdminsService, RestaurantBranchModel, RestaurantBranchTableModel, RestaurantModel, SmartDineResponseCartModel } from '../../../swagger';\nimport { LoaderService } from '../loader/loader.service';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { Role } from 'src/app/common/enums/role.enum';\n\nexport interface CartItems {\n [key: string]: CartItemModel;\n}\n\nexport interface TableInfo {\n restaurant: RestaurantModel;\n restaurantBranch: RestaurantBranchModel;\n table: RestaurantBranchTableModel;\n}\n\nexport interface CartSNotification {\n action: 'open-cart';\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AdminCartService {\n private notificationSubject = new Subject();\n\n private cart: CartModel | null = null;\n private subject: BehaviorSubject = new BehaviorSubject({});\n\n private restaurantId: string | null = null;\n private restaurantBranchId: string | null = null;\n private tableId: string | null = null;\n public userProfile: ProfileModel | null = null;\n public isAdmin = false;\n public isRestoAdmin = false;\n public isCustomer = false;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n public cartRestControllerForAdminsService: CartRestControllerForAdminsService,\n private loaderService: LoaderService,\n private userProfileService: UserProfileService,\n ) {\n this.init();\n this.userProfile = null;\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n if(userProfile){\n this.userProfile = userProfile;\n this.isAdmin = userProfile.roles.includes(Role.ADMINS);\n this.isRestoAdmin = userProfile.roles.includes(Role.RESTO_ADMINS);\n this.isCustomer = userProfile.roles.includes(Role.USERS);\n }\n }\n });\n \n }\n\n public init(options?: { restaurantId: string, restaurantBranchId: string, tableId: string }) {\n let isInitialized = false;\n if (options) {\n this.restaurantId = options.restaurantId;\n this.restaurantBranchId = options.restaurantBranchId;\n this.tableId = options.tableId;\n isInitialized = true;\n }\n\n if (!isInitialized) {\n const queryParams = this.activatedRoute.snapshot.queryParams;\n this.restaurantId = queryParams?.restaurantId || null;\n this.restaurantBranchId = queryParams?.restaurantBranchId || null;\n this.tableId = queryParams?.tableId || null;\n }\n\n if (this.restaurantId && this.restaurantBranchId) {\n this.loadCart();\n }\n }\n\n public getCart() {\n return this.cart;\n }\n\n public setCart(cart: CartModel) {\n this.cart = cart;\n\n // TODO: noOfItems, cartPriceModel, tableId\n if (!cart.noOfItems) {\n cart.noOfItems = '0';\n }\n if (!cart.cartPriceModel) {\n cart.cartPriceModel = {\n totalPrice: 0,\n totalPriceWithDiscountAndTax: 0,\n };\n }\n if (!cart.tableId) {\n cart.tableId = this.tableId;\n }\n\n this.subject.next(cart.cartItemModels);\n }\n\n public clearCart() {\n this.subject.next({});\n this.cart = null;\n }\n\n public createCart() {\n const cart = {\n addressId: null,\n cartId: null,\n cartItemModels: {},\n cartPriceModel: {\n totalPrice: 0,\n totalPriceWithDiscountAndTax: 0,\n },\n cartStatus: 'DRAFT',\n cartTaxInfoModels: null,\n orderType: 'DINE_IN',\n noOfItems: '0',\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n tableId: this.tableId,\n } as CartModel;\n\n this.cartRestControllerForAdminsService.createCart1(cart).subscribe({\n next: (smartDineResponseCartModel: SmartDineResponseCartModel) => {\n console.info('Cart created successfully!');\n this.setCart(smartDineResponseCartModel.item);\n },\n error: (err) => {\n console.error('Unable to create new cart!', err);\n }\n });\n }\n\n public loadCart() { \n this.createCart();\n }\n\n public updateCart() {\n const cartItems = this.subject.getValue();\n const items = Object.values(cartItems);\n\n // Updating total items count..\n const totalItems = items.reduce((acc, each) => acc + each.quantity, 0);\n this.cart.noOfItems = '' + totalItems;\n }\n\n public saveCart(cartStatus?: 'DRAFT' | 'ORDERED' | 'ORDERING_INPROGRESS' | 'RETURNED' | 'NOT_ACCEPTED', isAdmin?: boolean) {\n this.loaderService.showLoader();\n if (cartStatus) {\n this.cart.cartStatus = cartStatus;\n }\n this.updateCart();\n this.cartRestControllerForAdminsService.updateItemInCart1(this.cart, this.cart.cartId).subscribe({\n next: (res: SmartDineResponseCartModel) => {\n this.setCart(res.item);\n\n this.loaderService.hideLoader();\n },\n error: (err) => {\n console.error('Unable to update exsting cart!', err);\n this.loaderService.hideLoader();\n }\n });\n }\n\n public removeCart() {\n if (!this.cart) { return; } \n this.clearCart();\n \n this.init(); \n }\n\n public getItems(): Observable {\n return this.subject.asObservable();\n }\n\n public getItem(menuItemMapId: string): CartItemModel | null {\n let cartItems = this.subject.getValue();\n return cartItems[menuItemMapId] || null;\n }\n\n public setItem(cartItem: CartItemModel) {\n const cartItems = this.subject.getValue();\n cartItems[cartItem.menuItemMapId] = cartItem;\n this.subject.next(cartItems);\n }\n\n public removeItem(cartItem: CartItemModel) {\n const cartItems = this.subject.getValue();\n delete (cartItems[cartItem.menuItemMapId]);\n this.subject.next(cartItems);\n }\n\n public getNotifications(): Observable {\n return this.notificationSubject.asObservable();\n }\n\n public notify(message: CartSNotification) {\n this.notificationSubject.next(message);\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { AuthService } from 'src/app/core/services/auth/auth.service';\nimport { BASE_PATH, Configuration, iOrderDetailDto } from 'src/app/swagger';\nimport { MessageService } from '../message/message.service';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { WebSoundService } from '../web-sound/web-sound.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n\n @Inject(BASE_PATH) basePath: string;\n\n private stompClient: any;\n private stompClientConnected = false;\n\n private notificationCountSubject = new BehaviorSubject(0);\n private notificationList: any[] = [];\n private notificationSubject = new BehaviorSubject([]);\n public notification$ = this.notificationSubject.asObservable();\n public notificationCount$ = this.notificationCountSubject.asObservable();\n\n private subscriptions: { [key: string]: any } = {};\n\n constructor(\n @Optional() @Inject(BASE_PATH) basePath: string, \n private messageService: MessageService, \n configuration: Configuration,\n private soundService: WebSoundService\n ) { \n const accessToken = typeof configuration.accessToken === 'function'\n ? configuration.accessToken()\n : configuration.accessToken;\n \n this.initializeWebSocket(basePath, accessToken);\n }\n\n private initializeWebSocket(basePath: string, accessToken: string) {\n const reconnectInterval = 3000; \n \n const connect = () => {\n if (this.stompClientConnected) {\n console.warn('Already connected to WebSocket.');\n return; \n }\n \n this.stompClient = Stomp.over(new SockJS(basePath + '/notifications'));\n this.stompClient.connect({ \"X-Authorization\": \"Bearer \" + accessToken }, (frame) => {\n\n this.stompClientConnected = true; \n }, (error: any) => {\n console.error('WebSocket connection error: ', error);\n //setTimeout(connect, reconnectInterval);\n });\n };\n \n connect();\n }\n \n public subscribeToNewOrders(restaurantId: string, restaurantBranchId: string) {\n const topic = `/topic/neworders/${restaurantId}/${restaurantBranchId}`;\n this.unsubscribeFromTopic(topic);\n \n if (this.stompClientConnected) {\n this.subscriptions[topic] = this.stompClient.subscribe(topic, (messageOutput) => {\n const message = JSON.parse(messageOutput.body);\n console.warn('New order message from server ws:', message);\n \n // Add the notification and play sound for the admin\n this.addNotification({ type: 'newOrder', ...message });\n this.messageService.showMessage('New order is created');\n this.playSound(); // Play sound notification for admin\n });\n } else {\n console.warn('STOMP client is not connected.');\n }\n }\n \n public subscribeToOrderStatusChanges(orderId:string, orderNumber: number) {\n this.unsubscribeFromTopic('/topic/orderstatus/' + orderNumber);\n if (this.stompClientConnected) {\n this.subscriptions['orderStatus'] = this.stompClient.subscribe('/topic/orderstatus/' + orderNumber, (messageOutput) => {\n const message = JSON.parse(messageOutput.body);\n this.addNotification({orderId:orderId, type: 'orderStatus', ...message });\n this.messageService.showMessage('Order status updated');\n });\n } else {\n console.warn('STOMP client is not connected.');\n }\n }\n\n private unsubscribeFromTopic(topic: string) {\n if (this.subscriptions[topic]) {\n this.subscriptions[topic].unsubscribe();\n delete this.subscriptions[topic];\n }\n }\n\n public addNotification(notification: {orderId?:string, type: string; orderNumber: number; status: string }) {\n this.notificationList.unshift(notification);\n this.notificationSubject.next(this.notificationList);\n this.incrementNotificationCount();\n }\n\n public playSound(duration: number = 1500, frequency: number = 1500, volume: number = 1) {\n this.soundService.playBell(duration, frequency, volume);\n }\n\n public getNotifications() {\n return this.notificationList;\n }\n \n private incrementNotificationCount() {\n const currentCount = this.notificationCountSubject.getValue();\n this.notificationCountSubject.next(currentCount + 1);\n }\n\n public resetNotificationCount() {\n this.notificationCountSubject.next(0);\n }\n\n public getNotificationCount() {\n return this.notificationCountSubject.getValue();\n }\n\n public emitNewOrderNotification(order: iOrderDetailDto ) {\n if (this.stompClientConnected) {\n this.stompClient.send(\n `/topic/neworders/${order.restaurantId}/${order.restaurantBranchId}`,\n {},\n JSON.stringify(order)\n );\n } else {\n console.warn('Unable to emit new order notification - STOMP client is not connected.');\n }\n }\n \n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-food-type-indicator',\n templateUrl: './food-type-indicator.component.html',\n styleUrls: ['./food-type-indicator.component.scss'],\n})\nexport class FoodTypeIndicatorComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { CartItemModel, CurrencyModel, MenuItemMapEntity, MenuItemMapModel, MenuItemMapPriceEntity, MenuItemMapStockEntity } from \"src/app/swagger\";\nimport { MenuItem } from \"../menu-item/menu-item.model\";\n\nexport interface PriceDetails extends MenuItemMapPriceEntity {\n message?: string;\n}\n\nexport interface MenuItemMapping {\n menuItemMapId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n menuId?: string;\n itemId?: string;\n \n menuItem: MenuItem;\n priceDetails?: PriceDetails | null;\n stockDetails?: MenuItemMapStockEntity | null;\n cartItem?: CartItemModel | null;\n currencyModel?: CurrencyModel | null;\n}\n\nexport class MenuItemMapping implements MenuItemMapping {\n\n /**\n * Creates MenuItemMapping from MenuItemMapModel\n * @param obj MenuItemMapModel\n * @returns MenuItemMapping Instance.\n */\n public static create(obj: MenuItemMapModel) {\n\n const instance = new MenuItemMapping();\n instance.menuItemMapId = obj.menuItemMapId;\n instance.itemId = obj.itemId;\n instance.menuId = obj.menuId;\n instance.restaurantId = obj.restaurantId;\n instance.restaurantBranchId = obj.restaurantBranchId;\n \n instance.menuItem = obj.menuItemModel as MenuItem;\n instance.currencyModel = obj.currencyModel as CurrencyModel;\n instance.priceDetails = {\n menuItemMapPriceId: null,\n menuItemMapId: obj.menuItemMapId,\n\n restaurantId: obj.restaurantId,\n restaurantBranchId: obj.restaurantBranchId,\n\n price: obj.price,\n active: obj.availableForOrdering, // obj.orderable | obj.availableForOrdering\n fromDate: obj.orderableFromTime,\n toDate: null, // TODO: unaavaible in MenuItemMapModel\n message: obj.message,\n };\n\n return instance;\n }\n}\n","export default \"ion-datetime {\\n --padding-end: 16px;\\n}\\n\\n.errors {\\n --color: var(--ion-color-base);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2l0ZW0tcHJpY2Utc2VsZWNpb24uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxtQkFBQTtBQUFGOztBQUdBO0VBQ0UsOEJBQUE7QUFBRiIsImZpbGUiOiJpdGVtLXByaWNlLXNlbGVjaW9uLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pb24tZGF0ZXRpbWUge1xuICAtLXBhZGRpbmctZW5kOiAxNnB4O1xufVxuXG4uZXJyb3JzIHtcbiAgLS1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWJhc2UpO1xufSJdfQ== */\";","export default \"\\n\\n \\n \\n Settings\\n \\n\\n\\n\\n\\n Settings\\n\\n\\n \\n \\n First Name\\n {{this.userProfile.firstName}} \\n \\n \\n Last Name\\n {{this.userProfile.lastName}} \\n \\n \\n Email\\n {{this.userProfile.emailId}}\\n \\n \\n \\n Phone number\\n {{this.userProfile.phoneNumber}}\\n \\n \\n Role\\n {{this.userProfile.roles}}\\n \\n \\n Use Passcode\\n \\n \\n \\n Lock\\n \\n \\n \\n\\n\";","import { NgModule, Directive,OnInit, EventEmitter, Output, OnDestroy, Input,ElementRef,Renderer2 } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabsComponent } from './core/components/tabs/tabs.component';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n imports: [\n CommonModule,\n IonicModule\n ],\n declarations: [\n TabsComponent\n ],\n exports: [\n TabsComponent\n ]\n})\n\nexport class SharedModule { }","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","export default \":host {\\n display: block;\\n --ion-background-color: var(--ion-color-primary-tint);\\n}\\n\\n.menus-container {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n}\\n\\nion-list.side-menu-items {\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n}\\n\\nion-list.side-menu-items ::ng-deep ion-item,\\nion-list.side-menu-items ion-item {\\n --color: #eee;\\n --background-focused-opacity: 0.14;\\n --background-hover-opacity: 0.08;\\n}\\n\\nion-list.side-menu-items ::ng-deep ion-item ion-icon,\\nion-list.side-menu-items ion-item ion-icon {\\n min-width: 24px;\\n margin-right: 20px;\\n color: var(--color);\\n pointer-events: none;\\n}\\n\\nion-list.side-menu-items ::ng-deep ion-item.active,\\nion-list.side-menu-items ion-item.active {\\n --color: var(--ion-color-secondary-shade);\\n color: var(--ion-color-secondary-shade);\\n font-weight: 600;\\n}\\n\\nion-list.side-menu-items ::ng-deep ion-item.active ion-icon, ion-list.side-menu-items ::ng-deep ion-item.active i,\\nion-list.side-menu-items ion-item.active ion-icon,\\nion-list.side-menu-items ion-item.active i {\\n transform: scale(1.1);\\n}\\n\\n.spacer {\\n flex-grow: 1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NpZGUtbWVudS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQUE7RUFDQSxxREFBQTtBQUNGOztBQUVBO0VBQ0Usa0JBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0FBQ0Y7O0FBRUE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBRUU7O0VBRUUsYUFBQTtFQUNBLGtDQUFBO0VBQ0EsZ0NBQUE7QUFBSjs7QUFFSTs7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0FBQ047O0FBRUk7O0VBQ0UseUNBQUE7RUFDQSx1Q0FBQTtFQUNBLGdCQUFBO0FBQ047O0FBQ007OztFQUNFLHFCQUFBO0FBR1I7O0FBR0E7RUFDRSxZQUFBO0FBQUYiLCJmaWxlIjoic2lkZS1tZW51LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLS1pb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktdGludCk7XG59XG5cbi5tZW51cy1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cblxuaW9uLWxpc3Quc2lkZS1tZW51LWl0ZW1zIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cbiAgOjpuZy1kZWVwIGlvbi1pdGVtLFxuICBpb24taXRlbSB7XG4gICAgLS1jb2xvcjogI2VlZTtcbiAgICAtLWJhY2tncm91bmQtZm9jdXNlZC1vcGFjaXR5OiAwLjE0O1xuICAgIC0tYmFja2dyb3VuZC1ob3Zlci1vcGFjaXR5OiAwLjA4O1xuXG4gICAgaW9uLWljb24ge1xuICAgICAgbWluLXdpZHRoOiAyNHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIC0tY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktc2hhZGUpO1xuICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktc2hhZGUpO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgaW9uLWljb24sIGkge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zcGFjZXIge1xuICBmbGV4LWdyb3c6IDE7XG59Il19 */\";","import { Component, Input, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport {\n MenuEntity,\n MenuItemEntity,\n MenuRestControllerService,\n SmartDineResponseMenuItemEntity,\n} from 'src/app/swagger';\n\n@Component({\n selector: 'app-menu-selection',\n templateUrl: './menu-selection.component.html',\n styleUrls: ['./menu-selection.component.scss'],\n})\nexport class MenuSelectionComponent implements OnInit {\n\n public static readonly id = 'menu-selection-modal';\n\n public menus: MenuEntity[];\n\n @Input()\n restaurantId: string | null = null;\n\n @Input()\n restaurantBranchId: string | null = null;\n\n constructor(\n private modalController: ModalController,\n private menuRestControllerService: MenuRestControllerService,\n ) { }\n\n public ngOnInit() {\n this.init();\n }\n\n public onCloseClick() {\n this.modalController.dismiss(null, '', MenuSelectionComponent.id);\n }\n\n public onMenuClick(_: MouseEvent, menu: MenuItemEntity, index: number) {\n this.modalController.dismiss({ selectedMenu: menu }, '', MenuSelectionComponent.id);\n }\n\n private init() {\n this.setMenus();\n }\n\n private setMenus() {\n this.menus = [];\n\n /*\n * The menu templates created by admin are available\n * to restaurant admin for menu creation.\n * The selected menu template will be cloned for the specific\n * restaurant or branch.\n * Restaurant ID and Branch ID should be null for retrieving menu templates\n * created by admin.\n */\n const restaurantId = this.restaurantBranchId ? this.restaurantId : null;\n const restaurantBranchId = null;\n this.menuRestControllerService.getMenus(restaurantId, restaurantBranchId).subscribe({\n next: (res: SmartDineResponseMenuItemEntity) => {\n this.menus = res.items;\n },\n error: (err) => {\n console.error('Unable to get menu templates!', err);\n }\n });\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { MenuItemMapping } from '../../../models/menu-item-mapping/menu-item-mapping.model';\nimport { MenuModel} from 'src/app/swagger';\nimport { ModalController } from '@ionic/angular';\n\ninterface MenuItemMappingsDictionary {\n [key: string]: MenuItemMapping;\n}\n\ninterface Menu extends MenuModel {\n itemsMappings?: MenuItemMapping[];\n}\n\ninterface SdEvent extends MouseEvent {\n value: any;\n}\n\n@Component({\n selector: 'catalog-side-menus',\n templateUrl: './catalog-side-menus.component.html',\n styleUrls: ['./catalog-side-menus.component.scss'],\n})\nexport class CatalogSideMenusComponent implements OnInit {\n\n public static readonly id = 'menu-display-modal';\n\n @Input() public menus: Menu[] = [];\n @Input() public value: MenuModel | null = null;\n @Input() public totalCount: number = 0;\n @Input() public isMobileView = false;\n @Input() public isAllActive = true;\n\n @Output() menuClick: EventEmitter = new EventEmitter();\n\n constructor(private modalController: ModalController) {}\n\n ngOnInit(): void {\n \n }\n \n public onMenuClick(event: MouseEvent, menu: MenuModel | string) {\n let newEvent = event as SdEvent;\n if (menu === 'All') {\n this.isAllActive = true;\n newEvent.value = 'All';\n } else {\n this.isAllActive = false;\n newEvent.value = menu;\n }\n this.menuClick.emit(newEvent);\n\n if (this.isMobileView) {\n this.modalController.dismiss({ value: menu }, 'dismiss');\n }\n }\n\n public onCloseClick() {\n this.modalController.dismiss({}, 'dismiss');\n }\n\n}\n","export default \"
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n \\n Please\\n or\\n \\n to place any order\\n \\n
\\n
\\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n

\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n\\n \\n \\n\\n \\n \\n \\n \\n\\n \\n Price: \\n \\n {{ mapping?.currencyModel?.currencysymbol }}\\n \\n \\n Unavailable\\n \\n \\n\\n \\n \\n \\n \\n \\n
\\n
0\\\">\\n \\n Offer\\n {{\\n item.offerRuleModel?.offerRuleType ==\\n \\\"FLAT_FIXED_DISCOUNT\\\"\\n ? mapping?.currencyModel?.currencysymbol +\\n \\\" \\\" +\\n item.offerRuleModel?.discountFlatRate +\\n \\\" Flat\\\"\\n : item.offerRuleModel?.discountPercRate + \\\"%\\\"\\n }}\\n off\\n
\\n \\n\\n \\n \\n \\n
\\n\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n\\n\\n\\n \\n \\n Menu\\n \\n\\n\";","export default \"\\n \\n Choose location\\n \\n Save\\n Close\\n \\n \\n\\n\\n \\n \\n \\n {{infoWindowContent}} \\n \\n \\n \\n\\n\";","export default \".template-selection-link,\\n.template-selection-link.ion-activatable:hover {\\n --color-hover: var(--ion-color-primary);\\n color: var(--ion-color-primary);\\n}\\n\\n.template-selection-link ion-icon {\\n margin-right: 12px;\\n}\\n\\n.template-selection-link ion-label {\\n max-width: unset;\\n overflow: visible;\\n}\\n\\n.template-selection-link .indicator {\\n position: absolute;\\n right: 9px;\\n top: 12px;\\n z-index: 2;\\n background-color: var(--ion-color-success);\\n width: 12px;\\n height: 12px;\\n border-radius: 50%;\\n}\\n\\n.selection-name {\\n flex-grow: 0;\\n flex-basis: unset;\\n}\\n\\n::ng-deep .modal-wrapper {\\n width: 60vw !important;\\n height: 70vh !important;\\n}\\n\\n::ng-deep .modal-wrapper .modal-title {\\n font-size: 18px;\\n font-weight: 700;\\n color: #fff;\\n}\\n\\n::ng-deep .modal-wrapper .btn-design {\\n font-weight: 600;\\n font-size: 14px;\\n color: #f1fcfc;\\n}\\n\\n::ng-deep .modal-wrapper .btn-design:hover {\\n color: #545558;\\n}\\n\\n::ng-deep .modal-wrapper .restaurant-form {\\n padding: 10px 5px !important;\\n}\\n\\n.form-label {\\n color: #444444;\\n font-size: 14px;\\n font-weight: 600;\\n text-shadow: 1px 2px 4px #44444400;\\n}\\n\\n.text-dark {\\n color: #110f0f !important;\\n}\\n\\n.fw-medium {\\n font-weight: 600 !important;\\n}\\n\\n.custom-ion-select {\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem;\\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n padding: 12px 6px;\\n}\\n\\n::ng-deep .alert-wrapper .alert-title {\\n color: #ffffff;\\n font-size: 16px;\\n font-weight: 700;\\n}\\n\\n::ng-deep .alert-wrapper .alert-message {\\n padding: 5px 10px;\\n font-size: 14px;\\n}\\n\\n::ng-deep .alert-wrapper {\\n padding: 0;\\n}\\n\\n::ng-deep .alert-valid .alert-head {\\n padding: 10px 15px;\\n background: #6BBA62;\\n}\\n\\n::ng-deep .alert-invalid .alert-head {\\n padding: 10px;\\n background: #DE3C3C;\\n}\\n\\n::ng-deep .alert-invalid .alert-message {\\n color: #EC4646;\\n}\\n\\n::ng-deep .alert-valid .alert-message {\\n color: #2C9E4B;\\n}\\n\\n::ng-deep .alert-invalid .alert-button {\\n color: #EC4646;\\n}\\n\\n::ng-deep .alert-valid .alert-button {\\n color: #2C9E4B;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL3RlbXBsYXRlLWxpbmstZGVzaWduLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9yZXN0YXVyYW50LXVwc2VydGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFFRSx1Q0FBQTtFQUNBLCtCQUFBO0FDQ0Y7O0FER0U7RUFDRSxrQkFBQTtBQ0FKOztBREdFO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtBQ0RKOztBRElFO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSwwQ0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNGSjs7QURNQTtFQUNFLFlBQUE7RUFDQSxpQkFBQTtBQ0hGOztBQXRCQTtFQUNFLHNCQUFBO0VBQ0EsdUJBQUE7QUF5QkY7O0FBdkJFO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtBQXlCSjs7QUF2QkU7RUFDRSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0FBeUJKOztBQXZCSTtFQUNFLGNBQUE7QUF5Qk47O0FBdEJFO0VBQ0UsNEJBQUE7QUF3Qko7O0FBcEJBO0VBQ0UsY0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtDQUFBO0FBdUJGOztBQXJCQTtFQUNFLHlCQUFBO0FBd0JGOztBQXRCQTtFQUNFLDJCQUFBO0FBeUJGOztBQXZCQTtFQUNFLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSx3RUFBQTtFQUNBLGlCQUFBO0FBMEJGOztBQXJCQTtFQUNFLGNBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUF3QkY7O0FBckJBO0VBQ0UsaUJBQUE7RUFDQSxlQUFBO0FBd0JGOztBQXJCQTtFQUNFLFVBQUE7QUF3QkY7O0FBckJBO0VBQ0Usa0JBQUE7RUFDQSxtQkFBQTtBQXdCRjs7QUFyQkE7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7QUF3QkY7O0FBckJBO0VBQ0UsY0FBQTtBQXdCRjs7QUF0QkE7RUFDRSxjQUFBO0FBeUJGOztBQXZCQTtFQUNFLGNBQUE7QUEwQkY7O0FBeEJBO0VBQ0UsY0FBQTtBQTJCRiIsImZpbGUiOiJyZXN0YXVyYW50LXVwc2VydGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZW1wbGF0ZS1zZWxlY3Rpb24tbGluayxcbi50ZW1wbGF0ZS1zZWxlY3Rpb24tbGluay5pb24tYWN0aXZhdGFibGU6aG92ZXIge1xuICAtLWNvbG9yLWhvdmVyOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG59XG5cbi50ZW1wbGF0ZS1zZWxlY3Rpb24tbGluayB7XG4gIGlvbi1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIH1cblxuICBpb24tbGFiZWwge1xuICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAuaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDlweDtcbiAgICB0b3A6IDEycHg7XG4gICAgei1pbmRleDogMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2Vzcyk7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgfVxufVxuXG4uc2VsZWN0aW9uLW5hbWUge1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtYmFzaXM6IHVuc2V0O1xufVxuIiwiQGltcG9ydCBcIi4uLy4uLy4uLy4uL3RoZW1lL3RlbXBsYXRlLWxpbmstZGVzaWduLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi90aGVtZS9taXhpbnMuc2Nzc1wiO1xuXG4kbWVudS1pY29uLWhlaWdodDogMTUwcHg7XG5cbjo6bmctZGVlcCAubW9kYWwtd3JhcHBlciB7XG4gIHdpZHRoOiA2MHZ3ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNzB2aCAhaW1wb3J0YW50O1xuXG4gICYgLm1vZGFsLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAmIC5idG4tZGVzaWduIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogI2YxZmNmYztcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICM1NDU1NTg7XG4gICAgfVxuICB9XG4gICYgLnJlc3RhdXJhbnQtZm9ybSB7XG4gICAgcGFkZGluZzogMTBweCA1cHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZm9ybS1sYWJlbCB7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtc2hhZG93OiAxcHggMnB4IDRweCAjNDQ0NDQ0MDA7XG59XG4udGV4dC1kYXJrIHtcbiAgY29sb3I6ICMxMTBmMGYgIWltcG9ydGFudDtcbn1cbi5mdy1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG4uY3VzdG9tLWlvbi1zZWxlY3Qge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gIHBhZGRpbmc6IDEycHggNnB4O1xufVxuXG5cblxuOjpuZy1kZWVwIC5hbGVydC13cmFwcGVyIC5hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbjo6bmctZGVlcCAuYWxlcnQtd3JhcHBlciAuYWxlcnQtbWVzc2FnZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbjo6bmctZGVlcCAuYWxlcnQtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbjo6bmctZGVlcCAuYWxlcnQtdmFsaWQgLmFsZXJ0LWhlYWQge1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJhY2tncm91bmQ6ICM2QkJBNjI7XG59XG5cbjo6bmctZGVlcCAuYWxlcnQtaW52YWxpZCAuYWxlcnQtaGVhZCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICNERTNDM0M7XG59XG5cbjo6bmctZGVlcCAuYWxlcnQtaW52YWxpZCAuYWxlcnQtbWVzc2FnZSB7XG4gIGNvbG9yOiAjRUM0NjQ2O1xufVxuOjpuZy1kZWVwIC5hbGVydC12YWxpZCAuYWxlcnQtbWVzc2FnZSB7XG4gIGNvbG9yOiAjMkM5RTRCO1xufVxuOjpuZy1kZWVwIC5hbGVydC1pbnZhbGlkIC5hbGVydC1idXR0b24ge1xuICBjb2xvcjogI0VDNDY0Njtcbn1cbjo6bmctZGVlcCAuYWxlcnQtdmFsaWQgLmFsZXJ0LWJ1dHRvbiB7XG4gIGNvbG9yOiAjMkM5RTRCO1xufSJdfQ== */\";","export default \"\\n \\n \\n Item \\n \\n \\n \\n \\n \\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n \\n

Drag and drop file here Or

\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Food\\n Liquor\\n FOOD_5\\n FOOD_12\\n FOOD_18\\n \\n \\n \\n \\n \\n Veg\\n Egg\\n Non Veg\\n Beverage\\n \\n \\n\\n
\\n Select Type\\n \\n
\\n
\\n \\n Quantity\\n
\\n
\\n \\n Specialization\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n {{ spec }}\\n \\n \\n \\n \\n \\n HALF\\n FULL\\n SMALL\\n LARGE\\n \\n \\n
\\n
\\n
\\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AddressModel } from './addressModel';\n\nexport interface ProfileModel {\n userId?: string;\n firstName?: string;\n lastName?: string;\n emailId?: string;\n preferredLocale?: string;\n roles?: Array;\n phoneNumber?: string;\n addressModels?: Array;\n allowedFunctionalitiesByRestaurantId?: { [key: string]: Array };\n}\nexport namespace ProfileModel {\n export type AllowedFunctionalitiesByRestaurantIdEnum =\n | 'KITCHEN'\n | 'HOME'\n | 'ITEMS'\n | 'RESTAURANTS'\n | 'MENU'\n | 'PRICE'\n | 'STOCK'\n | 'INVENTORY'\n | 'ORDERS'\n | 'CAPTAIN_ORDERS'\n | 'QRCODE'\n | 'TAX'\n | 'OFFER'\n | 'REPORTS'\n | 'GROUPS'\n | 'ROLES'\n | 'USERS'\n | 'DAILY_EXPENSES'\n | 'TABLE_BOOKING';\n export const AllowedFunctionalitiesByRestaurantIdEnum = {\n KITCHEN: 'KITCHEN' as AllowedFunctionalitiesByRestaurantIdEnum,\n HOME: 'HOME' as AllowedFunctionalitiesByRestaurantIdEnum,\n ITEMS: 'ITEMS' as AllowedFunctionalitiesByRestaurantIdEnum,\n RESTAURANTS: 'RESTAURANTS' as AllowedFunctionalitiesByRestaurantIdEnum,\n MENU: 'MENU' as AllowedFunctionalitiesByRestaurantIdEnum,\n PRICE: 'PRICE' as AllowedFunctionalitiesByRestaurantIdEnum,\n STOCK: 'STOCK' as AllowedFunctionalitiesByRestaurantIdEnum,\n INVENTORY: 'INVENTORY' as AllowedFunctionalitiesByRestaurantIdEnum,\n ORDERS: 'ORDERS' as AllowedFunctionalitiesByRestaurantIdEnum,\n CAPTAINORDERS: 'CAPTAIN_ORDERS' as AllowedFunctionalitiesByRestaurantIdEnum,\n QRCODE: 'QRCODE' as AllowedFunctionalitiesByRestaurantIdEnum,\n TAX: 'TAX' as AllowedFunctionalitiesByRestaurantIdEnum,\n OFFER: 'OFFER' as AllowedFunctionalitiesByRestaurantIdEnum,\n REPORTS: 'REPORTS' as AllowedFunctionalitiesByRestaurantIdEnum,\n GROUPS: 'GROUPS' as AllowedFunctionalitiesByRestaurantIdEnum,\n ROLES: 'ROLES' as AllowedFunctionalitiesByRestaurantIdEnum,\n USERS: 'USERS' as AllowedFunctionalitiesByRestaurantIdEnum,\n DAILY_EXPENSES: 'DAILY_EXPENSES' as AllowedFunctionalitiesByRestaurantIdEnum,\n TABLE_BOOKING: 'TABLE_BOOKING' as AllowedFunctionalitiesByRestaurantIdEnum,\n };\n}\n","export default \":host {\\n display: inline-block;\\n --color: var(--ion-color-primary);\\n}\\n\\n.type-info-container {\\n display: flex;\\n}\\n\\n.icon {\\n margin-right: 4px;\\n color: var(--color);\\n}\\n\\n.label {\\n color: var(--color);\\n line-height: 23px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL29yZGVyLXR5cGUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxxQkFBQTtFQUNBLGlDQUFBO0FBQUY7O0FBR0E7RUFDRSxhQUFBO0FBQUY7O0FBR0E7RUFDRSxpQkFBQTtFQUNBLG1CQUFBO0FBQUY7O0FBR0E7RUFDRSxtQkFBQTtFQUNBLGlCQUFBO0FBQUYiLCJmaWxlIjoib3JkZXItdHlwZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuOmhvc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC0tY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbn1cblxuLnR5cGUtaW5mby1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3IpO1xufVxuXG4ubGFiZWwge1xuICBjb2xvcjogdmFyKC0tY29sb3IpO1xuICBsaW5lLWhlaWdodDogMjNweDtcbn0iXX0= */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface GroupEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n groupId?: string;\n groupCode?: string;\n name?: string;\n description?: string;\n userPoolId?: string;\n systemGroup?: boolean;\n active?: boolean;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface TaxRuleEntity { \n taxRuleId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n taxRuleCode?: string;\n taxRuleName?: string;\n taxRuleGroup?: string;\n taxRuleLevel?: TaxRuleEntity.TaxRuleLevelEnum;\n applicableItemTypes?: Array;\n applicableOrderTypes?: Array;\n taxPerc?: number;\n flatTaxRate?: number;\n}\nexport namespace TaxRuleEntity {\n export type TaxRuleLevelEnum = 'ITEM_LEVEL' | 'CART_LEVEL';\n export const TaxRuleLevelEnum = {\n ITEMLEVEL: 'ITEM_LEVEL' as TaxRuleLevelEnum,\n CARTLEVEL: 'CART_LEVEL' as TaxRuleLevelEnum\n };\n export type ApplicableItemTypesEnum = 'FOOD' | 'LIQUOR' | 'FOOD_5' | 'FOOD_12' | 'FOOD_18';\n export const ApplicableItemTypesEnum = {\n FOOD: 'FOOD' as ApplicableItemTypesEnum,\n LIQUOR: 'LIQUOR' as ApplicableItemTypesEnum,\n FOOD5: 'FOOD_5' as ApplicableItemTypesEnum,\n FOOD12: 'FOOD_12' as ApplicableItemTypesEnum,\n FOOD18: 'FOOD_18' as ApplicableItemTypesEnum\n };\n export type ApplicableOrderTypesEnum = 'DINE_IN' | 'DELIVERY' | 'TAKEAWAY';\n export const ApplicableOrderTypesEnum = {\n DINEIN: 'DINE_IN' as ApplicableOrderTypesEnum,\n DELIVERY: 'DELIVERY' as ApplicableOrderTypesEnum,\n TAKEAWAY: 'TAKEAWAY' as ApplicableOrderTypesEnum\n };\n}","export default \"\";","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { ProfileModel, ProfileRestControllerForUsersService, SmartDineResponseProfileModel } from 'src/app/swagger';\nimport { AuthService } from '../../../core/services/auth/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserProfileService {\n\n private subject: ReplaySubject = new ReplaySubject(1);\n private userLoggedIn: boolean = false;\n\n constructor(\n private router: Router,\n private profileRestControllerForUsersService: ProfileRestControllerForUsersService,\n private authService: AuthService,\n ) { }\n\n public getUserProfile(forceRefresh = false): Observable {\n if (forceRefresh) {\n this.loadUserProfile();\n }\n return this.subject.asObservable();\n }\n\n public setUserProfile(userProfile: ProfileModel) {\n this.subject.next(userProfile);\n }\n\n private loadUserProfile() {\n this.profileRestControllerForUsersService.getLoggedInUserProfile().subscribe({\n next: (res: SmartDineResponseProfileModel) => {\n this.setUserProfile(res.item);\n this.userLoggedIn = true;\n },\n error: (err: { message: string, ok: boolean, status: number }) => {\n if (err.status === 401) {\n //this.router.navigateByUrl('/login', { replaceUrl: true });\n } else if (err.status === 403) {\n this.authService.clearSession();\n //this.router.navigateByUrl('/home', { replaceUrl: true });\n }\n console.error('Unable to get current user profile!', err);\n console.error(err.message);\n }\n });\n }\n\n public getUserLoggedIn() {\n return this.userLoggedIn;\n }\n}\n","export default \"\\n
\\n \\n \\n\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n\\n
\\n\\n \\n
\\n
\\n
\";","export default \"@import url(\\\"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&family=Roboto+Condensed:wght@400;500;600;700&display=swap\\\");\\n:root {\\n --poppins-font: \\\"Poppins\\\", sans-serif;\\n --roboto-font: \\\"Roboto Condensed\\\", sans-serif;\\n}\\n.w-35px {\\n width: 35px;\\n}\\n.w-70px {\\n width: 70px;\\n}\\n.mt-n-3px {\\n margin-top: -3px;\\n}\\n.mt-n-12px {\\n margin-top: -12px;\\n}\\n.text-color-secondary {\\n color: var(--ion-color-secondary);\\n}\\n.border-radius-20px {\\n --border-radius: 20px !important;\\n}\\n.bg-color-1283f1 {\\n --background: #1283f1 !important;\\n}\\n.title {\\n font-family: \\\"Staatliches\\\";\\n color: var(--ion-color-secondary);\\n letter-spacing: 5px;\\n}\\n.title .dine {\\n color: var(--ion-color-tertiary);\\n}\\n.pwd-recovery-page-card {\\n background: linear-gradient(to bottom, #4DA0B0, #D39D38) 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n border: 1.5px solid #ccffcc;\\n box-sizing: border-box;\\n box-shadow: 10px 4px 10px #00000024;\\n}\\n.pwd-recovery-page-card .pwd-recovery-form-section .form-title {\\n font-size: 24px;\\n font-family: var(--poppins-font);\\n font-weight: 700;\\n line-height: 32px;\\n color: #ffd949;\\n}\\n.pwd-recovery-page-card .pwd-recovery-form-section .form-subtitle {\\n font-size: 14px;\\n font-family: var(--roboto-font);\\n font-weight: 600;\\n line-height: 21px;\\n color: #fbfbfb;\\n}\\n.pwd-recovery-form-section .form-inputs {\\n background: #ffffff 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n height: 35px;\\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.157);\\n}\\n.form-inputs .form-input-icon {\\n font-size: 20px;\\n color: #31b7c2;\\n font-family: var(--roboto-font);\\n}\\n.success-verify-icon {\\n width: 2em !important;\\n height: 2em !important;\\n}\\n.success-verify-message {\\n font-size: 16px;\\n font-family: var(--roboto-font);\\n font-weight: 600;\\n}\\n.error-message {\\n font-size: 14px;\\n font-weight: 600;\\n font-family: var(--roboto-font);\\n white-space: wrap !important;\\n color: #db0f0f;\\n border-radius: 6px !important;\\n}\\nion-radio {\\n --color-checked: #f15959 !important;\\n --color: #ffffff !important;\\n width: 16px !important;\\n height: 16px !important;\\n}\\nion-label.login-type {\\n color: #ffffff;\\n font-size: 13px;\\n font-weight: 600;\\n font-family: var(--roboto-font);\\n}\\n.otp-success-message {\\n color: #73dd1d;\\n font-size: 12px;\\n font-weight: 600;\\n font-family: var(--roboto-font);\\n}\\n.password-hint {\\n font: normal normal 500 11px/14px Poppins;\\n}\\n.password-hint.info {\\n color: #f3f3f3 !important;\\n}\\n.password-hint.valid {\\n color: #1cef76 !important;\\n}\\n.password-hint.invalid {\\n color: #eb2812 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Bhc3N3b3JkLXJlY292ZXJ5LnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDUSwwSUFBQTtBQUNSO0VBQ0kscUNBQUE7RUFDQSw2Q0FBQTtBQUFKO0FBRUE7RUFDRSxXQUFBO0FBQ0Y7QUFDQTtFQUNFLFdBQUE7QUFFRjtBQUFBO0VBQ0UsZ0JBQUE7QUFHRjtBQURBO0VBQ0UsaUJBQUE7QUFJRjtBQUZBO0VBQ0UsaUNBQUE7QUFLRjtBQUhBO0VBQ0UsZ0NBQUE7QUFNRjtBQUpBO0VBQ0UsZ0NBQUE7QUFPRjtBQUpBO0VBQ0UsMEJBQUE7RUFDQSxpQ0FBQTtFQUNBLG1CQUFBO0FBT0Y7QUFMRTtFQUNFLGdDQUFBO0FBT0o7QUFIQTtFQUNFLG9GQUFBO0VBQ0EsbUJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VBQ0EsbUNBQUE7QUFNRjtBQUpBO0VBQ0UsZUFBQTtFQUNBLGdDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7QUFPRjtBQUxBO0VBQ0UsZUFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7QUFRRjtBQU5BO0VBQ0UsK0NBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSw0Q0FBQTtBQVNGO0FBUEE7RUFDRSxlQUFBO0VBQ0EsY0FBQTtFQUNBLCtCQUFBO0FBVUY7QUFSQTtFQUNFLHFCQUFBO0VBQ0Esc0JBQUE7QUFXRjtBQVRBO0VBQ0UsZUFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0JBQUE7QUFZRjtBQVZBO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSw0QkFBQTtFQUNBLGNBQUE7RUFDQSw2QkFBQTtBQWFGO0FBWEE7RUFDRSxtQ0FBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RUFDQSx1QkFBQTtBQWNGO0FBWkE7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsK0JBQUE7QUFlRjtBQWJBO0VBQ0UsY0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLCtCQUFBO0FBZ0JGO0FBZEE7RUFDRSx5Q0FBQTtBQWlCRjtBQWZBO0VBQ0UseUJBQUE7QUFrQkY7QUFoQkE7RUFDRSx5QkFBQTtBQW1CRjtBQWpCQTtFQUNFLHlCQUFBO0FBb0JGIiwiZmlsZSI6InBhc3N3b3JkLXJlY292ZXJ5LnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UG9wcGluczp3Z2h0QDQwMDs1MDA7NzAwJmZhbWlseT1Sb2JvdG8rQ29uZGVuc2VkOndnaHRANDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCcpO1xuOnJvb3Qge1xuICAgIC0tcG9wcGlucy1mb250OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7XG4gICAgLS1yb2JvdG8tZm9udDogJ1JvYm90byBDb25kZW5zZWQnLCBzYW5zLXNlcmlmO1xufVxuLnctMzVweHtcbiAgd2lkdGg6IDM1cHg7XG59XG4udy03MHB4e1xuICB3aWR0aDogNzBweDtcbn1cbi5tdC1uLTNweHtcbiAgbWFyZ2luLXRvcDogLTNweDtcbn1cbi5tdC1uLTEycHh7XG4gIG1hcmdpbi10b3A6IC0xMnB4O1xufVxuLnRleHQtY29sb3Itc2Vjb25kYXJ5e1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSk7XG59XG4uYm9yZGVyLXJhZGl1cy0yMHB4e1xuICAtLWJvcmRlci1yYWRpdXM6IDIwcHggIWltcG9ydGFudDtcbn1cbi5iZy1jb2xvci0xMjgzZjF7XG4gIC0tYmFja2dyb3VuZDogIzEyODNmMSAhaW1wb3J0YW50O1xufVxuXG4udGl0bGUge1xuICBmb250LWZhbWlseTogJ1N0YWF0bGljaGVzJztcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnkpO1xuICBsZXR0ZXItc3BhY2luZzogNXB4O1xuXG4gIC5kaW5lIHtcbiAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXRlcnRpYXJ5KTtcbiAgfVxufVxuXG4ucHdkLXJlY292ZXJ5LXBhZ2UtY2FyZHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzREQTBCMCwgI0QzOUQzOCkgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBib3JkZXI6IDEuNXB4IHNvbGlkICNjY2ZmY2M7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IDEwcHggNHB4IDEwcHggIzAwMDAwMDI0O1xufVxuLnB3ZC1yZWNvdmVyeS1wYWdlLWNhcmQgLnB3ZC1yZWNvdmVyeS1mb3JtLXNlY3Rpb24gLmZvcm0tdGl0bGV7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXBvcHBpbnMtZm9udCk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBjb2xvcjogI2ZmZDk0OTtcbn1cbi5wd2QtcmVjb3ZlcnktcGFnZS1jYXJkIC5wd2QtcmVjb3ZlcnktZm9ybS1zZWN0aW9uIC5mb3JtLXN1YnRpdGxle1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1yb2JvdG8tZm9udCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICBjb2xvcjogI2ZiZmJmYjtcbn1cbi5wd2QtcmVjb3ZlcnktZm9ybS1zZWN0aW9uIC5mb3JtLWlucHV0c3tcbiAgYmFja2dyb3VuZDogI2ZmZmZmZiAwJSAwJSBuby1yZXBlYXQgcGFkZGluZy1ib3g7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGhlaWdodDogMzVweDtcbiAgYm94LXNoYWRvdzogMnB4IDJweCA0cHggaHNsYSgwLCAwJSwgMCUsIDAuMTU3KTtcbn1cbi5mb3JtLWlucHV0cyAuZm9ybS1pbnB1dC1pY29ue1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjMzFiN2MyO1xuICBmb250LWZhbWlseTogdmFyKC0tcm9ib3RvLWZvbnQpO1xufVxuLnN1Y2Nlc3MtdmVyaWZ5LWljb257XG4gIHdpZHRoOiAyZW0gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyZW0gIWltcG9ydGFudDtcbn1cbi5zdWNjZXNzLXZlcmlmeS1tZXNzYWdle1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1yb2JvdG8tZm9udCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZXJyb3ItbWVzc2FnZXtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWZhbWlseTogdmFyKC0tcm9ib3RvLWZvbnQpO1xuICB3aGl0ZS1zcGFjZTogd3JhcCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2RiMGYwZjtcbiAgYm9yZGVyLXJhZGl1czogNnB4ICFpbXBvcnRhbnQ7XG59XG5pb24tcmFkaW8ge1xuICAtLWNvbG9yLWNoZWNrZWQ6ICNmMTU5NTkgIWltcG9ydGFudDtcbiAgLS1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB3aWR0aDogMTZweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDE2cHggIWltcG9ydGFudDtcbn1cbmlvbi1sYWJlbC5sb2dpbi10eXBlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJvYm90by1mb250KTtcbn1cbi5vdHAtc3VjY2Vzcy1tZXNzYWdle1xuICBjb2xvcjogIzczZGQxZDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWZhbWlseTogdmFyKC0tcm9ib3RvLWZvbnQpO1xufVxuLnBhc3N3b3JkLWhpbnR7XG4gIGZvbnQ6IG5vcm1hbCBub3JtYWwgNTAwIDExcHgvMTRweCBQb3BwaW5zO1xufVxuLnBhc3N3b3JkLWhpbnQuaW5mb3tcbiAgY29sb3I6ICNmM2YzZjMgIWltcG9ydGFudDtcbn1cbi5wYXNzd29yZC1oaW50LnZhbGlke1xuICBjb2xvcjogIzFjZWY3NiAhaW1wb3J0YW50O1xufVxuLnBhc3N3b3JkLWhpbnQuaW52YWxpZHtcbiAgY29sb3I6ICNlYjI4MTIgIWltcG9ydGFudDtcbn0iXX0= */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ProductModel } from '../model/productModel';\nimport { SmartDineResponseListProductModel } from '../model/smartDineResponseListProductModel';\nimport { SmartDineResponseProductModel } from '../model/smartDineResponseProductModel';\nimport { SortByParam } from '../model/sortByParam';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class ProductRestControllerForAdminService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createProduct(body: ProductModel, observe?: 'body', reportProgress?: boolean): Observable;\n public createProduct(body: ProductModel, observe?: 'response', reportProgress?: boolean): Observable>;\n public createProduct(body: ProductModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public createProduct(body: ProductModel, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createProduct.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/products`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param productId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteProduct(productId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteProduct(productId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteProduct(productId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteProduct(productId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (productId === null || productId === undefined) {\n throw new Error('Required parameter productId was null or undefined when calling deleteProduct.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/products/${encodeURIComponent(String(productId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param productId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getProduct(productId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getProduct(productId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getProduct(productId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getProduct(productId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (productId === null || productId === undefined) {\n throw new Error('Required parameter productId was null or undefined when calling getProduct.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/products/${encodeURIComponent(String(productId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param categoryId \n * @param pageNo \n * @param pageSize \n * @param sortByParams \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getProducts(categoryId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'body', reportProgress?: boolean): Observable;\n public getProducts(categoryId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'response', reportProgress?: boolean): Observable>;\n public getProducts(categoryId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'events', reportProgress?: boolean): Observable>;\n public getProducts(categoryId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (categoryId === null || categoryId === undefined) {\n throw new Error('Required parameter categoryId was null or undefined when calling getProducts.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (categoryId !== undefined && categoryId !== null) {\n queryParameters = queryParameters.set('categoryId', categoryId);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (pageSize !== undefined && pageSize !== null) {\n queryParameters = queryParameters.set('pageSize', pageSize);\n }\n if (sortByParams) {\n sortByParams.forEach((element) => {\n queryParameters = queryParameters.append('sortByParams', element);\n })\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/products`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param productId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateProduct(body: ProductModel, productId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateProduct(body: ProductModel, productId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateProduct(body: ProductModel, productId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateProduct(body: ProductModel, productId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateProduct.');\n }\n\n if (productId === null || productId === undefined) {\n throw new Error('Required parameter productId was null or undefined when calling updateProduct.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/products/${encodeURIComponent(String(productId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseUserEntity } from '../model/smartDineResponseUserEntity';\nimport { UserEntity } from '../model/userEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class UserRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createUsers(body: UserEntity, observe?: 'body', reportProgress?: boolean): Observable;\n public createUsers(body: UserEntity, observe?: 'response', reportProgress?: boolean): Observable>;\n public createUsers(body: UserEntity, observe?: 'events', reportProgress?: boolean): Observable>;\n public createUsers(body: UserEntity, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createUsers.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/users`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param userId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteUser(userId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteUser(userId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteUser(userId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteUser(userId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling deleteUser.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/users/${encodeURIComponent(String(userId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param userId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUser(userId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getUser(userId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getUser(userId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getUser(userId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getUser.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/users/${encodeURIComponent(String(userId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUsers(observe?: 'body', reportProgress?: boolean): Observable;\n public getUsers(observe?: 'response', reportProgress?: boolean): Observable>;\n public getUsers(observe?: 'events', reportProgress?: boolean): Observable>;\n public getUsers(observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/users`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param userId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateUser(body: UserEntity, userId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateUser(body: UserEntity, userId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateUser(body: UserEntity, userId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateUser(body: UserEntity, userId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateUser.');\n }\n\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateUser.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/users/${encodeURIComponent(String(userId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseStatisticsOrderModel } from '../model/smartDineResponseStatisticsOrderModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class StatisticsRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param statusList \n * @param fromDate \n * @param toDate \n * @param groupByDate \n * @param locale \n * @param pageNo \n * @param rows \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderStatistics(restaurantId: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, groupByDate?: boolean, locale?: string, pageNo?: number, rows?: number, observe?: 'body', reportProgress?: boolean): Observable;\n public getOrderStatistics(restaurantId: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, groupByDate?: boolean, locale?: string, pageNo?: number, rows?: number, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOrderStatistics(restaurantId: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, groupByDate?: boolean, locale?: string, pageNo?: number, rows?: number, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOrderStatistics(restaurantId: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, groupByDate?: boolean, locale?: string, pageNo?: number, rows?: number, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getOrderStatistics.');\n }\n\n\n\n\n\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (statusList) {\n statusList.forEach((element) => {\n queryParameters = queryParameters.append('statusList', element);\n })\n }\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = queryParameters.set('fromDate', fromDate.toISOString());\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = queryParameters.set('toDate', toDate.toISOString());\n }\n if (groupByDate !== undefined && groupByDate !== null) {\n queryParameters = queryParameters.set('groupByDate', groupByDate);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/statistics/orders`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"\\n \\n Order Review\\n \\n Save\\n Close\\n \\n \\n\\n\\n\\n
\\n \\n \\n
\\n Customer Name*\\n\\n \\n
\\n \\n Customer Name is required.\\n \\n
\\n\\n \\n
\\n Mobile Number*\\n\\n \\n
\\n \\n Enter a valid 10-digit number.\\n \\n
\\n\\n \\n
\\n Overall Rating\\n\\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n
\\n Food Quality\\n\\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n
\\n Service Level\\n\\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n
\\n Ambience Rating\\n\\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n
\\n Comments\\n\\n \\n
\\n
\\n
\\n
\\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OrderStatusModel { \n restaurantId?: string;\n orderId?: string;\n restaurantBranchId?: string;\n currentStatus?: OrderStatusModel.CurrentStatusEnum;\n nextPossibleOrderStatuses?: Array;\n}\nexport namespace OrderStatusModel {\n export type CurrentStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const CurrentStatusEnum = {\n DRAFT: 'DRAFT' as CurrentStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as CurrentStatusEnum,\n SUBMITTED: 'SUBMITTED' as CurrentStatusEnum,\n CANCELLED: 'CANCELLED' as CurrentStatusEnum,\n DECLINED: 'DECLINED' as CurrentStatusEnum,\n ACCEPTED: 'ACCEPTED' as CurrentStatusEnum,\n PREPARING: 'PREPARING' as CurrentStatusEnum,\n PREPARED: 'PREPARED' as CurrentStatusEnum,\n DELIVERED: 'DELIVERED' as CurrentStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as CurrentStatusEnum,\n PICKEDUP: 'PICKED_UP' as CurrentStatusEnum\n };\n export type NextPossibleOrderStatusesEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const NextPossibleOrderStatusesEnum = {\n DRAFT: 'DRAFT' as NextPossibleOrderStatusesEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as NextPossibleOrderStatusesEnum,\n SUBMITTED: 'SUBMITTED' as NextPossibleOrderStatusesEnum,\n CANCELLED: 'CANCELLED' as NextPossibleOrderStatusesEnum,\n DECLINED: 'DECLINED' as NextPossibleOrderStatusesEnum,\n ACCEPTED: 'ACCEPTED' as NextPossibleOrderStatusesEnum,\n PREPARING: 'PREPARING' as NextPossibleOrderStatusesEnum,\n PREPARED: 'PREPARED' as NextPossibleOrderStatusesEnum,\n DELIVERED: 'DELIVERED' as NextPossibleOrderStatusesEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as NextPossibleOrderStatusesEnum,\n PICKEDUP: 'PICKED_UP' as NextPossibleOrderStatusesEnum\n };\n}","export default \":host {\\n display: block;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYnMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxjQUFBO0FBQ0YiLCJmaWxlIjoidGFicy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iXX0= */\";","export default \"
\\n \\n Restaurants\\n \\n \\n \\n \\n\\n \\n Branches\\n \\n Unassigned\\n \\n \\n \\n\\n \\n
\";","import { Component, OnInit } from '@angular/core';\nimport { ProfileModel } from '../../../swagger';\nimport { UserProfileService } from 'src/app/common/services/user-profile/user-profile.service';\n\n@Component({\n selector: 'app-user-settings',\n templateUrl: './user-settings.page.html',\n styleUrls: ['./user-settings.page.scss'],\n})\nexport class UserSettingsPage implements OnInit {\n\n public userProfile: ProfileModel | null = null;\n public userFullName = '';\n useBiometrics: boolean;\n usePasscode: boolean;\n useSecureStorageMode: boolean;\n biometricType: string;\n\n constructor(\n private userProfileService: UserProfileService,\n ) { }\n\n ngOnInit() {\n this.userProfile = null;\n this.userFullName = '';\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n this.userProfile = userProfile;\n }\n });\n }\n\n async authModeChanged() {\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Auth, CognitoUser } from '@aws-amplify/auth';\nimport { LoaderService } from '../../../common/services/loader/loader.service';\nimport { AuthService } from '../../services/auth/auth.service';\nimport { CognitoUserSession, ISignUpResult } from 'amazon-cognito-identity-js';\nimport { ModalController } from '@ionic/angular';\nimport { PrivacyPage } from '../privacy/privacy.page';\n\ninterface NewUserInfo {\n name: string;\n email: string;\n password: string;\n phoneNumber: string;\n countryCode: string;\n}\n\ninterface VerificationInfo {\n verificationCode: string;\n}\n\n@Component({\n selector: 'app-sign-up',\n templateUrl: './sign-up.page.html',\n styleUrls: ['./sign-up.page.scss'],\n})\nexport class SignUpPage implements OnInit {\n\n private session: CognitoUserSession | null = null;\n private username = '';\n\n public signUpform: FormGroup;\n public verficationform: FormGroup;\n\n public stage = 1;\n\n public signUpButtonDisabled: boolean = true;\n\n public errorMessage: string = '';\n private timer: NodeJS.Timeout;\n\n public isPrivacyModalOpen = false;\n\n public resendCodeDisabled = true;\n public isPasswordTouched: boolean = false;\n public passwordCriteria:any[] = [];\n public hidePassword: boolean = true;\n\n constructor(\n private loaderService: LoaderService,\n private router: Router,\n private authService: AuthService,\n private activatedRoute: ActivatedRoute,\n private modalController: ModalController\n\n ) {\n activatedRoute.queryParams.subscribe((queryParams) => {\n this.username = queryParams?.username || '';\n if (this.username) {\n this.stage = 2;\n }\n });\n\n this.createForm();\n this.passwordCriteria = [\n { criterion: 'At least 8 characters long', icon: 'information-circle-outline', color: 'info' },\n { criterion: 'Include at least 1 uppercase letter (A-Z)', icon: 'information-circle-outline', color: 'info' },\n { criterion: 'Include at least 1 lowercase letter (a-z)', icon: 'information-circle-outline', color: 'info' },\n { criterion: 'Include at least 1 special character from (@, !, _, #, $)', icon: 'information-circle-outline', color: 'info' }\n ];\n }\n\n public ngOnInit() {\n this.signUpform.get('password')?.valueChanges.subscribe((password) => {\n this.updatePasswordCriteria(password);\n }); \n this.setSession();\n }\n\n public createForm() {\n this.signUpform = new FormGroup({\n name: new FormControl('', [Validators.required]),\n email: new FormControl('', [Validators.email]),\n password: new FormControl('', [Validators.required]),\n phoneNumber: new FormControl('', [Validators.required]),\n countryCode: new FormControl('+91', [Validators.required]),\n agreeToTC: new FormControl(false, [Validators.required]),\n });\n this.verficationform = new FormGroup({\n verificationCode: new FormControl('', [Validators.required, Validators.pattern('[0-9]+'), Validators.minLength(6), Validators.maxLength(6)]),\n })\n }\n\n public onStep1FormSubmit() {\n this.signUpform.markAllAsTouched();\n\n const passwordValid = this.isPasswordValidForSubmit();\n if (this.signUpform.valid && this.signUpform.get('agreeToTC').value === true && passwordValid) {\n this.signUp(this.signUpform.value);\n } else {\n if (!passwordValid) {\n this.setErrorMessage('Password does not meet all the criteria.');\n } else {\n this.setErrorMessage('Missing required input or agreement.');\n }\n }\n }\n\n public agreeToTCAction() {\n this.signUpButtonDisabled = this.signUpform.get('agreeToTC').value;\n }\n\n async showPrivacy() {\n const modal = await this.modalController.create({\n component: PrivacyPage,\n id: PrivacyPage.id\n });\n return await modal.present();\n }\n\n public onStep2FormSubmit() {\n this.verficationform.markAllAsTouched();\n if (this.verficationform.valid) {\n this.confirmSignUp(this.verficationform.value);\n }\n }\n\n private updatePasswordCriteria(password: string) {\n this.passwordCriteria.forEach((criterion) => {\n criterion.color = this.isPasswordTouched && this.validateCriterion(password, criterion.criterion) ? 'success' : 'info';\n criterion.icon = this.isPasswordTouched && this.validateCriterion(password, criterion.criterion) ? 'checkmark-circle-outline' : 'information-circle-outline';\n });\n }\n\n validateCriterion(password: string, criterion: string): boolean {\n if (!password) return false;\n switch (criterion) {\n case 'At least 8 characters long':\n return password.length >= 8;\n case 'Include at least 1 uppercase letter (A-Z)':\n return /[A-Z]/.test(password);\n case 'Include at least 1 lowercase letter (a-z)':\n return /[a-z]/.test(password);\n case 'Include at least 1 special character from (@, !, _, #, $)':\n return /[@!_#\\$]/.test(password);\n default:\n return false;\n }\n }\n\n public onPasswordFieldFocus() {\n this.isPasswordTouched = true;\n this.updatePasswordCriteria(this.signUpform.get('password').value);\n }\n\n public isPasswordValidForSubmit(): boolean {\n const password = this.signUpform.get('password').value;\n return this.passwordCriteria.every((criterion) => this.validateCriterion(password, criterion.criterion));\n }\n\n private setSession() {\n this.session = null;\n this.authService.getSession().subscribe({\n next: (session: CognitoUserSession | null) => {\n if (session) {\n this.router.navigateByUrl('/', { replaceUrl: true });\n this.session = session;\n }\n }\n });\n }\n\n public async signUp(details: NewUserInfo) {\n this.loaderService.showLoader();\n try {\n const res: ISignUpResult = await Auth.signUp({\n username: details.countryCode + details.phoneNumber,\n password: details.password,\n attributes: {\n name: details.name,\n email: details.email,\n phone_number: details.countryCode + details.phoneNumber,\n },\n });\n\n if (res.user) {\n this.username = res.user.getUsername();\n this.router.navigate([], { queryParams: { username: this.username }, relativeTo: this.activatedRoute, queryParamsHandling: 'merge' });\n }\n\n if (res.userConfirmed) {\n this.stage = 3;\n } else {\n this.stage = 2;\n this.setErrorMessage(\"Code is sent to \" + res.codeDeliveryDetails.Destination + \" via \" + res.codeDeliveryDetails.DeliveryMedium);\n this.disableResendCodeButton();\n }\n this.signUpform.reset();\n this.loaderService.hideLoader();\n } catch (err) {\n //this.signUpform.reset();\n this.loaderService.hideLoader();\n let errorMessage = 'Unable to process your request. Try again later!';\n if (err.message) {\n errorMessage = err.message;\n }\n this.setErrorMessage(errorMessage);\n console.error(SignUpPage.name, 'Unable to regsiter!', err);\n }\n }\n\n public async confirmSignUp(details: VerificationInfo) {\n this.loaderService.showLoader();\n try {\n const res = await Auth.confirmSignUp(this.username, details.verificationCode);\n\n this.router.navigate([], { queryParams: { username: null }, relativeTo: this.activatedRoute, queryParamsHandling: 'merge' });\n this.stage = 3;\n this.verficationform.reset();\n this.loaderService.hideLoader();\n } catch (err) {\n this.verficationform.reset();\n this.loaderService.hideLoader();\n\n let errorMessage = 'Unable to process your request. Try again later!';\n if (err.message) {\n errorMessage = err.message;\n }\n this.setErrorMessage(errorMessage);\n console.error(SignUpPage.name, 'Unable to verify the account!', err);\n }\n }\n\n public setErrorMessage(message: string) {\n this.errorMessage = message;\n }\n\n public resendCodeAction() {\n this.setErrorMessage('');\n this.disableResendCodeButton();\n Auth.resendSignUp(this.username).then((response) => {\n\n this.setErrorMessage(\"Code is sent to \" + response.CodeDeliveryDetails.Destination + \" via \" + response.CodeDeliveryDetails.DeliveryMedium);\n });\n }\n\n public disableResendCodeButton() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.resendCodeDisabled = true; \n this.timer = setTimeout(() => {\n this.resendCodeDisabled = false;\n }, 120000);\n }\n\n public togglePasswordVisibility() {\n this.hidePassword = !this.hidePassword;\n }\n}\n","export default \"\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface AdminImagesBody { \n file: Blob;\n}","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { ProfileModel, RestaurantBranchEntity, RestaurantEntity } from 'src/app/swagger';\nimport { UserProfileService } from '../../services/user-profile/user-profile.service';\nimport { Role } from '../../enums/role.enum';\nimport { RestaurantsService } from '../../services/restaurants/restaurants.service';\n\nexport interface FiltersValue {\n restaurantId: string;\n restaurantBranchId: string;\n}\n\n@Component({\n selector: 'app-filters',\n templateUrl: './filters.component.html',\n styleUrls: ['./filters.component.scss'],\n})\nexport class FiltersComponent implements OnInit {\n\n @Output()\n public restaurantIdChange = new EventEmitter();\n\n @Output()\n public restaurantBranchIdChange = new EventEmitter();\n\n @Output()\n public filtersValueChange = new EventEmitter();\n\n public isAdmin = false;\n\n public isRestaurantAdmin = false;\n\n public isCustomer = false;\n\n private userProfile: ProfileModel | null = null;\n\n public restaurants: RestaurantEntity[] = [];\n\n public branches: RestaurantBranchEntity[] = [];\n\n public restaurantId: string | null = null;\n\n public restaurantBranchId: string | null = null;\n\n constructor(\n private userProfileService: UserProfileService,\n private restaurantsService: RestaurantsService,\n ) { }\n\n public onRestaurantChange(event: Event) {\n const e = event as CustomEvent;\n const isTrusted = (e?.currentTarget as any)?.classList?.contains('select-expanded');\n const value = e?.detail?.value || null;\n if (!isTrusted) { return; }\n this.restaurantsService.setSelectedRestaurantId(value);\n this.restaurantsService.setSelectedBranchId(null);\n }\n\n public onBranchChange(event: Event) {\n const e = event as CustomEvent;\n const isTrusted = (e?.currentTarget as any)?.classList?.contains('select-expanded');\n const value = e?.detail?.value || null;\n if (!isTrusted) { return; }\n this.restaurantsService.setSelectedBranchId(value);\n }\n\n public ngOnInit() {\n this.init();\n }\n\n public init() {\n this.setUserProfile();\n this.setRestaurants();\n this.setBranches();\n }\n\n private setUserProfile() {\n this.userProfileService.getUserProfile().subscribe({\n next: (userProfile: ProfileModel) => {\n if(userProfile){\n this.userProfile = userProfile;\n const userRoles = this.userProfile?.roles;\n this.isAdmin = userRoles.includes(Role.ADMINS);\n this.isRestaurantAdmin = userRoles.includes(Role.ADMINS);\n this.isCustomer = userRoles.includes(Role.USERS);\n }\n }\n });\n }\n\n private setRestaurants() {\n this.restaurants = [];\n this.restaurantsService.getRestaurants().subscribe({\n next: (restaurants: RestaurantEntity[]) => {\n this.restaurants = restaurants;\n this.setSelectedRestaurantId();\n }\n });\n }\n\n private setSelectedRestaurantId() {\n this.restaurantId = null;\n this.restaurantsService.getSelectedRestaurantId().subscribe({\n next: (restaurantId: any) => {\n setTimeout(() => {\n this.restaurantId = restaurantId;\n const selectedResto = this.restaurants?.find(resto => resto?.restaurantId === this.restaurantId);\n this.restaurantsService.setSelectedRestaurant(selectedResto);\n this.restaurantIdChange.emit(restaurantId);\n this.emitFiltersValueChange();\n }, 100);\n }\n });\n }\n\n private setBranches() {\n this.branches = [];\n this.restaurantsService.getBranches().subscribe({\n next: (branches: RestaurantBranchEntity[]) => {\n this.branches = branches;\n this.setSelectedBranchId();\n }\n });\n }\n\n private setSelectedBranchId() {\n this.restaurantBranchId = null;\n this.restaurantsService.getSelectedBranchId().subscribe({\n next: (branchId: any) => {\n setTimeout(() => {\n this.restaurantBranchId = branchId;\n this.restaurantBranchIdChange.emit(branchId);\n this.emitFiltersValueChange();\n }, 100);\n }\n });\n }\n\n private emitFiltersValueChange() {\n this.filtersValueChange.emit({\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n });\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RestaurantContactModel } from '../model/restaurantContactModel';\nimport { SmartDineResponseListRestaurantContactModel } from '../model/smartDineResponseListRestaurantContactModel';\nimport { SmartDineResponseRestaurantContactModel } from '../model/smartDineResponseRestaurantContactModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantContactRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createContact(body: RestaurantContactModel, restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createContact(body: RestaurantContactModel, restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createContact(body: RestaurantContactModel, restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createContact(body: RestaurantContactModel, restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createContact.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createContact.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling createContact.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/contacts`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param contactId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteContact(restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteContact(restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteContact(restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteContact(restaurantId: string, restaurantBranchId: string, contactId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteContact.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling deleteContact.');\n }\n\n if (contactId === null || contactId === undefined) {\n throw new Error('Required parameter contactId was null or undefined when calling deleteContact.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (contactId !== undefined && contactId !== null) {\n queryParameters = queryParameters.set('contactId', contactId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/contacts/${encodeURIComponent(String(contactId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param contactId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getContact(restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getContact(restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getContact(restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getContact(restaurantId: string, restaurantBranchId: string, contactId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getContact.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getContact.');\n }\n\n if (contactId === null || contactId === undefined) {\n throw new Error('Required parameter contactId was null or undefined when calling getContact.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (contactId !== undefined && contactId !== null) {\n queryParameters = queryParameters.set('contactId', contactId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/contacts/${encodeURIComponent(String(contactId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getContacts(restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getContacts(restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getContacts(restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getContacts(restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getContacts.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getContacts.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/contacts`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param contactId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateContact(body: RestaurantContactModel, restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateContact(body: RestaurantContactModel, restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateContact(body: RestaurantContactModel, restaurantId: string, restaurantBranchId: string, contactId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateContact(body: RestaurantContactModel, restaurantId: string, restaurantBranchId: string, contactId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateContact.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateContact.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updateContact.');\n }\n\n if (contactId === null || contactId === undefined) {\n throw new Error('Required parameter contactId was null or undefined when calling updateContact.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (contactId !== undefined && contactId !== null) {\n queryParameters = queryParameters.set('contactId', contactId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/contacts/${encodeURIComponent(String(contactId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"@import url(\\\"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&family=Roboto+Condensed:wght@400;500;600;700&display=swap\\\");\\n:root {\\n --poppins-font: \\\"Poppins\\\", sans-serif;\\n --roboto-font: \\\"Roboto Condensed\\\", sans-serif;\\n}\\n.w-35px {\\n width: 35px;\\n}\\n.w-70px {\\n width: 70px;\\n}\\n.mt-n-3px {\\n margin-top: -3px;\\n}\\n.mt-n-12px {\\n margin-top: -12px;\\n}\\n.text-color-secondary {\\n color: var(--ion-color-secondary);\\n}\\n.border-radius-20px {\\n --border-radius: 20px !important;\\n}\\n.bg-color-1283f1 {\\n --background: #1283f1 !important;\\n}\\n.title {\\n font-family: \\\"Staatliches\\\";\\n color: var(--ion-color-secondary);\\n letter-spacing: 5px;\\n}\\n.title .dine {\\n color: var(--ion-color-tertiary);\\n}\\n.password-hint {\\n font: normal normal 500 11px/14px Poppins;\\n}\\n.password-hint.info {\\n color: #f3f3f3 !important;\\n}\\n.password-hint.valid {\\n color: #1cef76 !important;\\n}\\n.password-hint.invalid {\\n color: #eb2812 !important;\\n}\\n.pwd-visibility-button {\\n position: relative !important;\\n right: -10px !important;\\n transform: translate(5px, 2px) !important;\\n}\\n.signup-page-card {\\n background: linear-gradient(to bottom, #4DA0B0, #D39D38) 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n border: 1.5px solid #ccffcc;\\n box-sizing: border-box;\\n box-shadow: 10px 4px 10px #00000024;\\n}\\n.signup-page-card .signup-form-section .form-title {\\n font-size: 24px;\\n line-height: 28px;\\n font-family: var(--poppins-font);\\n font-weight: 700;\\n color: #ffd949;\\n}\\n.signup-page-card .signup-form-section .form-subtitle {\\n font-size: 14px;\\n font-family: var(--roboto-font);\\n font-weight: 600;\\n line-height: 21px;\\n color: #fbfbfb;\\n}\\n.signup-form-section .form-inputs {\\n background: #ffffff 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n height: 35px;\\n box-shadow: 2px 2px 4px #00000028;\\n}\\n.form-inputs .form-input-icon {\\n font-size: 20px;\\n color: #31b7c2;\\n font-family: var(--roboto-font);\\n}\\n.signup-form-section .country-code-input {\\n font: normal normal normal 14px/21px Poppins;\\n color: #c4c5c7;\\n}\\n.signup-form-section .terms-conditions-link {\\n font-size: 14px;\\n line-height: 21px;\\n font-weight: 600;\\n font-family: var(--roboto-font);\\n color: #f2f5fc !important;\\n}\\n.signup-form-section .terms-conditions-link :hover {\\n color: #008ff2 !important;\\n text-decoration: underline !important;\\n cursor: pointer !important;\\n}\\n.checkbox-input {\\n --border-radius: 4px !important;\\n --background: #f6f6f7 !important;\\n --background-checked: #0089ff !important;\\n --border-color-checked: #008ff2 !important;\\n --checkmark-width: 2px !important;\\n}\\n.form-sub-text {\\n font-size: 14px;\\n font-family: var(--poppins-font);\\n color: #11afee;\\n}\\n.error-message {\\n font-size: 15px;\\n font-weight: 600;\\n font-family: var(--roboto-font);\\n white-space: wrap !important;\\n text-overflow: auto !important;\\n color: #f9c35a;\\n}\\n.verification-message {\\n font-size: 14px;\\n font-family: var(--roboto-font);\\n font-weight: 600;\\n color: #71d81c;\\n}\\n.success-verify-icon {\\n width: 2em !important;\\n height: 2em !important;\\n}\\n.success-verify-message {\\n font-size: 16px;\\n font-family: var(--roboto-font);\\n font-weight: 600;\\n}\\n.error-message {\\n font-size: 14px;\\n font-weight: 600;\\n font-family: var(--roboto-font);\\n white-space: wrap !important;\\n color: #db0f0f;\\n border-radius: 6px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NpZ24tdXAucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFRLDBJQUFBO0FBQ1I7RUFDSSxxQ0FBQTtFQUNBLDZDQUFBO0FBQ0o7QUFDQTtFQUNFLFdBQUE7QUFFRjtBQUFBO0VBQ0UsV0FBQTtBQUdGO0FBREE7RUFDRSxnQkFBQTtBQUlGO0FBRkE7RUFDRSxpQkFBQTtBQUtGO0FBSEE7RUFDRSxpQ0FBQTtBQU1GO0FBSkE7RUFDRSxnQ0FBQTtBQU9GO0FBTEE7RUFDRSxnQ0FBQTtBQVFGO0FBTkE7RUFDRSwwQkFBQTtFQUNBLGlDQUFBO0VBQ0EsbUJBQUE7QUFTRjtBQVBFO0VBQ0UsZ0NBQUE7QUFTSjtBQUxBO0VBQ0UseUNBQUE7QUFRRjtBQU5BO0VBQ0UseUJBQUE7QUFTRjtBQVBBO0VBQ0UseUJBQUE7QUFVRjtBQVJBO0VBQ0UseUJBQUE7QUFXRjtBQVRBO0VBQ0UsNkJBQUE7RUFDQSx1QkFBQTtFQUNBLHlDQUFBO0FBWUY7QUFWQTtFQUNFLG9GQUFBO0VBQ0EsbUJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VBQ0EsbUNBQUE7QUFhRjtBQVhBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7QUFjRjtBQVpBO0VBQ0UsZUFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7QUFlRjtBQWJBO0VBQ0UsK0NBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxpQ0FBQTtBQWdCRjtBQWRBO0VBQ0UsZUFBQTtFQUNBLGNBQUE7RUFDQSwrQkFBQTtBQWlCRjtBQWZBO0VBQ0UsNENBQUE7RUFDQSxjQUFBO0FBa0JGO0FBaEJBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLHlCQUFBO0FBbUJGO0FBakJFO0VBQ0UseUJBQUE7RUFDQSxxQ0FBQTtFQUNBLDBCQUFBO0FBbUJKO0FBaEJBO0VBQ0UsK0JBQUE7RUFDQSxnQ0FBQTtFQUNBLHdDQUFBO0VBQ0EsMENBQUE7RUFDQSxpQ0FBQTtBQW1CRjtBQWpCQTtFQUNFLGVBQUE7RUFDQSxnQ0FBQTtFQUNBLGNBQUE7QUFvQkY7QUFsQkE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLDRCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBO0FBcUJGO0FBbkJBO0VBQ0UsZUFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0FBc0JGO0FBcEJBO0VBQ0UscUJBQUE7RUFDQSxzQkFBQTtBQXVCRjtBQXJCQTtFQUNFLGVBQUE7RUFDQSwrQkFBQTtFQUNBLGdCQUFBO0FBd0JGO0FBdEJBO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSw0QkFBQTtFQUNBLGNBQUE7RUFDQSw2QkFBQTtBQXlCRiIsImZpbGUiOiJzaWduLXVwLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBvcHBpbnM6d2dodEA0MDA7NTAwOzcwMCZmYW1pbHk9Um9ib3RvK0NvbmRlbnNlZDp3Z2h0QDQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAnKTtcbjpyb290IHtcbiAgICAtLXBvcHBpbnMtZm9udDogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmO1xuICAgIC0tcm9ib3RvLWZvbnQ6ICdSb2JvdG8gQ29uZGVuc2VkJywgc2Fucy1zZXJpZjtcbn1cbi53LTM1cHh7XG4gIHdpZHRoOiAzNXB4O1xufVxuLnctNzBweHtcbiAgd2lkdGg6IDcwcHg7XG59XG4ubXQtbi0zcHh7XG4gIG1hcmdpbi10b3A6IC0zcHg7XG59XG4ubXQtbi0xMnB4e1xuICBtYXJnaW4tdG9wOiAtMTJweDtcbn1cbi50ZXh0LWNvbG9yLXNlY29uZGFyeXtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnkpO1xufVxuLmJvcmRlci1yYWRpdXMtMjBweHtcbiAgLS1ib3JkZXItcmFkaXVzOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG4uYmctY29sb3ItMTI4M2Yxe1xuICAtLWJhY2tncm91bmQ6ICMxMjgzZjEgIWltcG9ydGFudDtcbn1cbi50aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiAnU3RhYXRsaWNoZXMnO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSk7XG4gIGxldHRlci1zcGFjaW5nOiA1cHg7XG5cbiAgLmRpbmUge1xuICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItdGVydGlhcnkpO1xuICB9XG59XG5cbi5wYXNzd29yZC1oaW50e1xuICBmb250OiBub3JtYWwgbm9ybWFsIDUwMCAxMXB4LzE0cHggUG9wcGlucztcbn1cbi5wYXNzd29yZC1oaW50LmluZm97XG4gIGNvbG9yOiAjZjNmM2YzICFpbXBvcnRhbnQ7XG59XG4ucGFzc3dvcmQtaGludC52YWxpZHtcbiAgY29sb3I6ICMxY2VmNzYgIWltcG9ydGFudDtcbn1cbi5wYXNzd29yZC1oaW50LmludmFsaWR7XG4gIGNvbG9yOiAjZWIyODEyICFpbXBvcnRhbnQ7XG59XG4ucHdkLXZpc2liaWxpdHktYnV0dG9ue1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IC0xMHB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgMnB4KSAhaW1wb3J0YW50O1xufVxuLnNpZ251cC1wYWdlLWNhcmR7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM0REEwQjAsICNEMzlEMzgpIDAlIDAlIG5vLXJlcGVhdCBwYWRkaW5nLWJveDtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCAjY2NmZmNjO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2hhZG93OiAxMHB4IDRweCAxMHB4ICMwMDAwMDAyNDtcbn1cbi5zaWdudXAtcGFnZS1jYXJkIC5zaWdudXAtZm9ybS1zZWN0aW9uIC5mb3JtLXRpdGxle1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tcG9wcGlucy1mb250KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICNmZmQ5NDk7XG59XG4uc2lnbnVwLXBhZ2UtY2FyZCAuc2lnbnVwLWZvcm0tc2VjdGlvbiAuZm9ybS1zdWJ0aXRsZXtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tcm9ib3RvLWZvbnQpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjFweDtcbiAgY29sb3I6ICNmYmZiZmI7XG59XG4uc2lnbnVwLWZvcm0tc2VjdGlvbiAuZm9ybS1pbnB1dHN7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmYgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGJveC1zaGFkb3c6IDJweCAycHggNHB4ICMwMDAwMDAyODtcbn1cbi5mb3JtLWlucHV0cyAuZm9ybS1pbnB1dC1pY29ue1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjMzFiN2MyO1xuICBmb250LWZhbWlseTogdmFyKC0tcm9ib3RvLWZvbnQpO1xufVxuLnNpZ251cC1mb3JtLXNlY3Rpb24gLmNvdW50cnktY29kZS1pbnB1dHtcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8yMXB4IFBvcHBpbnM7XG4gIGNvbG9yOiAjYzRjNWM3O1xufVxuLnNpZ251cC1mb3JtLXNlY3Rpb24gLnRlcm1zLWNvbmRpdGlvbnMtbGlua3tcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJvYm90by1mb250KTtcbiAgY29sb3I6ICNmMmY1ZmMgIWltcG9ydGFudDtcbiAgXG4gIDpob3ZlcntcbiAgICBjb2xvcjogIzAwOGZmMiAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5jaGVja2JveC1pbnB1dHtcbiAgLS1ib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbiAgLS1iYWNrZ3JvdW5kOiAjZjZmNmY3ICFpbXBvcnRhbnQ7XG4gIC0tYmFja2dyb3VuZC1jaGVja2VkOiAjMDA4OWZmICFpbXBvcnRhbnQ7XG4gIC0tYm9yZGVyLWNvbG9yLWNoZWNrZWQ6ICMwMDhmZjIgIWltcG9ydGFudDtcbiAgLS1jaGVja21hcmstd2lkdGg6IDJweCAhaW1wb3J0YW50O1xufVxuLmZvcm0tc3ViLXRleHR7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXBvcHBpbnMtZm9udCk7XG4gIGNvbG9yOiAjMTFhZmVlO1xufVxuLmVycm9yLW1lc3NhZ2V7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJvYm90by1mb250KTtcbiAgd2hpdGUtc3BhY2U6IHdyYXAgIWltcG9ydGFudDtcbiAgdGV4dC1vdmVyZmxvdzogYXV0byAhaW1wb3J0YW50O1xuICBjb2xvcjogI2Y5YzM1YTtcbn1cbi52ZXJpZmljYXRpb24tbWVzc2FnZXtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tcm9ib3RvLWZvbnQpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogIzcxZDgxYztcbn1cbi5zdWNjZXNzLXZlcmlmeS1pY29ue1xuICB3aWR0aDogMmVtICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMmVtICFpbXBvcnRhbnQ7XG59XG4uc3VjY2Vzcy12ZXJpZnktbWVzc2FnZXtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LWZhbWlseTogdmFyKC0tcm9ib3RvLWZvbnQpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmVycm9yLW1lc3NhZ2V7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJvYm90by1mb250KTtcbiAgd2hpdGUtc3BhY2U6IHdyYXAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkYjBmMGY7XG4gIGJvcmRlci1yYWRpdXM6IDZweCAhaW1wb3J0YW50O1xufSJdfQ== */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RazorPayWebhookControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public handleOrderUpdate(body: string, observe?: 'body', reportProgress?: boolean): Observable;\n public handleOrderUpdate(body: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public handleOrderUpdate(body: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public handleOrderUpdate(body: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling handleOrderUpdate.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/webhooks/razorpay/orderupdate`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"@import url(\\\"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&family=Roboto+Condensed:wght@400;500;600;700&display=swap\\\");\\n:root {\\n --poppins-font: \\\"Poppins\\\", sans-serif;\\n --roboto-font: \\\"Roboto Condensed\\\", sans-serif;\\n}\\n:host {\\n display: block;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n}\\n.spotlight-container {\\n position: relative;\\n}\\n.spotlight-container .spotlight {\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n}\\n.toolbar-container ion-toolbar {\\n --background: transparent;\\n --min-height: auto;\\n}\\n.toolbar-container ion-toolbar .actions {\\n margin-right: -0.5rem;\\n}\\n.toolbar-container ion-toolbar .actions ion-button {\\n margin: 0 0.5rem;\\n}\\n.content-container {\\n height: 100%;\\n}\\n.content-container .menus {\\n border-right: 1px solid rgba(0, 0, 0, 0.07);\\n width: 250px;\\n min-width: 250px;\\n overflow-y: scroll;\\n scrollbar-color: #28a745 #f0f0f0;\\n scrollbar-width: thin;\\n}\\n.content-container .menus ion-item {\\n transition: font-weight 0.2s cubic-bezier(0.5, 1, 0.89, 1);\\n}\\n.content-container .items {\\n overflow: auto;\\n --ion-grid-padding: 0.5rem;\\n --ion-grid-column-padding: 1rem;\\n}\\n.card-wrapper {\\n padding: 1rem;\\n}\\nion-card {\\n padding: 1rem;\\n margin: 0;\\n border-radius: var(--card-border-radius, 0);\\n box-shadow: none;\\n border: 1px solid rgba(0, 0, 0, 0.13);\\n box-sizing: border-box;\\n transition: border-color 0.1s ease-in-out 0.25s;\\n}\\nion-card:focus-within, ion-card:hover {\\n border-color: var(--ion-color-secondary);\\n}\\nion-card:focus-within div.cart-mgmt, ion-card:hover div.cart-mgmt {\\n border-color: var(--ion-color-secondary);\\n}\\nion-card .thumbnail {\\n height: 100px;\\n max-height: 100px;\\n overflow: hidden;\\n background-image: url(\\\"https://ionicframework.com/docs/demos/api/thumbnail/thumbnail.svg\\\");\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: cover;\\n position: relative;\\n}\\nion-card .thumbnail app-food-type-indicator {\\n position: absolute;\\n right: 0.25rem;\\n top: 0.25rem;\\n}\\nion-card ion-card-header {\\n padding: 0;\\n}\\nion-card ion-card-header .title-container {\\n margin-bottom: -18px;\\n}\\nion-card ion-card-header ion-card-title {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n}\\nion-card .tags > * {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 0 2px;\\n}\\nion-card ion-card-content {\\n padding: 0;\\n padding-top: 0.25rem;\\n}\\nion-card ion-card-content > * {\\n padding: 0.25rem 0;\\n}\\nion-card ion-card-content .dashboard {\\n border: 1px solid red;\\n}\\nion-card ion-card-content .description {\\n text-align: justify;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n max-width: 220px;\\n}\\nion-card ion-card-content .description:hover {\\n height: auto;\\n width: 100%;\\n white-space: normal;\\n transition: all 0.3s ease;\\n}\\nion-card .bold-text {\\n font-weight: bold;\\n}\\nion-card .quantity-info {\\n display: flex;\\n justify-content: space-between;\\n}\\nion-card div.cart-mgmt {\\n margin: -1rem;\\n margin-top: 1rem;\\n border-top: 1px solid rgba(0, 0, 0, 0.13);\\n transition: border-color 0.1s ease-in-out 0.25s;\\n}\\nion-card div.cart-mgmt app-quantity-selector {\\n display: block;\\n}\\nh3 {\\n position: relative;\\n}\\nh3 ion-icon {\\n position: relative;\\n z-index: 1;\\n}\\nh3 .link-ref {\\n position: absolute;\\n top: -2.5rem;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n}\\nion-fab {\\n --ion-safe-area-right: 20px;\\n}\\n/* Webkit (Chrome, Safari, Edge) and Mozilla Firefox */\\n* {\\n scrollbar-color: #356859 #f0f0f0;\\n scrollbar-width: thin;\\n}\\n* ::-webkit-scrollbar {\\n width: 10px;\\n}\\n* ::-webkit-scrollbar-track {\\n background: #f0f0f0;\\n}\\n* ::-webkit-scrollbar-thumb {\\n background: #356859;\\n}\\n* ::-webkit-scrollbar-thumb:hover {\\n background: #4e9680;\\n}\\n.menus::-webkit-scrollbar {\\n width: 5px;\\n}\\n.menus::-webkit-scrollbar-track {\\n background: #f0f0f0;\\n}\\n.menus::-webkit-scrollbar-thumb {\\n background: #28a745;\\n border-radius: 6px;\\n}\\n.menus::-webkit-scrollbar-thumb:hover {\\n background: #218d3a;\\n}\\n.custom-fab-button {\\n width: 80px !important;\\n height: 42px !important;\\n --border-radius: 10px !important;\\n}\\n.custom-fab-button .custom-fab-icon {\\n font-size: 18px !important;\\n color: #f6f6fc !important;\\n}\\n.custom-fab-button .label-text {\\n font: normal normal 500 14px/18px Poppins;\\n color: #ffffff;\\n}\\n.text-color-secondary {\\n color: #098cff;\\n font-family: var(--poppins-font);\\n font-weight: 600 !important;\\n}\\n.text-color-secondary:hover {\\n color: #0975d3 !important;\\n text-decoration: underline !important;\\n}\\n.info-title {\\n font-size: 16px;\\n font-weight: 600 !important;\\n font-family: var(--poppins-font) !important;\\n letter-spacing: 1.2px;\\n color: #242323;\\n white-space: normal !important;\\n}\\n.custom-signin-btn,\\n.custom-signup-btn {\\n --border-width: 0px !important;\\n font-size: 16px;\\n color: var(--ion-color-success-shade);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NhdGFsb2cuY29tcG9uZW50LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90aGVtZS9taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDUSwwSUFBQTtBQUNSO0VBQ0UscUNBQUE7RUFDQSw2Q0FBQTtBQUFGO0FBS0E7RUFDRSxjQUFBO0VDRkEsa0JBUWtCO0VBUGxCLE1ERUE7RUNEQSxRRENBO0VDQUEsU0FBQTtFQUNBLE9EREE7QUFFRjtBQUNBO0VBQ0Usa0JBQUE7QUFFRjtBQUFFO0VBQ0Usa0JBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7QUFFSjtBQUVBO0VBQ0UseUJBQUE7RUFDQSxrQkFBQTtBQUNGO0FBQ0U7RUFDRSxxQkFBQTtBQUNKO0FBQ0k7RUFDRSxnQkFBQTtBQUNOO0FBSUE7RUFDRSxZQUFBO0FBREY7QUFHRTtFQUNFLDJDQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQ0FBQTtFQUNBLHFCQUFBO0FBREo7QUFHSTtFQUNFLDBEQUFBO0FBRE47QUFLRTtFQUNFLGNBQUE7RUFDQSwwQkFBQTtFQUNBLCtCQUFBO0FBSEo7QUFPQTtFQUNFLGFBQUE7QUFKRjtBQU9BO0VBQ0UsYUFBQTtFQUNBLFNBQUE7RUFDQSwyQ0FBQTtFQUNBLGdCQUFBO0VBQ0EscUNBQUE7RUFDQSxzQkFBQTtFQUNBLCtDQUFBO0FBSkY7QUFNRTtFQUVFLHdDQUFBO0FBTEo7QUFPSTtFQUNFLHdDQUFBO0FBTE47QUFTRTtFQUNFLGFBN0VlO0VBOEVmLGlCQTlFZTtFQStFZixnQkFBQTtFQUNBLDBGQUFBO0VBQ0EsNEJBQUE7RUFDQSxrQ0FBQTtFQUVBLHNCQUFBO0VBQ0Esa0JBQUE7QUFQSjtBQVNJO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtBQVBOO0FBV0U7RUFDRSxVQUFBO0FBVEo7QUFXSTtFQUNFLG9CQUFBO0FBVE47QUFZSTtFQzFHRix1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QURpR0Y7QUFhSTtFQUNFLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxjQUFBO0FBWE47QUFlRTtFQUNFLFVBQUE7RUFDQSxvQkFBQTtBQWJKO0FBZUk7RUFDRSxrQkFBQTtBQWJOO0FBZ0JJO0VBQ0UscUJBQUE7QUFkTjtBQWdCSTtFQUNFLG1CQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUFkTjtBQWdCSTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkFBQTtBQWROO0FBaUJFO0VBQ0UsaUJBQUE7QUFmSjtBQWlCRTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtBQWZKO0FBa0JFO0VBQ0UsYUFBQTtFQUNBLGdCQUFBO0VBQ0EseUNBQUE7RUFDQSwrQ0FBQTtBQWhCSjtBQWtCSTtFQUNFLGNBQUE7QUFoQk47QUFxQkE7RUFDRSxrQkFBQTtBQWxCRjtBQW9CRTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtBQWxCSjtBQXFCRTtFQ3RLQSxrQkFRa0I7RUFQbEIsWURzS0U7RUNyS0YsUURxS0U7RUNwS0YsU0RvS0U7RUNuS0YsT0RtS0U7QUFmSjtBQW1CQTtFQUNFLDJCQUFBO0FBaEJGO0FBbUJBLHNEQUFBO0FBQ0E7RUFDRSxnQ0FBQTtFQUNBLHFCQUFBO0FBaEJGO0FBa0JFO0VBQ0UsV0FBQTtBQWhCSjtBQWtCRTtFQUNFLG1CQUFBO0FBaEJKO0FBa0JFO0VBQ0UsbUJBQUE7QUFoQko7QUFrQkU7RUFDRSxtQkFBQTtBQWhCSjtBQW9CQTtFQUNFLFVBQUE7QUFqQkY7QUFtQkE7RUFDRSxtQkFBQTtBQWhCRjtBQWtCQTtFQUNFLG1CQUFBO0VBQ0Esa0JBQUE7QUFmRjtBQWlCQTtFQUNFLG1CQUFBO0FBZEY7QUFpQkE7RUFDRSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EsZ0NBQUE7QUFkRjtBQWdCRTtFQUNFLDBCQUFBO0VBQ0EseUJBQUE7QUFkSjtBQWdCRTtFQUNFLHlDQUFBO0VBQ0EsY0FBQTtBQWRKO0FBa0JBO0VBQ0UsY0FBQTtFQUNBLGdDQUFBO0VBQ0EsMkJBQUE7QUFmRjtBQWlCRTtFQUNFLHlCQUFBO0VBQ0EscUNBQUE7QUFmSjtBQWtCQTtFQUNFLGVBQUE7RUFDQSwyQkFBQTtFQUNBLDJDQUFBO0VBQ0EscUJBQUE7RUFDQSxjQUFBO0VBQ0EsOEJBQUE7QUFmRjtBQWlCQTs7RUFFRSw4QkFBQTtFQUNBLGVBQUE7RUFDQSxxQ0FBQTtBQWRGIiwiZmlsZSI6ImNhdGFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vLi4vLi4vdGhlbWUvbWl4aW5zLnNjc3NcIjtcbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Qb3BwaW5zOndnaHRANDAwOzUwMDs3MDAmZmFtaWx5PVJvYm90bytDb25kZW5zZWQ6d2dodEA0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwXCIpO1xuOnJvb3Qge1xuICAtLXBvcHBpbnMtZm9udDogXCJQb3BwaW5zXCIsIHNhbnMtc2VyaWY7XG4gIC0tcm9ib3RvLWZvbnQ6IFwiUm9ib3RvIENvbmRlbnNlZFwiLCBzYW5zLXNlcmlmO1xufVxuJGNhcmQtYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTMpO1xuJG1lbnUtaWNvbi1oZWlnaHQ6IDEwMHB4O1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBwb3NpdGlvbi1hYnNvbHV0ZSgwLCAwLCAwLCAwKTtcbn1cblxuLnNwb3RsaWdodC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLnNwb3RsaWdodCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5cbi50b29sYmFyLWNvbnRhaW5lciBpb24tdG9vbGJhciB7XG4gIC0tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC0tbWluLWhlaWdodDogYXV0bztcblxuICAuYWN0aW9ucyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC41cmVtO1xuXG4gICAgaW9uLWJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgLm1lbnVzIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDcpO1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBzY3JvbGxiYXItY29sb3I6ICMyOGE3NDUgI2YwZjBmMDtcbiAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG5cbiAgICBpb24taXRlbSB7XG4gICAgICB0cmFuc2l0aW9uOiBmb250LXdlaWdodCAwLjJzIGN1YmljLWJlemllcigwLjUsIDEsIDAuODksIDEpO1xuICAgIH1cbiAgfVxuXG4gIC5pdGVtcyB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgLS1pb24tZ3JpZC1wYWRkaW5nOiAwLjVyZW07XG4gICAgLS1pb24tZ3JpZC1jb2x1bW4tcGFkZGluZzogMXJlbTtcbiAgfVxufVxuXG4uY2FyZC13cmFwcGVyIHtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuaW9uLWNhcmQge1xuICBwYWRkaW5nOiAxcmVtO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNhcmQtYm9yZGVyLXJhZGl1cywgMCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjYXJkLWJvcmRlci1jb2xvcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMXMgZWFzZS1pbi1vdXQgMC4yNXM7XG5cbiAgJjpmb2N1cy13aXRoaW4sXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSk7XG5cbiAgICBkaXYuY2FydC1tZ210IHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgfVxuICB9XG5cbiAgLnRodW1ibmFpbCB7XG4gICAgaGVpZ2h0OiAkbWVudS1pY29uLWhlaWdodDtcbiAgICBtYXgtaGVpZ2h0OiAkbWVudS1pY29uLWhlaWdodDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImh0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tL2RvY3MvZGVtb3MvYXBpL3RodW1ibmFpbC90aHVtYm5haWwuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhcHAtZm9vZC10eXBlLWluZGljYXRvciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgIHRvcDogMC4yNXJlbTtcbiAgICB9XG4gIH1cblxuICBpb24tY2FyZC1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAudGl0bGUtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xOHB4O1xuICAgIH1cblxuICAgIGlvbi1jYXJkLXRpdGxlIHtcbiAgICAgIEBpbmNsdWRlIHRleHQtZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgLnRhZ3Mge1xuICAgID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgfVxuICB9XG5cbiAgaW9uLWNhcmQtY29udGVudCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcblxuICAgID4gKiB7XG4gICAgICBwYWRkaW5nOiAwLjI1cmVtIDA7XG4gICAgfVxuXG4gICAgLmRhc2hib2FyZCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gICAgfVxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgfVxuICAgIC5kZXNjcmlwdGlvbjpob3ZlciB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIH1cbiAgfVxuICAuYm9sZC10ZXh0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAucXVhbnRpdHktaW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICBkaXYuY2FydC1tZ210IHtcbiAgICBtYXJnaW46IC0xcmVtO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMyk7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMXMgZWFzZS1pbi1vdXQgMC4yNXM7XG5cbiAgICBhcHAtcXVhbnRpdHktc2VsZWN0b3Ige1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbmgzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGlvbi1pY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5saW5rLXJlZiB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24tYWJzb2x1dGUoLTIuNXJlbSwgMCwgMCwgMCk7XG4gIH1cbn1cblxuaW9uLWZhYiB7XG4gIC0taW9uLXNhZmUtYXJlYS1yaWdodDogMjBweDtcbn1cblxuLyogV2Via2l0IChDaHJvbWUsIFNhZmFyaSwgRWRnZSkgYW5kIE1vemlsbGEgRmlyZWZveCAqL1xuKiB7XG4gIHNjcm9sbGJhci1jb2xvcjogIzM1Njg1OSAjZjBmMGYwO1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG5cbiAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDEwcHg7XG4gIH1cbiAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAjMzU2ODU5O1xuICB9XG4gIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0ZTk2ODA7XG4gIH1cbn1cblxuLm1lbnVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA1cHg7XG59XG4ubWVudXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogI2YwZjBmMDtcbn1cbi5tZW51czo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjMjhhNzQ1O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4ubWVudXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzIxOGQzYTtcbn1cblxuLmN1c3RvbS1mYWItYnV0dG9uIHtcbiAgd2lkdGg6IDgwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA0MnB4ICFpbXBvcnRhbnQ7XG4gIC0tYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuXG4gIC5jdXN0b20tZmFiLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZjZmNmZjICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmxhYmVsLXRleHQge1xuICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgNTAwIDE0cHgvMThweCBQb3BwaW5zO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG59XG5cbi50ZXh0LWNvbG9yLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjMDk4Y2ZmO1xuICBmb250LWZhbWlseTogdmFyKC0tcG9wcGlucy1mb250KTtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjMDk3NWQzICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLmluZm8tdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXBvcHBpbnMtZm9udCkgIWltcG9ydGFudDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMnB4O1xuICBjb2xvcjogIzI0MjMyMztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuLmN1c3RvbS1zaWduaW4tYnRuLFxuLmN1c3RvbS1zaWdudXAtYnRuIHtcbiAgLS1ib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2Vzcy1zaGFkZSk7XG59XG4iLCJcbkBtaXhpbiB0ZXh0LWVsbGlwc2lzIHtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb24sICR0b3A6IG51bGwsICRyaWdodDogbnVsbCwgJGJvdHRvbTogbnVsbCwgJGxlZnQ6IG51bGwpIHtcbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcbiAgdG9wOiAkdG9wO1xuICByaWdodDogJHJpZ2h0O1xuICBib3R0b206ICRib3R0b207XG4gIGxlZnQ6ICRsZWZ0O1xufVxuXG5AbWl4aW4gcG9zaXRpb24tYWJzb2x1dGUoJGFyZ3MuLi4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsICRhcmdzLi4uKTtcbn0iXX0= */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ReportInfoModel {\n fromDate?: Date;\n toDate?: Date;\n reportType?: ReportInfoModel.ReportTypeEnum;\n reportName?: string;\n}\nexport namespace ReportInfoModel {\n export type ReportTypeEnum =\n | 'MADHUSHALA_LIQUOR_BILL_DETAILS'\n | 'MADHUSHALA_LIQUOR_BILL_TAX_DETAILS'\n | 'SALES_REPORT_BY_ORDERS'\n | 'SALES_REPORT_BY_ITEMS'\n | 'STOCKS_REPORT_BY_ITEMS'\n | 'ITEM_PROFITABILITY'\n | 'GST_REPORT'\n | 'SUMMARIZED_SALES_BY_ORDER'\n | 'SUMMARIZED_SALES_BY_ORDER_TYPE'\n | 'DAILY_EXPENSES'\n | 'DAILY_EXPENSES_SUMMARY';\n export const ReportTypeEnum = {\n MADHUSHALALIQUORBILLDETAILS:\n 'MADHUSHALA_LIQUOR_BILL_DETAILS' as ReportTypeEnum,\n MADHUSHALALIQUORBILLTAXDETAILS:\n 'MADHUSHALA_LIQUOR_BILL_TAX_DETAILS' as ReportTypeEnum,\n SALESREPORTBYORDERS: 'SALES_REPORT_BY_ORDERS' as ReportTypeEnum,\n SALESREPORTBYITEMS: 'SALES_REPORT_BY_ITEMS' as ReportTypeEnum,\n STOCKSREPORTBYITEMS: 'STOCKS_REPORT_BY_ITEMS' as ReportTypeEnum,\n ITEMPROFITABILITY: 'ITEM_PROFITABILITY' as ReportTypeEnum,\n GSTREPORT: 'GST_REPORT' as ReportTypeEnum,\n SUMMARIZEDSALESBYORDER: 'SUMMARIZED_SALES_BY_ORDER' as ReportTypeEnum,\n SUMMARIZEDSALESBYORDERTYPE:\n 'SUMMARIZED_SALES_BY_ORDER_TYPE' as ReportTypeEnum,\n DAILYEXPENSES: 'DAILY_EXPENSES' as ReportTypeEnum,\n DAILY_EXPENSESSUMMARY: 'DAILY_EXPENSES_SUMMARY' as ReportTypeEnum,\n };\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseMenuItemMapModel } from '../model/smartDineResponseMenuItemMapModel';\nimport { SmartDineResponseMenuModel } from '../model/smartDineResponseMenuModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class MenuUsersRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuId \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenuItemMaps(restaurantId: string, restaurantBranchId: string, menuId: string, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenuItemMaps(restaurantId: string, restaurantBranchId: string, menuId: string, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenuItemMaps(restaurantId: string, restaurantBranchId: string, menuId: string, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenuItemMaps(restaurantId: string, restaurantBranchId: string, menuId: string, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getMenuItemMaps.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getMenuItemMaps.');\n }\n\n if (menuId === null || menuId === undefined) {\n throw new Error('Required parameter menuId was null or undefined when calling getMenuItemMaps.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (menuId !== undefined && menuId !== null) {\n queryParameters = queryParameters.set('menuId', menuId);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/user/menuitemmaps`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param menuId \n * @param locale \n * @param pageNo \n * @param rows \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSubMenus(restaurantId: string, restaurantBranchId: string, menuId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'body', reportProgress?: boolean): Observable;\n public getSubMenus(restaurantId: string, restaurantBranchId: string, menuId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'response', reportProgress?: boolean): Observable>;\n public getSubMenus(restaurantId: string, restaurantBranchId: string, menuId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'events', reportProgress?: boolean): Observable>;\n public getSubMenus(restaurantId: string, restaurantBranchId: string, menuId: string, locale?: string, pageNo?: number, rows?: number, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getSubMenus.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getSubMenus.');\n }\n\n if (menuId === null || menuId === undefined) {\n throw new Error('Required parameter menuId was null or undefined when calling getSubMenus.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/user/menus/${encodeURIComponent(String(menuId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param locale \n * @param pageNo \n * @param rows \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTopLevelMenus(restaurantId: string, restaurantBranchId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'body', reportProgress?: boolean): Observable;\n public getTopLevelMenus(restaurantId: string, restaurantBranchId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'response', reportProgress?: boolean): Observable>;\n public getTopLevelMenus(restaurantId: string, restaurantBranchId: string, locale?: string, pageNo?: number, rows?: number, observe?: 'events', reportProgress?: boolean): Observable>;\n public getTopLevelMenus(restaurantId: string, restaurantBranchId: string, locale?: string, pageNo?: number, rows?: number, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getTopLevelMenus.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getTopLevelMenus.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/user/menus`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Auth, CognitoUser } from '@aws-amplify/auth';\nimport { LoaderService } from '../../../common/services/loader/loader.service';\nimport { AuthService } from '../../services/auth/auth.service';\nimport { CognitoUserSession } from 'amazon-cognito-identity-js';\n\ninterface UserInfo {\n otpType: string;\n countryCode: string;\n username: string;\n}\n\ninterface PasswordResetInfo {\n verificationCode: string;\n password: string;\n confirmPassword: string;\n}\n\ntype DeliveryMedium = 'EMAIL';\n\ninterface ICodeDeliveryDetails {\n AttributeName: string;\n DeliveryMedium: DeliveryMedium;\n Destination: string;\n}\n\ninterface IForgotPasswordResult {\n CodeDeliveryDetails: ICodeDeliveryDetails;\n}\n\n@Component({\n selector: 'app-password-recovery',\n templateUrl: './password-recovery.page.html',\n styleUrls: ['./password-recovery.page.scss'],\n})\nexport class PasswordRecoveryPage implements OnInit {\n\n private session: CognitoUserSession | null = null;\n private username = '';\n\n public forgotPasswordform: FormGroup;\n public passwordResetform: FormGroup;\n\n public stage = 1;\n\n public codeDeliveryDetails: ICodeDeliveryDetails | null = null;\n\n public errorMessage: string = '';\n private timer: NodeJS.Timeout;\n public hidePassword:boolean = true;\n public hideCnfPassword:boolean = true;\n public iconName: string = 'call-outline';\n public otpResponseMessage: string|null = null;\n public passwordCriteria:any[] = [];\n public isPasswordTouched:boolean | false = false;\n\n constructor(\n private loaderService: LoaderService,\n private router: Router,\n private authService: AuthService,\n private activatedRoute: ActivatedRoute,\n ) {\n activatedRoute.queryParams.subscribe((queryParams) => {\n this.username = queryParams?.username || '';\n if (this.username) {\n this.stage = 2;\n }\n });\n\n this.createForm();\n this.passwordCriteria = [\n { criterion: 'At least 8 characters long', icon: 'information-circle-outline', color: 'info' },\n { criterion: 'Include at least 1 uppercase letter (A-Z)', icon: 'information-circle-outline', color: 'info' },\n { criterion: 'Include at least 1 lowercase letter (a-z)', icon: 'information-circle-outline', color: 'info' },\n { criterion: 'Include at least 1 special character from (@, !, _, #, $)', icon: 'information-circle-outline', color: 'info' }\n ];\n }\n\n public ngOnInit() {\n this.setSession();\n this.forgotPasswordform.get('username').valueChanges.subscribe((value) => {\n this.adjustCountryCodeVisibility(value);\n this.getIconName();\n });\n }\n\n public createForm() {\n this.forgotPasswordform = new FormGroup({\n countryCode: new FormControl('+91', [Validators.required]),\n username: new FormControl('', [Validators.required])\n });\n\n this.passwordResetform = new FormGroup({\n verificationCode: new FormControl('', [Validators.required, Validators.pattern('[0-9]+'), Validators.minLength(6), Validators.maxLength(6)]),\n password: new FormControl('', [Validators.required]),\n confirmPassword: new FormControl('', [Validators.required]),\n })\n }\n\n private setSession() {\n this.session = null;\n this.authService.getSession().subscribe({\n next: (session: CognitoUserSession | null) => {\n if (session) {\n this.router.navigateByUrl('/', { replaceUrl: true });\n this.session = session;\n }\n }\n });\n }\n\n // for stage 1 verfication code sending form\n private isEmail(value: string): boolean {\n const emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailPattern.test(value);\n }\n\n private isMobile(value: string): boolean {\n const mobilePattern = /^[0-9]{10,15}$/;\n return mobilePattern.test(value);\n }\n\n public isCountryCodeHidden(): boolean {\n const username = this.forgotPasswordform.get('username')?.value;\n return /[a-zA-Z]/.test(username) || this.isEmail(username);\n }\n\n private getIconName() {\n const username = this.forgotPasswordform.get('username')?.value;\n this.iconName = this.isEmail(username) || /[a-zA-Z]/.test(username) ? 'mail-outline' : 'call-outline';\n }\n\n private adjustCountryCodeVisibility(value: string): void {\n if (/[a-zA-Z]/.test(value) || this.isEmail(value)) {\n this.forgotPasswordform.get('countryCode')?.clearValidators();\n } else {\n this.forgotPasswordform.get('countryCode')?.setValidators([Validators.required]);\n }\n this.forgotPasswordform.get('countryCode')?.updateValueAndValidity();\n }\n\n public onStep1FormSubmit() {\n this.forgotPasswordform.markAllAsTouched();\n if (!this.forgotPasswordform.valid) {\n this.setErrorMessage(\"Username can not be blank!\");\n return;\n }\n \n const {countryCode, username } = this.forgotPasswordform.value;\n \n if (this.isEmail(username)) {\n if(!username.includes('@') || !username.includes('.')){\n this.setErrorMessage('Please enter a valid email address!');\n return;\n }else{\n this.sendVerificationCode(username);\n }\n }\n if (this.isMobile(username)) {\n if((!/^\\d{10}$/.test(username))){\n this.setErrorMessage('Please enter a valid mobile number!');\n return;\n }else{\n this.sendVerificationCode(countryCode+\"\"+username);\n }\n }\n }\n\n public async sendVerificationCode(username: string) {\n this.loaderService.showLoader();\n try {\n this.username = username;\n const res: IForgotPasswordResult = await Auth.forgotPassword(username);\n this.codeDeliveryDetails = res.CodeDeliveryDetails;\n console.info('Response:', res);\n this.otpResponseMessage = \"An OTP has been sent to \"+res.CodeDeliveryDetails.Destination+ \" via \"+res.CodeDeliveryDetails.DeliveryMedium;\n this.router.navigate([], { queryParams: { username: this.username }, relativeTo: this.activatedRoute, queryParamsHandling: 'merge' });\n this.stage = 2;\n\n this.forgotPasswordform.reset();\n this.loaderService.hideLoader();\n } catch (err) {\n this.forgotPasswordform.reset();\n this.loaderService.hideLoader();\n this.setErrorMessage('Unable to process your request. Try again later!');\n }\n }\n\n //stage 2 password reset form\n private updatePasswordCriteria(password: string) {\n this.passwordCriteria.forEach((criterion) => {\n criterion.color = this.isPasswordTouched && this.validateCriterion(password, criterion.criterion) ? 'success' : 'info';\n criterion.icon = this.isPasswordTouched && this.validateCriterion(password, criterion.criterion) ? 'checkmark-circle-outline' : 'information-circle-outline';\n });\n }\n\n validateCriterion(password: string, criterion: string): boolean {\n if (!password) return false;\n switch (criterion) {\n case 'At least 8 characters long':\n return password.length >= 8;\n case 'Include at least 1 uppercase letter (A-Z)':\n return /[A-Z]/.test(password);\n case 'Include at least 1 lowercase letter (a-z)':\n return /[a-z]/.test(password);\n case 'Include at least 1 special character from (@, !, _, #, $)':\n return /[@!_#\\$]/.test(password);\n default:\n return false;\n }\n }\n\n public onPasswordFieldFocus() {\n this.isPasswordTouched = true;\n this.updatePasswordCriteria(this.passwordResetform.get('password').value);\n }\n\n public isPasswordValidForSubmit(): boolean {\n const password = this.passwordResetform.get('password').value;\n return this.passwordCriteria.every((criterion) => this.validateCriterion(password, criterion.criterion));\n }\n\n public onStep2FormSubmit() {\n this.passwordResetform.markAllAsTouched();\n const passwordValid = this.isPasswordValidForSubmit();\n if (this.passwordResetform.valid && passwordValid) {\n this.updatePassword(this.passwordResetform.value);\n } else {\n this.setErrorMessage('Password does not meet all the criteria.');\n }\n }\n\n public async updatePassword(details: PasswordResetInfo) {\n this.loaderService.showLoader();\n try {\n await Auth.forgotPasswordSubmit(this.username, details.verificationCode, details.password); // no response available except status 200\n this.router.navigate([], { queryParams: { username: null }, relativeTo: this.activatedRoute, queryParamsHandling: 'merge' });\n this.stage = 3;\n this.passwordResetform.reset();\n this.loaderService.hideLoader();\n } catch (err) {\n this.passwordResetform.reset();\n this.loaderService.hideLoader();\n\n let errorMessage = 'Unable to process your request. Try again later!';\n if (err.message) {\n errorMessage = err.message;\n }\n this.setErrorMessage(errorMessage);\n console.error(PasswordRecoveryPage.name, 'Unable to verify the email!', err);\n }\n }\n\n // common methods for both stages\n public setErrorMessage(message: string) {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.errorMessage = message;\n this.timer = setTimeout(() => {\n this.errorMessage = '';\n }, 5000);\n }\n\n public togglePasswordVisibility() {\n this.hidePassword = !this.hidePassword;\n }\n\n public toggleConfirmPassword() {\n this.hideCnfPassword = !this.hideCnfPassword;\n }\n\n}\n","var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t\"dUtr\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t\"Q8AI\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t\"hgI1\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t\"CfoV\",\n\t\t\"common\",\n\t\t33\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t\"Nt02\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t\"Q2Bp\",\n\t\t35\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t\"0Pbj\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t\"ydQj\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t\"4fMi\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t\"czK9\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"/CAe\",\n\t\t40\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t\"WgF3\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t\"uQcF\",\n\t\t\"common\",\n\t\t42\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"wHD8\",\n\t\t43\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t\"2lz6\",\n\t\t44\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t\"ercB\",\n\t\t\"common\",\n\t\t45\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t\"MGMP\",\n\t\t\"common\",\n\t\t46\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t\"9bur\",\n\t\t\"common\",\n\t\t47\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t\"cABk\",\n\t\t\"common\",\n\t\t48\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t\"kyFE\",\n\t\t\"common\",\n\t\t49\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t\"TvZU\",\n\t\t\"common\",\n\t\t50\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t\"vnES\",\n\t\t\"common\",\n\t\t51\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t\"qCuA\",\n\t\t\"common\",\n\t\t52\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t\"0tOe\",\n\t\t\"common\",\n\t\t53\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t\"h11V\",\n\t\t\"common\",\n\t\t54\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t\"XGij\",\n\t\t\"common\",\n\t\t55\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t\"nYbb\",\n\t\t\"common\",\n\t\t56\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t\"smMY\",\n\t\t\"common\",\n\t\t57\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"STjf\",\n\t\t58\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"k5eQ\",\n\t\t\"common\",\n\t\t59\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t\"OR5t\",\n\t\t\"common\",\n\t\t60\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t\"fSgp\",\n\t\t\"common\",\n\t\t61\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t\"lfGF\",\n\t\t\"common\",\n\t\t62\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t\"5xYT\",\n\t\t63\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"nI0H\",\n\t\t\"common\",\n\t\t64\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t\"NAQR\",\n\t\t65\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t\"knkW\",\n\t\t\"common\",\n\t\t66\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"TpdJ\",\n\t\t\"common\",\n\t\t67\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"ISmu\",\n\t\t\"common\",\n\t\t68\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t\"U7LX\",\n\t\t\"common\",\n\t\t69\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t\"L3sA\",\n\t\t\"common\",\n\t\t70\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t\"IUOf\",\n\t\t\"common\",\n\t\t71\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"8Mb5\",\n\t\t72\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"kLfG\";\nmodule.exports = webpackAsyncContext;","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface SmartDineResponseHeader { \n currentPageNo?: number;\n maxRows?: number;\n totalRows?: number;\n totalPages?: number;\n statusCode?: number;\n message?: string;\n}","export default \":host {\\n display: block;\\n}\\n\\nul {\\n list-style: none;\\n padding: 0;\\n margin: 0;\\n display: flex;\\n}\\n\\nul li:last-child ion-button ion-icon[slot=end] {\\n display: none;\\n}\\n\\nul li ion-button {\\n margin: 0;\\n --padding-start: .5rem;\\n --padding-end: .5rem;\\n --border-radius: 0;\\n}\\n\\nul li ion-button ion-icon.home {\\n font-size: 18px;\\n vertical-align: text-bottom;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21lbnUtbmF2LWJhci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQUE7QUFDRjs7QUFHQTtFQUNFLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7RUFDQSxhQUFBO0FBQUY7O0FBTUk7RUFDRSxhQUFBO0FBSk47O0FBT0k7RUFDRSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0FBTE47O0FBT007RUFDRSxlQUFBO0VBQ0EsMkJBQUE7QUFMUiIsImZpbGUiOiJtZW51LW5hdi1iYXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvLyBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gIGxpIHtcbiAgICAvLyBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gICAgLy8gcGFkZGluZzogLjVyZW07XG5cbiAgICAmOmxhc3QtY2hpbGQgaW9uLWJ1dHRvbiBpb24taWNvbltzbG90PWVuZF0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBpb24tYnV0dG9uIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIC0tcGFkZGluZy1zdGFydDogLjVyZW07XG4gICAgICAtLXBhZGRpbmctZW5kOiAuNXJlbTtcbiAgICAgIC0tYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgaW9uLWljb24uaG9tZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iXX0= */\";","export default \"capacitor-google-maps {\\n display: inline-block;\\n width: 275px;\\n height: 400px;\\n}\\n\\n.error-message {\\n font: normal normal normal 10px/14px Poppins;\\n color: #f34b24;\\n}\\n\\n.cover-image {\\n width: 100%;\\n background-color: #ffffff;\\n min-height: 180px;\\n padding: 20px;\\n}\\n\\n.user-profile {\\n width: 120px;\\n height: 120px;\\n border: 2px solid #ffffff;\\n border-radius: 50%;\\n}\\n\\n::-webkit-scrollbar {\\n width: 6px !important;\\n}\\n\\n::-webkit-scrollbar-track {\\n background-color: #fcf3f3 !important;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background-color: #3b8b56 !important;\\n border-radius: 10px !important;\\n}\\n\\n.user-address-form {\\n scrollbar-width: thin !important;\\n scrollbar-color: #3b8b56 #f3f3f3 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3VzZXItaW5mby5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7QUFDRjs7QUFDQTtFQUNFLDRDQUFBO0VBQ0EsY0FBQTtBQUVGOztBQUFBO0VBQ0UsV0FBQTtFQUNBLHlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxhQUFBO0FBR0Y7O0FBREE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7QUFJRjs7QUFGQTtFQUNFLHFCQUFBO0FBS0Y7O0FBSEE7RUFDRSxvQ0FBQTtBQU1GOztBQUpBO0VBQ0Usb0NBQUE7RUFDQSw4QkFBQTtBQU9GOztBQUxBO0VBQ0UsZ0NBQUE7RUFDQSwyQ0FBQTtBQVFGIiwiZmlsZSI6InVzZXItaW5mby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImNhcGFjaXRvci1nb29nbGUtbWFwcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDI3NXB4O1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuLmVycm9yLW1lc3NhZ2Uge1xuICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxMHB4LzE0cHggUG9wcGlucztcbiAgY29sb3I6ICNmMzRiMjQ7XG59XG4uY292ZXItaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgbWluLWhlaWdodDogMTgwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG4udXNlci1wcm9maWxlIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDEyMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDZweCAhaW1wb3J0YW50O1xufVxuOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2YzZjMgIWltcG9ydGFudDtcbn1cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2I4YjU2ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbn1cbi51c2VyLWFkZHJlc3MtZm9ybXtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluICFpbXBvcnRhbnQ7XG4gIHNjcm9sbGJhci1jb2xvcjogIzNiOGI1NiAjZjNmM2YzICFpbXBvcnRhbnQ7XG59Il19 */\";","export default \":host {\\n display: block;\\n}\\n\\n.active {\\n --color: var(--ion-color-primary);\\n font-weight: bold;\\n}\\n\\nion-toolbar {\\n --background: transparent !important;\\n --color: var(--ion-color-primary) !important;\\n}\\n\\nion-badge {\\n margin-left: 1rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2NhdGFsb2ctc2lkZS1tZW51cy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQUE7QUFDRjs7QUFFQTtFQUNFLGlDQUFBO0VBQ0EsaUJBQUE7QUFDRjs7QUFFQTtFQUNFLG9DQUFBO0VBQ0EsNENBQUE7QUFDRjs7QUFFQTtFQUNFLGlCQUFBO0FBQ0YiLCJmaWxlIjoiY2F0YWxvZy1zaWRlLW1lbnVzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmFjdGl2ZSB7XG4gIC0tY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmlvbi10b29sYmFyIHtcbiAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAtLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcbn1cblxuaW9uLWJhZGdlIHtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG59XG4iXX0= */\";","export default \"\\n \\n
    \\n
  • \\n

    \\n New Order {{ notification.orderNumber }} has been placed and status is {{notification.status}}.\\n

    \\n

    \\n Order {{ notification.orderNumber }} status has been updated to {{ notification.status }}.\\n

    \\n
  • \\n
\\n
\\n \\n
\\n No Notification Present\\n
\\n
\\n
\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ1c2VyLXNldHRpbmdzLnBhZ2Uuc2NzcyJ9 */\";","export default \"\\n \\n Footer\\n \\n\\n\";","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { Auth, CognitoUser } from '@aws-amplify/auth';\nimport { LoaderService } from '../../../common/services/loader/loader.service';\nimport { AuthService } from '../../services/auth/auth.service';\nimport { CognitoUserSession } from 'amazon-cognito-identity-js';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.page.html',\n styleUrls: ['./login.page.scss'],\n})\nexport class LoginPage implements OnInit {\n private session: CognitoUserSession | null = null;\n\n public form: FormGroup;\n\n public pwdChangeForm: FormGroup;\n\n public codeVerificationForm: FormGroup;\n\n private currentUser: CognitoUser;\n public errorMessage: string = '';\n private timer: NodeJS.Timeout;\n\n public showLoginForm: boolean = true;\n\n public showPasswordChangeForm: boolean = false;\n\n public showCodeConfirmationForm: boolean = false;\n\n public hidePassword: boolean = true;\n public iconName: string = 'call-outline';\n\n constructor(\n private loaderService: LoaderService,\n private router: Router,\n private authService: AuthService\n ) {\n this.createForm();\n }\n\n public createForm() {\n this.form = new FormGroup({\n countryCode: new FormControl('+91', [Validators.required]),\n username: new FormControl('', [Validators.required]),\n password: new FormControl('', [Validators.required]),\n });\n }\n\n public changePwdAction() {\n this.pwdChangeForm.markAllAsTouched();\n if (this.pwdChangeForm.valid) {\n if (\n this.pwdChangeForm.get('newPassword').value ==\n this.pwdChangeForm.get('reenterNewPassword').value\n ) {\n this.currentUser.completeNewPasswordChallenge(\n this.pwdChangeForm.get('newPassword').value,\n { name: this.currentUser.getUsername() },\n {\n onSuccess: async (result) => {\n this.setErrorMessage('Password needs to be changed');\n this.pwdChangeForm.reset();\n this.loaderService.hideLoader();\n\n await this.authService.refresh();\n this.router.navigateByUrl('/', { replaceUrl: true });\n },\n onFailure: (err) => {\n this.setErrorMessage('Error occured' + err);\n },\n }\n );\n }\n {\n this.setErrorMessage('Passwords are not same');\n }\n } else {\n this.setErrorMessage('Please check entered data');\n }\n }\n\n public loginAction(): void {\n this.form.markAllAsTouched();\n if (!this.form.valid) {\n this.setErrorMessage('Username/Password cannot be blank!');\n return;\n }\n\n const { countryCode, username, password } = this.form.value;\n\n if (this.isEmail(username)) {\n if (!username.includes('@') || !username.includes('.')) {\n this.setErrorMessage('Please enter a valid email address!');\n return;\n }\n this.signIn(username, password);\n } else if (this.isMobile(username)) {\n if (!/^\\d{10}$/.test(username)) {\n this.setErrorMessage('Please enter a valid mobile number!');\n return;\n }\n this.signIn(countryCode + username, password);\n } else {\n this.setErrorMessage('Please enter a valid username');\n }\n }\n\n public ngOnInit() {\n this.setSession();\n this.form.get('username').valueChanges.subscribe((value) => {\n this.adjustCountryCodeVisibility(value);\n this.getIconName();\n });\n }\n\n private setSession() {\n this.session = null;\n this.authService.getSession().subscribe({\n next: (session: CognitoUserSession | null) => {\n if (session) {\n this.router.navigateByUrl('/', { replaceUrl: true });\n this.session = session;\n }\n },\n });\n }\n\n private isEmail(value: string): boolean {\n const emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailPattern.test(value);\n }\n\n private isMobile(value: string): boolean {\n const mobilePattern = /^[0-9]{10,15}$/;\n return mobilePattern.test(value);\n }\n\n public isCountryCodeHidden(): boolean {\n const username = this.form.get('username')?.value;\n return /[a-zA-Z]/.test(username) || this.isEmail(username);\n }\n\n private getIconName() {\n const username = this.form.get('username')?.value;\n this.iconName =\n this.isEmail(username) || /[a-zA-Z]/.test(username)\n ? 'mail-outline'\n : 'call-outline';\n }\n\n private adjustCountryCodeVisibility(value: string): void {\n if (/[a-zA-Z]/.test(value) || this.isEmail(value)) {\n this.form.get('countryCode')?.clearValidators();\n } else {\n this.form.get('countryCode')?.setValidators([Validators.required]);\n }\n this.form.get('countryCode')?.updateValueAndValidity();\n }\n\n public async signIn(uname: string, pwd: string) {\n this.loaderService.showLoader();\n this.setErrorMessage('');\n try {\n this.currentUser = await Auth.signIn(uname, pwd);\n console.info('User:', this.currentUser);\n\n this.form.reset();\n this.loaderService.hideLoader();\n\n if (this.currentUser['challengeName'] === 'NEW_PASSWORD_REQUIRED') {\n this.setErrorMessage('Password needs to be changed');\n this.showLoginForm = false;\n this.showPasswordChangeForm = true;\n this.createPwdChangeForm();\n } else {\n await this.authService.refresh();\n this.router.navigateByUrl('/', { replaceUrl: true });\n }\n } catch (err) {\n this.form.get('password').setValue('');\n this.loaderService.hideLoader();\n let errorMessage = 'Unable to process your request. Try again later!';\n if (err?.code === 'UserNotFoundException') {\n errorMessage = 'Invalid Credentials!';\n } else if (err?.code === 'UserNotConfirmedException') {\n errorMessage = err.message;\n this.handleCodeVerificationFlow(uname);\n } else if (err?.message) {\n errorMessage = err.message;\n }\n this.setErrorMessage(errorMessage);\n }\n }\n public createPwdChangeForm() {\n this.pwdChangeForm = new FormGroup({\n newPassword: new FormControl('', [Validators.required]),\n reenterNewPassword: new FormControl('', [Validators.required]),\n });\n }\n\n public createCodeVerificationForm(uname: string) {\n this.codeVerificationForm = new FormGroup({\n uname: new FormControl(uname, [Validators.required]),\n verificationCode: new FormControl('', [Validators.required]),\n });\n }\n\n public handleCodeVerificationFlow(uname: string) {\n Auth.resendSignUp(uname).then((response) => {\n this.setErrorMessage(\n 'Code is sent to ' +\n response.CodeDeliveryDetails.Destination +\n ' via ' +\n response.CodeDeliveryDetails.DeliveryMedium\n );\n this.showCodeConfirmationForm = true;\n this.showLoginForm = false;\n this.createCodeVerificationForm(uname);\n });\n }\n\n public codeVerificationAction() {\n this.codeVerificationForm.markAllAsTouched();\n if (this.codeVerificationForm.valid) {\n Auth.confirmSignUp(\n this.codeVerificationForm.get('uname').value,\n this.codeVerificationForm.get('verificationCode').value\n )\n .then((result) => {\n this.router.navigateByUrl('/', { replaceUrl: true });\n })\n .catch((error) => {\n this.setErrorMessage('error' + error);\n });\n } else {\n this.setErrorMessage('Please enter verification code');\n }\n }\n\n public setErrorMessage(message: string) {\n this.errorMessage = message;\n }\n\n public togglePasswordVisibility() {\n this.hidePassword = !this.hidePassword;\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { AlertController, ModalController, ToastController } from '@ionic/angular';\nimport { MenuItemEntity, MenuItemRestControllerService, MenuRestControllerService, SmartDineResponseMenuItemEntity } from 'src/app/swagger';\nimport { MenuItemMapEntity } from 'src/app/swagger';\nimport { ItemUpsertionComponent } from '../item-upsertion/item-upsertion.component';\n\n\n@Component({\n selector: 'app-sd-menu-items',\n templateUrl: './menu-items.component.html',\n styleUrls: ['./menu-items.component.scss'],\n})\nexport class MenuItemsComponent implements OnInit, OnChanges {\n\n @Input()\n public menuId: string | null = null;\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n public items: MenuItemEntity[] = [];\n\n @Input()\n set menuItemMappings(mappings: MenuItemMapEntity[]) {\n if (!mappings) { return; }\n this.items = mappings.map(mapping => mapping.menuItemEntity);\n }\n\n @Input() enableToolbar = true;\n\n @Output() refresh = new EventEmitter();\n\n private selectedIndex = -1;\n\n public filteredItems = null;\n\n constructor(\n private router: Router,\n private menuRestControllerService: MenuRestControllerService,\n private menuItemRestControllerService: MenuItemRestControllerService,\n private modalController: ModalController,\n private toastController: ToastController,\n private alertController: AlertController,\n ) { }\n\n public ngOnInit() {\n this.init();\n }\n\n public ngOnChanges(_changes: SimpleChanges): void {\n this.init();\n }\n\n public onMenuItemClick(menuItem: MenuItemEntity) {\n const extras: NavigationExtras = { queryParams: {} };\n if (this.menuId) {\n extras.queryParams.menuId = this.menuId;\n }\n if (this.restaurantId) {\n this.router.navigate(['/admin/restaurants', this.restaurantId, 'items', menuItem.itemId], extras);\n } else {\n this.router.navigate(['/admin/items', menuItem.itemId], extras);\n }\n }\n\n public onNewClick() {\n this.showMenuCreationPopup();\n // const extras: NavigationExtras = { queryParams: {} };\n // if (this.menuId) {\n // extras.queryParams['menuId'] = this.menuId;\n // }\n // if (this.restaurantId) {\n // this.router.navigate(['/admin/restaurants', this.restaurantId, 'items', 'new'], extras);\n // } else {\n // this.router.navigate(['/admin/items/new'], extras);\n // }\n }\n\n public onEditClick(event: MouseEvent, item: MenuItemEntity) {\n event.stopPropagation();\n this.showMenuCreationPopup(item);\n }\n\n public onDeleteClick(event: MouseEvent, item: MenuItemEntity, index: number) {\n this.selectedIndex = index;\n event.stopPropagation();\n this.onDelete();\n }\n\n private setMenuEntity(menuId: string) {\n this.menuRestControllerService.getMenu(menuId).subscribe({\n next: (res) => {\n this.items.push(res.item);\n },\n error: (err) => {\n console.error('Unable to get menu details!', err);\n }\n });\n }\n\n public async showMenuCreationPopup(item: MenuItemEntity = null) {\n let itemId = null;\n if (item) {\n itemId = item.itemId;\n }\n const modal = await this.modalController.create({\n id: ItemUpsertionComponent.id,\n component: ItemUpsertionComponent,\n componentProps: {\n itemId,\n menuId: this.menuId,\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n }\n });\n modal.onDidDismiss().then((res) => {\n if (!res || !res.data) { return; }\n if (res.data.createdItem) {\n this.items.push(res.data.createdItem);\n }\n if (res.data.updatedItem) {\n const updatedItem = res.data.updatedItem as MenuItemEntity;\n const index = this.items.findIndex((i) => i.itemId === updatedItem.itemId);\n this.items[index] = updatedItem;\n }\n });\n await modal.present();\n }\n\n public async onDelete() {\n const alert = await this.alertController.create({\n header: 'Alert',\n message: `Please confirm the deletion of below mentioned menu item.
${this.items[this.selectedIndex].name}`,\n buttons: [\n 'Cancel',\n {\n text: 'Delete',\n handler: () => {\n this.deleteItem();\n }\n }\n ]\n });\n await alert.present();\n }\n\n private init() {\n this.setItems();\n }\n\n private setItems() {\n this.items = [];\n this.menuItemRestControllerService.getMenuItems(this.restaurantId, this.restaurantBranchId).subscribe({\n next: (res: SmartDineResponseMenuItemEntity) => {\n this.items = res.items;\n this.filteredItems = this.items;\n },\n error: (err) => {\n console.error('Unable to get menu items!', err);\n }\n });\n }\n\n private deleteItem() {\n const item = this.items[this.selectedIndex];\n this.menuItemRestControllerService.deleteMenuItem(item.itemId, this.restaurantId, this.restaurantBranchId).subscribe(\n (_: SmartDineResponseMenuItemEntity) => {\n this.items.splice(this.selectedIndex, 1);\n this.showToast('Item deleted successfully.');\n },\n (err) => {\n console.error('Unable to delete menu item!', err);\n }\n );\n }\n\n private async showToast(message: string) {\n const toast = await this.toastController.create({\n message,\n duration: 2000\n });\n toast.present();\n }\n\n public filterItems(searchValue: string) {\n if(searchValue === \"\" || !searchValue.trim()){\n this.setItems();\n }\n this.items = this.filteredItems.filter(item =>{\n const lowerSearchValue = searchValue.toLowerCase();\n return (\n item.name.toLowerCase().includes(lowerSearchValue) ||\n item.tags.some(tag => tag.toLowerCase().includes(lowerSearchValue))\n );\n });\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { PaymentGatewayPaymentRefEntity } from './paymentGatewayPaymentRefEntity';\nimport { PaymentOptionModel } from './paymentOptionModel';\n\nexport interface PaymentTransactionValidationModel { \n paymentTransactionId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n userId?: string;\n parentOrderId?: string;\n orderIds?: Array;\n paymentOptionModel?: PaymentOptionModel;\n paymentGatewayResponse?: string;\n paymentStatus?: PaymentTransactionValidationModel.PaymentStatusEnum;\n paymentGatewayOrderStatus?: string;\n paymentGatewayPaymentStatus?: string;\n paymentGatewayOrderId?: string;\n paymentGatewayPaymentId?: string;\n paymentGatewayPaymentAmount?: string;\n paymentGatewayPaymentCurrency?: string;\n paymentGatewayPaymentRefEntities?: Array;\n}\nexport namespace PaymentTransactionValidationModel {\n export type PaymentStatusEnum = 'INITIATED' | 'CREATED' | 'AUTHORIZED' | 'CAPTURED' | 'REFUNDED' | 'FAILED' | 'PAY_BY_CASH' | 'PAY_LATER';\n export const PaymentStatusEnum = {\n INITIATED: 'INITIATED' as PaymentStatusEnum,\n CREATED: 'CREATED' as PaymentStatusEnum,\n AUTHORIZED: 'AUTHORIZED' as PaymentStatusEnum,\n CAPTURED: 'CAPTURED' as PaymentStatusEnum,\n REFUNDED: 'REFUNDED' as PaymentStatusEnum,\n FAILED: 'FAILED' as PaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as PaymentStatusEnum,\n PAYLATER: 'PAY_LATER' as PaymentStatusEnum\n };\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RestaurantBranchEntity } from '../model/restaurantBranchEntity';\nimport { SmartDineResponseRestaurantBranchEntity } from '../model/smartDineResponseRestaurantBranchEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class RestaurantBranchRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createRestaurantBranch(body: RestaurantBranchEntity, restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createRestaurantBranch(body: RestaurantBranchEntity, restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createRestaurantBranch(body: RestaurantBranchEntity, restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createRestaurantBranch(body: RestaurantBranchEntity, restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createRestaurantBranch.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createRestaurantBranch.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRestaurantBranch(restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteRestaurantBranch(restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteRestaurantBranch(restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteRestaurantBranch(restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteRestaurantBranch.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling deleteRestaurantBranch.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantBranch(restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantBranch(restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantBranch(restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantBranch(restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurantBranch.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getRestaurantBranch.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRestaurantBranches1(restaurantId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getRestaurantBranches1(restaurantId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getRestaurantBranches1(restaurantId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getRestaurantBranches1(restaurantId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getRestaurantBranches1.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateRestaurantBranch(body: RestaurantBranchEntity, restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateRestaurantBranch(body: RestaurantBranchEntity, restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateRestaurantBranch(body: RestaurantBranchEntity, restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateRestaurantBranch(body: RestaurantBranchEntity, restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateRestaurantBranch.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateRestaurantBranch.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updateRestaurantBranch.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/restaurants/${encodeURIComponent(String(restaurantId))}/branches/${encodeURIComponent(String(restaurantBranchId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"\\n \\n \\n \\n \\n \\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\\"login\\\"\\n
\\n
\\n
\\n
\\n \\n\\n
\\n

Please enter your Mobile or Email to continue.

\\n \\n \\n \\n \\n \\n \\n \\n \\n +91\\n +1\\n \\n \\n \\n\\n \\n
\\n \\n Next\\n \\n
OR
\\n \\n Log in\\n \\n
\\n
\\n\\n
\\n

Please enter verification code.

\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n {{ criterion.criterion }}\\n \\n
\\n\\n
\\n
\\n \\n Verify & Update\\n \\n
OR
\\n \\n Log in\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n

Password updated successfully!
Please log in to continue.

\\n
\\n \\n Log in\\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";","export default \":host {\\n display: block;\\n}\\n\\nion-content {\\n --offset-bottom: -57px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2l0ZW0tc2VsZWN0aW9uLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBQTtBQUNGOztBQUVBO0VBQ0UsaUNBQUE7QUFDRiIsImZpbGUiOiJpdGVtLXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmlvbi1jb250ZW50IHtcbiAgLS1vZmZzZXQtYm90dG9tOiAtNTdweCAhaW1wb3J0YW50O1xufSJdfQ== */\";","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { ModalController, ToastController } from '@ionic/angular';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AddressModel, ProfileModel, ProfileRestControllerForUsersService, SmartDineResponseProfileModel } from 'src/app/swagger';\nimport { Role } from 'src/app/common/enums/role.enum';\nimport { UserProfileService } from 'src/app/common/services/user-profile/user-profile.service';\nimport { v4 as uuidv4 } from 'uuid';\nimport { GeoLocation } from 'src/app/swagger/model/geoLocation';\nimport { AddressComponent } from 'src/app/common/components/maps/address/address.component';\n\ninterface RoleItem {\n id: string;\n name: string;\n}\n\n@Component({\n selector: 'app-user-info',\n templateUrl: './user-info.component.html',\n styleUrls: ['./user-info.component.scss'],\n})\n\nexport class UserInfoComponent implements OnInit {\n public static readonly id = \"user-info-modal\";\n\n @ViewChild('map')\n mapRef: ElementRef;\n \n public addressId: string | null = null;\n\n @Input() \n public formType: string | null = null;\n\n @Input() \n public isViewAddress: boolean | false = false;\n\n @Input() \n public modalTitle: string | null = null;\n\n @Input()\n public userProfile: ProfileModel | null = null;\n\n @Input()\n public editAddress: AddressModel | null = null;\n\n public userForm: FormGroup | null = null;\n public userAddressForm: FormGroup | null = null;\n public roles: RoleItem[] = [];\n public isAdmin = false;\n public userAddress: AddressModel[];\n\n constructor(\n private modalController: ModalController,\n private profileRestControllerForUsersService: ProfileRestControllerForUsersService,\n private userProfileService: UserProfileService,\n private toastController: ToastController,\n ) {\n this.createForm();\n this.createAddressForm();\n }\n\n private generateAddressId(): string {\n return uuidv4();\n }\n\n private init(){\n this.addressId = this.editAddress ? this.editAddress.addressId : this.generateAddressId();\n this.isAdmin = this.userProfile.roles.includes(Role.ADMINS);\n this.userForm.patchValue(this.userProfile);\n this.userAddressForm.patchValue(this.editAddress);\n }\n\n ngOnInit() {\n this.init();\n this.setRoles();\n }\n\n private createForm() {\n this.userForm = new FormGroup({\n firstName: new FormControl('', [Validators.required]),\n lastName: new FormControl('', [Validators.required]),\n roles: new FormControl([], [Validators.required]),\n phoneNumber: new FormControl('', [Validators.required]),\n });\n }\n\n public createAddressForm() {\n this.userAddressForm = new FormGroup({\n addressId: new FormControl(this.addressId),\n addressName: new FormControl('', []),\n houseNumber: new FormControl('', []),\n buildingName: new FormControl('', []),\n address: new FormControl('', [Validators.required]),\n city: new FormControl('', [Validators.required]),\n userId: new FormControl(this.userProfile?.userId, []),\n district: new FormControl('', []),\n landmark: new FormControl('', []),\n state: new FormControl('', [Validators.required]),\n country: new FormControl('', [Validators.required]),\n countryCode: new FormControl('IN', []),\n pinCode: new FormControl('', [Validators.required]),\n location: new FormControl({latitude: 0, longitude: 0} as GeoLocation, []),\n addressType: new FormControl(AddressModel.AddressTypeEnum.HOME, []),\n addressTypeClassification: new FormControl(AddressModel.AddressTypeClassificationEnum.SHIPPING, [])\n });\n }\n \n public dismissPopup() {\n this.modalController.dismiss();\n }\n\n public saveDetails() {\n if(this.userForm && this.formType === \"PROFILE\"){\n this.userForm.markAllAsTouched();\n if(this.userForm.get('firstName')?.value?.trim() === '' || \n this.userForm.get('lastName')?.value?.trim() === '' || \n this.userForm.get('phoneNumber').value?.trim() === '' ) {\n this.showToast('Please fill all required details');\n return;\n }\n\n else if (this.userForm.valid) {\n this.saveUserProfile();\n }\n }else{\n this.userAddressForm.markAllAsTouched();\n if(this.userAddressForm.valid)\n this.saveUserAddress();\n }\n }\n\n private setRoles() {\n const roles = Object.keys(Role);\n this.roles = roles.map(role => ({\n id: Role[role],\n name: role,\n }));\n }\n\n private saveUserProfile() {\n let userProfile = this.userProfile;\n const formValue = this.userForm.value;\n Object.assign(userProfile, formValue);\n userProfile['addressModels'] = this.userProfile.addressModels;\n this.profileRestControllerForUsersService.updateLoggedInUserProfile(userProfile).subscribe({\n next: (res: SmartDineResponseProfileModel) => {\n\n this.userProfileService.setUserProfile(res.item);\n this.userForm.patchValue(res.item);\n this.showToast('Profile Edited successfully!');\n this.modalController.dismiss();\n },\n error: (err) => {\n console.error('Unable to save the user profile', err);\n }\n });\n }\n\n private saveUserAddress() {\n const addressTypeValue = this.userAddressForm.get('addressType').value.toUpperCase();\n this.userAddressForm.get('addressType').setValue(addressTypeValue);\n const userProfile = { ...this.userProfile };\n const formValue = this.userAddressForm.value;\n const newAddress = { ...formValue };\n const addressIndex = userProfile.addressModels.findIndex(\n address => address.addressId === newAddress.addressId\n );\n if (addressIndex !== -1) {\n userProfile.addressModels[addressIndex] = newAddress;\n } else {\n userProfile.addressModels.push(newAddress);\n }\n userProfile['firstName'] = this.userProfile?.firstName;\n userProfile['lastName'] = this.userProfile?.lastName;\n userProfile['phoneNumber'] = this.userProfile?.phoneNumber;\n userProfile['roles'] = this.userProfile?.roles;\n this.profileRestControllerForUsersService.updateLoggedInUserProfile(userProfile).subscribe({\n next: (res: SmartDineResponseProfileModel) => {\n\n this.userProfileService.setUserProfile(res.item);\n this.userAddressForm.patchValue(res.item);\n this.showToast('Address Saved successfully!');\n this.modalController.dismiss(res.item , '', UserInfoComponent.id);\n },\n error: (err) => {\n console.error('Unable to save the user profile', err);\n }\n });\n }\n\n private async showToast(message: string) {\n const toast = await this.toastController.create({\n message,\n duration: 2000\n });\n toast.present();\n }\n\n showMap(locationFormControl: FormControl) {\n this.showMapPopup(locationFormControl);\n }\n\n public async showMapPopup(locationFormControl: FormControl) {\n const geolocation: GeoLocation = locationFormControl.value;\n const model = await this.modalController.create({\n component: AddressComponent,\n id: AddressComponent.id,\n componentProps: {\n location: geolocation\n }\n });\n model.onDidDismiss().then((selLocation) => {\n locationFormControl.setValue({latitude: selLocation.data.location.lat, longitude: selLocation.data.location.lng});\n });\n await model.present();\n }\n}\n","export default \"
\\n \\n
\\n \\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n\\n \\n \\n \\n No Items to Display!\\n \\n \\n \\n \\n Add New Food Item\\n \\n \\n \\n \\n \\n
\\n\";","export default \":host {\\n display: inline-block;\\n}\\n:host ::ng-deep ion-button {\\n margin: 0 !important;\\n --border-radius: 0;\\n}\\n:host ::ng-deep ion-button ~ ion-button {\\n --border-width: 1px 1px 1px 0;\\n}\\n:host ::ng-deep ion-button:first-child {\\n --border-radius: 3px 0 0 3px;\\n}\\n:host ::ng-deep ion-button:last-child {\\n --border-radius: 0 3px 3px 0;\\n}\\n:host ::ng-deep ion-button.active {\\n --background: rgba(var(--ion-color-primary-rgb), 10%);\\n --border-color: var(--ion-color-primary);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2J1dHRvbi1ncm91cC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUVFLHFCQUFBO0FBQUY7QUFFRTtFQUNFLG9CQUFBO0VBQ0Esa0JBQUE7QUFBSjtBQUVJO0VBQ0UsNkJBQUE7QUFBTjtBQUdJO0VBQ0UsNEJBQUE7QUFETjtBQUlJO0VBQ0UsNEJBQUE7QUFGTjtBQUtJO0VBQ0UscURBQUE7RUFDQSx3Q0FBQTtBQUhOIiwiZmlsZSI6ImJ1dHRvbi1ncm91cC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcbiAgLy8gYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgOjpuZy1kZWVwIGlvbi1idXR0b24ge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIC0tYm9yZGVyLXJhZGl1czogMDtcbiAgXG4gICAgJn5pb24tYnV0dG9uIHtcbiAgICAgIC0tYm9yZGVyLXdpZHRoOiAxcHggMXB4IDFweCAwO1xuICAgIH1cbiAgXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAtLWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAgIH1cbiAgXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC0tYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XG4gICAgfVxuICBcbiAgICAmLmFjdGl2ZSB7XG4gICAgICAtLWJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiKSwgMTAlKTtcbiAgICAgIC0tYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgfVxuICB9XG59XG4iXX0= */\";","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { AlertController, ModalController, PopoverController } from '@ionic/angular';\nimport { MenuEntity, MenuItemMapRestControllerService, MenuRestControllerService, MenuUsersRestControllerService, SmartDineResponseLong, SmartDineResponseMenuEntity, SmartDineResponseMenuModel } from 'src/app/swagger';\nimport { SdEvent } from '../../interfaces/event';\nimport { MenuNavService } from '../../services/menu-nav/menu-nav.service';\nimport { MenuUpsertionComponent } from '../menu-upsertion/menu-upsertion.component';\nimport { RestaurantsService } from '../../services/restaurants/restaurants.service';\n\ninterface Menu extends MenuEntity {\n noOfChildItems?: number;\n}\n\n@Component({\n selector: 'app-popover',\n template: `\n \n \n \n Delete\n \n \n `,\n styles: [\n `\n ion-icon[slot=\"start\"] {\n margin-inline-end: 16px;\n }\n `\n ]\n})\nclass PopoverComponent {\n constructor(\n private popoverController: PopoverController,\n ) { }\n\n public onItemClick(_: MouseEvent, itemClicked: string) {\n this.popoverController.dismiss({ itemClicked });\n }\n}\n\n@Component({\n selector: 'app-sd-menus',\n templateUrl: './menus.component.html',\n styleUrls: ['./menus.component.scss'],\n})\nexport class MenusComponent implements OnInit, OnChanges {\n\n @Input()\n public menuId: string | null = null;\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n @Input()\n public tableId: string | null = null;\n\n public menus: Menu[] = [];\n public filteredMenuItems: Menu[] = [];\n\n @Input() enableToolbar = true;\n\n public forCustomer = false;\n\n @Output() sdChange = new EventEmitter();\n\n private selectedIndex = -1;\n\n constructor(\n private router: Router,\n private modalController: ModalController,\n private menuRestControllerService: MenuRestControllerService,\n private menuItemMapRestControllerService: MenuItemMapRestControllerService,\n private menuUsersRestControllerService: MenuUsersRestControllerService,\n private popoverController: PopoverController,\n private alertController: AlertController,\n private menuNavService: MenuNavService,\n private restaurantService: RestaurantsService\n ) {\n const currentUrl = this.router.routerState.snapshot.url;\n this.forCustomer = currentUrl.startsWith('/customer');\n }\n\n public ngOnInit(): void {\n if(!this.restaurantId) {\n this.restaurantService.getSelectedRestaurantId().subscribe(restaurant => this.restaurantId = restaurant);\n }\n\n if(!this.restaurantBranchId) {\n this.restaurantService.getSelectedBranchId().subscribe(branch => this.restaurantBranchId = branch);\n }\n this.init();\n\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if(changes['restaurantId']?.currentValue || changes['restaurantBranchId']?.currentValue){\n this.init();\n }\n\n }\n\n public onMenuClick(menu: MenuEntity) {\n this.menuNavService.push(menu);\n const extras: NavigationExtras = { queryParams: {} };\n if (this.restaurantId) {\n extras.queryParams.restaurantId = this.restaurantId;\n }\n if (this.restaurantBranchId) {\n extras.queryParams.restaurantBranchId = this.restaurantBranchId;\n }\n if (this.tableId) {\n extras.queryParams.tableId = this.tableId;\n }\n const currentUrl = this.router.routerState.snapshot.url;\n const baseUrl = currentUrl.match(/(.*)menus/g)[0];\n this.router.navigate([baseUrl, menu.menuId], extras);\n }\n\n public onNewClick() {\n this.showMenuCreationPopup();\n }\n\n public onEditClick(event: MouseEvent, menu: MenuEntity) {\n event.stopPropagation();\n this.showMenuCreationPopup(menu);\n }\n\n public onDeleteClick(event: MouseEvent, _: MenuEntity, index: number) {\n event.stopPropagation();\n this.selectedIndex = index;\n this.onDelete();\n }\n\n public async onMoreClick(event: MouseEvent, _: MenuEntity, index: number) {\n event.stopPropagation();\n this.selectedIndex = index;\n const popover = await this.popoverController.create({\n component: PopoverComponent,\n event,\n translucent: true\n });\n popover.onDidDismiss().then((e: { data: { itemClicked: string } }) => {\n if (!e.data) { return; }\n const itemClicked = e.data.itemClicked;\n if (itemClicked === 'edit') {\n // TODO\n } else if (itemClicked === 'delete') {\n // this.onDelete(); // TODO\n }\n });\n return await popover.present();\n }\n\n public async onDelete() {\n const alert = await this.alertController.create({\n header: 'Alert',\n message: `Please confirm the deletion of below mentioned menu.
${this.menus[this.selectedIndex].name}`,\n buttons: [\n 'Cancel',\n {\n text: 'Delete',\n handler: () => {\n this.deleteMenu();\n }\n }\n ]\n });\n await alert.present();\n }\n\n public init() {\n if (this.forCustomer && this.menuId) {\n this.setSubMenusForCustomer();\n } else if (this.forCustomer) {\n this.setMenusForCustomer();\n } else {\n this.setMenus();\n }\n }\n\n public async showMenuCreationPopup(menu: MenuEntity = null) {\n let menuId = null;\n if (menu) {\n menuId = menu.menuId;\n }\n\n const modal = await this.modalController.create({\n id: MenuUpsertionComponent.id,\n component: MenuUpsertionComponent,\n cssClass: 'my-custom-modal-css',\n componentProps: {\n menuId,\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n parentMenuId: this.menuId,\n }\n });\n modal.onDidDismiss().then((res) => {\n if (!res || !res.data) { return; }\n if (res.data.createdMenu) {\n this.menus.push(res.data.createdMenu);\n }\n if (res.data.updatedMenu) {\n const updatedMenu = res.data.updatedMenu as MenuEntity;\n const index = this.menus.findIndex((m) => m.menuId === updatedMenu.menuId);\n this.menus[index] = updatedMenu;\n }\n this.sdChange.emit({ items: this.menus });\n });\n await modal.present();\n }\n\n private setMenus() {\n this.menus = [];\n this.sdChange.emit({ items: this.menus });\n this.menuRestControllerService.getMenus(this.restaurantId, this.restaurantBranchId, this.menuId).subscribe({\n next: (menus: SmartDineResponseMenuEntity) => {\n this.menus = menus.items as Menu[];\n this.filteredMenuItems = this.menus;\n this.menus.forEach(element => {\n this.setMenuItemCount(element);\n });\n this.sdChange.emit({ items: this.menus });\n },\n error: (err) => {\n console.error('Unable to get menus!', err);\n }\n });\n }\n\n private setMenusForCustomer() {\n this.menus = [];\n this.sdChange.emit({ items: this.menus });\n this.menuUsersRestControllerService.getTopLevelMenus(this.restaurantId, this.restaurantBranchId).subscribe({\n next: (res: SmartDineResponseMenuModel) => {\n this.menus = res.items.map((each) => {\n return {\n menuId: each.menuId,\n name: each.menuName,\n description: each.menuDescription,\n orderable: each.orderable,\n orderableFromTime: each.orderableFromTime,\n orderableToTime: each.orderableToTime,\n menuIconImage: each.menuIconImage,\n menuImages: each.menuImages,\n noOfChildMenus: each.noOfChildMenus,\n } as Menu;\n });\n this.menus.forEach(element => {\n if (!this.forCustomer) { // TODO: Needs Removal\n this.setMenuItemCount(element);\n }\n });\n this.sdChange.emit({ items: this.menus });\n },\n error: (err) => {\n console.error('Unable to get menus for customer!', err);\n }\n });\n }\n\n private setSubMenusForCustomer() {\n this.menus = [];\n this.sdChange.emit({ items: this.menus });\n this.menuUsersRestControllerService.getSubMenus(this.restaurantId, this.restaurantBranchId, this.menuId).subscribe({\n next: (res: SmartDineResponseMenuModel) => {\n this.menus = res.items.map((each) => {\n return {\n menuId: each.menuId,\n name: each.menuName,\n description: each.menuDescription,\n orderable: each.orderable,\n orderableFromTime: each.orderableFromTime,\n orderableToTime: each.orderableToTime,\n menuIconImage: each.menuIconImage,\n menuImages: each.menuImages,\n noOfChildMenus: each.noOfChildMenus,\n } as Menu;\n });\n this.menus.forEach(element => {\n if (!this.forCustomer) { // TODO: Needs Removal\n this.setMenuItemCount(element);\n }\n });\n this.sdChange.emit({ items: this.menus });\n },\n error: (err) => {\n console.error('Unable to get sub menus for customer!', err);\n }\n })\n }\n\n private deleteMenu() {\n const menu = this.menus[this.selectedIndex];\n this.menuRestControllerService.deleteMenu(menu.menuId, menu.restaurantId, menu.restaurantBranchId).subscribe(\n (_: SmartDineResponseMenuEntity) => {\n this.menus.splice(this.selectedIndex, 1);\n },\n (err) => {\n console.error('Unable to delete menu!', err);\n }\n );\n }\n\n private setMenuItemCount(menu: Menu) {\n this.menuItemMapRestControllerService.getMenuItemsCount(menu.menuId, menu.restaurantId, menu.restaurantBranchId).subscribe({\n next: (res: SmartDineResponseLong) => {\n menu.noOfChildItems = res.item;\n },\n error: (err) => {\n console.error('Unable to get item count for menu with id -', menu.menuId, err);\n }\n });\n }\n\n public filterMenus(searchValue: string) {\n if(searchValue === \"\" || !searchValue.trim()){\n this.setMenus();\n }\n this.menus = this.filteredMenuItems.filter(item =>{\n const lowerSearchValue = searchValue.toLowerCase();\n return (\n item.name.toLowerCase().includes(lowerSearchValue) ||\n item.tags.some(tag => tag.toLowerCase().includes(lowerSearchValue))\n );\n });\n }\n\n}\n","export default \"\\n \\n Items\\n \\n Save\\n \\n \\n Close\\n \\n \\n\\n\\n\\n
\\n \\n \\n \\n \\n \\\"\\\"\\n\\n \\n \\n

\\n

\\n \\n \\n

\\n
\\n \\n
\\n
\\n
\\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CurrencyModel } from './currencyModel';\nimport { RestaurantModelPrefTimeZone } from './restaurantModelPrefTimeZone';\nimport { SmartDineImage } from './smartDineImage';\n\nexport interface RestaurantModel { \n restaurantId?: string;\n restaurantCode?: string;\n name?: string;\n description?: string;\n iconUrl?: string;\n gstIN?: string;\n iconImage?: SmartDineImage;\n restaurantImages?: Array;\n restaurantStatus?: RestaurantModel.RestaurantStatusEnum;\n validUpto?: Date;\n maxNoOfTables?: number;\n maxNoOfRestaurantBranches?: number;\n active?: boolean;\n restaurantSubscriptionEntityId?: string;\n fssai?: string;\n prefCurrencyCode?: string;\n prefTimeZone?: RestaurantModelPrefTimeZone;\n prefCurrency?: CurrencyModel;\n prefTimeZoneId?: string;\n}\nexport namespace RestaurantModel {\n export type RestaurantStatusEnum = 'DRAFT' | 'PENDING_APPROVAL' | 'APPROVED' | 'REJECTED' | 'PUBLISHED' | 'UNPUBLISHED' | 'PAYMENT_PENDING';\n export const RestaurantStatusEnum = {\n DRAFT: 'DRAFT' as RestaurantStatusEnum,\n PENDINGAPPROVAL: 'PENDING_APPROVAL' as RestaurantStatusEnum,\n APPROVED: 'APPROVED' as RestaurantStatusEnum,\n REJECTED: 'REJECTED' as RestaurantStatusEnum,\n PUBLISHED: 'PUBLISHED' as RestaurantStatusEnum,\n UNPUBLISHED: 'UNPUBLISHED' as RestaurantStatusEnum,\n PAYMENTPENDING: 'PAYMENT_PENDING' as RestaurantStatusEnum\n };\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebSoundService {\n\n private audioContext: AudioContext;\n\n constructor() {\n this.audioContext = new (window.AudioContext || (window as any).webkitAudioContext)();\n }\n\n public playBeep(type: OscillatorType, duration: number, frequency: number, volume: number): void {\n const oscillator = this.audioContext.createOscillator();\n const gainNode = this.audioContext.createGain();\n\n oscillator.connect(gainNode);\n gainNode.connect(this.audioContext.destination);\n\n oscillator.frequency.value = frequency;\n oscillator.type = type;\n gainNode.gain.value = volume;\n\n oscillator.start();\n setTimeout(() => {\n oscillator.stop();\n }, duration);\n }\n\n public playBell(duration: number, frequency: number, volume: number): void {\n const oscillator = this.audioContext.createOscillator();\n const gainNode = this.audioContext.createGain();\n \n oscillator.connect(gainNode);\n gainNode.connect(this.audioContext.destination);\n \n oscillator.frequency.value = frequency;\n oscillator.type = 'sine';\n gainNode.gain.value = volume;\n \n oscillator.start();\n gainNode.gain.exponentialRampToValueAtTime(0.00001, this.audioContext.currentTime + duration / 1000);\n setTimeout(() => {\n oscillator.stop();\n }, duration);\n }\n \n\n}\n\n","export default \":host {\\n border: 1px solid #000;\\n background-color: rgba(255, 255, 255, 0.5);\\n display: inline-block;\\n padding: 0.2rem;\\n}\\n\\n:host(.veg) {\\n border-color: #008000;\\n}\\n\\n:host(.veg) .circle {\\n background-color: #008000;\\n}\\n\\n:host(.non-veg) {\\n border-color: #ad4728;\\n}\\n\\n:host(.non-veg) .circle {\\n background-color: #ad4728;\\n}\\n\\n.circle {\\n height: 0.6rem;\\n width: 0.6rem;\\n border-radius: 50%;\\n background-color: #000;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Zvb2QtdHlwZS1pbmRpY2F0b3IuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDRSxzQkFBQTtFQUNBLDBDQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0FBRkY7O0FBS0E7RUFDRSxxQkFYVTtBQVNaOztBQUlFO0VBQ0UseUJBZFE7QUFZWjs7QUFNQTtFQUNFLHFCQWxCYztBQWVoQjs7QUFLRTtFQUNFLHlCQXJCWTtBQWtCaEI7O0FBT0E7RUFDRSxjQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QUFKRiIsImZpbGUiOiJmb29kLXR5cGUtaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJHZlZy1jb2xvcjogIzAwODAwMDtcbiRub24tdmVnLWNvbG9yOiAjYWQ0NzI4O1xuXG46aG9zdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAuMnJlbTtcbn1cblxuOmhvc3QoLnZlZykge1xuICBib3JkZXItY29sb3I6ICR2ZWctY29sb3I7XG5cbiAgLmNpcmNsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHZlZy1jb2xvcjtcbiAgfVxufVxuXG46aG9zdCgubm9uLXZlZykge1xuICBib3JkZXItY29sb3I6ICRub24tdmVnLWNvbG9yO1xuXG4gIC5jaXJjbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRub24tdmVnLWNvbG9yO1xuICB9XG59XG5cbi5jaXJjbGUge1xuICBoZWlnaHQ6IC42cmVtO1xuICB3aWR0aDogLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbiJdfQ== */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OrderStatusUpdateRequest { \n restaurantId?: string;\n restaurantBranchId?: string;\n orderId?: string;\n orderStatus?: OrderStatusUpdateRequest.OrderStatusEnum;\n orderPaymentStatus?: OrderStatusUpdateRequest.OrderPaymentStatusEnum;\n orderNumber?: number;\n}\nexport namespace OrderStatusUpdateRequest {\n export type OrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const OrderStatusEnum = {\n DRAFT: 'DRAFT' as OrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as OrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as OrderStatusEnum,\n CANCELLED: 'CANCELLED' as OrderStatusEnum,\n DECLINED: 'DECLINED' as OrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as OrderStatusEnum,\n PREPARING: 'PREPARING' as OrderStatusEnum,\n PREPARED: 'PREPARED' as OrderStatusEnum,\n DELIVERED: 'DELIVERED' as OrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as OrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as OrderStatusEnum\n };\n export type OrderPaymentStatusEnum = 'PAY_LATER' | 'PAYMENT_INITIATED' | 'PAYMENT_SUCCESS' | 'PAYMENT_REFUNDED' | 'PAYMENT_FAILED' | 'PAID' | 'REFUND_INITIATED' | 'REFUND_SUCCESS' | 'PAYMENT_NA' | 'PAY_BY_CASH' | 'PAID_BY_CASH';\n export const OrderPaymentStatusEnum = {\n PAYLATER: 'PAY_LATER' as OrderPaymentStatusEnum,\n PAYMENTINITIATED: 'PAYMENT_INITIATED' as OrderPaymentStatusEnum,\n PAYMENTSUCCESS: 'PAYMENT_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTREFUNDED: 'PAYMENT_REFUNDED' as OrderPaymentStatusEnum,\n PAYMENTFAILED: 'PAYMENT_FAILED' as OrderPaymentStatusEnum,\n PAID: 'PAID' as OrderPaymentStatusEnum,\n REFUNDINITIATED: 'REFUND_INITIATED' as OrderPaymentStatusEnum,\n REFUNDSUCCESS: 'REFUND_SUCCESS' as OrderPaymentStatusEnum,\n PAYMENTNA: 'PAYMENT_NA' as OrderPaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as OrderPaymentStatusEnum,\n PAIDBYCASH: 'PAID_BY_CASH' as OrderPaymentStatusEnum\n };\n}","import {\n Directive,\n Output,\n Input,\n EventEmitter,\n HostBinding,\n HostListener\n} from '@angular/core';\n\n@Directive({\n selector: '[sdDnd]'\n})\nexport class DndDirective {\n @HostBinding('class.fileover') fileOver: boolean;\n @Output() fileDropped = new EventEmitter();\n\n // Dragover listener\n @HostListener('dragover', ['$event']) onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = true;\n }\n\n // Dragleave listener\n @HostListener('dragleave', ['$event']) public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n }\n\n // Drop listener\n @HostListener('drop', ['$event']) public ondrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n let files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit({\n ...evt,\n target: { files },\n });\n }\n }\n}\n","import { Component,Input, Output, EventEmitter, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-search-bar',\n templateUrl: './search-bar.component.html',\n styleUrls: ['./search-bar.component.scss'],\n})\nexport class SearchBarComponent implements OnInit {\n\n \n @Input() placeholder: string = 'Search...';\n @Output() searchChange = new EventEmitter();\n\n public searchText: string = '';\n public timerID = null;\n\n constructor() { }\n\n ngOnInit() {}\n\n public onSearchChange(event: any): void {\n let that = this;\n\n clearTimeout(that.timerID);\n that.timerID = setTimeout(function(){\n that.searchChange.emit(that.searchText);\n }, 300)\n }\n\n}\n ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabsComponent } from '../core/components/tabs/tabs.component';\nimport { HomeComponent } from './components/home/home.component';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule as SdCommonModule } from '../common/common.module';\nimport { LoginPage } from './pages/login/login.page';\nimport { SignUpPage } from './pages/sign-up/sign-up.page';\nimport { PasswordRecoveryPage } from './pages/password-recovery/password-recovery.page';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { HomePage } from './pages/home/home.page';\nimport { PrivacyPage } from './pages/privacy/privacy.page';\nimport { SharedModule } from '../shared.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { UserProfilePage } from './pages/user-profile/user-profile.page';\nimport { UserSettingsPage } from './pages/user-settings/user-settings.page';\n\n@NgModule({\n declarations: [\n LoginPage,\n SignUpPage,\n PasswordRecoveryPage,\n\n HomeComponent,\n HomePage,\n UserProfilePage,\n UserSettingsPage,\n PrivacyPage\n ],\n imports: [\n IonicModule,\n CommonModule,\n SdCommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n SharedModule,\n TranslateModule,\n ],\n exports: [\n LoginPage,\n SignUpPage,\n PasswordRecoveryPage,\n\n HomeComponent,\n HomePage,\n UserProfilePage,\n UserSettingsPage,\n PrivacyPage\n ]\n})\nexport class CoreModule { }\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { RazorPayPaymentGatewayRequest } from './razorPayPaymentGatewayRequest';\nimport { RazorPayPaymentGatewayResponse } from './razorPayPaymentGatewayResponse';\n\nexport interface PaymentTransactionModel { \n paymentTransactionId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n userId?: string;\n orderId?: string;\n paymentStatus?: PaymentTransactionModel.PaymentStatusEnum;\n razorPayPaymentGatewayRequest?: RazorPayPaymentGatewayRequest;\n razorPayPaymentGatewayResponse?: RazorPayPaymentGatewayResponse;\n}\nexport namespace PaymentTransactionModel {\n export type PaymentStatusEnum = 'INITIATED' | 'CREATED' | 'AUTHORIZED' | 'CAPTURED' | 'REFUNDED' | 'FAILED' | 'PAY_BY_CASH' | 'PAY_LATER';\n export const PaymentStatusEnum = {\n INITIATED: 'INITIATED' as PaymentStatusEnum,\n CREATED: 'CREATED' as PaymentStatusEnum,\n AUTHORIZED: 'AUTHORIZED' as PaymentStatusEnum,\n CAPTURED: 'CAPTURED' as PaymentStatusEnum,\n REFUNDED: 'REFUNDED' as PaymentStatusEnum,\n FAILED: 'FAILED' as PaymentStatusEnum,\n PAYBYCASH: 'PAY_BY_CASH' as PaymentStatusEnum,\n PAYLATER: 'PAY_LATER' as PaymentStatusEnum\n };\n}","export default \"\\n \\n \\n Menu \\n \\n {{btnPublishText}}\\n \\n \\n \\n \\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n \\n \\n

Drag and drop file here Or

\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Veg\\n Egg\\n Non Veg\\n Beverage\\n \\n \\n
\\n
\\n
\\n\";","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-base',\n template: `\n
base works!
\n `\n})\nexport class BaseComponent implements OnInit {\n\n constructor() { }\n\n public ngOnInit() { }\n\n public ionViewWillEnter() { }\n\n}\n","import { Component, Input, OnInit, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\n\nexport interface QuantityChangeEvent {\n value: number;\n}\n\n@Component({\n selector: 'app-quantity-selector',\n templateUrl: './quantity-selector.component.html',\n styleUrls: ['./quantity-selector.component.scss'],\n})\nexport class QuantitySelectorComponent {\n\n public quantity = 0;\n\n @Input() lines: 'full' | 'none' = 'full';\n\n @Input()\n set value(value: number) {\n this.quantity = value || 0;\n }\n get value() {\n return this.quantity;\n }\n\n @Input()\n disabled = false;\n\n @Output()\n change = new EventEmitter();\n\n public onDecrease(_event: MouseEvent) {\n this.quantity--;\n this.change.emit({ value: this.quantity });\n }\n \n public onIncrease(_event: MouseEvent) {\n this.quantity++;\n this.change.emit({ value: this.quantity });\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface StatisticsOrderModel { \n totalAmount?: number;\n noOfOrders?: number;\n orderStatus?: StatisticsOrderModel.OrderStatusEnum;\n createdAtStr?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n}\nexport namespace StatisticsOrderModel {\n export type OrderStatusEnum = 'DRAFT' | 'ITEMS_RESERVED' | 'SUBMITTED' | 'CANCELLED' | 'DECLINED' | 'ACCEPTED' | 'PREPARING' | 'PREPARED' | 'DELIVERED' | 'NOT_ACCEPTED' | 'PICKED_UP';\n export const OrderStatusEnum = {\n DRAFT: 'DRAFT' as OrderStatusEnum,\n ITEMSRESERVED: 'ITEMS_RESERVED' as OrderStatusEnum,\n SUBMITTED: 'SUBMITTED' as OrderStatusEnum,\n CANCELLED: 'CANCELLED' as OrderStatusEnum,\n DECLINED: 'DECLINED' as OrderStatusEnum,\n ACCEPTED: 'ACCEPTED' as OrderStatusEnum,\n PREPARING: 'PREPARING' as OrderStatusEnum,\n PREPARED: 'PREPARED' as OrderStatusEnum,\n DELIVERED: 'DELIVERED' as OrderStatusEnum,\n NOTACCEPTED: 'NOT_ACCEPTED' as OrderStatusEnum,\n PICKEDUP: 'PICKED_UP' as OrderStatusEnum\n };\n}","export default \"
\\n
\\n \\\"Logo\\\"\\n \\\"Logo\\\"\\n
\\n
\\n
SmartDine
\\n \\n
\\n
\\n\";","import { Component, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\n@Component({\n selector: 'app-shareoptions',\n templateUrl: './shareoptions.component.html',\n styleUrls: ['./shareoptions.component.scss'],\n})\nexport class ShareoptionsComponent implements OnInit {\n\n\n public static readonly id = 'share=options-modal';\n private toEmailIds: String;\n private toPhoneNumbers: String;\n\n\n constructor(private modalController: ModalController) { }\n\n ngOnInit() {}\n\n public onSendClick() {\n\n let emailIds = [];\n let phoneNumbers = [];\n\n this.toEmailIds.split(\",\").forEach((emailId) => {\n if (emailId.length > 0) {\n emailIds.push(emailId);\n }\n });\n\n this.toPhoneNumbers.split(\",\").forEach((phoneNumber) => {\n if (phoneNumber.length > 0) {\n phoneNumbers.push(phoneNumber);\n }\n });\n\n this.modalController.dismiss({toEmailIds: emailIds, toPhoneNumbers: phoneNumbers}, '', ShareoptionsComponent.id);\n }\n\n public onCancelClick() {\n this.modalController.dismiss({}, '', ShareoptionsComponent.id);\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseOfferRuleModel } from '../model/smartDineResponseOfferRuleModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class OfferRestControllerForUsersService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param locale \n * @param pageNo \n * @param rows \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOffers(restaurantId?: string, restaurantBranchId?: string, locale?: string, pageNo?: number, rows?: number, observe?: 'body', reportProgress?: boolean): Observable;\n public getOffers(restaurantId?: string, restaurantBranchId?: string, locale?: string, pageNo?: number, rows?: number, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOffers(restaurantId?: string, restaurantBranchId?: string, locale?: string, pageNo?: number, rows?: number, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOffers(restaurantId?: string, restaurantBranchId?: string, locale?: string, pageNo?: number, rows?: number, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/user/offers`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PaymentOptionEntity { \n paymentOptionId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n paymentGatewayName?: string;\n paymentGatewayCode?: string;\n paymentGatewayServiceName?: string;\n paymentGatewayDescription?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PaymentGatewayPaymentRefEntity { \n paymentGatewayPaymentId?: string;\n paymentGatewayPaymentStatus?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MenuEntity } from '../model/menuEntity';\nimport { SmartDineResponseMenuEntity } from '../model/smartDineResponseMenuEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class MenuRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param templateMenuId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createMenus(body: MenuEntity, restaurantId?: string, restaurantBranchId?: string, templateMenuId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createMenus(body: MenuEntity, restaurantId?: string, restaurantBranchId?: string, templateMenuId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createMenus(body: MenuEntity, restaurantId?: string, restaurantBranchId?: string, templateMenuId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createMenus(body: MenuEntity, restaurantId?: string, restaurantBranchId?: string, templateMenuId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createMenus.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (templateMenuId !== undefined && templateMenuId !== null) {\n queryParameters = queryParameters.set('templateMenuId', templateMenuId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/menus`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteMenu(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteMenu(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteMenu(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteMenu(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuId === null || menuId === undefined) {\n throw new Error('Required parameter menuId was null or undefined when calling deleteMenu.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/menus/${encodeURIComponent(String(menuId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param menuId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenu(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenu(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenu(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenu(menuId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (menuId === null || menuId === undefined) {\n throw new Error('Required parameter menuId was null or undefined when calling getMenu.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menus/${encodeURIComponent(String(menuId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param parentMenuId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMenus(restaurantId?: string, restaurantBranchId?: string, parentMenuId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getMenus(restaurantId?: string, restaurantBranchId?: string, parentMenuId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getMenus(restaurantId?: string, restaurantBranchId?: string, parentMenuId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getMenus(restaurantId?: string, restaurantBranchId?: string, parentMenuId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (parentMenuId !== undefined && parentMenuId !== null) {\n queryParameters = queryParameters.set('parentMenuId', parentMenuId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/menus`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param menuId \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateMenu(body: MenuEntity, menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateMenu(body: MenuEntity, menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateMenu(body: MenuEntity, menuId: string, restaurantId?: string, restaurantBranchId?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateMenu(body: MenuEntity, menuId: string, restaurantId?: string, restaurantBranchId?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateMenu.');\n }\n\n if (menuId === null || menuId === undefined) {\n throw new Error('Required parameter menuId was null or undefined when calling updateMenu.');\n }\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/menus/${encodeURIComponent(String(menuId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"
\\n
\\n \\\"Logo\\\"\\n \\\"Logo\\\"\\n
\\n
\\n
SmartDine
\\n
Powered by Future Vision Infotech
\\n
\\n
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface SmartDineImage { \n key?: string;\n url?: string;\n urlValidity?: Date;\n}","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"ap-south-1\",\n \"aws_cognito_region\": \"ap-south-1\",\n \"aws_user_pools_id\": \"ap-south-1_XKxVpZXWF\",\n \"aws_user_pools_web_client_id\": \"5iv49bijjkcb649gu6g30sa02u\",\n \"oauth\": {\n \"domain\": \"smartdinenowprod.auth.ap-south-1.amazoncognito.com\"\n },\n \"aws_cognito_username_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_social_providers\": [],\n \"aws_cognito_signup_attributes\": [\n \"NAME\",\n \"EMAIL\",\n \"PHONE_NUMBER\"\n ],\n \"aws_cognito_mfa_configuration\": \"OFF\",\n \"aws_cognito_mfa_types\": [],\n \"aws_cognito_password_protection_settings\": {\n \"passwordPolicyMinLength\": 8,\n \"passwordPolicyCharacters\": []\n },\n \"aws_cognito_verification_mechanisms\": [\n \"EMAIL\"\n ]\n};\n\n\nexport default awsmobile;\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseDomainConfigModel } from '../model/smartDineResponseDomainConfigModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class DomainConfigRestControllerForCommonService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param domainName \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDomainConfig(domainName: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getDomainConfig(domainName: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getDomainConfig(domainName: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getDomainConfig(domainName: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (domainName === null || domainName === undefined) {\n throw new Error('Required parameter domainName was null or undefined when calling getDomainConfig.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (domainName !== undefined && domainName !== null) {\n queryParameters = queryParameters.set('domainName', domainName);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/users/common/domain/config`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseUserGroupMapEntity } from '../model/smartDineResponseUserGroupMapEntity';\nimport { UserGroupMapEntity } from '../model/userGroupMapEntity';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class UserGroupMapRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createUserUserGroupMapMaps(body: UserGroupMapEntity, observe?: 'body', reportProgress?: boolean): Observable;\n public createUserUserGroupMapMaps(body: UserGroupMapEntity, observe?: 'response', reportProgress?: boolean): Observable>;\n public createUserUserGroupMapMaps(body: UserGroupMapEntity, observe?: 'events', reportProgress?: boolean): Observable>;\n public createUserUserGroupMapMaps(body: UserGroupMapEntity, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createUserUserGroupMapMaps.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/usergroupmaps`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param userGroupMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteUserGroupMap(userGroupMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteUserGroupMap(userGroupMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteUserGroupMap(userGroupMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteUserGroupMap(userGroupMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (userGroupMapId === null || userGroupMapId === undefined) {\n throw new Error('Required parameter userGroupMapId was null or undefined when calling deleteUserGroupMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/usergroupmaps/${encodeURIComponent(String(userGroupMapId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param userGroupMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserGroupMap(userGroupMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getUserGroupMap(userGroupMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getUserGroupMap(userGroupMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getUserGroupMap(userGroupMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (userGroupMapId === null || userGroupMapId === undefined) {\n throw new Error('Required parameter userGroupMapId was null or undefined when calling getUserGroupMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/usergroupmaps/${encodeURIComponent(String(userGroupMapId))}`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserUserGroupMapMaps(observe?: 'body', reportProgress?: boolean): Observable;\n public getUserUserGroupMapMaps(observe?: 'response', reportProgress?: boolean): Observable>;\n public getUserUserGroupMapMaps(observe?: 'events', reportProgress?: boolean): Observable>;\n public getUserUserGroupMapMaps(observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/usergroupmaps`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param userGroupMapId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateUserGroupMap(body: UserGroupMapEntity, userGroupMapId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateUserGroupMap(body: UserGroupMapEntity, userGroupMapId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateUserGroupMap(body: UserGroupMapEntity, userGroupMapId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateUserGroupMap(body: UserGroupMapEntity, userGroupMapId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateUserGroupMap.');\n }\n\n if (userGroupMapId === null || userGroupMapId === undefined) {\n throw new Error('Required parameter userGroupMapId was null or undefined when calling updateUserGroupMap.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/usergroupmaps/${encodeURIComponent(String(userGroupMapId))}`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface RestaurantBranchTableEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n tableId?: string;\n tableCode?: string;\n capacity?: number;\n captain?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface OfferMappingModel { \n offerMappingId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n menuItemMapId?: string;\n menuId?: string;\n userId?: string;\n active?: boolean;\n validFrom?: Date;\n validTo?: Date;\n dailyStartTime?: number;\n dailyEndTime?: number;\n offerRuleId?: string;\n}","export default \".template-selection-link,\\n.template-selection-link.ion-activatable:hover {\\n --color-hover: var(--ion-color-primary);\\n color: var(--ion-color-primary);\\n}\\n\\n.template-selection-link ion-icon {\\n margin-right: 12px;\\n}\\n\\n.template-selection-link ion-label {\\n max-width: unset;\\n overflow: visible;\\n}\\n\\n.template-selection-link .indicator {\\n position: absolute;\\n right: 9px;\\n top: 12px;\\n z-index: 2;\\n background-color: var(--ion-color-success);\\n width: 12px;\\n height: 12px;\\n border-radius: 50%;\\n}\\n\\n.selection-name {\\n flex-grow: 0;\\n flex-basis: unset;\\n}\\n\\n.banner {\\n position: relative;\\n}\\n\\n.banner .thumbnail {\\n height: 150px;\\n max-height: 150px;\\n min-width: 200px;\\n max-width: 431px;\\n background-image: url(\\\"https://ionicframework.com/docs/demos/api/thumbnail/thumbnail.svg\\\");\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: cover;\\n clip-path: polygon(0 0, 80% 0, 100% 100%, 0 100%);\\n}\\n\\n.banner .image-upload-container {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n}\\n\\n.banner .image-upload-container:focus-within > .image-upload, .banner .image-upload-container:hover > .image-upload {\\n opacity: 1;\\n}\\n\\n.banner .image-upload-container .image-upload {\\n opacity: 0;\\n width: 72%;\\n height: 100%;\\n text-align: center;\\n padding: 0.5rem;\\n position: relative;\\n z-index: 10;\\n transition: opacity 0.5s;\\n}\\n\\n.banner .image-upload-container .image-upload.fileover {\\n opacity: 1;\\n}\\n\\n.banner .image-upload-container .image-upload ion-icon {\\n font-size: 3rem;\\n color: var(--ion-color-primary-shade);\\n}\\n\\n.banner .image-upload-container .image-upload input {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1;\\n opacity: 0;\\n width: 100%;\\n cursor: pointer;\\n}\\n\\n.banner .image-upload-container .image-upload label {\\n color: var(--ion-color-primary-contrast);\\n background-color: var(--ion-color-primary);\\n border-radius: 21.5px;\\n padding: 8px 16px;\\n display: inline-block;\\n}\\n\\n.banner .image-upload-container .image-upload h3 {\\n font-size: 1rem;\\n color: var(--ion-color-primary-shade);\\n margin: 0;\\n margin-bottom: 0.25rem;\\n}\\n\\n.banner .header-container {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 50%;\\n right: -20%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL3RlbXBsYXRlLWxpbmstZGVzaWduLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9tZW51LXVwc2VydGlvbi5jb21wb25lbnQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFLHVDQUFBO0VBQ0EsK0JBQUE7QUNDRjs7QURHRTtFQUNFLGtCQUFBO0FDQUo7O0FER0U7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FDREo7O0FESUU7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLDBDQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0ZKOztBRE1BO0VBQ0UsWUFBQTtFQUNBLGlCQUFBO0FDSEY7O0FBdEJBO0VBQ0Usa0JBQUE7QUF5QkY7O0FBdkJFO0VBQ0UsYUFOZTtFQU9mLGlCQVBlO0VBUWYsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLDBGQUFBO0VBQ0EsNEJBQUE7RUFDQSxrQ0FBQTtFQUVBLHNCQUFBO0VBQ0EsaURBQUE7QUF5Qko7O0FBdEJFO0VDYkEsa0JBUWtCO0VBUGxCLE1EYUU7RUNaRixRRFlFO0VDWEYsU0RXRTtFQ1ZGLE9EVUU7QUE0Qko7O0FBMUJJO0VBRUUsVUFBQTtBQTJCTjs7QUF4Qkk7RUFDRSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSx3QkFBQTtBQTBCTjs7QUF4Qk07RUFDRSxVQUFBO0FBMEJSOztBQXZCTTtFQUNFLGVBQUE7RUFDQSxxQ0FBQTtBQXlCUjs7QUF0Qk07RUN4Q0osa0JBUWtCO0VBUGxCLE1Ed0NNO0VDdkNOLFFEdUNNO0VDdENOLFNEc0NNO0VDckNOLE9EcUNNO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQTRCUjs7QUF6Qk07RUFDRSx3Q0FBQTtFQUNBLDBDQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0FBMkJSOztBQXhCTTtFQUNFLGVBQUE7RUFDQSxxQ0FBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtBQTBCUjs7QUFyQkU7RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7QUF1QkoiLCJmaWxlIjoibWVudS11cHNlcnRpb24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGVtcGxhdGUtc2VsZWN0aW9uLWxpbmssXG4udGVtcGxhdGUtc2VsZWN0aW9uLWxpbmsuaW9uLWFjdGl2YXRhYmxlOmhvdmVyIHtcbiAgLS1jb2xvci1ob3ZlcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xufVxuXG4udGVtcGxhdGUtc2VsZWN0aW9uLWxpbmsge1xuICBpb24taWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB9XG5cbiAgaW9uLWxhYmVsIHtcbiAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLmluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA5cHg7XG4gICAgdG9wOiAxMnB4O1xuICAgIHotaW5kZXg6IDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3MpO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cbn1cblxuLnNlbGVjdGlvbi1uYW1lIHtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LWJhc2lzOiB1bnNldDtcbn1cbiIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lL3RlbXBsYXRlLWxpbmstZGVzaWduLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWUvbWl4aW5zLnNjc3MnO1xuXG4kbWVudS1pY29uLWhlaWdodDogMTUwcHg7XG5cbi5iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLnRodW1ibmFpbCB7XG4gICAgaGVpZ2h0OiAkbWVudS1pY29uLWhlaWdodDtcbiAgICBtYXgtaGVpZ2h0OiAkbWVudS1pY29uLWhlaWdodDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIG1heC13aWR0aDogNDMxcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2RlbW9zL2FwaS90aHVtYm5haWwvdGh1bWJuYWlsLnN2ZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCA4MCUgMCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICB9XG5cbiAgLmltYWdlLXVwbG9hZC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uLWFic29sdXRlKDAsIDAsIDAsIDApO1xuICBcbiAgICAmOmZvY3VzLXdpdGhpbj4uaW1hZ2UtdXBsb2FkLFxuICAgICY6aG92ZXI+LmltYWdlLXVwbG9hZCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgXG4gICAgLmltYWdlLXVwbG9hZCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgd2lkdGg6IDcyJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG5cbiAgICAgICYuZmlsZW92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIFxuICAgICAgaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1zaGFkZSk7XG4gICAgICB9XG4gICAgXG4gICAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uLWFic29sdXRlKDAsIDAsIDAsIDApO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIFxuICAgICAgbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMS41cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgXG4gICAgICBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXNoYWRlKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuMjVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogLTIwJTtcbiAgfVxufSIsIlxuQG1peGluIHRleHQtZWxsaXBzaXMge1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbiwgJHRvcDogbnVsbCwgJHJpZ2h0OiBudWxsLCAkYm90dG9tOiBudWxsLCAkbGVmdDogbnVsbCkge1xuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuICB0b3A6ICR0b3A7XG4gIHJpZ2h0OiAkcmlnaHQ7XG4gIGJvdHRvbTogJGJvdHRvbTtcbiAgbGVmdDogJGxlZnQ7XG59XG5cbkBtaXhpbiBwb3NpdGlvbi1hYnNvbHV0ZSgkYXJncy4uLikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgJGFyZ3MuLi4pO1xufSJdfQ== */\";","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nexport interface iRatingValue {\n rating?: number;\n fieldName?: string;\n}\n\n@Component({\n selector: 'review-star',\n template: `
\n \n
`,\n styles: [\n `\n .star-rating {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n ion-icon {\n font-size: 30px;\n color: #95D2B3;\n cursor: pointer;\n }\n }\n `,\n ],\n})\nexport class StarRatingComponent implements OnInit {\n @Input() rating: number = 0;\n @Input() fieldName: string = '';\n @Input() isDisabled: boolean = false;\n\n @Output() ratingChange: EventEmitter =\n new EventEmitter();\n\n public toggleRating(value: number) {\n if(!this.isDisabled) {\n this.rating = this.rating === value ? value - 1 : value;\n this.ratingChange.emit({ rating: this.rating, fieldName: this.fieldName });\n }\n }\n\n ngOnInit(): void {}\n}\n","export default \"@import url(\\\"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&family=Roboto+Condensed:wght@400;500;600;700&display=swap\\\");\\n:root {\\n --poppins-font: \\\"Poppins\\\", sans-serif;\\n --roboto-font: \\\"Roboto Condensed\\\", sans-serif;\\n}\\n.w-35px {\\n width: 35px;\\n}\\n.w-70px {\\n width: 70px;\\n}\\n.mt-n-3px {\\n margin-top: -3px;\\n}\\n.mt-n-12px {\\n margin-top: -12px;\\n}\\n.text-color-secondary {\\n color: var(--ion-color-secondary);\\n}\\n.border-radius-20px {\\n --border-radius: 20px !important;\\n}\\n.bg-color-1283f1 {\\n --background: #1283f1 !important;\\n}\\n.title {\\n font-family: \\\"Staatliches\\\";\\n color: var(--ion-color-secondary);\\n letter-spacing: 5px;\\n}\\n.title .dine {\\n color: var(--ion-color-tertiary);\\n}\\n.login-page-card {\\n background: linear-gradient(to bottom, #4DA0B0, #D39D38) 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n border: 1.5px solid #ccffcc;\\n box-sizing: border-box;\\n box-shadow: 10px 4px 10px #00000024;\\n}\\n.login-page-card .login-form-section .form-title {\\n font-size: 24px;\\n font-family: var(--poppins-font);\\n font-weight: 700;\\n line-height: 28px;\\n color: #ffd949;\\n}\\n.login-page-card .login-form-section .form-subtitle {\\n font-size: 14px;\\n font-family: var(--roboto-font);\\n font-weight: 600;\\n line-height: 21px;\\n color: #fbfbfb;\\n}\\n.login-form-section .form-inputs {\\n background: #ffffff 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n height: 35px;\\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.157);\\n}\\n.form-inputs .form-input-icon {\\n font-size: 20px;\\n color: #31b7c2;\\n font-family: var(--roboto-font);\\n}\\n.login-form-section .forget-pwd-link {\\n font-size: 14px;\\n font-family: var(--poppins-font);\\n font-weight: 600;\\n color: #f2f2f5;\\n}\\n.login-form-section .forget-pwd-link :hover {\\n cursor: pointer;\\n color: #1283f1 !important;\\n text-decoration: underline !important;\\n}\\n.error-message {\\n font-size: 14px;\\n font-weight: 600;\\n font-family: var(--roboto-font);\\n white-space: wrap !important;\\n color: #db0f0f;\\n border-radius: 6px !important;\\n}\\nion-radio {\\n --color-checked: #f15959 !important;\\n --color: #ffffff !important;\\n width: 16px !important;\\n height: 16px !important;\\n}\\nion-label.login-type {\\n color: #ffffff;\\n font-size: 13px;\\n font-weight: 600;\\n font-family: var(--roboto-font);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xvZ2luLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBUSwwSUFBQTtBQUNSO0VBQ0kscUNBQUE7RUFDQSw2Q0FBQTtBQUNKO0FBQ0E7RUFDRSxXQUFBO0FBRUY7QUFBQTtFQUNFLFdBQUE7QUFHRjtBQURBO0VBQ0UsZ0JBQUE7QUFJRjtBQUZBO0VBQ0UsaUJBQUE7QUFLRjtBQUhBO0VBQ0UsaUNBQUE7QUFNRjtBQUpBO0VBQ0UsZ0NBQUE7QUFPRjtBQUxBO0VBQ0UsZ0NBQUE7QUFRRjtBQUxBO0VBQ0UsMEJBQUE7RUFDQSxpQ0FBQTtFQUNBLG1CQUFBO0FBUUY7QUFORTtFQUNFLGdDQUFBO0FBUUo7QUFKQTtFQUNFLG9GQUFBO0VBQ0EsbUJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VBQ0EsbUNBQUE7QUFPRjtBQUxBO0VBQ0UsZUFBQTtFQUNBLGdDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7QUFRRjtBQU5BO0VBQ0UsZUFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7QUFTRjtBQVBBO0VBQ0UsK0NBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSw0Q0FBQTtBQVVGO0FBUkE7RUFDRSxlQUFBO0VBQ0EsY0FBQTtFQUNBLCtCQUFBO0FBV0Y7QUFUQTtFQUNFLGVBQUE7RUFDQSxnQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtBQVlGO0FBVkU7RUFDRSxlQUFBO0VBQ0EseUJBQUE7RUFDQSxxQ0FBQTtBQVlKO0FBUkE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLDRCQUFBO0VBQ0EsY0FBQTtFQUNBLDZCQUFBO0FBV0Y7QUFUQTtFQUNFLG1DQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFQUNBLHVCQUFBO0FBWUY7QUFWQTtFQUNFLGNBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtBQWFGIiwiZmlsZSI6ImxvZ2luLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBvcHBpbnM6d2dodEA0MDA7NTAwOzcwMCZmYW1pbHk9Um9ib3RvK0NvbmRlbnNlZDp3Z2h0QDQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAnKTtcbjpyb290IHtcbiAgICAtLXBvcHBpbnMtZm9udDogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmO1xuICAgIC0tcm9ib3RvLWZvbnQ6ICdSb2JvdG8gQ29uZGVuc2VkJywgc2Fucy1zZXJpZjtcbn1cbi53LTM1cHh7XG4gIHdpZHRoOiAzNXB4O1xufVxuLnctNzBweHtcbiAgd2lkdGg6IDcwcHg7XG59XG4ubXQtbi0zcHh7XG4gIG1hcmdpbi10b3A6IC0zcHg7XG59XG4ubXQtbi0xMnB4e1xuICBtYXJnaW4tdG9wOiAtMTJweDtcbn1cbi50ZXh0LWNvbG9yLXNlY29uZGFyeXtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnkpO1xufVxuLmJvcmRlci1yYWRpdXMtMjBweHtcbiAgLS1ib3JkZXItcmFkaXVzOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG4uYmctY29sb3ItMTI4M2Yxe1xuICAtLWJhY2tncm91bmQ6ICMxMjgzZjEgIWltcG9ydGFudDtcbn1cblxuLnRpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICdTdGFhdGxpY2hlcyc7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IDVweDtcblxuICAuZGluZSB7XG4gICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci10ZXJ0aWFyeSk7XG4gIH1cbn1cblxuLmxvZ2luLXBhZ2UtY2FyZHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzREQTBCMCwgI0QzOUQzOCkgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBib3JkZXI6IDEuNXB4IHNvbGlkICNjY2ZmY2M7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IDEwcHggNHB4IDEwcHggIzAwMDAwMDI0O1xufVxuLmxvZ2luLXBhZ2UtY2FyZCAubG9naW4tZm9ybS1zZWN0aW9uIC5mb3JtLXRpdGxle1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1wb3BwaW5zLWZvbnQpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgY29sb3I6ICNmZmQ5NDk7XG59XG4ubG9naW4tcGFnZS1jYXJkIC5sb2dpbi1mb3JtLXNlY3Rpb24gLmZvcm0tc3VidGl0bGV7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJvYm90by1mb250KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDIxcHg7XG4gIGNvbG9yOiAjZmJmYmZiO1xufVxuLmxvZ2luLWZvcm0tc2VjdGlvbiAuZm9ybS1pbnB1dHN7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmYgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGJveC1zaGFkb3c6IDJweCAycHggNHB4IGhzbGEoMCwgMCUsIDAlLCAwLjE1Nyk7XG59XG4uZm9ybS1pbnB1dHMgLmZvcm0taW5wdXQtaWNvbntcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogIzMxYjdjMjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJvYm90by1mb250KTtcbn1cbi5sb2dpbi1mb3JtLXNlY3Rpb24gLmZvcmdldC1wd2QtbGlua3tcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tcG9wcGlucy1mb250KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNmMmYyZjU7XG5cbiAgOmhvdmVye1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzEyODNmMSAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmVycm9yLW1lc3NhZ2V7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJvYm90by1mb250KTtcbiAgd2hpdGUtc3BhY2U6IHdyYXAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkYjBmMGY7XG4gIGJvcmRlci1yYWRpdXM6IDZweCAhaW1wb3J0YW50O1xufVxuaW9uLXJhZGlvIHtcbiAgLS1jb2xvci1jaGVja2VkOiAjZjE1OTU5ICFpbXBvcnRhbnQ7XG4gIC0tY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgd2lkdGg6IDE2cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG59XG5pb24tbGFiZWwubG9naW4tdHlwZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1yb2JvdG8tZm9udCk7XG59XG4iXX0= */\";","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { CartRestControllerForAdminsService } from './api/cartRestControllerForAdmins.service';\nimport { CartRestControllerForUsersService } from './api/cartRestControllerForUsers.service';\nimport { CategoryProductMapRestControllerService } from './api/categoryProductMapRestController.service';\nimport { CategoryRestControllerForAdminService } from './api/categoryRestControllerForAdmin.service';\nimport { CommonRestControllerForUsersService } from './api/commonRestControllerForUsers.service';\nimport { DomainConfigRestControllerService } from './api/domainConfigRestController.service';\nimport { DomainConfigRestControllerForCommonService } from './api/domainConfigRestControllerForCommon.service';\nimport { GroupRestControllerService } from './api/groupRestController.service';\nimport { InventoryAlertControllerService } from './api/inventoryAlertController.service';\nimport { InventoryEntryControllerService } from './api/inventoryEntryController.service';\nimport { InventoryMasterControllerService } from './api/inventoryMasterController.service';\nimport { KitchenOrderRestControllerService } from './api/kitchenOrderRestController.service';\nimport { MenuItemMapPriceRestControllerService } from './api/menuItemMapPriceRestController.service';\nimport { MenuItemMapRestControllerService } from './api/menuItemMapRestController.service';\nimport { MenuItemMapStockRestControllerService } from './api/menuItemMapStockRestController.service';\nimport { MenuItemRestControllerService } from './api/menuItemRestController.service';\nimport { MenuRestControllerService } from './api/menuRestController.service';\nimport { MenuUsersRestControllerService } from './api/menuUsersRestController.service';\nimport { OfferMappingRestControllerService } from './api/offerMappingRestController.service';\nimport { OfferRestControllerForUsersService } from './api/offerRestControllerForUsers.service';\nimport { OfferRuleRestControllerService } from './api/offerRuleRestController.service';\nimport { OrderRestControllerService } from './api/orderRestController.service';\nimport { OrderRestControllerForUsersService } from './api/orderRestControllerForUsers.service';\nimport { ParentOrderRestControllerService } from './api/parentOrderRestController.service';\nimport { PaymentOptionRestControllerService } from './api/paymentOptionRestController.service';\nimport { PaymentOptionRestControllerForUsersService } from './api/paymentOptionRestControllerForUsers.service';\nimport { PaymentControllerForUsersService } from './api/paymentControllerForUsers.service';\nimport { PaymentControllerForAdminService } from './api/paymentControllerForAdmin.service';\nimport { ProductRestControllerForAdminService } from './api/productRestControllerForAdmin.service';\nimport { ProfileRestControllerForUsersService } from './api/profileRestControllerForUsers.service';\nimport { RazorPayWebhookControllerService } from './api/razorPayWebhookController.service';\nimport { ReportsRestControllerForAdminService } from './api/reportsRestControllerForAdmin.service';\nimport { RestaurantBranchRestControllerService } from './api/restaurantBranchRestController.service';\nimport { RestaurantBranchTableRestControllerService } from './api/restaurantBranchTableRestController.service';\nimport { RestaurantContactRestControllerService } from './api/restaurantContactRestController.service';\nimport { RestaurantGroupMapRestControllerService } from './api/restaurantGroupMapRestController.service';\nimport { RestaurantQrCodeRestControllerService } from './api/restaurantQrCodeRestController.service';\nimport { RestaurantRegistrationRestControllerForUsersService } from './api/restaurantRegistrationRestControllerForUsers.service';\nimport { RestaurantRestControllerService } from './api/restaurantRestController.service';\nimport { RestaurantTaxRuleMapRestControllerService } from './api/restaurantTaxRuleMapRestController.service';\nimport { RestaurantUsersRestControllerService } from './api/restaurantUsersRestController.service';\nimport { SmartdineImageRestControllerService } from './api/smartdineImageRestController.service';\nimport { StatisticsRestControllerService } from './api/statisticsRestController.service';\nimport { TaxRuleRestControllerService } from './api/taxRuleRestController.service';\nimport { UserGroupMapRestControllerService } from './api/userGroupMapRestController.service';\nimport { UserRestControllerService } from './api/userRestController.service';\nimport { RestaurantCurrencyService } from './api/restaurantCurrency.service';\nimport { RedirectUserService } from './api/redirectUser.service';\nimport { GooglePlacesService } from './api/google-places.service';\nimport { RestaurantRegistrationForAdminService } from './api/restaurantRegistrationForAdmin.service';\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: [\n CartRestControllerForAdminsService,\n CartRestControllerForUsersService,\n CategoryProductMapRestControllerService,\n CategoryRestControllerForAdminService,\n CommonRestControllerForUsersService,\n DomainConfigRestControllerService,\n DomainConfigRestControllerForCommonService,\n GroupRestControllerService,\n InventoryAlertControllerService,\n InventoryEntryControllerService,\n InventoryMasterControllerService,\n KitchenOrderRestControllerService,\n MenuItemMapPriceRestControllerService,\n MenuItemMapRestControllerService,\n MenuItemMapStockRestControllerService,\n MenuItemRestControllerService,\n MenuRestControllerService,\n MenuUsersRestControllerService,\n OfferMappingRestControllerService,\n OfferRestControllerForUsersService,\n OfferRuleRestControllerService,\n OrderRestControllerService,\n OrderRestControllerForUsersService,\n ParentOrderRestControllerService,\n PaymentOptionRestControllerService,\n PaymentOptionRestControllerForUsersService,\n PaymentControllerForUsersService,\n PaymentControllerForAdminService,\n ProductRestControllerForAdminService,\n ProfileRestControllerForUsersService,\n RazorPayWebhookControllerService,\n ReportsRestControllerForAdminService,\n RestaurantBranchRestControllerService,\n RestaurantBranchTableRestControllerService,\n RestaurantContactRestControllerService,\n RestaurantGroupMapRestControllerService,\n RestaurantQrCodeRestControllerService,\n RestaurantRegistrationRestControllerForUsersService,\n RestaurantRestControllerService,\n RestaurantTaxRuleMapRestControllerService,\n RestaurantUsersRestControllerService,\n SmartdineImageRestControllerService,\n StatisticsRestControllerService,\n TaxRuleRestControllerService,\n UserGroupMapRestControllerService,\n UserRestControllerService,\n RestaurantCurrencyService,\n RedirectUserService,\n GooglePlacesService,\n RestaurantRegistrationForAdminService\n ]\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { InventoryMasterModel } from '../model/inventoryMasterModel';\nimport { SmartDineResponseInventoryMasterModel } from '../model/smartDineResponseInventoryMasterModel';\nimport { SmartDineResponseListInventoryMasterModel } from '../model/smartDineResponseListInventoryMasterModel';\nimport { SortByParam } from '../model/sortByParam';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class InventoryMasterControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createInventoryMaster(body: InventoryMasterModel, restaurantId: string, restaurantBranchId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public createInventoryMaster(body: InventoryMasterModel, restaurantId: string, restaurantBranchId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public createInventoryMaster(body: InventoryMasterModel, restaurantId: string, restaurantBranchId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public createInventoryMaster(body: InventoryMasterModel, restaurantId: string, restaurantBranchId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createInventoryMaster.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling createInventoryMaster.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling createInventoryMaster.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/inventorymasters`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteInventoryMaster(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public deleteInventoryMaster(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public deleteInventoryMaster(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public deleteInventoryMaster(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling deleteInventoryMaster.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling deleteInventoryMaster.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling deleteInventoryMaster.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('delete',`${this.basePath}/api/admin/inventorymasters/${encodeURIComponent(String(inventoryMasterId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInventoryMaster(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getInventoryMaster(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getInventoryMaster(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getInventoryMaster(restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getInventoryMaster.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getInventoryMaster.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling getInventoryMaster.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/inventorymasters/${encodeURIComponent(String(inventoryMasterId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param pageNo \n * @param pageSize \n * @param sortByParams \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInventoryMasters(restaurantId: string, restaurantBranchId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'body', reportProgress?: boolean): Observable;\n public getInventoryMasters(restaurantId: string, restaurantBranchId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'response', reportProgress?: boolean): Observable>;\n public getInventoryMasters(restaurantId: string, restaurantBranchId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe?: 'events', reportProgress?: boolean): Observable>;\n public getInventoryMasters(restaurantId: string, restaurantBranchId: string, pageNo?: number, pageSize?: number, sortByParams?: Array, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling getInventoryMasters.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling getInventoryMasters.');\n }\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (pageSize !== undefined && pageSize !== null) {\n queryParameters = queryParameters.set('pageSize', pageSize);\n }\n if (sortByParams) {\n sortByParams.forEach((element) => {\n queryParameters = queryParameters.append('sortByParams', element);\n })\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/inventorymasters`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param restaurantId \n * @param restaurantBranchId \n * @param inventoryMasterId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateInventoryMaster(body: InventoryMasterModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateInventoryMaster(body: InventoryMasterModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateInventoryMaster(body: InventoryMasterModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateInventoryMaster(body: InventoryMasterModel, restaurantId: string, restaurantBranchId: string, inventoryMasterId: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateInventoryMaster.');\n }\n\n if (restaurantId === null || restaurantId === undefined) {\n throw new Error('Required parameter restaurantId was null or undefined when calling updateInventoryMaster.');\n }\n\n if (restaurantBranchId === null || restaurantBranchId === undefined) {\n throw new Error('Required parameter restaurantBranchId was null or undefined when calling updateInventoryMaster.');\n }\n\n if (inventoryMasterId === null || inventoryMasterId === undefined) {\n throw new Error('Required parameter inventoryMasterId was null or undefined when calling updateInventoryMaster.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/inventorymasters/${encodeURIComponent(String(inventoryMasterId))}`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ReportHeaderCell { \n propName?: string;\n i18nKey?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface RazorPayPrefill { \n name?: string;\n email?: string;\n contact?: string;\n}","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface UserGroupMapEntity { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n userGroupMapId?: string;\n userId?: string;\n groupId?: string;\n active?: boolean;\n}","export default \".toolbar-container ion-toolbar {\\n --background: transparent;\\n --min-height: auto;\\n}\\n.toolbar-container ion-toolbar ion-title {\\n padding: 0;\\n font-size: 28px;\\n font-weight: 500;\\n}\\n.toolbar-container ion-toolbar .actions {\\n margin-right: -0.5rem;\\n}\\n.toolbar-container ion-toolbar .actions > ion-button, .toolbar-container ion-toolbar .actions > app-button-group {\\n margin: 0 0.5rem;\\n}\\n:host {\\n display: block;\\n}\\nsection.menus-container.row {\\n --bs-gutter-x: 0;\\n --bs-gutter-y: 0;\\n padding: 0.5rem;\\n}\\nsection.menus-container.row > .col {\\n padding: 1rem;\\n}\\nion-card {\\n margin: 0;\\n border-radius: var(--card-border-radius, 0);\\n box-shadow: none;\\n border: 1px solid transparent;\\n box-sizing: border-box;\\n transition: border-color 0.1s ease-in-out 0.25s;\\n cursor: pointer;\\n min-width: 200px;\\n}\\nion-card:focus-within, ion-card:hover {\\n border-color: rgba(0, 0, 0, 0.13);\\n}\\nion-card:focus-within ion-card-header .actions, ion-card:hover ion-card-header .actions {\\n opacity: 1;\\n}\\nion-card .thumbnail {\\n height: 100px;\\n max-height: 100px;\\n overflow: hidden;\\n background-image: url(\\\"https://ionicframework.com/docs/demos/api/thumbnail/thumbnail.svg\\\");\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: cover;\\n position: relative;\\n}\\nion-card .thumbnail .indicators {\\n position: absolute;\\n right: 0.125rem;\\n top: 0.125rem;\\n}\\nion-card .thumbnail .indicators > * {\\n margin: 0.125rem;\\n padding: 0.125rem;\\n background-color: #fff;\\n border-radius: 50%;\\n}\\nion-card .thumbnail .indicators ion-icon {\\n font-size: 20px;\\n}\\nion-card ion-card-header {\\n padding: 0;\\n}\\nion-card ion-card-header .title-container {\\n margin-bottom: -18px;\\n}\\nion-card ion-card-header ion-card-title {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n}\\nion-card ion-card-header ion-card-subtitle {\\n margin-top: 4px;\\n}\\nion-card ion-card-header ion-card-subtitle > * {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 0 2px;\\n}\\nion-card ion-card-header ion-card-subtitle ion-icon {\\n vertical-align: middle;\\n}\\nion-card ion-card-header ion-card-subtitle.tags ion-icon {\\n vertical-align: text-bottom;\\n}\\nion-card ion-card-header section.actions {\\n position: absolute;\\n top: -8px;\\n right: 0;\\n opacity: 0;\\n}\\nion-card ion-card-header section.actions ion-button {\\n margin: 0;\\n}\\nion-card ion-card-header section.actions ion-button ion-icon {\\n font-size: 20px;\\n}\\nion-card ion-card-content {\\n padding: 1rem 0 0;\\n}\\n.child-count {\\n color: var(--ion-color-dark);\\n font-weight: bolder;\\n}\\n.my-custom-modal-css .modal-wrapper {\\n height: 20%;\\n top: 80%;\\n position: absolute;\\n display: block;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RoZW1lL3Rvb2xiYXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL21lbnVzLmNvbXBvbmVudC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdGhlbWUvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUU7RUFDRSx5QkFBQTtFQUNBLGtCQUFBO0FDREo7QURHSTtFQUNFLFVBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNETjtBRElJO0VBQ0UscUJBQUE7QUNGTjtBRElNO0VBRUUsZ0JBQUE7QUNIUjtBQVRBO0VBQ0UsY0FBQTtBQVlGO0FBUkU7RUFDRSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQVdKO0FBVEk7RUFDRSxhQUFBO0FBV047QUFMQTtFQUNFLFNBQUE7RUFDQSwyQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsNkJBQUE7RUFDQSxzQkFBQTtFQUNBLCtDQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FBUUY7QUFMRTtFQUVFLGlDQUFBO0FBTUo7QUFKSTtFQUNFLFVBQUE7QUFNTjtBQUZFO0VBQ0UsYUF4Q2U7RUF5Q2YsaUJBekNlO0VBMENmLGdCQUFBO0VBQ0EsMEZBQUE7RUFDQSw0QkFBQTtFQUNBLGtDQUFBO0VBRUEsc0JBQUE7RUFDQSxrQkFBQTtBQUlKO0FBRkk7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxhQUFBO0FBSU47QUFGTTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0FBSVI7QUFETTtFQUNFLGVBQUE7QUFHUjtBQUVFO0VBQ0UsVUFBQTtBQUFKO0FBRUk7RUFDRSxvQkFBQTtBQUFOO0FBR0k7RUM1RUYsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FENEVGO0FBRUk7RUFDRSxlQUFBO0FBQU47QUFFTTtFQUNFLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxjQUFBO0FBQVI7QUFHTTtFQUNFLHNCQUFBO0FBRFI7QUFJTTtFQUNFLDJCQUFBO0FBRlI7QUFNSTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0FBSk47QUFNTTtFQUNFLFNBQUE7QUFKUjtBQU1RO0VBQ0UsZUFBQTtBQUpWO0FBVUU7RUFDRSxpQkFBQTtBQVJKO0FBWUE7RUFDRSw0QkFBQTtFQUNBLG1CQUFBO0FBVEY7QUFZQTtFQUNFLFdBQUE7RUFDQSxRQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0FBVEYiLCJmaWxlIjoibWVudXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi50b29sYmFyLWNvbnRhaW5lciB7XG4gIGlvbi10b29sYmFyIHtcbiAgICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIC0tbWluLWhlaWdodDogYXV0bztcbiAgXG4gICAgaW9uLXRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLS41cmVtO1xuXG4gICAgICAmPmlvbi1idXR0b24sXG4gICAgICAmPmFwcC1idXR0b24tZ3JvdXAge1xuICAgICAgICBtYXJnaW46IDAgLjVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWUvbWl4aW5zLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWUvdG9vbGJhci5zY3NzJztcblxuJG1lbnUtaWNvbi1oZWlnaHQ6IDEwMHB4O1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zZWN0aW9uLm1lbnVzLWNvbnRhaW5lciB7XG4gICYucm93IHtcbiAgICAtLWJzLWd1dHRlci14OiAwO1xuICAgIC0tYnMtZ3V0dGVyLXk6IDA7XG4gICAgcGFkZGluZzogLjVyZW07XG5cbiAgICA+LmNvbCB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG5cbmlvbi1jYXJkIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMsIDApO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xcyBlYXNlLWluLW91dCAuMjVzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIC8vIG1heC13aWR0aDogNDMxcHg7XG5cbiAgJjpmb2N1cy13aXRoaW4sXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEzKTtcblxuICAgIGlvbi1jYXJkLWhlYWRlciAuYWN0aW9ucyB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC50aHVtYm5haWwge1xuICAgIGhlaWdodDogJG1lbnUtaWNvbi1oZWlnaHQ7XG4gICAgbWF4LWhlaWdodDogJG1lbnUtaWNvbi1oZWlnaHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tL2RvY3MvZGVtb3MvYXBpL3RodW1ibmFpbC90aHVtYm5haWwuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5pbmRpY2F0b3JzIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAuMTI1cmVtO1xuICAgICAgdG9wOiAuMTI1cmVtO1xuXG4gICAgICA+KiB7XG4gICAgICAgIG1hcmdpbjogLjEyNXJlbTtcbiAgICAgICAgcGFkZGluZzogLjEyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpb24tY2FyZC1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAudGl0bGUtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xOHB4O1xuICAgIH1cblxuICAgIGlvbi1jYXJkLXRpdGxlIHtcbiAgICAgIEBpbmNsdWRlIHRleHQtZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgaW9uLWNhcmQtc3VidGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogNHB4O1xuXG4gICAgICA+KiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICB9XG5cbiAgICAgIGlvbi1pY29uIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgJi50YWdzIGlvbi1pY29uIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlY3Rpb24uYWN0aW9ucyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC04cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgIGlvbi1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlvbi1jYXJkLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDFyZW0gMCAwO1xuICB9XG59XG5cbi5jaGlsZC1jb3VudCB7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi5teS1jdXN0b20tbW9kYWwtY3NzIC5tb2RhbC13cmFwcGVyIHtcbiAgaGVpZ2h0OiAyMCU7XG4gIHRvcDogODAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiXG5AbWl4aW4gdGV4dC1lbGxpcHNpcyB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uLCAkdG9wOiBudWxsLCAkcmlnaHQ6IG51bGwsICRib3R0b206IG51bGwsICRsZWZ0OiBudWxsKSB7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gIHRvcDogJHRvcDtcbiAgcmlnaHQ6ICRyaWdodDtcbiAgYm90dG9tOiAkYm90dG9tO1xuICBsZWZ0OiAkbGVmdDtcbn1cblxuQG1peGluIHBvc2l0aW9uLWFic29sdXRlKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAkYXJncy4uLik7XG59Il19 */\";","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { Device } from '@ionic-native/device/ngx';\n\nimport { ModalController, ToastController } from '@ionic/angular';\nimport { CartService } from 'src/app/common/services/cart/cart.service';\nimport { AuthService } from '../../../core/services/auth/auth.service';\nimport { CognitoUserSession } from 'amazon-cognito-identity-js';\nimport { BarcodeScanner } from '@capacitor-community/barcode-scanner';\nimport { QrScannerService, QrSNotification } from '../../services/qr-scanner/qr-scanner.service';\nimport { ModalService } from '../../services/modal/modal.service';\n\n@Component({\n selector: 'app-qr-scanner',\n templateUrl: './qr-scanner.component.html',\n styleUrls: ['./qr-scanner.component.scss'],\n})\nexport class QrScannerComponent implements OnInit, OnDestroy {\n\n public static readonly id = 'qr-scanner-modal';\n mobileView = false;\n scannerEnabled = false;\n\n public restaurantId: string | null = null;\n public restaurantBranchId: string | null = null;\n public tableId: string | null = null;\n\n constructor(private zone: NgZone,\n private device: Device,\n private authService: AuthService,\n private modalController: ModalController, \n private cartService: CartService, \n private toastController: ToastController, private router: Router,\n private qrScannerService: QrScannerService,\n public modalService: ModalService,\n ) { \n }\n \n public onCloseClick() {\n this.modalController.dismiss({ value: '' }, 'close', QrScannerComponent.id);\n }\n\n public ngOnInit(): void {\n /**\n * @description Allowing only for devices not for browsers.\n * For Information, for browsers the value is null.\n */\n if (this.device.platform) {\n\n this.startScanning();\n this.scannerEnabled = false;\n this.mobileView = true;\n } else {\n\n this.scannerEnabled = true;\n this.mobileView = false;\n }\n }\n\n public ngOnDestroy(): void {\n \n this.stopScanning();\n }\n\n private async stopScanning() {\n (window.document.querySelector('ion-app') as HTMLElement).classList.remove('camera-view');\n if (this.mobileView) {\n BarcodeScanner.showBackground();\n BarcodeScanner.stopScan();\n } \n }\n\n private async startScanning() {\n\n (window.document.querySelector('ion-app') as HTMLElement).classList.add('camera-view');\n \n \n // check or request permission\n const status = await BarcodeScanner.checkPermission({ force: true });\n if (status.granted) {\n // the user granted permission\n BarcodeScanner.hideBackground(); // make background of WebView transparent\n \n const result = await BarcodeScanner.startScan(); // start scanning and wait for a result\n \n // if the result has content\n if (result.hasContent) {\n console.log(result.content); // log the raw scanned content\n this.scanSuccessHandler(result.content);\n }\n } else {\n return false;\n }\n }\n\n public scanSuccessHandler(qrCode: any) {\n this.scannerEnabled = false;\n\n const params = this.extractQueryParamsFromUrl(qrCode);\n \n if (params) {\n this.restaurantId = params.restaurantId;\n this.restaurantBranchId = params.restaurantBranchId;\n this.tableId = params.tableId; \n this.forwardToMenuPage();\n } else {\n console.error('Invalid QR Code format.');\n }\n }\n \n private extractQueryParamsFromUrl(url: string): any {\n try {\n const queryParams = url.split('?')[1];\n if (queryParams) {\n const params = queryParams.split('&');\n const result: any = {};\n\n for (const param of params) {\n const [key, value] = param.split('=');\n result[key] = value;\n }\n\n return result;\n }\n \n return null;\n } catch (error) {\n console.error('Error extracting query parameters:', error);\n return null;\n }\n }\n\n private forwardToMenuPage() {\n const extras: NavigationExtras = {\n queryParams: {\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n tableId: this.tableId,\n }\n };\n this.zone.run(() => {\n this.router.navigate(['/customer/catalog'], extras).then(() => {\n this.cartService.init(); // calling after navigation is completed..\n this.modalController.dismiss({ value: extras.queryParams }, 'close-complete', QrScannerComponent.id);\n });\n });\n\n }\n\n private async showToast(message: string) {\n const toast = await this.toastController.create({\n message,\n duration: 2000\n });\n toast.present();\n }\n\n}\n","export default \":host {\\n display: block;\\n}\\n\\nion-content {\\n --offset-bottom: -57px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21lbnUtc2VsZWN0aW9uLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBQTtBQUNGOztBQUVBO0VBQ0UsaUNBQUE7QUFDRiIsImZpbGUiOiJtZW51LXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmlvbi1jb250ZW50IHtcbiAgLS1vZmZzZXQtYm90dG9tOiAtNTdweCAhaW1wb3J0YW50O1xufSJdfQ== */\";","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'removeUnderScoreAndCaptitalize'\n})\nexport class RemoveUnderScoreAndCaptitalizePipe implements PipeTransform {\n\n transform(value: string): string {\n if (!value) {\n return value;\n }\n\n return value\n .toLowerCase()\n .split('_')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n }\n\n}\n","export * from './cartRestControllerForAdmins.service';\nimport { CartRestControllerForAdminsService } from './cartRestControllerForAdmins.service';\nexport * from './cartRestControllerForUsers.service';\nimport { CartRestControllerForUsersService } from './cartRestControllerForUsers.service';\nexport * from './categoryProductMapRestController.service';\nimport { CategoryProductMapRestControllerService } from './categoryProductMapRestController.service';\nexport * from './categoryRestControllerForAdmin.service';\nimport { CategoryRestControllerForAdminService } from './categoryRestControllerForAdmin.service';\nexport * from './commonRestControllerForUsers.service';\nimport { CommonRestControllerForUsersService } from './commonRestControllerForUsers.service';\nexport * from './domainConfigRestController.service';\nimport { DomainConfigRestControllerService } from './domainConfigRestController.service';\nexport * from './domainConfigRestControllerForCommon.service';\nimport { DomainConfigRestControllerForCommonService } from './domainConfigRestControllerForCommon.service';\nexport * from './groupRestController.service';\nimport { GroupRestControllerService } from './groupRestController.service';\nexport * from './inventoryAlertController.service';\nimport { InventoryAlertControllerService } from './inventoryAlertController.service';\nexport * from './inventoryEntryController.service';\nimport { InventoryEntryControllerService } from './inventoryEntryController.service';\nexport * from './inventoryMasterController.service';\nimport { InventoryMasterControllerService } from './inventoryMasterController.service';\nexport * from './kitchenOrderRestController.service';\nimport { KitchenOrderRestControllerService } from './kitchenOrderRestController.service';\nexport * from './menuItemMapPriceRestController.service';\nimport { MenuItemMapPriceRestControllerService } from './menuItemMapPriceRestController.service';\nexport * from './menuItemMapRestController.service';\nimport { MenuItemMapRestControllerService } from './menuItemMapRestController.service';\nexport * from './menuItemMapStockRestController.service';\nimport { MenuItemMapStockRestControllerService } from './menuItemMapStockRestController.service';\nexport * from './menuItemRestController.service';\nimport { MenuItemRestControllerService } from './menuItemRestController.service';\nexport * from './menuRestController.service';\nimport { MenuRestControllerService } from './menuRestController.service';\nexport * from './menuUsersRestController.service';\nimport { MenuUsersRestControllerService } from './menuUsersRestController.service';\nexport * from './offerMappingRestController.service';\nimport { OfferMappingRestControllerService } from './offerMappingRestController.service';\nexport * from './offerRestControllerForUsers.service';\nimport { OfferRestControllerForUsersService } from './offerRestControllerForUsers.service';\nexport * from './offerRuleRestController.service';\nimport { OfferRuleRestControllerService } from './offerRuleRestController.service';\nexport * from './orderRestController.service';\nimport { OrderRestControllerService } from './orderRestController.service';\nexport * from './orderRestControllerForUsers.service';\nimport { OrderRestControllerForUsersService } from './orderRestControllerForUsers.service';\nexport * from './parentOrderRestController.service';\nimport { ParentOrderRestControllerService } from './parentOrderRestController.service';\nexport * from './paymentOptionRestController.service';\nimport { PaymentOptionRestControllerService } from './paymentOptionRestController.service';\nexport * from './paymentOptionRestControllerForUsers.service';\nimport { PaymentOptionRestControllerForUsersService } from './paymentOptionRestControllerForUsers.service';\nexport * from './paymentControllerForUsers.service';\nimport { PaymentControllerForUsersService } from './paymentControllerForUsers.service';\nexport * from './paymentControllerForAdmin.service';\nimport { PaymentControllerForAdminService } from './paymentControllerForAdmin.service';\nexport * from './productRestControllerForAdmin.service';\nimport { ProductRestControllerForAdminService } from './productRestControllerForAdmin.service';\nexport * from './profileRestControllerForUsers.service';\nimport { ProfileRestControllerForUsersService } from './profileRestControllerForUsers.service';\nexport * from './razorPayWebhookController.service';\nimport { RazorPayWebhookControllerService } from './razorPayWebhookController.service';\nexport * from './reportsRestControllerForAdmin.service';\nimport { ReportsRestControllerForAdminService } from './reportsRestControllerForAdmin.service';\nexport * from './restaurantBranchRestController.service';\nimport { RestaurantBranchRestControllerService } from './restaurantBranchRestController.service';\nexport * from './restaurantBranchTableRestController.service';\nimport { RestaurantBranchTableRestControllerService } from './restaurantBranchTableRestController.service';\nexport * from './restaurantContactRestController.service';\nimport { RestaurantContactRestControllerService } from './restaurantContactRestController.service';\nexport * from './restaurantGroupMapRestController.service';\nimport { RestaurantGroupMapRestControllerService } from './restaurantGroupMapRestController.service';\nexport * from './restaurantQrCodeRestController.service';\nimport { RestaurantQrCodeRestControllerService } from './restaurantQrCodeRestController.service';\nexport * from './restaurantRegistrationRestControllerForUsers.service';\nimport { RestaurantRegistrationRestControllerForUsersService } from './restaurantRegistrationRestControllerForUsers.service';\nexport * from './restaurantRestController.service';\nimport { RestaurantRestControllerService } from './restaurantRestController.service';\nexport * from './restaurantTaxRuleMapRestController.service';\nimport { RestaurantTaxRuleMapRestControllerService } from './restaurantTaxRuleMapRestController.service';\nexport * from './restaurantUsersRestController.service';\nimport { RestaurantUsersRestControllerService } from './restaurantUsersRestController.service';\nexport * from './smartdineImageRestController.service';\nimport { SmartdineImageRestControllerService } from './smartdineImageRestController.service';\nexport * from './statisticsRestController.service';\nimport { StatisticsRestControllerService } from './statisticsRestController.service';\nexport * from './taxRuleRestController.service';\nimport { TaxRuleRestControllerService } from './taxRuleRestController.service';\nexport * from './userGroupMapRestController.service';\nimport { UserGroupMapRestControllerService } from './userGroupMapRestController.service';\nexport * from './userRestController.service';\nimport { UserRestControllerService } from './userRestController.service';\nexport * from './restaurantCurrency.service';\nimport {RestaurantCurrencyService } from './restaurantCurrency.service';\nexport * from './redirectUser.service';\nimport { RedirectUserService } from './redirectUser.service';\n\nexport const APIS = [\n CartRestControllerForAdminsService,\n CartRestControllerForUsersService,\n CategoryProductMapRestControllerService,\n CategoryRestControllerForAdminService,\n CommonRestControllerForUsersService,\n DomainConfigRestControllerService,\n DomainConfigRestControllerForCommonService,\n GroupRestControllerService,\n InventoryAlertControllerService,\n InventoryEntryControllerService,\n InventoryMasterControllerService,\n KitchenOrderRestControllerService,\n MenuItemMapPriceRestControllerService,\n MenuItemMapRestControllerService,\n MenuItemMapStockRestControllerService,\n MenuItemRestControllerService,\n MenuRestControllerService,\n MenuUsersRestControllerService,\n OfferMappingRestControllerService,\n OfferRestControllerForUsersService,\n OfferRuleRestControllerService,\n OrderRestControllerService,\n OrderRestControllerForUsersService,\n ParentOrderRestControllerService,\n PaymentOptionRestControllerService,\n PaymentOptionRestControllerForUsersService,\n PaymentControllerForUsersService,\n PaymentControllerForAdminService,\n ProductRestControllerForAdminService,\n ProfileRestControllerForUsersService,\n RazorPayWebhookControllerService,\n ReportsRestControllerForAdminService,\n RestaurantBranchRestControllerService,\n RestaurantBranchTableRestControllerService,\n RestaurantContactRestControllerService,\n RestaurantGroupMapRestControllerService,\n RestaurantQrCodeRestControllerService,\n RestaurantRegistrationRestControllerForUsersService,\n RestaurantRestControllerService,\n RestaurantTaxRuleMapRestControllerService,\n RestaurantUsersRestControllerService,\n SmartdineImageRestControllerService,\n StatisticsRestControllerService,\n TaxRuleRestControllerService,\n UserGroupMapRestControllerService,\n UserRestControllerService,\n RestaurantCurrencyService,\n RedirectUserService,\n];\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface RestaurantContactModel { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n contactId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n name?: string;\n emailIds?: Array;\n phoneNumbers?: Array;\n}","import { Component, OnInit } from '@angular/core';\nimport { MessageService } from 'src/app/common/services/message/message.service';\nimport { QrScannerService, QrSNotification } from 'src/app/common/services/qr-scanner/qr-scanner.service';\nimport { QrScannerComponent } from 'src/app/common/components/qr-scanner/qr-scanner.component';\nimport { ModalController } from '@ionic/angular';\nimport { ModalService } from 'src/app/common/services/modal/modal.service';\nimport { CartService } from 'src/app/common/services/cart/cart.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.page.html',\n styleUrls: ['./home.page.scss'],\n})\nexport class HomePage implements OnInit {\n\n constructor(private qrScannerService: QrScannerService, \n private modalController: ModalController, \n private cartService: CartService,\n public modalService: ModalService,\n private router: Router,\n ) { }\n\n ngOnInit() {\n this.registerForQrNotifications();\n }\n\n public onScanClick() {\n this.qrScannerService.notify({ action: 'open-scanner' });\n }\n\n private registerForQrNotifications() {\n this.qrScannerService.getNotifications().subscribe({\n next: (notification: QrSNotification) => {\n if (notification.action === 'open-scanner') {\n this.showQrScannerPopup();\n }\n }\n });\n }\n\n private async showQrScannerPopup() {\n const modal = await this.modalController.create({\n id: QrScannerComponent.id,\n component: QrScannerComponent,\n });\n this.modalService.changeCurrentModalId(QrScannerComponent.id);\n modal.onDidDismiss().then((res) => {\n this.modalService.changeCurrentModalId(null);\n const qrCode = res?.data?.value || '';\n });\n await modal.present();\n }\n \n public navigateToHome(){\n this.router.navigateByUrl('/customer/home', {state:{value:true}});\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzaGFyZW9wdGlvbnMuY29tcG9uZW50LnNjc3MifQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJmb290ZXIuY29tcG9uZW50LnNjc3MifQ== */\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface InventoryEntryModel { \n creator?: string;\n modifier?: string;\n createdAt?: Date;\n modifiedAt?: Date;\n inventoryEntryId?: string;\n inventoryMasterId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n productId?: string;\n quantity?: number;\n measurementUnit?: InventoryEntryModel.MeasurementUnitEnum;\n inventoryEntryType?: InventoryEntryModel.InventoryEntryTypeEnum;\n inventoryEntryReasonCode?: InventoryEntryModel.InventoryEntryReasonCodeEnum;\n}\nexport namespace InventoryEntryModel {\n export type MeasurementUnitEnum = 'MILLI_LITERS' | 'LITERS' | 'KILO_LITERS' | 'PINT' | 'GALLON' | 'MILLI_GRAMS' | 'GRAMS' | 'KILO_GRAMS' | 'TONNE' | 'SMALL' | 'LARGE' | 'HALF' | 'FULL';\n export const MeasurementUnitEnum = {\n MILLILITERS: 'MILLI_LITERS' as MeasurementUnitEnum,\n LITERS: 'LITERS' as MeasurementUnitEnum,\n KILOLITERS: 'KILO_LITERS' as MeasurementUnitEnum,\n PINT: 'PINT' as MeasurementUnitEnum,\n GALLON: 'GALLON' as MeasurementUnitEnum,\n MILLIGRAMS: 'MILLI_GRAMS' as MeasurementUnitEnum,\n GRAMS: 'GRAMS' as MeasurementUnitEnum,\n KILOGRAMS: 'KILO_GRAMS' as MeasurementUnitEnum,\n TONNE: 'TONNE' as MeasurementUnitEnum,\n SMALL: 'SMALL' as MeasurementUnitEnum,\n LARGE: 'LARGE' as MeasurementUnitEnum,\n HALF: 'HALF' as MeasurementUnitEnum,\n FULL: 'FULL' as MeasurementUnitEnum\n };\n export type InventoryEntryTypeEnum = 'ADD' | 'REMOVE';\n export const InventoryEntryTypeEnum = {\n ADD: 'ADD' as InventoryEntryTypeEnum,\n REMOVE: 'REMOVE' as InventoryEntryTypeEnum\n };\n export type InventoryEntryReasonCodeEnum = 'CONSUMED' | 'DISCARDED' | 'PROCURED';\n export const InventoryEntryReasonCodeEnum = {\n CONSUMED: 'CONSUMED' as InventoryEntryReasonCodeEnum,\n DISCARDED: 'DISCARDED' as InventoryEntryReasonCodeEnum,\n PROCURED: 'PROCURED' as InventoryEntryReasonCodeEnum\n };\n}","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.scss'],\n})\nexport class LogoComponent implements OnInit {\n\n public customIconLocation: string = null;\n\n constructor() {\n const parsedUrl = new URL(window.location.href);\n if (parsedUrl && (parsedUrl.hostname == 'dev-chariot.smartdinenow.com' || parsedUrl.hostname == 'chariot.smartdinenow.com')) {\n this.customIconLocation = 'assets/img/chariotLogo.png'\n }\n }\n\n ngOnInit() {}\n\n}\n","export default \"\\n \\n \\n \\n Scan\\n \\n\\n \\n \\n Food\\n \\n\\n \\n \\n Restaurants\\n \\n\\n \\n \\n Admin\\n \\n \\n\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface InventoryMasterModel { \n inventoryMasterId?: string;\n restaurantId?: string;\n restaurantBranchId?: string;\n productId?: string;\n categoryId?: string;\n availableQuantity?: number;\n prefMeasurementUnit?: InventoryMasterModel.PrefMeasurementUnitEnum;\n}\nexport namespace InventoryMasterModel {\n export type PrefMeasurementUnitEnum = 'MILLI_LITERS' | 'LITERS' | 'KILO_LITERS' | 'PINT' | 'GALLON' | 'MILLI_GRAMS' | 'GRAMS' | 'KILO_GRAMS' | 'TONNE' | 'SMALL' | 'LARGE' | 'HALF' | 'FULL';\n export const PrefMeasurementUnitEnum = {\n MILLILITERS: 'MILLI_LITERS' as PrefMeasurementUnitEnum,\n LITERS: 'LITERS' as PrefMeasurementUnitEnum,\n KILOLITERS: 'KILO_LITERS' as PrefMeasurementUnitEnum,\n PINT: 'PINT' as PrefMeasurementUnitEnum,\n GALLON: 'GALLON' as PrefMeasurementUnitEnum,\n MILLIGRAMS: 'MILLI_GRAMS' as PrefMeasurementUnitEnum,\n GRAMS: 'GRAMS' as PrefMeasurementUnitEnum,\n KILOGRAMS: 'KILO_GRAMS' as PrefMeasurementUnitEnum,\n TONNE: 'TONNE' as PrefMeasurementUnitEnum,\n SMALL: 'SMALL' as PrefMeasurementUnitEnum,\n LARGE: 'LARGE' as PrefMeasurementUnitEnum,\n HALF: 'HALF' as PrefMeasurementUnitEnum,\n FULL: 'FULL' as PrefMeasurementUnitEnum\n };\n}","import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\nimport { UserProfilePage } from './core/pages/user-profile/user-profile.page';\nimport { HomeComponent } from './core/components/home/home.component';\nimport { Role } from './common/enums/role.enum';\nimport { RoleGuard } from './core/guards/role/role.guard';\nimport { LoginPage } from './core/pages/login/login.page';\nimport { SignUpPage } from './core/pages/sign-up/sign-up.page';\nimport { PasswordRecoveryPage } from './core/pages/password-recovery/password-recovery.page';\nimport { PrivacyPage } from './core/pages/privacy/privacy.page';\nimport { HomePage } from './core/pages/home/home.page';\nimport { UserSettingsPage } from './core/pages/user-settings/user-settings.page';\n\n\n/**\n * Public routes which do not need session/login.\n */\nexport const publicRoutes: Routes = [\n {\n path: 'login',\n component: LoginPage\n },\n {\n path: 'sign-up',\n component: SignUpPage\n },\n {\n path: 'password-recovery',\n component: PasswordRecoveryPage,\n },\n {\n path: 'privacy',\n component: PrivacyPage,\n },\n {\n path: 'home',\n component: HomePage\n }\n];\n\nconst routes: Routes = [\n {\n path: '',\n component:HomePage\n },\n { \n path: 'customer', \n component: HomeComponent,\n loadChildren: () => import('./customer/customer.module').then(m => m.CustomerModule)\n },\n {\n path: 'admin',\n component: HomeComponent,\n data: { expectedRole: Role.ADMINS },\n canActivate: [RoleGuard],\n loadChildren: () => import('./admin/admin.module').then(m => m.AdminPageModule)\n },\n {\n path: 'resto-admin', \n component: HomeComponent,\n data: { expectedRole: Role.RESTO_ADMINS },\n canActivate: [RoleGuard],\n loadChildren: () => import('./resto-admin/resto-admin.module').then(m => m.RestoAdminModule)\n }, \n // {\n // path: 'user-profile',\n // component: UserProfilePage,\n // },\n {\n path: 'user-settings',\n component: UserSettingsPage,\n },\n ...publicRoutes,\n\n];\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\n// import { RestaurantFilter } from '../model/restaurantFilter';\nimport { RestaurantAdminModel } from '../model/restaurantAdminModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport { SmartDineResponseRestaurantForAdmin } from '../model/smartDineResponseRestaurantForAdmin';\n\n@Injectable()\nexport class RestaurantRegistrationForAdminService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * \n * @param body Restaurant Registration Model\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createRestaurant(body: RestaurantAdminModel, observe?: 'body', reportProgress?: boolean): Observable;\n public createRestaurant(body: RestaurantAdminModel, observe?: 'response', reportProgress?: boolean): Observable;\n public createRestaurant(body: RestaurantAdminModel, observe?: 'events', reportProgress?: boolean): Observable>;\n public createRestaurant(body: RestaurantAdminModel, observe: any = 'body', reportProgress: boolean = false): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling createRestaurant.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post', `${this.basePath}/api/admin/restaurantregistration`, {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n });\n }\n \n}\n","export default \"\\n \\n \\n Close\\n \\n \\n\\n\\n\\n \\n \\n \\n All\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n\\n\\n\\n \\n All\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\";","import { QuantityChangeEvent } from './../quantity-selector/quantity-selector.component';\nimport { Router } from '@angular/router';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport {\n MenuItemEntity,\n MenuItemMapEntity,\n MenuItemMapPriceRestControllerService,\n MenuItemMapStockRestControllerService,\n MenuItemMapRestControllerService,\n MenuRestControllerService,\n SmartDineResponseMenuItemMapEntity,\n MenuItemMapPriceEntity,\n MenuItemMapStockEntity,\n SmartDineResponseMenuItemMapPriceEntity,\n SmartDineResponseMenuItemMapStockEntity,\n MenuUsersRestControllerService,\n SmartDineResponseMenuItemMapModel,\n CartItemModel\n} from 'src/app/swagger';\nimport { SdEvent } from '../../interfaces/event';\nimport { ItemSelectionComponent } from '../item-selection/item-selection.component';\nimport { ItemPriceSelecionComponent } from '../item-price-selecion/item-price-selecion.component';\nimport { CartService } from '../../services/cart/cart.service';\nimport * as moment from 'moment';\n\nexport interface MenuItemMapping extends MenuItemMapEntity {\n priceDetails?: MenuItemMapPriceEntity | null;\n stockDetails?: MenuItemMapStockEntity | null;\n cartItem?: CartItemModel | null;\n}\n@Component({\n selector: 'app-sd-menu-item-mappings',\n templateUrl: './menu-item-mappings.component.html',\n styleUrls: ['./menu-item-mappings.component.scss'],\n})\n\nexport class MenuItemMappingsComponent implements OnInit {\n\n\n @Input()\n public menuId: string | null = null;\n\n @Input()\n public restaurantId: string | null = null;\n\n @Input()\n public restaurantBranchId: string | null = null;\n\n @Input()\n public tableId: string | null = null;\n\n @Input()\n public menuItemMappings: MenuItemMapping[] = [];\n\n @Input() enableToolbar = true;\n\n public forCustomer = false;\n\n @Output() sdChange = new EventEmitter();\n public priceHistory = [];\n\n constructor(\n private router: Router,\n private menuItemMapRestControllerService: MenuItemMapRestControllerService,\n private menuItemMapPriceRestControllerService: MenuItemMapPriceRestControllerService,\n private menuItemMapStockRestControllerService: MenuItemMapStockRestControllerService,\n private menuUsersRestControllerService: MenuUsersRestControllerService,\n private modalController: ModalController,\n private cartService: CartService,\n ) {\n const currentUrl = this.router.routerState.snapshot.url;\n this.forCustomer = currentUrl.startsWith('/customer');\n }\n\n ngOnInit() {\n this.init();\n }\n\n public onAddItemClick() {\n this.showItemSelectionPopup();\n }\n\n public onPriceEditClick(_event: MouseEvent, item: MenuItemMapping, priceFlag: 'price' | 'stock') {\n if (this.forCustomer) { return; }\n this.showPricePopup(item, priceFlag);\n }\n\n public onRemoveClick(event: MouseEvent, mapping: MenuItemMapEntity, index: number) {\n this.menuItemMapRestControllerService.deleteMenuItemMap(\n mapping.menuItemMapId, this.restaurantId, this.restaurantBranchId\n ).subscribe({\n next: (_: SmartDineResponseMenuItemMapEntity) => {\n this.menuItemMappings.splice(index, 1);\n this.sdChange.emit({ items: this.menuItemMappings });\n },\n error: (err) => {\n console.error('Unable to remove menu item mapping!', err);\n }\n });\n }\n\n public onQuantityChange(event: QuantityChangeEvent, item: MenuItemMapping) {\n const cartItem = item.cartItem;\n const quantity = event.value;\n cartItem.quantity = quantity;\n cartItem.price = cartItem.unitPrice * quantity;\n if (quantity === 0) {\n this.cartService.removeItem(cartItem);\n } else {\n this.cartService.setItem(cartItem);\n }\n }\n\n public init() {\n if (this.forCustomer) {\n this.setMenuItemMappingsForCustomer();\n } else {\n this.setMenuItemMappings();\n }\n }\n\n private setMenuItemMappings() {\n this.menuItemMappings = [];\n this.sdChange.emit({ items: this.menuItemMappings });\n this.menuItemMapRestControllerService.getMenuItemMaps1(this.menuId, this.restaurantId, this.restaurantBranchId).subscribe({\n next: (res: SmartDineResponseMenuItemMapEntity) => {\n this.menuItemMappings = res.items;\n this.sdChange.emit({ items: this.menuItemMappings });\n if (this.restaurantBranchId) {\n this.menuItemMappings.forEach((menuItemMap) => {\n this.setMenuItemMapPrices(menuItemMap);\n this.setMenuItemMapStocks(menuItemMap);\n });\n }\n },\n error: (err) => {\n console.error('Unable to get menu items!', err);\n }\n });\n }\n\n private setMenuItemMappingsForCustomer() {\n this.menuItemMappings = [];\n this.sdChange.emit({ items: this.menuItemMappings });\n this.menuUsersRestControllerService.getMenuItemMaps(this.restaurantId, this.restaurantBranchId, this.menuId).subscribe({\n next: (res: SmartDineResponseMenuItemMapModel) => {\n this.menuItemMappings = res.items.map((each) => {\n return {\n itemId: each.itemId,\n menuId: each.menuId,\n menuItemMapId: each.menuItemMapId,\n restaurantId: each.restaurantId,\n restaurantBranchId: each.restaurantBranchId,\n menuItemEntity: each.menuItemModel,\n priceDetails: {\n price: each.price,\n fromDate: each.orderableFromTime,\n active: true, // TODO: each.orderable,\n message: each.message,\n },\n cartItem: null,\n } as MenuItemMapping;\n });\n\n this.menuItemMappings.forEach((each) => {\n this.setMenuItemCartInfo(each);\n });\n\n this.sdChange.emit({ items: this.menuItemMappings });\n },\n error: (err) => {\n console.error('Unable to get menu mappings!', err);\n }\n });\n\n // Updating the menu item mapping cart info in case of value changes in cart service..\n this.cartService.getItems().subscribe({\n next: () => {\n this.menuItemMappings.forEach((each) => {\n this.setMenuItemCartInfo(each);\n });\n }\n });\n }\n\n private setMenuItemMapPrices(menuItemMap: MenuItemMapping) {\n this.menuItemMapPriceRestControllerService.getMenuItemMapPrices(\n this.restaurantId, this.restaurantBranchId, menuItemMap.menuItemMapId\n ).subscribe({\n next: (res: SmartDineResponseMenuItemMapPriceEntity) => {\n \n let priceHistory = {'menuItemId':menuItemMap.menuItemMapId,'priceHistory':res.items};\n this.priceHistory.push(priceHistory);\n const activePriceDetails = res.items?.find((each) => {\n if (!each.active) { return false; }\n const fromTime = new Date(each.fromDate).getTime();\n const toTime = new Date(each.toDate).getTime();\n const currentTime = new Date().getTime();\n return (currentTime >= fromTime && currentTime <= toTime);\n });\n menuItemMap.priceDetails = activePriceDetails || null;\n },\n error: (err) => {\n console.error('Unable to get prices!', err);\n }\n });\n }\n\n private setMenuItemMapStocks(menuItemMap: MenuItemMapping) {\n this.menuItemMapStockRestControllerService.getMenuItemMapStocks(\n this.restaurantId, this.restaurantBranchId, menuItemMap.menuItemMapId, new Date()\n ).subscribe({\n next: (res: SmartDineResponseMenuItemMapStockEntity) => {\n menuItemMap.stockDetails = res.items[res.items.length - 1] || null;\n },\n error: (err) => {\n console.error('Unable to get price!', err);\n }\n });\n }\n\n private setMenuItemCartInfo(menuItemMap: MenuItemMapping) {\n let cartItem = this.cartService.getItem(menuItemMap.menuItemMapId);\n if (!cartItem) {\n cartItem = {\n itemId: menuItemMap.itemId,\n menuItemMapId: menuItemMap.menuItemMapId,\n menuItemType: CartItemModel.MenuItemTypeEnum.FOOD,\n unitPrice: menuItemMap.priceDetails.price,\n quantity: 0,\n price: 0,\n itemName: menuItemMap.menuItemEntity.name,\n itemDescription: menuItemMap.menuItemEntity.description,\n } as CartItemModel;\n }\n\n menuItemMap.cartItem = cartItem;\n }\n\n public async showItemSelectionPopup() {\n const modal = await this.modalController.create({\n id: ItemSelectionComponent.id,\n component: ItemSelectionComponent,\n componentProps: {\n menuId: this.menuId, // Of which menu the items are getting selected..\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n selectedItemMaps: this.menuItemMappings,\n }\n });\n modal.onDidDismiss().then((res) => {\n if (!res || !res.data) { return; }\n let mappings = [];\n if (res.data.createdMappings) {\n mappings = this.menuItemMappings.concat(res.data.createdMappings);\n }\n\n const deletedMappings = res.data.deletedMappings as MenuItemMapEntity[];\n if (deletedMappings) {\n const deletedMappingIds = deletedMappings.map(e => e.menuItemMapId);\n mappings = mappings.filter((mapping) => !deletedMappingIds.includes(mapping.menuItemMapId));\n }\n\n this.menuItemMappings = mappings;\n this.sdChange.emit({ items: this.menuItemMappings });\n });\n await modal.present();\n }\n\n public async showPricePopup(menuItemMapping: MenuItemMapping, priceFlag: 'price' | 'stock') {\n const modal = await this.modalController.create({\n id: ItemPriceSelecionComponent.id,\n component: ItemPriceSelecionComponent,\n componentProps: {\n restaurantId: this.restaurantId,\n restaurantBranchId: this.restaurantBranchId,\n priceHistory: this.priceHistory,\n menuItemMapping,\n priceFlag,\n }\n });\n modal.onDidDismiss().then((res) => {\n const value = res?.data?.value;\n if (!value) { return; }\n if (priceFlag === 'price') {\n menuItemMapping.priceDetails = value;\n } else {\n menuItemMapping.stockDetails = value;\n }\n });\n await modal.present();\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.scss'],\n})\nexport class ButtonGroupComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SmartDineResponseKitchenOrderModel } from '../model/smartDineResponseKitchenOrderModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class KitchenOrderRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param statusList \n * @param fromDate \n * @param toDate \n * @param locale \n * @param pageNo \n * @param rows \n * @param sortByFields \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrdersForKitchenDisplay(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'body', reportProgress?: boolean): Observable;\n public getOrdersForKitchenDisplay(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOrdersForKitchenDisplay(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOrdersForKitchenDisplay(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n\n\n\n\n\n\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (statusList) {\n statusList.forEach((element) => {\n queryParameters = queryParameters.append('statusList', element);\n })\n }\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = queryParameters.set('fromDate', fromDate.toISOString());\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = queryParameters.set('toDate', toDate.toISOString());\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n if (sortByFields) {\n sortByFields.forEach((element) => {\n queryParameters = queryParameters.append('sortByFields', element);\n })\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/kitchen/orders`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export default \"\\n\\n \\n\\n \\n\\n \\n \\n \\n\\n \\n\\n \\n\\n \\n\\n \\n\\n \\n\\n \\\"Logo\\\"\\n SmartDine\\n\\n \\n\\n \\n \\\"Logo\\\"\\n\\n \\n\\n \\n \\n \\n \\n\\n
\\n \\\"LOGO\\\"\\n
\\n\\n
\\n \\n \\n \\n\\n
\\n\\n \\n\\n \\n \\n {{notificationCount}}\\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n Sign In\\n \\n \\n\\n Sign up\\n \\n \\n\\n \\n\\n
\\n\\n
\\n\";","export default \"
\\n\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface SortByParam { \n fieldName?: string;\n direction?: string;\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY29tcG9uZW50LnNjc3MifQ== */\";","export default \"\\n \\n \\n \\n Save\\n Close\\n \\n \\n\\n\\n\\n
\\n\\n \\n \\n\\n \\n

Restaurant Details:

\\n
\\n\\n \\n
\\n Name*\\n \\n
\\n
\\n\\n \\n
\\n Logo URL\\n \\n
\\n
\\n\\n \\n
\\n Description*\\n \\n
\\n
\\n\\n \\n
\\n FSSAI*\\n \\n
\\n
\\n\\n \\n
\\n GST ID*\\n \\n
\\n
\\n\\n \\n
\\n Restaurant Code*\\n \\n
\\n
\\n\\n \\n

Branch Details:

\\n
\\n\\n \\n
\\n Branch Code*\\n \\n
\\n
\\n\\n \\n
\\n Branch Name*\\n \\n
\\n
\\n\\n \\n
\\n Branch FSSAI*\\n \\n
\\n
\\n\\n \\n
\\n Branch GST ID*\\n \\n
\\n
\\n\\n \\n
\\n Number Of Tables*\\n \\n
\\n
\\n\\n \\n
\\n Number Of Branches*\\n \\n
\\n
\\n\\n \\n
\\n Branch Contact Email*\\n \\n
\\n
\\n\\n \\n
\\n Branch Contact Number*\\n \\n
\\n
\\n\\n \\n
\\n Branch Address*\\n \\n
\\n
\\n\\n \\n
\\n Branch Website\\n \\n
\\n
\\n\\n \\n
\\n Branch City*\\n \\n
\\n
\\n\\n \\n
\\n Country Code*\\n \\n {{ code }}\\n \\n
\\n
\\n\\n \\n
\\n Branch Country*\\n \\n {{ country }}\\n \\n
\\n
\\n\\n \\n
\\n Branch State*\\n \\n {{ state }}\\n \\n
\\n \\n
\\n Branch State*\\n \\n {{ state }}\\n \\n
\\n
\\n\\n \\n

Other Details:

\\n
\\n\\n \\n
\\n Time Zone*\\n \\n {{ time?.displayName }}\\n \\n
\\n
\\n\\n \\n
\\n Currency Code*\\n \\n {{ code }}\\n \\n
\\n
\\n\\n \\n
\\n Payment Preference*\\n \\n {{ preference|lowercase|capitalizeReplace }}\\n \\n
\\n
\\n\\n \\n
\\n Order Type*\\n \\n {{ value|lowercase|capitalizeReplace }}\\n \\n
\\n
\\n\\n \\n
\\n Status*\\n \\n {{ value|lowercase|capitalizeReplace }}\\n \\n
\\n
\\n\\n \\n
\\n Associate Admin User*\\n \\n
\\n
\\n\\n \\n
\\n Restaurant Subscription*\\n \\n
\\n
\\n \\n Basic\\n
\\n
\\n \\n Standard\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n \\n \\n Latitude: {{restaurantForm.controls.location.value.latitude}} \\n Longitude: {{restaurantForm.controls.location.value.longitude}} \\n \\n Get Location\\n
\\n
\\n \\n
\\n
\\n
\\n\\n
\";","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { OrderModel } from '../model/orderModel';\nimport { SmartDineResponseOrderModel } from '../model/smartDineResponseOrderModel';\nimport { SmartDineResponseOrderSummaryModel } from '../model/smartDineResponseOrderSummaryModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class OrderRestControllerForUsersService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n private orderListUpdatedSource = new BehaviorSubject(false);\n orderListUpdated$ = this.orderListUpdatedSource.asObservable();\n private orderIdSubject = new BehaviorSubject(null);\n\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n public notifyOrderListUpdated() {\n this.orderListUpdatedSource.next(true);\n }\n\n public setOrderId(orderId: string) {\n if (orderId === null || orderId === undefined) {\n throw new Error('Required parameter orderId was null or undefined when calling setOrderId.');\n }\n\n this.orderIdSubject.next(orderId);\n }\n \n public getOrderId() {\n return this.orderIdSubject.asObservable();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * \n * \n * @param orderId \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderDetail(orderId: string, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getOrderDetail(orderId: string, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOrderDetail(orderId: string, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOrderDetail(orderId: string, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (orderId === null || orderId === undefined) {\n throw new Error('Required parameter orderId was null or undefined when calling getOrderDetail.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/user/orders/${encodeURIComponent(String(orderId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param statusList \n * @param fromDate \n * @param toDate \n * @param locale \n * @param pageNo \n * @param rows \n * @param sortByFields \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrders(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'body', reportProgress?: boolean): Observable;\n public getOrders(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOrders(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOrders(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (statusList) {\n statusList.forEach((element) => {\n queryParameters = queryParameters.append('statusList', element);\n })\n }\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = queryParameters.set('fromDate', fromDate.toISOString());\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = queryParameters.set('toDate', toDate.toISOString());\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n if (sortByFields) {\n sortByFields.forEach((element) => {\n queryParameters = queryParameters.append('sortByFields', element);\n })\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/user/orders`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public submitOrder(body: OrderModel, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public submitOrder(body: OrderModel, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public submitOrder(body: OrderModel, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public submitOrder(body: OrderModel, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling submitOrder.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/user/orders`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n","/**\n * SmartdineNow API\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { OrderModel } from '../model/orderModel';\nimport { OrderStatusUpdateRequest } from '../model/orderStatusUpdateRequest';\nimport { SmartDineResponseOrderModel } from '../model/smartDineResponseOrderModel';\nimport { SmartDineResponseOrderStatusModel } from '../model/smartDineResponseOrderStatusModel';\nimport { SmartDineResponseOrderStatusUpdateResponse } from '../model/smartDineResponseOrderStatusUpdateResponse';\nimport { SmartDineResponseOrderSummaryModel } from '../model/smartDineResponseOrderSummaryModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable()\nexport class OrderRestControllerService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n private orderListUpdatedSource = new BehaviorSubject(false);\n public orderListUpdated$ = this.orderListUpdatedSource.asObservable();\n private orderIdSubject = new BehaviorSubject(null);\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n public notifyOrderListUpdated() {\n this.orderListUpdatedSource.next(true);\n }\n\n public setOrderId(orderId: string) {\n if (orderId === null || orderId === undefined) {\n throw new Error('Required parameter orderId was null or undefined when calling setOrderId.');\n }\n\n this.orderIdSubject.next(orderId);\n }\n \n public getOrderId() {\n return this.orderIdSubject.asObservable();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * \n * \n * @param orderId \n * @param restaurantId \n * @param restaurantBranchId \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderDetail1(orderId: string, restaurantId?: string, restaurantBranchId?: string, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getOrderDetail1(orderId: string, restaurantId?: string, restaurantBranchId?: string, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOrderDetail1(orderId: string, restaurantId?: string, restaurantBranchId?: string, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOrderDetail1(orderId: string, restaurantId?: string, restaurantBranchId?: string, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (orderId === null || orderId === undefined) {\n throw new Error('Required parameter orderId was null or undefined when calling getOrderDetail1.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/orders/${encodeURIComponent(String(orderId))}`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param orderId \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderNextStatusModel(restaurantId?: string, restaurantBranchId?: string, orderId?: string, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public getOrderNextStatusModel(restaurantId?: string, restaurantBranchId?: string, orderId?: string, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOrderNextStatusModel(restaurantId?: string, restaurantBranchId?: string, orderId?: string, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOrderNextStatusModel(restaurantId?: string, restaurantBranchId?: string, orderId?: string, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (orderId !== undefined && orderId !== null) {\n queryParameters = queryParameters.set('orderId', orderId);\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/orders/nextstatuses`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param restaurantId \n * @param restaurantBranchId \n * @param statusList \n * @param fromDate \n * @param toDate \n * @param locale \n * @param pageNo \n * @param rows \n * @param sortByFields \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrders1(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'body', reportProgress?: boolean): Observable;\n public getOrders1(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'response', reportProgress?: boolean): Observable>;\n public getOrders1(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe?: 'events', reportProgress?: boolean): Observable>;\n public getOrders1(restaurantId?: string, restaurantBranchId?: string, statusList?: Array, fromDate?: Date, toDate?: Date, locale?: string, pageNo?: number, rows?: number, sortByFields?: Array, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (restaurantId !== undefined && restaurantId !== null) {\n queryParameters = queryParameters.set('restaurantId', restaurantId);\n }\n if (restaurantBranchId !== undefined && restaurantBranchId !== null) {\n queryParameters = queryParameters.set('restaurantBranchId', restaurantBranchId);\n }\n if (statusList) {\n statusList.forEach((element) => {\n queryParameters = queryParameters.append('statusList', element);\n })\n }\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = queryParameters.set('fromDate', fromDate.toISOString());\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = queryParameters.set('toDate', toDate.toISOString());\n }\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n if (pageNo !== undefined && pageNo !== null) {\n queryParameters = queryParameters.set('pageNo', pageNo);\n }\n if (rows !== undefined && rows !== null) {\n queryParameters = queryParameters.set('rows', rows);\n }\n if (sortByFields) {\n sortByFields.forEach((element) => {\n queryParameters = queryParameters.append('sortByFields', element);\n })\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/api/admin/orders`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public submitOrder1(body: OrderModel, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public submitOrder1(body: OrderModel, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public submitOrder1(body: OrderModel, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public submitOrder1(body: OrderModel, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling submitOrder1.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('post',`${this.basePath}/api/admin/orders`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateOrder(body: OrderModel, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateOrder(body: OrderModel, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateOrder(body: OrderModel, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateOrder(body: OrderModel, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateOrder.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('put',`${this.basePath}/api/admin/orders`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * \n * @param body \n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateOrderStatus(body: OrderStatusUpdateRequest, locale?: string, observe?: 'body', reportProgress?: boolean): Observable;\n public updateOrderStatus(body: OrderStatusUpdateRequest, locale?: string, observe?: 'response', reportProgress?: boolean): Observable>;\n public updateOrderStatus(body: OrderStatusUpdateRequest, locale?: string, observe?: 'events', reportProgress?: boolean): Observable>;\n public updateOrderStatus(body: OrderStatusUpdateRequest, locale?: string, observe: any = 'body', reportProgress: boolean = false ): Observable {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling updateOrderStatus.');\n }\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (locale !== undefined && locale !== null) {\n queryParameters = queryParameters.set('locale', locale);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (bearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n '*/*'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request('patch',`${this.basePath}/api/admin/orders/updatestatus`,\n {\n body: body,\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}