{"version":3,"sources":["containers/on-hand/components/toolbar/OnHandToolbar.module.css","containers/food/delivery/components/header/DeliveryFoodHeader.module.css","containers/menus-sales/components/toolbar/MenusToolbar.module.css","containers/dps/delivery/DeliveryDps.module.css","containers/on-hand/components/group/OnHandGroup.module.css","containers/off-site/reorders/OffSiteReordersItemAlert.module.css","containers/on-hand/components/content/OnHandContent.module.css","containers/data-editor/components/content/header/add/DataEditorAdd.module.css","containers/t-shirts/stocking/TShirtsStockingItem.module.css","containers/sections/Sections.module.css","containers/on-hand/components/group/OnHandGroupReadOnly.module.css","containers/off-site/tasks/OffSiteTasksFilter.module.css","containers/t-shirts/stocking/t-shirt/selected/stocking/TShirtsStockingSelectedStocking.module.css","containers/off-site/stocking/item/OffSiteStockingItemTotal.module.css","containers/sections/init/SectionInitSelector.module.css","containers/feedback/AppFeedback.module.css","containers/off-site/delivery/item/restaurants/OffSiteDeliveryItemRestaurants.module.css","containers/off-site/reception/OffSiteReception.module.css","containers/t-shirts/stocking/t-shirt/selected/TShirtsStockingSelected.module.css","containers/t-shirts/stocking/t-shirt/selected/inventory/TShirtsStockingSelectedInventory.module.css","containers/t-shirts/on-hand/display/OnHandTShirtItem.module.css","layout/AppLayout.module.css","containers/orders/delivery/DeliveryOrders.module.css","containers/on-hand/components/status/OnHandStatus.module.css","containers/food/delivery/components/content/cells/restaurant/DeliveryFoodItemRestaurantDeliveryFixedCell.module.css","containers/off-site/on-hand/OffSiteOnHandItemHeader.module.css","components/day/AppDay.module.css","containers/sections/header/SectionHeaderSelector.module.css","containers/menus-sales/components/drop-zone/MenusSalesDropZoneWrp.module.css","containers/menus-sales/components/drop-zone/MenusSalesDropZone.module.css","containers/on-hand/components/item/OnHandItemMetaData.module.css","containers/on-hand/components/item/OnHandItemQuickInput.module.css","layout/menu/AppMenu.module.css","containers/data-editor/DataEditor.module.css","containers/food/delivery/DeliveryFood.module.css","containers/off-site/tasks/OffSiteTasks.module.css","containers/off-site/reorders/OffSiteReorders.module.css","containers/data-editor/components/content/item/cell/DataEditorCellEditWrp.module.css","containers/on-hand/OnHand.module.css","containers/on-hand/components/item/OnHandItemTab.module.css","containers/on-hand/components/item/OnHandItemClearInput.module.css","containers/off-site/delivery/item/input/OffSiteDeliveryItemInput.module.css","containers/off-site/delivery/item/OffSiteDeliveryItem.module.css","containers/off-site/stocking/item/OffSiteStockingItem.module.css","containers/off-site/stocking/item/OffSiteStockingItemInput.module.css","containers/off-site/stocking/item/OffSiteStockingItemQuickInputs.module.css","containers/off-site/stocking/item/OffSiteStockingItemClearInput.module.css","containers/off-site/on-hand/OffSiteOnHandItem.module.css","containers/t-shirts/stocking/TShirtsStockingHeader.module.css","containers/home/AppHome.module.css","layout/header/AppHeader.module.css","containers/t-shirts/stocking/TShirtsStocking.module.css","containers/on-hand/components/item/OnHandItem.module.css","containers/menus-sales/Menus.module.css","containers/feedback/AppFeedbackUtils.js","graphql/queries.ts","graphql/mutations.ts","model/ModelApi.ts","services/AppEmailService.js","components/error-handler/ErrorHandler.js","components/global-spinner/GlobalSpinnerContext.js","components/day/AppDayModel.ts","services/AppUserGroupsData.ts","containers/ContainerConfig.ts","containers/ContainerConfigBuilder.js","containers/ContainerPaths.ts","containers/home/AppHomeMenuItem.tsx","containers/home/AppHomeContainerConfig.ts","context/AppContextValidator.js","containers/sign-out/SignOut.js","containers/sign-out/SignOutMenuItem.tsx","containers/sign-out/SignOutContainerConfig.ts","containers/sections/Section.tsx","containers/sections/SectionNames.ts","model/ModelEditor.ts","model/Model.ts","model/ModelConfig.ts","containers/data-editor/components/content/item/cell/DataEditorCellDisplay.tsx","containers/data-editor/components/content/item/cell/DataEditorCellEditWrp.tsx","resources/ResourceColumn.tsx","resources/columns/ResourceColumnNumber.tsx","resources/Resource.ts","resources/columns/select/ResourceColumnSelectUtils.ts","resources/columns/select/ResourceColumnSelect.tsx","resources/columns/ResourceColumnText.tsx","containers/admin/AdminResources.ts","containers/data-editor/utils/DataEditorSortUtils.ts","mocks/MocksApi.ts","services/AppS3TypeGuards.ts","services/AppS3Service.ts","services/AppUtilsService.js","resources/ResourcesService.ts","resources/ResourceInitData.ts","containers/data-editor/utils/DataEditorUtils.ts","containers/data-editor/types/DataEditorTypes.ts","containers/data-editor/utils/DataEditorDisplayUtils.ts","containers/data-editor/context/DataEditorReducer.ts","containers/data-editor/context/DataEditorContext.tsx","containers/data-editor/components/content/item/DataEditorHandle.tsx","services/AppUserGroups.js","containers/data-editor/components/content/item/DataEditorItemDeleteButton.tsx","containers/data-editor/components/content/item/DataEditorItemEditButton.tsx","containers/data-editor/components/content/item/DataEditorItemDisplay.tsx","containers/data-editor/components/content/item/DataEditorItemEdit.tsx","containers/data-editor/components/content/item/DataEditorItem.tsx","containers/data-editor/components/content/item/DataEditorItemWrp.tsx","containers/data-editor/components/content/DataEditorItems.tsx","containers/data-editor/components/content/header/add/DataEditorAddDisplayColumn.tsx","containers/data-editor/components/content/header/add/DataEditorAddContent.tsx","containers/data-editor/components/content/header/add/DataEditorAdd.tsx","containers/data-editor/components/content/header/DataEditorHeaderCellSortIcon.tsx","containers/data-editor/components/content/header/DataEditorHeaderColumn.tsx","containers/data-editor/components/content/header/DataEditorHeaderColumns.tsx","containers/data-editor/components/content/header/order/DataEditorSaveOrderBtn.tsx","containers/data-editor/components/content/header/DataEditorHeader.tsx","containers/data-editor/components/footer/DataEditorAddAllBtn.tsx","containers/data-editor/components/footer/DataEditorDeleteAllBtn.tsx","containers/data-editor/components/footer/DataEditorItemsCount.tsx","containers/data-editor/components/footer/DataEditorPagination.tsx","containers/data-editor/components/footer/DataEditorRefreshBtn.tsx","containers/data-editor/components/footer/DataEditorFooter.tsx","containers/data-editor/components/toolbar/DataEditorResourceSelect.tsx","containers/data-editor/components/toolbar/DataEditorSearch.tsx","containers/data-editor/components/toolbar/DataEditorToolbar.tsx","containers/data-editor/DataEditor.tsx","containers/admin/data-editor/DataEditorAdmin.tsx","containers/admin/data-editor/DataEditorAdminMenuItem.tsx","containers/admin/AdminContainerConfig.ts","containers/ContainerBasePaths.ts","containers/admin/AdminSectionConfig.ts","containers/admin/AdminSection.tsx","containers/menus-sales/context/MenusActions.js","containers/menus-sales/components/drop-zone/parsers/CacheDataTerms.js","containers/menus-sales/components/drop-zone/parsers/ClearedChars.js","containers/menus-sales/components/drop-zone/parsers/SalesParser.js","resources/columns/ResourceColumnDate.tsx","containers/food/FoodResources.ts","containers/dps/DpsResources.ts","containers/menus-sales/config/MenusSectionConfigs.js","containers/menus-sales/services/MenusUtils.js","containers/menus-sales/context/MenusReducer.js","containers/menus-sales/services/MenusResolver.js","containers/menus-sales/context/MenusContext.js","containers/menus-sales/components/toolbar/MenusToolbarInvalidQueue.js","containers/menus-sales/components/toolbar/MenusToolbar.js","containers/menus-sales/components/drop-zone/MenusSalesDropZone.js","containers/menus-sales/components/drop-zone/parsers/MenuSalesParser.js","containers/menus-sales/components/MenusSalesNameDescriptor.js","containers/menus-sales/components/drop-zone/MenusSalesDropZoneWrp.js","containers/menus-sales/components/MenusContentHeader.js","containers/menus-sales/components/MenusCompletionStatus.js","containers/menus-sales/components/MenusItemRecipe.js","containers/menus-sales/components/MenusItem.js","containers/menus-sales/components/MenusContent.js","containers/menus-sales/Menus.js","containers/menus-sales/MenusWrp.js","containers/menus-sales/MenusMenuItem.tsx","containers/menus-sales/MenusContainerConfig.ts","containers/dps/delivery/DeliveryDpsUtils.js","containers/dps/delivery/DeliveryDpsRestaurantSelector.js","containers/dps/delivery/email/DeliveryDpsEmailDataPreview.js","containers/dps/delivery/DeliveryDpsHeader.js","containers/dps/delivery/DeliveryDpsContent.js","containers/dps/delivery/DeliveryDps.js","containers/dps/delivery/DeliveryDpsMenuItem.tsx","containers/dps/data-editor/DataEditorDps.tsx","containers/dps/data-editor/DataEditorDpsMenuItem.tsx","containers/dps/DpsContainerConfig.ts","containers/dps/DpsSectionConfig.ts","containers/dps/DpsSection.tsx","containers/on-hand/components/status/OnHandStatus.js","containers/on-hand/models/OnHandTypes.js","containers/on-hand/services/OnHandResover.js","containers/on-hand/context/OnHandActions.js","containers/on-hand/context/OnHandContextValidator.js","containers/on-hand/OnHandUtils.js","containers/off-site/OffSiteResources.ts","containers/off-site/tasks/OffSiteTasksUtils.ts","containers/on-hand/context/OnHandReducer.js","containers/off-site/OffSiteUtils.ts","containers/on-hand/context/OnHandContext.js","containers/off-site/context/OffSiteContextTypes.ts","containers/on-hand/components/group/OnHandGroupConfirmChanges.js","containers/on-hand/components/group/OnHandGroupReadOnly.js","containers/on-hand/components/group/OnHandGroup.js","containers/on-hand/components/content/OnHandContent.js","containers/off-site/context/OffSiteContextInit.ts","containers/off-site/context/OffSiteContextReducer.ts","containers/off-site/context/OffSiteContext.tsx","containers/off-site/tasks/OffSiteTasksFilter.tsx","containers/on-hand/components/sync/OnHandToolbarSync.js","containers/on-hand/components/toolbar/OnHandToolbar.js","containers/on-hand/models/OnHandConfigModel.js","containers/on-hand/OnHand.js","containers/on-hand/OnHandWrp.js","containers/on-hand/components/item/OnHandItemTab.js","containers/food/on-hand/display/OnHandFoodItemTab.js","containers/food/on-hand/display/OnHandFoodItemTitle.js","containers/food/on-hand/display/OnHandFoodItemDelivery.js","containers/food/on-hand/display/OnHandFoodItemActions.js","containers/on-hand/components/item/OnHandItemMetaData.js","containers/food/on-hand/display/OnHandFoodItemMeta.js","containers/on-hand/components/item/OnHandItemClearInput.js","containers/on-hand/components/item/OnHandItemQuickInput.tsx","containers/on-hand/components/item/OnHandItemInput.js","containers/food/on-hand/display/OnHandFoodItem.js","containers/on-hand/models/OnHandItemDisplayModel.js","containers/on-hand/services/OnHandDailyGenerator.js","containers/on-hand/models/OnHandGroupModel.js","containers/on-hand/models/OnHandItemModel.js","containers/on-hand/models/OnHandRestaurantModel.js","containers/on-hand/context/OnHandItemContext.js","containers/food/on-hand/context/OnHandFoodItemContext.js","containers/food/on-hand/context/OnHandFoodContextConfig.js","containers/food/on-hand/OnHandFood.js","containers/food/on-hand/OnHandFoodMenuItem.tsx","containers/food/delivery/services/DeliveryFoodModeUtils.ts","containers/food/delivery/modes/DeliveryFoodMode.tsx","containers/food/delivery/services/DeliveryFoodUtils.ts","containers/food/delivery/services/DeliveryFoodExtract.ts","containers/food/delivery/DeliveryFoodContext.tsx","containers/food/delivery/components/header/configs/DeliveryFoodHeaderCellConfigs.tsx","containers/food/delivery/components/header/DeliveryFoodHeaderCell.tsx","containers/food/delivery/components/header/DeliveryFoodHeaderCommissary.tsx","containers/food/delivery/components/header/DeliveryFoodHeaderRestaurant.tsx","containers/food/delivery/components/header/DeliveryFoodHeader.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryOnHandConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummarySalesConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryDeliveryConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryDeliveryFixedConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryDeliverySalesConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryPrepForDeliveryConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryPrepConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryPrepTimeConfigs.tsx","containers/food/delivery/components/summary/configs/DeliveryFoodSummaryPrepForDeliveryTimeConfigs.tsx","containers/food/delivery/components/summary/DeliveryFoodSummary.tsx","containers/food/delivery/components/toolbar/DeliveryFoodToolbar.tsx","containers/food/delivery/components/content/DeliveryFoodCell.tsx","containers/food/delivery/components/content/cells/restaurant/DeliveryFoodItemRestaurantDeliveryCell.tsx","containers/food/delivery/components/content/cells/restaurant/DeliveryFoodItemRestaurantDeliveryFixedCell.tsx","containers/food/delivery/components/content/cells/restaurant/DeliveryFoodItemRestaurantDeliverySalesCell.tsx","containers/food/delivery/components/content/cells/restaurant/DeliveryFoodItemRestaurantOnHandCell.tsx","containers/food/delivery/components/content/cells/restaurant/DeliveryFoodItemRestaurantSalesMultipleCell.tsx","containers/food/delivery/components/content/cells/restaurant/DeliveryFoodItemRestaurantSalesSingleCell.tsx","containers/food/delivery/components/content/cells/restaurant/DeliveryFoodItemRestaurant.tsx","containers/food/delivery/components/content/cells/commissary/DeliveryFoodItemCommissaryOnHandCell.tsx","containers/food/delivery/components/content/cells/commissary/DeliveryFoodItemCommissaryPrepCell.tsx","containers/food/delivery/components/content/cells/commissary/DeliveryFoodItemCommissaryPrepForDeliveryCell.tsx","containers/food/delivery/components/content/cells/commissary/DeliveryFoodItemCommissaryPrepForDeliveryTimeCell.tsx","containers/food/delivery/components/content/cells/commissary/DeliveryFoodItemCommissaryPrepTimeCell.tsx","containers/food/delivery/components/content/cells/commissary/DeliveryFoodItemCommissary.tsx","containers/food/delivery/components/content/DeliveryFoodItem.tsx","containers/food/delivery/components/content/DeliveryFoodSectionHeader.tsx","containers/food/delivery/components/content/DeliveryFoodSectionsUtils.ts","containers/food/delivery/components/content/DeliveryFoodSection.tsx","containers/food/delivery/components/content/DeliveryFoodSignature.tsx","containers/food/delivery/components/content/DeliveryFoodSections.tsx","containers/food/delivery/components/content/DeliveryFoodContent.tsx","containers/food/delivery/modes/DeliveryFoodDeliveryMode.tsx","containers/food/delivery/modes/DeliveryFoodPrepForDeliveryTimeMode.tsx","containers/food/delivery/modes/DeliveryFoodPrepMode.tsx","containers/food/delivery/modes/DeliveryFoodPrepTimeMode.tsx","containers/food/delivery/modes/DeliveryFoodRestaurantMode.tsx","containers/food/delivery/modes/DeliveryFoodRestaurantFixedMode.tsx","containers/food/delivery/modes/DeliveryFoodSummaryMode.tsx","containers/food/delivery/modes/DeliveryFoodModes.tsx","containers/food/delivery/services/DeliveryFoodResolver.ts","containers/food/delivery/services/DeliveryFoodLoadUtils.ts","containers/food/delivery/DeliveryFood.tsx","containers/food/delivery/DeliveryFoodWrp.tsx","containers/food/delivery/DeliveryFoodMenuItem.tsx","containers/food/data-editor/DataEditorFood.tsx","containers/food/data-editor/DataEditorFoodMenuItem.tsx","containers/food/FoodContainerConfig.ts","containers/food/FoodSectionConfig.ts","containers/food/FoodSection.tsx","containers/off-site/data-editor/DataEditorOffSite.tsx","containers/off-site/data-editor/DataEditorOffSiteMenuItem.tsx","containers/off-site/on-hand/OffSiteOnHandItemDisplayModel.ts","containers/off-site/delivery/item/OffSiteDeliveryItemQuickInputs.tsx","containers/off-site/delivery/item/restaurants/OffSiteDeliveryItemRestaurants.tsx","containers/off-site/delivery/item/OffSiteDeliveryItemTotal.tsx","containers/off-site/delivery/item/input/OffSiteDeliveryItemInput.tsx","containers/off-site/delivery/item/OffSiteDeliveryItemPrev.tsx","containers/off-site/delivery/item/OffSiteDeliveryItemSkip.tsx","containers/off-site/delivery/item/OffSiteDeliveryItemSubmit.tsx","containers/off-site/delivery/item/OffSiteDeliveryItemActions.tsx","containers/off-site/delivery/item/OffSiteDeliveryItem.tsx","containers/off-site/stocking/item/OffSiteStockingItemPrev.tsx","containers/off-site/stocking/item/OffSiteStockingItemSkip.tsx","containers/off-site/stocking/item/OffSiteStockingItemSubmit.tsx","containers/off-site/stocking/item/OffSiteStockingItemActions.tsx","containers/off-site/stocking/item/OffSiteStockingItemQuickInputs.tsx","containers/off-site/stocking/item/OffSiteStockingItemClearInput.tsx","containers/off-site/stocking/item/OffSiteStockingItemTotal.tsx","containers/off-site/stocking/item/OffSiteStockingItemInput.tsx","containers/off-site/stocking/item/OffSiteStockingItem.tsx","containers/off-site/history/item/OffSiteHistoryItem.tsx","containers/off-site/reorders/OffSiteReordersUtils.ts","containers/off-site/reorders/OffSiteReordersItemAlert.tsx","containers/off-site/on-hand/OffSiteOnHandItemViews.tsx","containers/off-site/on-hand/OffSiteOnHandItemContext.js","containers/off-site/on-hand/OffSiteOnHandContextConfig.ts","containers/off-site/on-hand/OffSiteOnHandItemHeader.tsx","containers/off-site/on-hand/OffSiteOnHandItem.tsx","containers/off-site/on-hand/OffSiteOnHandItemTab.tsx","containers/off-site/delivery/OffSiteDeliveryMenuItem.tsx","containers/off-site/tasks/dialog/OffSiteTasksDialogActions.tsx","containers/off-site/tasks/dialog/OffSiteTasksDialogContentItem.tsx","containers/off-site/tasks/dialog/OffSiteTasksDialogHeader.tsx","containers/off-site/tasks/dialog/OffSiteTasksDialogContent.tsx","containers/off-site/tasks/dialog/OffSiteTasksDialog.tsx","containers/off-site/tasks/OffSiteTasksCounter.tsx","containers/off-site/tasks/OffSiteTasksNavigator.tsx","containers/off-site/tasks/OffSiteTasksStart.tsx","containers/off-site/OffSiteContainerConfigBuilder.ts","containers/off-site/reorders/context/OffSiteReordersContextTypes.ts","containers/off-site/reorders/context/OffSiteReordersContextReducer.ts","containers/off-site/reorders/context/OffSiteReordersContext.tsx","containers/off-site/reorders/buttons/OffSiteReordersUndoButton.tsx","containers/off-site/reorders/OffSiteReordersCompletedAlert.tsx","containers/off-site/reorders/OffSiteReordersCompletedAlerts.tsx","containers/off-site/reorders/buttons/OffSiteReordersCompleteButton.tsx","containers/off-site/reorders/OffSiteReordersSnoozeDurations.ts","containers/off-site/reorders/buttons/OffSiteReordersSnoozeButton.tsx","containers/off-site/reorders/OffSiteReordersOpenAlert.tsx","containers/off-site/reorders/OffSiteReordersOpenAlerts.tsx","containers/off-site/reorders/OffSiteReordersSnoozedAlert.tsx","containers/off-site/reorders/OffSiteReordersSnoozedAlerts.tsx","containers/off-site/reorders/OffSiteReorders.tsx","containers/off-site/OffSiteContainerConfig.ts","containers/off-site/delivery/OffSiteDelivery.tsx","containers/off-site/delivery/OffSiteDeliveryTasks.tsx","containers/off-site/reception/OffSiteReception.tsx","containers/off-site/reception/OffSiteReceptionMenuItem.tsx","containers/off-site/reception/OffSiteReceptionTasks.tsx","containers/off-site/stocking/OffSiteStocking.tsx","containers/off-site/stocking/OffSiteStockingMenuItem.tsx","containers/off-site/stocking/OffSiteStockingTasks.tsx","containers/off-site/reorders/OffSiteReordersWrp.tsx","containers/off-site/reorders/OffSiteReordersMenuItem.tsx","containers/off-site/reorders/OffSiteReordersTasks.tsx","containers/off-site/OffSiteSectionConfig.ts","containers/off-site/OffSiteSection.tsx","containers/off-site/tasks/OffSiteTasks.tsx","containers/orders/on-hand/display/OnHandOrderItemTab.js","containers/orders/on-hand/display/OnHandOrderItemTitle.js","containers/orders/on-hand/display/OnHandOrderItemActions.js","containers/orders/on-hand/display/OnHandOrderItemMeta.js","containers/orders/on-hand/display/OnHandOrderItem.js","containers/orders/OrdersResources.ts","containers/orders/on-hand/context/OnHandOrderItemContext.js","containers/orders/on-hand/context/OnHandOrdersContextConfig.js","containers/orders/on-hand/OnHandOrders.js","containers/orders/on-hand/OnHandOrdersMenuItem.tsx","containers/orders/delivery/DeliveryOrdersMenuItem.tsx","containers/orders/data-editor/DataEditorOrders.tsx","containers/orders/data-editor/DataEditorOrdersMenuItem.tsx","containers/orders/delivery/context/DeliveryOrdersContextActions.js","containers/orders/delivery/DeliveryOrdersUtils.js","containers/orders/delivery/DeliveryOrdersValues.js","containers/orders/delivery/email/DeliveryOrdersEmail.js","types/AppEmail.js","containers/orders/delivery/context/DeliveryOrdersResolver.js","containers/orders/delivery/context/DeliveryOrdersContext.js","containers/orders/delivery/context/DeliveryOrdersContextService.js","containers/orders/delivery/header/DeliveryOrdersRestaurantSelector.js","containers/orders/delivery/header/vendor/DeliveryOrdersVendorSelector.js","containers/orders/delivery/header/DeliveryOrdersActions.js","containers/orders/delivery/email/DeliveryOrdersEmailSendButton.js","containers/orders/delivery/email/DeliveryOrdersEmailSubject.js","containers/orders/delivery/email/DeliveryOrdersEmailNotes.js","containers/orders/delivery/email/DeliveryOrdersEmailOrderEditor.js","containers/orders/delivery/email/DeliveryOrdersEmailOrderEditorAdd.js","containers/orders/delivery/email/DeliveryOrdersEmailOrderLabel.js","containers/orders/delivery/email/DeliveryOrdersEmailOrdersEditor.js","containers/orders/delivery/email/DeliveryOrdersEmailDialogAddVendor.js","containers/orders/delivery/email/DeliveryOrdersEmailDialog.js","containers/orders/delivery/header/DeliveryOrdersHeader.js","containers/orders/delivery/content/DeliveryOrdersContentHeader.js","containers/orders/delivery/item/cell/DeliveryOrdersCellConversion.js","containers/orders/delivery/item/cell/DeliveryOrdersCellName.js","containers/orders/delivery/item/cell/DeliveryOrdersCellOnHand.js","containers/orders/delivery/item/cell/DeliveryOrdersCellPar.js","containers/orders/delivery/item/cell/DeliveryOrdersCellDelivery.js","containers/orders/delivery/item/DeliveryOrdersItem.js","containers/orders/delivery/header/vendor/DeliveryOrdersVendorItem.js","containers/orders/delivery/content/DeliveryOrdersContentVendor.js","containers/orders/delivery/content/DeliveryOrdersContent.js","containers/orders/delivery/DeliveryOrders.js","containers/orders/OrdersContainerConfig.ts","containers/orders/delivery/DeliveryOrdersWrp.js","containers/orders/OrdersSectionConfig.ts","containers/orders/OrdersSection.tsx","containers/t-shirts/TShirtsResources.ts","containers/t-shirts/data-editor/DataEditorTShirts.tsx","containers/t-shirts/data-editor/DataEditorTShirtsMenuItem.tsx","containers/t-shirts/on-hand/display/OnHandTShirtItemTab.js","containers/t-shirts/on-hand/display/OnHandTShirtItemInput.js","containers/t-shirts/on-hand/display/OnHandTShirtItemActions.js","containers/t-shirts/on-hand/display/OnHandTShirtItemTitle.js","containers/t-shirts/on-hand/display/OnHandTShirtItemMeta.js","containers/t-shirts/on-hand/display/OnHandTShirtItem.js","containers/t-shirts/on-hand/context/OnHandTShirtItemContext.js","containers/t-shirts/on-hand/context/OnHandTShirtContextConfig.js","containers/t-shirts/on-hand/display/OnHandTShirtItemConfirm.js","containers/t-shirts/on-hand/OnHandTShirts.js","containers/t-shirts/on-hand/OnHandTShirtsMenuItem.tsx","containers/t-shirts/sales/SalesTShirtState.js","containers/menus-sales/components/drop-zone/parsers/TShirtSalesParser.js","containers/t-shirts/sales/SalesTShirts.js","containers/t-shirts/sales/SalesTShirtsMenuItem.tsx","containers/t-shirts/stocking/t-shirt/TShirtsStockingStatus.js","containers/t-shirts/stocking/mode/TShirtsStockingModes.js","containers/t-shirts/stocking/TShirtsStockingUtils.js","containers/t-shirts/stocking/context/TShirtsStockingContext.js","containers/t-shirts/stocking/TShirtsStockingRestaurant.js","containers/t-shirts/stocking/mode/TShirtsStockingModeSwitch.js","hooks/useWindowDimensions.js","containers/t-shirts/stocking/TShirtsStockingHeader.js","containers/t-shirts/stocking/t-shirt/selected/stocking/TShirtsStockingSelectedStocking.js","containers/t-shirts/stocking/t-shirt/selected/inventory/TShirtsStockingSelectedInventory.js","containers/t-shirts/stocking/t-shirt/selected/TShirtsStockingSelected.js","containers/t-shirts/stocking/t-shirt/TShirtsStockingItem.js","containers/t-shirts/stocking/t-shirt/TShirtsStockingStyle.js","containers/t-shirts/stocking/TShirtsStockingContent.js","containers/t-shirts/stocking/status/TShirtsStockingStatusNeedsCompleted.js","containers/t-shirts/stocking/status/TShirtsStockingStatusNeedsOnHand.js","containers/t-shirts/stocking/status/TShirtsStockingStatusRequiredStock.js","containers/t-shirts/stocking/status/TShirtsStockingStatus.js","containers/t-shirts/stocking/TShirtsStocking.js","containers/t-shirts/stocking/context/TShirtsStockingWrp.js","containers/t-shirts/stocking/TShirtsStockingMenuItem.tsx","containers/t-shirts/TShirtsContainerConfig.ts","containers/sections/Sections.ts","containers/t-shirts/TShirtsSectionConfig.ts","containers/t-shirts/TShirtsSection.tsx","containers/sections/SectionsService.js","context/AppContextTypes.ts","context/AppContextInit.ts","context/AppContextReducer.ts","context/AppLocalKeys.ts","context/AppContext.tsx","containers/home/AppHome.js","components/day/AppDay.js","containers/feedback/AppFeedbackContext.js","containers/feedback/AppFeedbackButton.js","containers/feedback/AppFeedbackDialog.js","containers/feedback/AppFeedback.js","containers/sections/header/SectionHeaderSelector.js","layout/header/AppHeader.js","layout/menu/AppMenu.js","layout/AppLayout.tsx","components/routes/AppRoutes.tsx","containers/sections/init/SectionInitSelector.js","App.js","aws-exports.js","components/global-spinner/GlobalSpinner.js","serviceWorker.js","index.js","containers/off-site/history/item/OffSiteHistoryItem.module.css","containers/on-hand/components/item/OnHandItemInput.module.css","containers/t-shirts/sales/SalesTShirt.module.css"],"names":["module","exports","buildEmailFeedback","feedback","type","priority","date","details","userName","day","sentAt","location","subject","buildSubject","bodyHTML","detailsHTML","dayHTML","locationHTML","buildBody","to","bcc","replyTo","sender","getRestaurant","listRestaurants","getDpsEmailRecipient","listDpsEmailRecipients","getDpsEmail","listDpsEmails","getDpsPack","listDpsPacks","getDpsIngredient","listDpsIngredients","getDpsMenuItem","listDpsMenuItems","getDpsMenuItemSale","listDpsMenuItemSales","getDpsMenuItemSaleMeta","listDpsMenuItemSaleMetas","getDpsRecipeItem","listDpsRecipeItems","getIngredientPack","listIngredientPacks","getIngredient","listIngredients","getIngredientInventory","listIngredientInventorys","getIngredientInventoryMeta","listIngredientInventoryMetas","getIngredientOnHandArea","listIngredientOnHandAreas","getIngredientDeliveryArea","listIngredientDeliveryAreas","getIngredientTransaction","listIngredientTransactions","getMenuItem","listMenuItems","getRecipeItem","listRecipeItems","getMenuItemSale","listMenuItemSales","getMenuItemSaleMeta","listMenuItemSaleMetas","getDeliveryArea","listDeliveryAreas","getOnHandArea","listOnHandAreas","getOffSiteItem","listOffSiteItems","getOffSiteArea","listOffSiteAreas","getOffSiteUnit","listOffSiteUnits","getOffSiteTransaction","listOffSiteTransactions","getOffSiteAlert","listOffSiteAlerts","getOrder","listOrders","getOrderArea","listOrderAreas","getOrderUnit","listOrderUnits","getOrderVendor","listOrderVendors","getOrderInventory","listOrderInventorys","getOrderInventoryMeta","listOrderInventoryMetas","getTShirt","listTShirts","getTShirtSize","listTShirtSizes","getTShirtStyle","listTShirtStyles","getTShirtInventory","listTShirtInventorys","getTShirtInventoryMeta","listTShirtInventoryMetas","getTShirtSale","listTShirtSales","getTShirtSaleMeta","listTShirtSaleMetas","getTShirtTransaction","listTShirtTransactions","sendEmail","callS3Client","createRestaurant","updateRestaurant","deleteRestaurant","createDpsEmailRecipient","updateDpsEmailRecipient","deleteDpsEmailRecipient","createDpsEmail","updateDpsEmail","deleteDpsEmail","createDpsPack","updateDpsPack","deleteDpsPack","createDpsIngredient","updateDpsIngredient","deleteDpsIngredient","createDpsMenuItem","updateDpsMenuItem","deleteDpsMenuItem","createDpsMenuItemSale","updateDpsMenuItemSale","deleteDpsMenuItemSale","createDpsMenuItemSaleMeta","updateDpsMenuItemSaleMeta","deleteDpsMenuItemSaleMeta","createDpsRecipeItem","updateDpsRecipeItem","deleteDpsRecipeItem","createIngredientPack","updateIngredientPack","deleteIngredientPack","createIngredient","updateIngredient","deleteIngredient","createIngredientInventory","updateIngredientInventory","deleteIngredientInventory","createIngredientInventoryMeta","updateIngredientInventoryMeta","deleteIngredientInventoryMeta","createIngredientOnHandArea","updateIngredientOnHandArea","deleteIngredientOnHandArea","createIngredientDeliveryArea","updateIngredientDeliveryArea","deleteIngredientDeliveryArea","createIngredientTransaction","updateIngredientTransaction","deleteIngredientTransaction","createMenuItem","updateMenuItem","deleteMenuItem","createRecipeItem","updateRecipeItem","deleteRecipeItem","createMenuItemSale","updateMenuItemSale","deleteMenuItemSale","createMenuItemSaleMeta","updateMenuItemSaleMeta","deleteMenuItemSaleMeta","createDeliveryArea","updateDeliveryArea","deleteDeliveryArea","createOnHandArea","updateOnHandArea","deleteOnHandArea","createOffSiteItem","updateOffSiteItem","deleteOffSiteItem","createOffSiteArea","updateOffSiteArea","deleteOffSiteArea","createOffSiteUnit","updateOffSiteUnit","deleteOffSiteUnit","createOffSiteTransaction","updateOffSiteTransaction","deleteOffSiteTransaction","createOffSiteAlert","updateOffSiteAlert","deleteOffSiteAlert","createOrder","updateOrder","deleteOrder","createOrderArea","updateOrderArea","deleteOrderArea","createOrderUnit","updateOrderUnit","deleteOrderUnit","createOrderVendor","updateOrderVendor","deleteOrderVendor","createOrderInventory","updateOrderInventory","deleteOrderInventory","createOrderInventoryMeta","updateOrderInventoryMeta","deleteOrderInventoryMeta","createTShirt","updateTShirt","deleteTShirt","createTShirtSize","updateTShirtSize","deleteTShirtSize","createTShirtStyle","updateTShirtStyle","deleteTShirtStyle","createTShirtInventory","updateTShirtInventory","deleteTShirtInventory","createTShirtInventoryMeta","updateTShirtInventoryMeta","deleteTShirtInventoryMeta","createTShirtSale","updateTShirtSale","deleteTShirtSale","createTShirtSaleMeta","updateTShirtSaleMeta","deleteTShirtSaleMeta","createTShirtTransaction","updateTShirtTransaction","deleteTShirtTransaction","queries","graphQlOperations","mutations","ModelApi","config","typeName","limit","this","filter","a","queryName","operation","variables","API","graphql","graphqlOperation","response","data","items","input","operationName","item","getModel","extractKeyObject","keepCreatedAt","keepUpdatedAt","mutationName","mutation","createdAt","updatedAt","console","log","JSON","stringify","window","confirm","emailObj","customMutation","email","Error","AppEmailService","validateEmail","emailAddress","test","String","toLowerCase","ErrorHandler","state","hasError","errorInfo","error","errorInfoString","setState","handleSendFeedback","props","setGlobalSpinner","appState","user","name","display","Date","getTime","href","alert","className","Button","onClick","variant","children","Component","GlobalSpinnerContext","createContext","GlobalSpinnerActionsContext","useContextFactory","context","ctx","useContext","undefined","useGlobalSpinnerContext","useGlobalSpinnerActionsContext","GlobalSpinnerContextProvider","useState","isGlobalSpinnerOn","Provider","value","AppDayModel","time","unixTime","getTodayUnixTime","constructor","getUnixTimeFromDate","getTimeDisplay","moment","tz","startOf","unix","eq","format","createMomentFromUnixTime","subtract","getPrevDayUnixTime","add","WEEK_UNIX","DEVS","ADMINS","DATA_EDITOR_USERS","MANAGERS","ORDERS_ADMIN","KITCHEN_DELIVERY_USERS","ORDERS_DELIVERY_USERS","KITCHEN_USERS","ORDERS_USERS","STORE_USERS","ContainerConfig","key","url","userAccess","component","menuItem","tasksHeaderComponent","path","ContainerConfigBuilder","allowedGroups","Array","isArray","length","groups","allGroups","reduce","acc","validGroup","includes","userCanAccess","ContainerPaths","AppHomeMenuItem","size","AppHomeContainerConfig","setPath","setUserAccess","setComponent","AppHome","setMenuItem","build","AppContextValidator","isValidUser","appUser","Auth","signInUserSession","idToken","payload","isValid","section","SignOut","history","useHistory","AppContext","signOut","push","info","SignOutMenuItem","SignOutContainerConfig","Section","pages","disabled","basename","tasksComponent","wrapperContextProvider","pathNames","iconSize","iconHeaderSize","iconHomeSize","iconColor","iconHeaderColor","iconHomeColor","concat","map","selectedSection","color","appSectionsStyle","CardBtn","CardBtnContent","CardBtnIcon","renderIcon","CardBtnName","Home","renderHomeIcon","HomeName","SectionNames","ModelEditor","isEditable","isDeletable","sortColumn","b","defaultSortDirection","sortCallback","field","sortableColumns","columns","columnsBySortRank","sort","defaultSortRank","sortCallbacks","getSortCallback","Object","fromEntries","defaultValue","isRequired","current","validator","itemA","itemB","oldItem","newItem","isKey","areNotEqualOnField","Model","editor","api","keyColumnsPairs","id","newValues","shouldConfirm","order","inputForSubmission","prepForCreate","create","dataEditorState","resourceRefKey","ignoreRefDisplay","resourceRefKeys","refDisplay","refDisplays","resourceRefKeysEntry","index","refKeyValue","parentResourceRefKey","parentRefKeyValue","refKeyItem","getItemsByResourceRefKey","find","displays","flat","x","reverse","join","resourceStoreKey","ModelConfig","pageSize","typeNameDisplay","initDataKey","pageIndex","DataEditorCellDisplay","style","DataEditorCellEditWrp","content","errors","touched","isSubmitting","dataEditorCellEditWrpStyles","Main","ResourceColumn","inputType","resourceRefKeyAlias","placeholder","editable","hide","localeCompare","width","hideOnAdd","sortDirection","sortRank","XS","S","M","L","XL","fmkProps","renderEdit","ResourceColumnNumber","step","min","parseFloat","handleChange","handleBlur","values","onChange","onBlur","defaultModel","Resource","model","getColumns","column","transformResourceToOption","label","selectValue","originalValue","ResourceColumnSelectUtils","transformRawOptions","rawOptions","rawOption","getResourceRefKey","store","mapping","refKeyToStoreKey","getAvailableOptions","getItemsByStoreKey","options","optionA","optionB","getSelectedOption","option","ResourceColumnSelect","selectedOption","ResourceColumnSelectContent","minWidth","ResourceColumnText","AppRestaurantTypes","AppRestaurantModel","alias","appRestaurantModel","setHideOnAdd","setKey","setSortDirection","setVisible","setWidth","setEditable","setOptional","AppRestaurant","sortSortQueueByColumnsSortRank","getNextSortDirection","sortQueue","sortQueueEntry","s","removeElementByIndex","list","slice","sortResourceItems","resourceItems","resourceA","resourceB","i","resourceADisplay","getDisplay","resourceBDisplay","fieldSortResult","DataEditorSortUtils","getDefaultSortQueue","resources","result","forEach","resource","storeKey","getResourceStoreKey","DataEditorSortQueueEntry","splice","getDefaultResourceSortQueue","getNewSortQueue","selectedColumn","getSelectedResource","currentSortQueue","sortQueues","selectedColumnIndex","findIndex","r","selectedColumnEntry","addClickCount","clickCount","getDisplayColumnSortDirection","sortItemsByResource","byResourceStoreKey","byResourceRefKey","MocksApi","canUseMock","useMock","resourceName","thereIsMockData","keys","isAppS3ClientResponseBody","buildS3GetRequest","buildS3PutRequest","requests","sendS3Requests","rawResponse","deserializeResponse","results","body","warn","deserializedResponse","parse","code","every","isAppS3ClientResponse","SECTION_RESTAURANT_LOCAL_KEY","setRestaurant","sectionName","pageUrl","restaurant","router","localKey","replace","localStorage","setItem","addQuery","getDailyDataKey","dayLabel","restaurantAlias","count","getNextDailyDataKey","dailyDataKey","dailyDataKeyPattern","keyParts","match","countPart","countPartPattern","countPartNr","parseInt","extractCount","restaurants","currentMetaItems","metaResource","createPromise","idsOfRestaurantsWithMeta","m","restaurantId","restaurantsWithoutMeta","createMetaPromises","bind","seriesPromises","missingMetaItems","inventory","createMetaSalePromiseType","saleType","storageKey","AppUtilsService","getDayLabel","buildSalesStorageKey","status","completion","lastUpdatedAt","getCurrentUnixTime","lastUpdatedBy","metaResourceModel","update","pathname","searchParams","URLSearchParams","search","set","toString","groupDataByItem","groupDataByList","loadRestaurant","urlRestaurantAlias","queryString","urlRestaurantKey","restaurantKey","localRestaurantAlias","getItem","localRestaurantKey","delay","Promise","res","setTimeout","buildMissingInventoriesMeta","createMetaInventoryPromise","updateMetaSalePromiseType","createMetaSalesPromise","getEnvName","auth","_config","aws_user_files_s3_bucket","split","print","pageIdentifier","appIdentifier","dateIdentifier","document","title","removeQuery","delete","promises","serial","funcs","promise","func","then","err","resolve","fetchResources","responses","resourceType","apiDataItems","dbItem","updateDailyData","keyData","existingData","readS3File","message","mergedData","serializedData","deDupedData","from","Set","deSerializedData","request","readSectionS3Files","buildResourcesFromResults","retry","asyncCallback","retriesLeft","success","ResourceInitData","initDataFile","getNextId","ids","_","currentIds","idA","idB","getPageSize","getPageIndex","getPagesCount","itemsCount","Math","ceil","findColumnName","columnName","hasColumn","buildNewItemFromColumnNames","columnNames","columnValues","newId","newOrderIndex","createdItem","resourceRequests","getFilter","resourceResponses","resourcesItems","resourceResponse","sortAddMenuColumns","DataEditorUtils","getResourcesItems","getItemsByResourceStoreKey","loadDataEditorItems","getSelectedResourceFromLocationSearch","queryStringValues","matchingResources","getColumnStyles","gridTemplateColumns","frWidth","containsOrderColumn","some","getSelectedResourceItemsCount","getSelectedResourcePageSize","setPageIndex","getPageSlice","getPageSliceIndexes","indexItemsByResourceStoreKey","indexResourcesByStoreKey","extractColumnNames","createNewItem","clearItemsByResource","clearItemByResource","resourceItem","itemsByResourceStoreKey","itemsByResourceRefKey","resourceStoreKeyIndex","equals","resourceRefKeyIndex","addItemByResource","getAddMenuInitialValues","getNewItemTemplate","prepareDisplayColumnsForAddMenu","replaceItem","fetchItemsFromBackup","getSelectedResourceItems","getItemsDefaults","getMappingDefaults","storeKeyToRefKey","getResourcesInit","dataEditorResources","selectedResourceFromLocationSearch","resourcesByStoreKey","all","allDataEditorResources","selected","byStoreKey","searchSelectedResourceItems","searchText","searchResourceItem","DataEditorResource","DataEditorState","dataEditorResource","sortable","enableReorder","addDialogOpen","getResourceItemDisplay","accDisplay","isValidRefField","resourceRefKeyOriginalValue","resourceRefStoreKey","resourceRef","getResourceByStoreKey","resourceRefItem","resourceRefItems","resourceRefValue","getResourceItemRefDisplay","buildDisplayForResourceItems","storeKeyItemsWithDisplay","setDisplay","setItemsByStoreKey","refKeyItemsWithDisplay","setItemsByResourceRefKey","DataEditorDisplayUtils","buildDisplaysForAllItems","getAllResources","saveShuffledItems","shuffledItems","pageStartIndex","pageEndIndex","shuffledResourceItems","shuffledItem","DataEditorReducer","action","setSelectedResource","selectedResource","valueToTest","newSortQueue","newPageIndex","newStoreItems","itemDisplay","clone","DataEditorContext","DataEditorProvider","useReducer","dispatch","updateAllItems","useCallback","changeResource","reOrderSelectedItems","saveOrder","updateSelectedResourceSorting","updateSelectedResourcePageIndex","setSearchText","clearAllItemsFromSelectedResource","updateItem","updateResourceItems","clearItem","addNewItem","openAddDialog","closeAddDialog","DataEditorHandle","dataEditorStyles","Handle","checkGroup","groupName","isAdmin","isManager","hasDevAccess","userGroups","hasAdminAccess","AppUserGroups","hasDataEditorAdminAccess","hasManagerAccess","hasNonGuestAccess","isOnHandUnlock","getUserRestaurantWithFilter","hasTShirtsStockingAccess","DataEditorItemDeleteButton","handleDelete","event","IconButton","DataEditorItemEditButton","setIsEditing","DataEditorItemDisplay","displayColumns","columnStyles","Row","ItemActions","ItemContent","renderDisplay","DataEditorItemEdit","onEditCancel","handleEditSubmit","enableReinitialize","validate","handleSubmit","onSubmit","setSubmitting","initialValues","prepRenderEdit","DataEditorItem","isEditing","DataEditorItemWrp","hideHandle","RowWrp","buildSortableItem","DataEditorItems","useEffect","sortableResourceItems","multiDrag","ContentItems","direction","handle","animation","setList","args","DataEditorAddDisplayColumn","columnIndex","assign","fontWeight","dataEditorAddStyles","AddDialogInput","AddDialogInputLabel","DataEditorAddContent","styles","AddDialogContent","AddDialogActions","autoFocus","DataEditorAdd","Add","Dialog","fullWidth","maxWidth","onClose","open","DialogContent","dividers","DataEditorHeaderCellSortIcon","HeaderSortIcon","DataEditorHeaderColumn","handleSortUpdate","HeaderSort","DataEditorHeaderColumns","DataEditorSaveOrderBtn","handleSaveOrder","itemsToBeUpdated","updatedItems","itemsToBeUpdatedPromises","OrderSaveBtn","Tooltip","DataEditorHeader","HeaderWrp","Header","DataEditorAddAllBtn","replaceResourceItems","addAllFromBackup","itemsDataFromBackup","itemFromBackup","itemsCreationPromises","padding","DataEditorDeleteAllBtn","deleteAll","selectedResourceItems","itemsDeletionPromises","selectedResourceItem","DataEditorItemsCount","ItemsCount","useStyles","makeStyles","theme","root","marginTop","spacing","DataEditorPagination","classes","pageCount","defaultPage","Pagination","shape","siblingCount","boundaryCount","DataEditorRefreshBtn","onRefreshData","DataEditorFooter","Footer","DataEditorResourceSelect","visibleResources","isVisibleInDataEditor","selectedResourceIndex","ToolbarSelection","FormControl","ToolbarForm","Select","labelId","resourceIndex","target","MenuItem","DataEditorSearch","ToolbarSearch","InputBase","ToolbarSearchInput","inputProps","ToolbarSearchBtn","DataEditorToolbar","Toolbar","DataEditor","ToolbarWrp","ContentWrp","Content","FooterWrp","React","memo","DataEditorAdmin","pageResources","DataEditorAdminMenuItem","AdminContainerConfig","ContainerBasePaths","FOOD","ORDERS","OFF_SITE","T_SHIRTS","DPS","ADMIN","AdminSectionConfig","MenusActions","LOAD_MENUS","UPLOAD_SALES","CHANGE_RESTAURANT","OPEN_ADD_DIALOG","CLOSE_ADD_DIALOG","CacheDataTerms","in","out","ClearedChars","clearIllegalChars","joinResult","c","SalesParser","filterRows","salesData","sale","parseRawSales","headerIndex","header","extractTargetColumnsIndex","menuItemNameIndex","quantitySoldIndex","sortParsedSales","filterSortedSales","mergeFilteredSales","curr","ResourceColumnDate","AppIngredientPackModel","appIngredientPackModel","setSortCallback","AppIngredientPack","appIngredientModel","AppIngredient","AppIngredientInventoryModel","appIngredientInventoryModel","AppIngredientInventory","appIngredientInventoryMetaModel","AppIngredientInventoryMeta","AppIngredientOnHandAreaModel","appIngredientOnHandAreaModel","AppIngredientOnHandArea","appIngredientDeliveryAreaModel","AppIngredientDeliveryArea","AppMenuItemModel","appMenuItemModel","AppMenuItem","appRecipeItemModel","AppRecipeItem","AppMenuItemSaleModel","appMenuItemSaleModel","AppMenuItemSale","appMenuItemSaleMetaModel","AppMenuItemSaleMeta","AppDeliveryAreaModel","appDeliveryAreaModel","AppDeliveryArea","AppOnHandAreaModel","appOnHandAreaModel","AppOnHandArea","appDpsEmailModel","AppDpsEmail","appDpsEmailRecipientModel","AppDpsEmailRecipient","AppDpsIngredientModel","appDpsIngredientModel","setResourceRefKeyAlias","AppDpsIngredient","appDpsPackModel","AppDpsPack","AppDpsMenuItemModel","appDpsMenuItemModel","AppDpsMenuItem","appDpsRecipeItemModel","AppDpsRecipeItem","DpsMenuItemSaleModel","appDpsMenuItemSaleModel","AppDpsMenuItemSale","appDpsMenuItemSaleMetaModel","AppDpsMenuItemSaleMeta","CONFIGS","displayConfigs","hideMultiple","salesConfigs","keyPrefix","fileNameSuffix","menuItemResource","menuItemSaleResource","menuItemSaleMetaResource","ingredientResource","recipeItemResource","MenusSectionConfigs","getConfig","getUtils","INGREDIENT_ID","MENU_ITEM_ID","recipeItemMenuItemFilter","menuItemId","recipeItem","attachIngredientToRecipe","ingredientsById","ingredient","attachMenuItemId","obj","findSales","targetId","sales","findSalesType","targetType","SINGLE","MULTIPLE","removeOracleIdSuffix","menuItemName","trim","findMenuItemCallback","getMenuItemCompletionScore","getMenuCompletionScore","menu","MenusUtils","digestUploadedSales","validMenuItemNames","nonIllegalCharMenuItems","uploadedSale","quantitySold","oracleIdTrimmedName","nonIllegalOracleIdTrimmedName","nonIllegalCharName","keyName","trueName","menuItemIndex","findMenuItemIndex","updatedMenu","findMenuItem","invalidQueue","quantity","updateQueue","createQueue","displayRecipeItem","getTotalCompletionScore","maxCompletionScore","MenusReducer","completionScore","MenusResolver","useMocks","appRestaurants","restaurantFilter","menuItems","recipeItems","ingredients","dayFilter","menuItemSalesMeta","storageKeys","menuItemSales","menuItemSalesMetaByRestaurantId","recipe","meta","MenusContext","MenusProvider","menusState","loadMenus","salesUpload","updatePromises","createPromises","uploadedSales","saleTypeStorageKey","changeRestaurant","MenusToolbarInvalidQueue","showInvalidQueue","handleInvalidQueueDialogClose","prevState","DialogTitle","menusToolbarStyles","menusToolbarReadFailuresContent","menusToolbarReadFailure","DialogActions","menusToolbarReadFailures","MenusToolbar","menusToolbar","menusToolbarSelection","menusToolbarSelectionRestaurant","selectedRestaurantId","menusToolbarCompletion","baseStyle","flex","flexDirection","alignItems","borderWidth","borderRadius","borderColor","borderStyle","backgroundColor","outline","transition","activeStyle","acceptStyle","rejectStyle","MenusSalesDropZone","onUpdate","onLoad","requiredFileName","onDrop","acceptedFiles","file","reader","FileReader","onabort","onerror","onload","readAsBinaryString","useDropzone","minSize","maxSize","getRootProps","getInputProps","isDragActive","isDragAccept","isDragReject","useMemo","menusSalesDropZoneStyles","menusDropZoneArea","menusDropZoneTitle","MenuSalesParser","Papa","row","isNaN","e","MenusSalesNameDescriptor","salesType","fileName","MenusSalesDropZoneWrp","handleSalesUpload","menusSalesDropZoneStylesWrp","menusUploads","menusUploadsDropZones","salesConfig","restaurantInitial","MenusContentHeader","hideMultipleContent","menuStyles","menuItemSaleSingle","showMultipleContent","menuItemSaleMultiple","menuContentHeader","menuContentItem","menuItemRecipe","MenusCompletionStatus","menusStyles","menusCompletion","LinearProgress","valueBuffer","MenusItemRecipe","menuItemMissingRecipe","recipeDisplay","MenusItem","MenusContent","menusContent","menuContentItems","isLoading","Menus","menus","MenusWrp","MenusMenuItem","MenusContainerConfig","AppDpsPacks","AppDpsEmailRecipients","packsById","recipients","extractIngredientsDelivery","plural","roundOffSeason","computeSoldIngredientTotal","soldQuantity","computeSoldIngredient","aggregateIngredientSoldTotals","sold","computeIngredientDeliveryDisplay","soldDisplay","subSubDpsPack","subDpsPackSize","isMissing","isMissingSubSubPack","dpsPack","dpsPackSize","useSubPack","ratio","packTotal","computeWithoutSubSubPack","subDpsPack","packSize","packsSold","floor","subPacksSold","computeWithSubSubPack","computeIngredientPacksDeliveryDisplay","ingredientsWithSoldTotal","ingredientsWithSoldTotalReducer","ingredientId","dpsPackId","subDpsPackId","subSubDpsPackId","soldPack","ratioDisplay","deliveryDisplay","DeliveryDpsUtils","loadData","isValidState","getRestaurantRecipients","DeliveryDpsRestaurantSelector","DeliveryDpsEmailDataPreview","notesToKitchenManager","cellStyle","buildCell","buildRow","DeliveryDpsHeader","setNotesToKitchenManager","isDialogOpen","setIsDialogOpen","cc","sentBy","handleEmail","filterSelectedRecipients","isSelected","splitValidEmails","selectedRecipients","closeSendEmailDialog","deliveryDpsStyles","gridAutoFlow","placeContent","placeItems","gridGap","Autocomplete","multiple","getOptionLabel","isSubscribed","filterSelectedOptions","recipient","element","renderInput","params","TextField","multiline","rows","class","EmailPreviewWrp","dangerouslySetInnerHTML","__html","DeliveryDpsContent","Item","DeliveryDps","DeliveryDpsMenuItem","DataEditorDps","adminResources","nonAdminResources","DataEditorDpsMenuItem","DpsContainerConfig","Delivery","DpsSectionConfig","isCompleted","OnHandStatus","isTransactionalOnHand","getClassName","onHandStatusStyles","Invalid","InProgress","Done","compute","group","updateStatus","getItemsStatus","andReducer","orReducer","TRANSACTIONAL","INVENTORY","OnHandResolver","loadDataTransactional","loadDataInventory","inventoryMetaResource","loadDependencies","buildDataHierarchy","restaurantsById","OnHandActions","LOAD_DATA","LOAD_DATA_TASK","CHANGE_VIEW","TOGGLE_GROUP_SELECTION","CHANGE_ITEM","GO_TO_PREV_ITEM","GO_TO_NEXT_ITEM","GO_TO_PREV_ITEM_TASKS","GO_TO_NEXT_ITEM_TASKS","INVENTORY_ATTACH","INVENTORY_UPDATE","DELIVERY_TRANSACTION_UPDATE","STOCKING_TRANSACTION_UPDATE","DELIVERY_TRANSACTION_RESET","STOCKING_TRANSACTION_RESET","LOCK_SUBMISSION","UNLOCK_SUBMISSION","SUBMIT_SELECTED_ITEM","SUBMIT_SELECTED_DELIVERY_ITEM","SUBMIT_SELECTED_STOCKING_ITEM","CONFIRM_CHANGES","REJECT_CHANGES","TOGGLE_LOCK","SYNC","SELECT_ITEM_FROM_TASK","hasValidSelectedRestaurant","onHandState","isValidGroup","OnHandContextValidator","isEmptyGroup","mock","hasValidGroups","isValidSelectedRestaurant","isValidGroupsFormat","areValidGroups","hasValidItemInventory","getLocalStorageConfig","dayTime","subKey","getLocalObj","persistOnHandItem","localObj","expires","getDefaultLocalObj","persistInventoryLocallyWrp","persistInventoryLocally","submitSelectedItem","inventoryResource","submitSelectedItemTransaction","transaction","transactionResource","extractCompletedItem","OnHandUtils","isSelectedByName","isSelectedByAlias","onHandAlias","isSelectedItem","currItem","isReadOnly","unlocked","isNew","isUnlocked","inventoryMeta","getLocalItems","buildInventory","dirty","prepInventoryForSubmission","handleSubmitTransaction","extractCompletedInventories","completedInventories","isOnHandBelowAlert","alertThreshold","inventoryQuantity","loadPersistedView","views","urlModeAlias","view","viewFromUrl","localViewAlias","viewFromLocal","default","persistView","AppOffSiteTransactionTypes","DELIVERY","STOCKING","CORRECTION","AppOffSiteTransactionStatuses","PENDING","CANCELLED","LOADED","TRANSIT","COMPLETED","AppOffSiteAlertStatuses","AppOffSiteAlertLocalTypes","appOffSiteItem","AppOffSiteItem","AppOffSiteAreaModel","appOffSiteAreaModel","AppOffSiteArea","appOffSiteUnit","AppOffSiteUnit","appOffSiteTransaction","AppOffSiteTransaction","appOffSiteAlert","AppOffSiteAlert","getOffSiteTasks","tasks","offSiteTransactionRequest","tasksResponse","getOffSiteOpenDeliveryTasks","offSiteIncompleteTasksFilter","and","ne","getOffSiteRestaurants","getOffSiteRestaurantsById","getOffSiteAreasById","offSiteAreas","offSiteAreasById","getOffSiteItemsById","offSiteItems","offSiteItemsById","offSiteTasks","destinationRestaurants","rawOffSiteTasks","rawOffSiteTask","destinationRestaurant","offSiteItem","offSiteItemId","offSiteArea","offSiteAreaId","offSiteRestaurant","getStatusTasksCount","offSiteStatusTasksByIdAndRest","tasksByRestaurantId","sortTasksByCreatedAt","taskA","taskB","getLatestPendingTask","pendingTasks","latestTask","duplicates","deDupePendingTasks","offSitePendingTasksByIdAndRest","getDefaultPendingAmountForSelectedItem","offSiteTasksByStatusAndIdAndRest","selectedItemTasksByRest","sum","offSiteTask","itemTransactions","or","transitTasks","task","transitTasksByRestaurantId","sumUpItemStock","completedTransactions","completedTransactionsForItem","inStockAmount","getTaskKeyStep","offSiteStatusTasks","taskSelectedKey","tasksKeysObj","tasksByAreaAndItemOrder","taskKey","areaOrder","itemOrder","tasksKeys","firstTaskKey","taskSelectedKeyIndex","stepTasksKeysIndex","stepTasksKey","OffSiteTasksUtils","getOffSiteOpenDeliveryTasksDecorated","getPendingTasksCount","getLoadedTasksCount","getTransitTasksCount","organizeOffSiteTasksByStatusAndId","findLocationOfTaskByKey","loadOffSiteItemById","extractSelectedOffSiteItem","offSiteState","pendingSelectedKeyItem","getTasksFromOffSiteTasks","itemTasksByRestaurant","getTasksByDestinationRestaurantId","tasksByDestinationRestaurantId","offSiteStatusAndIdTasksByRest","extractDestinationRestaurants","hasExactRequiredValue","deliveryQuantity","hasValidValue","getUnitDisplay","offSiteUnit","fetchItemTransactions","loadReceptionData","getOffSiteItemInStockAmount","getPrevPendingTaskKey","last","getNextPendingTaskKey","first","getOffSitePendingItemForSelectedTask","pendingTasksForItem","sortOffSiteTasksByStatus","transactionTaskA","transactionTaskB","statusesSorted","updateState","OnHandReducer","utils","selectItemByIndex","selectGroup","goToPrevTask","goToNextTask","goToPrevItem","goToNextItem","reload","addedQuantity","max","stockingQuantity","lockedSubmit","SUBMIT_SELECTED_ITEM_TRANSACTION","rejectGroupItems","updateTransactionPromise","makePendingTaskLoaded","pendingItemTask","submitPendingDeliveryTask","itemTask","taskDuplicates","tasksToBeUpdatedAsLoaded","tasksToBeUpdatedAsCancelled","extractTasksFromTasksByStatus","statusTasks","restaurantsTasks","sendLoadedTasksToTransit","loadedTasks","extractedTasks","updatedTasksData","updateTasksStatus","newStatus","submitCompletedStockingTransaction","createdBy","OffSiteContextActionType","OnHandContext","OnHandProvider","taskByItemId","loadOnHandData","loadOnHandDataTask","changeView","changeItem","goToPrevItemTasks","goToNextItemTasks","inventoryAttach","onSelectedItemQuantityUpdate","onSelectedPendingDeliveryItemQuantityUpdate","onSelectedItemStockingTransactionUpdate","onSelectedItemDeliveryTransactionReset","onSelectedItemStockingTransactionReset","lockSubmission","unlockSubmission","submitSelectedDeliveryItem","submitSelectedStockingItem","confirmChanges","rejectChanges","unlockRestaurantOnHand","finishRestaurantOnHand","syncRestaurantOnHand","selectItemFromTask","OnHandGroupConfirmChanges","needsConfirmation","showConfirmation","handleConfirm","confirmGroupItems","onHandGroupStyles","ConfirmTitle","Confirm","itemConfirm","itemIndex","unitName","bulk","onHandUnit","textAlign","OnHandGroupReadOnly","OnHandGroupReadOnlyHeader","onHandGroupReadOnlyStyles","Name","extractItemName","OnHandTabPanelWrp","OnHandTabPanel","other","Typography","role","hidden","Box","p","onHandItemStyles","TabHead","selectedItemIndex","itemContent","OnHandGroup","groupIndex","handleGroupChange","isExpanded","deselectGroup","expanded","ExpansionPanel","TransitionProps","unmountOnExit","mountOnEnter","ExpansionPanelSummary","expandIcon","primaryHeader","secondaryHeader","ExpansionPanelDetails","Expansion","Tabs","orientation","indicator","itemTab","OnHandContent","onHandContentStyles","OffSiteContextInit","restaurantsFilter","isVisible","showDeliveryTasksDialog","OffSiteContextReducer","offSiteInitData","prevTaskKey","syncOffSiteTaskSelectedKeyCallback","nextTaskKey","OffSiteContext","OffSiteContextProvider","loadDeliveryTasks","LOAD_DELIVERY_TASKS","toggleDeliveryTasksDialog","TOGGLE_DELIVERY_TASKS_DIALOG","GO_TO_PREV_TASK","GO_TO_NEXT_TASK","updateRestaurantsFilter","UPDATE_RESTAURANTS_FILTER","sendLoadedTasks","SEND_LOADED_TASKS","OffSiteTasksFilter","formLabel","Selection","MenuItemHidden","restaurantSelection","FormControlLabel","stopPropagation","control","Checkbox","checked","OnHandToolbarSync","handleSync","onHandToolbarStyles","Sync","OnHandToolbar","OnHandToolbarStatus","statusClassName","restaurantStatusClassName","RestaurantStatus","OnHandToolbarUnlock","Unlock","OnHandToolbarFinish","Finish","SelectionRestaurant","Status","SyncWrp","OnHandConfigModel","OnHand","offSiteTaskSelectedKey","onHandStyles","OnHandWrp","OnHandItemTab","tabRef","useRef","selectedClass","dirtyClass","onHandItemTabStyles","Tab","ref","a11yProps","OnHandFoodItemTab","OnHandFoodItemTitle","pack","ingredientName","Title","OnHandFoodItemDelivery","onHandItemInputStyles","OnHandFoodItemActions","disabledSubmit","Actions","OnHandItemMetaData","gutterBottom","onHandItemMetaDataStyles","OnHandFoodItemMeta","Meta","OnHandItemClearInput","handleReset","OnHandItemQuickInput","quickValue","labelContent","Label","displayContent","Display","OnHandItemInput","newValue","InputWrp","Input","Negatives","Middle","Positives","OnHandFoodItem","Details","ContentHeader","OnHandItemDisplayModel","OnHandDailyGenerator","refItemKey","localInventories","localInventory","localInventoriesByItemId","s3Inventories","s3InventoriesByItemId","inventoriesByItemId","inventories","idsOfItemsWithoutInventory","inventoryMocks","createMock","createInventories","newInventory","inventoriesMeta","OnHandGroupModel","appGroup","selectFirstIncompleteItem","newItemIndex","firstIncompleteItemIndex","deselectItem","OnHandItemModel","appItem","dependencies","dateFormat","newInventoryData","isCountedInventory","isCountedTransaction","OnHandRestaurantModel","appRestaurant","newGroup","newGroupIndex","selectGroupByIndex","selectedGroupIndex","firstIncompleteGroupIndex","isFirstItemInGroup","isFirstGroup","rejectItems","isCounted","itemsBeforeSelectedItem","notSelectedItems","nextItemIndex","checkGroupIsCompleted","getNextItemIndex","OnHandItemContext","groupResource","resourceConfig","groupResourceConfig","groupRefKey","generator","rawRestaurants","rawGroups","rawItems","itemsByGroup","groupsByRestaurant","listMeta","currentInventoriesMeta","missingInventoriesMeta","attachMetaToRestaurants","decorate","g","inventoriesMetaById","ID","OnHandFoodItemContext","ingredientPacksById","ingredientInventoriesById","ingredientPacks","loadInventories","ingredientPackId","OnHandFoodContextConfig","OnHandFood","OnHandFoodMenuItem","DeliveryFoodModeUtils","buildModeDisplay","COM","prep","onHand","prepForDelivery","prepTime","prepForDeliveryTime","RST","delivery","deliveryFixed","deliverySales","buildDeliveryModeDisplay","buildDeliveryFixedModeDisplay","buildDeliverySalesModeDisplay","buildPrepForDeliveryModeDisplay","buildPrepModeDisplay","buildPrepTimesModeDisplay","buildSummaryModeDisplay","buildRestaurantModeDisplay","rootData","isRestaurant","DeliveryFoodMode","deliveryType","deliveryTotalType","mode","DeliveryFoodUtils","getHoursDisplay","totalTimeMinutes","hours","hoursDisplay","minutes","minutesDisplay","extractOnHand","dataForDelivery","total","totalDisplay","portionRatio","extractSales","ingredientSales","ingredientSalesRatio","salesRatio","restaurantRatio","totalWithoutRatio","totalPortions","quantityPerItem","totalWithoutSalesRatio","extractDelivery","deliveryConfigsByRestaurantId","ON_HAND","totalWithoutFixedNeeds","totalFixedNeed","fixedNeed","totalFixedNeedWithoutOnHand","totalSalesNeed","extractPrepForDelivery","commissary","COMM_ON_HAND","restaurantDelivery","extractPrepTime","laborTime","batchSize","portionTime","prepTotal","extractPrepForDeliveryTime","prepForDeliveryTotal","extractIngredientResults","allRestaurants","SINGLE_SALES","MULTIPLE_SALES","totalCommOnHand","totalSingle","totalDelivery","extractPrep","restaurantResult","DeliveryFoodContext","DeliveryFoodReducer","deliveryFoodState","updatedDeliveryFoodState","summary","updatedIngredient","restaurantsList","ingredientIndex","oldIngredient","deliveryFoodStateInit","deliverySections","modes","__typename","locked","days","salesDay","onHandDay","DeliveryFoodProvider","updateDeliveryFood","setSummary","clearSummary","setMode","updateFixedNeed","tooltip","headerCellPrintContent","headerCellContent","deliveryFoodHeaderStyles","IconDelivery","salesSingle","salesMultiple","DeliveryFoodHeaderCell","DeliveryFoodHeaderCommissary","PrepForDeliveryComCell","OnHandComCell","PrepComCell","PrepTimeComCell","PrepForDeliveryTimeComCell","deliveryFoodStyles","ItemRestaurantHeader","CellRestaurantName","CellsRestaurantSections","DeliveryFoodHeaderRestaurant","DeliveryCell","DeliverySalesCell","DeliveryFixedCell","SalesMultipleCell","OnHandCell","SalesSingleCell","DeliveryFoodHeader","commissaries","renderHeader","showRestaurant","DeliveryFoodSummaryConfigs","onHandItem","onHandAreaName","DeliveryFoodSummarySaleItem","saleItem","DeliveryFoodSummary","DeliveryFoodToolbar","toolbarInfo","getToolbarInfo","ToolbarInfo","locationIdentifier","DeliveryFoodCell","fieldName","styleName","totalDisplayWrp","Cell","textClassName","DeliveryFoodItemRestaurantDeliveryCell","DeliveryFoodItemRestaurantDeliveryFixedCell","deliveryConfig","handleUpdateFixedNeed","newFixedNeed","newDeliveryConfig","Decrease","Increase","DeliveryFoodItemRestaurantDeliverySalesCell","DeliveryFoodItemRestaurantOnHandCell","DeliveryFoodItemRestaurantSalesMultipleCell","DeliveryFoodItemRestaurantSalesSingleCell","DeliveryFoodItemRestaurant","ItemRestaurant","DeliveryFoodItemCommissaryOnHandCell","DeliveryFoodItemCommissaryPrepCell","DeliveryFoodItemCommissaryPrepForDeliveryCell","DeliveryFoodItemCommissaryPrepForDeliveryTimeCell","DeliveryFoodItemCommissaryPrepTimeCell","DeliveryFoodItemCommissary","DeliveryFoodItem","noPrint","placement","arrow","DeliveryFoodSectionHeader","SectionHeader","sortFoodDeliverySectionSortByPackType","ingredientA","ingredientB","packNameA","packNameB","DeliveryFoodSection","deliverySection","sectionIngredients","deliveryAreaId","doesIngredientBelongToSection","sectionIngredientFilter","sectionIngredientsWithDelivery","nonEmptyIngredientDeliveryFilter","SectionRow","quantityField","packType","SectionRowQuantity","SectionRowPackType","DeliveryFoodSignature","Signature","DeliveryFoodSections","modeRestaurantId","modeRestaurantSections","Sections","DeliveryFoodContent","displayedIngredients","ingredientsFilter","DeliveryFoodContentMain","DeliveryFoodDeliveryMode","comHasDeliveryValues","restHaveDeliveryValues","hasDeliveryValues","DeliveryFoodPrepForDeliveryTimeMode","prepForDeliveryTimeTotal","totalTimeDisplay","hasPrepForDeliveryValues","DeliveryFoodPrepMode","hasPrepValues","DeliveryFoodPrepTimeMode","prepTimeTotalMinutes","DeliveryFoodRestaurantMode","deliveryFoodStyle","RestaurantDeliveryHeader","getDayTimeDisplay","DeliveryFoodRestaurantFixedMode","DeliveryFoodSummaryMode","DeliveryFoodModes","restaurantModes","DeliveryFoodResolver","onHandData","extractOnHandFromGroups","extractSalesFromMenu","packs","deliveryAreas","ingredientDeliveryAreas","salesByIngredientId","deliveryByIngredientId","deliveryAreasById","deliveryArea","ingredientDeliveryAreasByIngredientAndRestaurantId","ingredientDeliveryArea","ingredientDeliveryAreasDecorated","ingredientRestaurantArea","area","decoratedIngredients","rawIngredient","deliveryAreasByRestaurantId","deliveryRestaurants","extractOnHandFromItems","onHandAreaId","restaurantSalesData","DeliveryFoodLoadUtils","getDeliveryFood","DeliveryFood","DeliveryFoodWrp","DeliveryFoodMenuItem","DataEditorFood","DataEditorFoodMenuItem","FoodContainerConfig","FoodSectionConfig","DataEditorOffSite","DataEditorOffSiteMenuItem","OffSiteOnHandItemDisplayModel","OffSiteDeliveryItemQuickInputs","addedQuickValue","OffSiteDeliveryItemRestaurants","selectedItemTasks","itemId","getSelectedItemTasks","Group","tasksDestinationRestaurant","tasksDestinationRestaurantId","tasksDestinationRestaurantName","selectedItemDestinationRestaurantTasks","quantityDisplay","ButtonContent","TextEllipsis","OffSiteDeliveryItemTotal","itemUnitDisplay","margin","endAdornment","InputAdornment","position","OffSiteDeliveryItemInput","DeliveryInput","OffSiteDeliveryItemPrev","OffSiteOnHandItemActionsSkip","OffSiteDeliveryItemSubmit","isNotTheExactlyRequiredValue","isLockedSubmit","OffSiteDeliveryItemActions","OffSiteDeliveryItem","defaultRequiredValue","OffSiteStockingItemPrev","OffSiteStockingItemSkip","OffSiteStockingItemSubmit","OffSiteStockingItemActions","OffSiteStockingItemQuickInputs","leftInputs","middleInputs","rightInputs","OffSiteStockingItemQuickInputsDisplay","QuickInputs","OffSiteStockingItemClearInput","OffSiteStockingItemTotal","totalAmount","setTotalAmount","TotalAmountWrp","TotalAmount","OffSiteStockingItemInput","OffSiteStockingItem","OffSiteHistoryItem","transactions","setTransactions","Value","transactionA","transactionB","createdAtMoment","createdAtDisplay","timeSinceCreated","fromNow","makeMomentFromAWSDateTime","aWSDateTime","getCurrentUSEast1Moment","sortMomentsAsc","momentA","momentB","sortOpenAlerts","alertA","alertB","sortSnoozedAlerts","snoozedUntilMoment","sortCompletedAlerts","updatedAtMoment","getAlertType","currentUSEast1Moment","isBefore","reordersAlertsRaw","offSiteCompletedTransactions","offSiteCompletedTransactionsByItemId","reordersAlerts","snoozedUntil","stock","alerts","alertsRaw","OffSiteReordersUtils","isOpenAlert","isSnoozedAlert","isCompletedAlert","alertUpdateData","currentMoment","toISOString","snoozeDuration","getMoment","getLastOffSiteAlerts","sendOffSiteAlert","loadReordersAlertsDecorated","getOpenAlertsList","getSnoozedAlertsList","getCompletedAlertsList","completeAlert","undoCompleteAlert","snoozeAlert","moveAlertToNewType","prevType","newType","OffSiteReordersItemAlert","setMessage","historyAlerts","setHistoryAlerts","ItemAlertWrp","ItemAlertEditor","ItemAlertEditorMessage","ItemAlertEditorSubmit","ItemAlertHistory","ItemAlertHistoryHeader","ItemAlertHistoryItem","ItemAlertHistoryItemDetails","HISTORY","ALERT","VIEWS","OffSiteOnHandItemContext","offSiteUnitsById","offSiteUnits","OffSiteOnHandContextConfig","OffSiteOnHandItemHeader","isSelectedClass","SelectedMenuItem","OffSiteOnHandItem","offSiteOnHandItemStyles","OffSiteOnHandItemTab","OffSiteDeliveryMenuItem","OffSiteTasksDialogActions","handleSendLoadedTasks","OffSiteDialogActions","OffSiteTasksDialogContentItem","RestaurantTasksRow","RestaurantTasksTransit","RestaurantTasksLoaded","RestaurantTasksPending","getStatusStyle","OffSiteTasksDialogHeader","RestaurantTasksHeader","OffSiteTasksDialogContent","destinationRestaurantIds","destinationRestaurantId","restaurantName","RestaurantTasks","RestaurantTasksLabel","OffSiteTasksDialog","TasksDialog","TasksDialogContent","TasksDialogActions","OffSiteTasksCounter","pendingTasksCount","loadedTasksCount","transitTasksCount","TasksCounter","TasksCounterButton","TasksStatusCounter","ProgressCounter","OffSiteTasksNavigator","selectedOffSiteItem","TasksNavigator","TasksNavigatorLeft","TaskNavigatorItem","TasksNavigatorRight","OffSiteTasksStart","TasksNavigatorStart","TasksNavigatorStartButton","OffSiteContainerConfigBuilder","containerConfig","OffSiteReordersContextActionType","OffSiteReordersContextStateType","lastUpdatedAlert","OffSiteReordersContextReducer","SET_ALERTS","COMPLETE_ALERT","UNDO_COMPLETE_ALERT","SNOOZE_ALERT","OffSiteReordersContext","OffSiteReordersContextProvider","offSiteReordersState","setAlerts","OffSiteReordersUndoButton","handleAlertUndoComplete","OffSiteReordersCompletedAlert","CompletedAlert","LastUpdatedAlert","ItemName","ItemStock","ItemPar","ItemDoneBy","Controls","OffSiteReordersCompletedAlerts","completedAlerts","CompletedAlerts","AlertTypeDividers","OffSiteReordersCompleteButton","onAlertDone","ALL_DURATIONS","OffSiteReordersSnoozeButton","anchorEl","setAnchorEl","handleClose","duration","SnoozeMenu","currentTarget","Menu","keepMounted","Boolean","ALL_REORDERS_DURATIONS","OffSiteReordersOpenAlert","OpenAlert","OffSiteReordersOpenAlerts","openAlerts","OpenAlerts","OffSiteReordersSnoozedAlert","SnoozedAlert","ItemSnoozedUntil","OffSiteReordersSnoozedAlerts","snoozedAlerts","SnoozedAlerts","OffSiteReorders","ReordersAlerts","OffSiteContainerConfig","offSiteOnHandItemDisplayModel","setTasksHeaderComponent","TasksWrp","TasksNavigatorWrp","Reception","setTransitTasksByRestaurantId","setDestinationRestaurants","selectedDestinationRestaurantId","setSelectedDestinationRestaurantId","handleItemUpdate","updatedTaskData","itemInStockAmount","newPendingAlertData","updatedRestaurant","destinationRestaurantsList","ReceptionToolbar","ReceptionContent","offSiteItemName","ReceptionContentTask","Stocking","Reorders","OffSiteSectionConfig","useLocation","currentPage","setCurrentPage","page","TasksHeader","OnHandOrderItemTab","OnHandOrderItemTitle","OnHandOrderItemActions","OnHandOrderItemMeta","OnHandOrderItem","appOrderModel","AppOrder","AppOrderAreaModel","appOrderAreaModel","AppOrderArea","appOrderUnitsModel","AppOrderUnits","appOrderVendorModel","AppOrderVendor","AppOrderInventoryModel","appOrderInventoryModel","AppOrderInventory","appOrderInventoryMetaModel","AppOrderInventoryMeta","OnHandOrderItemContext","orderUnitsById","orderVendorsById","orderInventoriesById","orderUnits","orderVendors","orderOnHandUnitId","orderDeliveryUnitId","orderVendorId","deliveryUnit","vendor","OnHandOrdersContextConfig","OnHandOrders","OnHandOrdersMenuItem","DeliveryOrdersMenuItem","DataEditorOrders","DataEditorOrdersMenuItem","SEND_EMAIL","CHANGE_VENDOR","SELECT_PREV_EMAIL_VENDOR","SELECT_NEXT_EMAIL_VENDOR","UPDATE_EMAIL_VENDOR_NOTES","UPDATE_DELIVERY_ORDER","SELECT_EMAIL_VENDOR_ORDERS","UPDATE_EMAIL_VENDOR_ORDERS","ADD_NEW_VENDOR","ENABLE_ADD_NEW_VENDOR","extractInventoryQty","extractConversion","conversion","extractDeliveryQty","editedQuantity","inventoryQty","par","extractDeliveryUnitName","getOrderQuantity","orders","transactionsData","buildOrderOffSiteTransaction","transactionCreationPromises","transactionData","isNonEmptyOrder","extractOrders","deliveryOrders","addedOrders","DeliveryOrdersUtils","extractOrderName","displayVendor","filterForValidDelivery","filterOutAllVendorsOption","findIndexOfSelectedVendor","vendors","clearVendorSelection","findSelectedVendor","selectedVendors","extractDeliveryDisplay","createOrdersOffSiteTransactions","extractNonEmptyOrders","sortOrders","isOffSiteVendor","isOffSite","getOrdersThatCanBeAdded","emailVendor","isInDeliveryOrders","deliveryOrder","isInAddedOrders","addedOrder","filterDeliveryOrders","ALL_VENDOR","isAllVendor","ADD_NEW_VENDOR_INDICATOR","DeliveryOrdersEmail","emailBcc","getHTMLPreview","emailSent","vendorName","dayDisplay","getEmailSubject","notes","DeliveryOrdersResolver","orderAreas","orderInventoriesMeta","orderInventoriesMetaStorageKeys","oim","orderInventories","orderInventoriesByOrderId","ordersByAreaId","orderAreaId","orderAreasByRestId","orderArea","restaurantOrders","restaurantOrdersByVendorId","allVendor","deliveryVendors","nonDeliveryVendors","deliveryVendor","DeliveryOrdersContext","initDeliveryOrders","isEmailDialogOpened","reducer","CHANGE_DISPLAY_VENDOR","currentDeliveryVendorIndex","currentEmailVendorIndex","getEmailVendorByPosition","currentVendorIsTheLastOne","findOrder","deliveryOrderIndex","addedOrderIndex","selectedOrderToBeAdded","nonDeliveryVendorIndex","DeliveryOrdersProvider","loadDataWrp","disabledPrint","openEmailDialogWrp","closeEmailDialogWrp","changeRestaurantWrp","sendEmailWrp","send","changeDisplayVendorWrp","selectPrevEmailVendorWrp","selectNextEmailVendorWrp","updateEmailVendorNotesWrp","updateDeliveryOrderWrp","selectEmailVendorOrdersWrp","updateEmailVendorOrdersWrp","addNewVendorWrp","enableAddNewVendorWrp","openEmailDialog","closeEmailDialog","changeDisplayVendor","selectPrevEmailVendor","selectNextEmailVendor","updateEmailVendorNotes","updateDeliveryOrder","selectEmailVendorOrders","updateEmailVendorOrders","addNewVendor","enableAddNewVendor","DeliveryOrdersRestaurantSelector","DeliveryOrdersVendorSelector","allVendors","DeliveryOrdersActions","DeliveryOrdersEmailDialogSend","sendEmailHandler","hasOrders","DeliveryOrdersEmailDialogSubject","deliveryOrdersStyles","DialogTitleText","DeliveryOrdersEmailDialogNotes","DeliveryOrdersEmailOrderEditor","orderQuantity","orderUnit","DialogOrderEditor","InputProps","startAdornment","DialogOrderEditorInput","DialogOrderEditorButton","DeliveryOrdersEmailOrderEditorAdd","ordersThatCanBeAdded","DialogEditorAdd","DeliveryOrdersEmailOrderLabel","hasDiscount","discount","DialogOrderLabel","DialogOrderLabelDiscount","DeliveryOrdersEmailDialogEditor","DialogWrp","border","DialogHeaderCell","DialogCell","DeliveryOrdersEmailDialogAddVendor","deliveryOrdersStyle","DialogAddVendor","displayEmpty","nonDeliveryVendor","DeliveryOrdersEmailDialog","thereAreNoDeliveryVendors","reachedTheEndOfDeliveryVendorsList","showAddNewVendor","disableNavigation","DialogTitleContent","DeliveryOrdersHeader","DeliveryOrdersContentHeader","TableHeader","Explained","DeliveryOrdersCellConversion","DeliveryOrdersCellName","DeliveryOrdersCellOnHand","DeliveryOrdersCellPar","DeliveryOrdersCellDelivery","DeliveryOrdersItem","NoDelivery","DeliveryOrdersVendorItem","VendorRow","DeliveryOrdersContentVendor","VendorContent","VendorName","DeliveryOrdersContent","DeliveryOrders","OrdersContainerConfig","OrdersSectionConfig","AppTShirtModel","styleId","sizeId","appTShirtModel","AppTShirt","appTShirtSizeModel","AppTShirtSize","appTShirtStyleModel","AppTShirtStyle","AppTShirtInventoryModel","appTShirtInventoryModel","AppTShirtInventory","appTShirtInventoryMetaModel","AppTShirtInventoryMeta","AppTShirtSaleModel","appTShirtSaleModel","AppTShirtSale","appTShirtSaleMetaModel","AppTShirtSaleMeta","AppTShirtTransactionModel","gt","appTShirtTransactionModel","AppTShirtTransaction","DataEditorTShirts","DataEditorTShirtsMenuItem","OnHandTShirtItemTab","OnHandTShirtItemInput","stockCapacity","prevOnHand","onHandTShirtItemStyles","DetailsInput","Slider","marks","buildMarks","onChangeCommitted","valueLabelDisplay","OnHandTShirtItemActions","OnHandTShirtItemTitle","OnHandTShirtItemMeta","OnHandTShirtItem","OnHandTShirtItemContext","tShirtSizesById","tShirtStylesById","tShirtInventoriesById","tShirtSizes","tShirtStyles","OnHandTShirtContextConfig","OnHandTShirtItemConfirm","OnHandTShirts","OnHandTShirtsMenuItem","SalesTShirtState","tShirts","sizes","tShirt","tShirtId","uploaded","checkUpload","attachStatusToTShirts","computeCompletionScore","statusIcon","getStatusIcon","salesTShirtStyle","done","incomplete","unknown","getStatusClassName","TShirtSalesParser","indexOf","splitName","splitSales","INIT","SalesTShirts","setStateData","updateSales","tShirtIndex","saleData","Items","ToolbarSelectionForm","SalesTShirtsMenuItem","INVALID","render","deliveryTShirtsStyles","StatusInvalid","NEEDS_ON_HAND","text","StatusNeedsOnHand","Selected","NEEDS_STOCKING","canSelect","requiredStocks","StatusNeedsStocking","StatusCompleted","checkDisabled","canAccess","selectedTShirt","computeAvailableInventoryLabel","qty","nameSgl","itemSgl","packSgl","splitQuantityIntoPacksAndItems","getMasterInventoryQuantity","masterInventory","TShirtsStockingUtils","computeGridColumns","labelWidth","selectedItemWidth","computeRequiredPacks","getInventoryQuantity","stockedQuantity","displayAvailableInventory","computeAvailableInventory","MasterInventoryLabel","findNextTShirt","updateTShirtStockMetadata","requiredStock","submitStockTShirtTransaction","supplyTShirt","findTShirtBySize","isValidTShirtStocking","tShirtsStocking","tShirtStyleSet","hasNoStocking","tShirtToSizeMappingReduce","tShirtStyleName","isValidTShirtStockingForStatus","tShirtModels","isStockingMode","extractAllTShirtsFromStyles","someTShirtsNeedOnHand","allTShirtsAreCompleted","TShirtsStockingContext","SELECT_T_SHIRT","TShirtsStockingProvider","changeMode","selectTShirt","stockTShirt","stockQuantity","updateLocalTShirtMetadata","navigateToNextTShirt","getTShirtByIndex","tShirtStyleId","getMasterInventoryFromTransactions","getStockTransactionsForToday","isStockTransactionForToday","appRestaurantsFilter","createdUntilNextDayFilter","lt","getNextDayUnixTime","tShirtTransactions","onHandTShirtsDailyGenerator","tShirtsInventoryMeta","itemSizesById","itemStylesById","tShirtTransactionsByTShirtId","tShirtTransaction","stockTransactions","updateTShirtMasterInventory","diff","TShirtsStockingRestaurant","TShirtsStockingModeSwitch","getVariant","ButtonGroup","ModeSwitch","getWindowDimensions","innerWidth","height","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","addEventListener","removeEventListener","TShirtsStockingHeader","selectedSizeId","tShirtsStockingHeaderStyles","tShirtsStockingItemStyles","SizeSelected","TShirtsStockingSelectedStocking","requiredStockQuantity","availableStockQuantity","availablePacks","availableItems","availableStockDisplay","possibleStockQuantity","takenPacks","takenItems","displayRequiredStock","deliveryTShirtsSelectedStockingStyles","TakeBtnWrp","StockNoStock","StockPartial","StockSuccess","Divider","InventoryPreview","computePacks","computeItems","changed","initQuantity","TShirtsStockingSelectedInventory","updateQuantity","q","ps","resourceEdit","subtractMultiple","addMultiple","displayButton","updateMethod","icon","ariaLabel","deliveryTShirtsSelectedInventoryStyles","ResourceEdit","QtyDisplay","Submit","TShirtsStockingSelected","deliveryTShirtsSelectedStyles","Close","TShirtsStockingItem","NA","isSelectedTShirt","onSelect","MasterInventory","TShirtsStockingStyle","tShirtStyleClassName","NameSelected","tShirtsDisplay","TShirtsStockingContent","tShirtModelSets","TShirtsStockingStatusCompleted","TShirtsStockingStatusNeedsOnHand","TShirtsStockingStatusRequiredStock","TShirtsStockingStatus","allTShirts","TShirtsStockingStatusNeedsCompleted","TShirtsStocking","ItemsContent","TShirtsStockingWrp","TShirtsStockingMenuItem","TShirtsContainerConfig","Sales","AppContextActionType","SectionsService","getSectionsFromGroups","checkIfGroupIsWithinAllowedListInSection","checkIfSectionShouldBeVisibleToGroups","AppContextInit","sections","showSectionSelector","showErrors","AppContextReducer","APP_LOCAL_KEYS","AppContextProvider","initApp","currentAuthenticatedUser","authUser","username","localSectionName","localSections","INIT_APP","global","catch","selectDay","SELECT_DAY","selectSection","isValidSection","SELECT_SECTION","SHOW_SECTION_SELECTOR","hideSectionSelector","HIDE_SECTION_SELECTOR","setShowErrors","SET_SHOW_ERRORS","SYNC_OFF_SITE_TASK_SELECTED_KEY","appHomeStyles","renderHome","AppDay","currentDayIsToday","disableFuture","DateFnsUtils","Grid","container","justify","appDayStyles","Day","DayNav","minDate","showTodayButton","selectedDate","selectedDateLabel","KeyboardButtonProps","DayPicker","AppFeedbackContext","ACTIONS","AppFeedbackReducer","AppFeedbackProvider","appFeedback","openDialogWrp","closeDialogWrp","sendFeedbackWrp","openDialog","closeDialog","sendFeedback","AppFeedbackButton","TYPES","PRIORITIES","AppFeedbackDialog","typeIndexState","setTypeIndex","priorityIndexState","setPriorityIndex","detailsState","setDetails","DialogMain","FormLabel","RadioGroup","typeIndex","Radio","priorityIndex","fontStyle","fontSize","AppFeedback","SectionHeaderSelector","appSectionHeaderSelectorStyles","Icon","renderHeaderIcon","AppHeader","AppHeaderComponent","appHeaderStyles","AppMenu","userAccessiblePages","appMenuStyles","AppLayout","envName","appLayoutStyles","TestEnv","CssBaseline","AppRoutes","routes","exact","SectionInitSelector","SignOutButton","appSectionInitSelectorStyles","onSectionSelect","renderInitCard","CancelButton","withAuthenticator","src","awsmobile","GlobalSpinner","hostname","Amplify","configure","awsconfig","errorsReport","ev","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.1a8a2895.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OnHandToolbar_Main__33UPu\",\"Selection\":\"OnHandToolbar_Selection__34APB\",\"Status\":\"OnHandToolbar_Status__3fXKX\",\"SyncWrp\":\"OnHandToolbar_SyncWrp__1NdiZ\",\"RestaurantStatus\":\"OnHandToolbar_RestaurantStatus__3yGWh\",\"SelectionRestaurant\":\"OnHandToolbar_SelectionRestaurant__1RBfv\",\"Mui-select\":\"OnHandToolbar_Mui-select__22-lg\",\"Sync\":\"OnHandToolbar_Sync__1Teir\",\"Finish\":\"OnHandToolbar_Finish__Hz2yc\",\"Unlock\":\"OnHandToolbar_Unlock__1MY4Y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"IconDelivery\":\"DeliveryFoodHeader_IconDelivery__1hLEZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menusToolbar\":\"MenusToolbar_menusToolbar__Lsoql\",\"menusToolbarSelection\":\"MenusToolbar_menusToolbarSelection__9uTES\",\"menusToolbarReadFailures\":\"MenusToolbar_menusToolbarReadFailures__1NZWl\",\"menusToolbarReadFailuresContent\":\"MenusToolbar_menusToolbarReadFailuresContent__1jVRI\",\"menusToolbarReadFailure\":\"MenusToolbar_menusToolbarReadFailure__1hazF\",\"menusToolbarSelectionRestaurant\":\"MenusToolbar_menusToolbarSelectionRestaurant__13X6S\",\"menusToolbarCompletion\":\"MenusToolbar_menusToolbarCompletion__3rO6N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"DeliveryDps_Main__2649l\",\"Header\":\"DeliveryDps_Header__3AwK9\",\"Content\":\"DeliveryDps_Content__2mnJa\",\"Item\":\"DeliveryDps_Item__mwDgE\",\"EmailPreviewWrp\":\"DeliveryDps_EmailPreviewWrp__2q_VM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Header\":\"OnHandGroup_Header__2i3m9\",\"primaryHeader\":\"OnHandGroup_primaryHeader__7q27E\",\"secondaryHeader\":\"OnHandGroup_secondaryHeader__3dzlp\",\"Tabs\":\"OnHandGroup_Tabs__WJj2a\",\"Mui-selected\":\"OnHandGroup_Mui-selected__ZJ8eA\",\"MuiTabs-scrollable\":\"OnHandGroup_MuiTabs-scrollable__Rg9Zv\",\"MuiTabs-scrollButtons\":\"OnHandGroup_MuiTabs-scrollButtons__2hBIB\",\"Expansion\":\"OnHandGroup_Expansion__jWMaF\",\"ConfirmTitle\":\"OnHandGroup_ConfirmTitle__1qkve\",\"Confirm\":\"OnHandGroup_Confirm__t6lMQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ItemAlertWrp\":\"OffSiteReordersItemAlert_ItemAlertWrp__3pXYo\",\"ItemAlertEditor\":\"OffSiteReordersItemAlert_ItemAlertEditor__NrBxT\",\"ItemAlertEditorMessage\":\"OffSiteReordersItemAlert_ItemAlertEditorMessage__1RAa2\",\"ItemAlertEditorSubmit\":\"OffSiteReordersItemAlert_ItemAlertEditorSubmit__3sEAv\",\"ItemAlertHistory\":\"OffSiteReordersItemAlert_ItemAlertHistory__3sEm0\",\"ItemAlertHistoryHeader\":\"OffSiteReordersItemAlert_ItemAlertHistoryHeader__11wA7\",\"ItemAlertHistoryItem\":\"OffSiteReordersItemAlert_ItemAlertHistoryItem__2Pavx\",\"ItemAlertHistoryItemDetails\":\"OffSiteReordersItemAlert_ItemAlertHistoryItemDetails__3uQNL\",\"ItemAlertHistoryItemMessage\":\"OffSiteReordersItemAlert_ItemAlertHistoryItemMessage__3868e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OnHandContent_Main__2ZUNM\",\"MuiExpansionPanelDetails-root\":\"OnHandContent_MuiExpansionPanelDetails-root__dGIBv\",\"MuiExpansionPanelSummary-content\":\"OnHandContent_MuiExpansionPanelSummary-content__luZYn\",\"ContentHeader\":\"OnHandContent_ContentHeader__60G96\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Add\":\"DataEditorAdd_Add__2efnI\",\"AddDialogContent\":\"DataEditorAdd_AddDialogContent__2iFxy\",\"AddDialogInput\":\"DataEditorAdd_AddDialogInput__9ItKQ\",\"AddDialogInputLabel\":\"DataEditorAdd_AddDialogInputLabel__2XWkl\",\"AddDialogActions\":\"DataEditorAdd_AddDialogActions__3RyCT\",\"AddDialogTitle\":\"DataEditorAdd_AddDialogTitle__1U_ds\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Items\":\"TShirtsStockingItem_Items__3DCpO\",\"Item\":\"TShirtsStockingItem_Item__3p2P_\",\"NameSelected\":\"TShirtsStockingItem_NameSelected__1zVFV\",\"ItemsContent\":\"TShirtsStockingItem_ItemsContent__3b872\",\"Toolbar\":\"TShirtsStockingItem_Toolbar__p01cs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CardBtn\":\"Sections_CardBtn__Q284t\",\"CardBtnContent\":\"Sections_CardBtnContent__Ks4dt\",\"CardBtnIcon\":\"Sections_CardBtnIcon__1JSsN\",\"CardBtnName\":\"Sections_CardBtnName__1hNmA\",\"Home\":\"Sections_Home__3cslv\",\"HomeName\":\"Sections_HomeName__1ATKU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OnHandGroupReadOnly_Main__34_f3\",\"Name\":\"OnHandGroupReadOnly_Name__1CPht\",\"Header\":\"OnHandGroupReadOnly_Header__1RSry\",\"Content\":\"OnHandGroupReadOnly_Content__3RxUF\",\"Item\":\"OnHandGroupReadOnly_Item__39cL8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Selection\":\"OffSiteTasksFilter_Selection__30zzu\",\"Main\":\"OffSiteTasksFilter_Main__3eo6k\",\"MenuItem\":\"OffSiteTasksFilter_MenuItem__18kPl\",\"MenuItemHidden\":\"OffSiteTasksFilter_MenuItemHidden__2h49M\",\"FormControl\":\"OffSiteTasksFilter_FormControl__3nN6K\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"TShirtsStockingSelectedStocking_Main__26Oau\",\"TakeBtnWrp\":\"TShirtsStockingSelectedStocking_TakeBtnWrp__84H_A\",\"InventoryPreview\":\"TShirtsStockingSelectedStocking_InventoryPreview__2jLoO\",\"StockNoStock\":\"TShirtsStockingSelectedStocking_StockNoStock__1qY4e\",\"StockPartial\":\"TShirtsStockingSelectedStocking_StockPartial__4ZjbF\",\"StockSuccess\":\"TShirtsStockingSelectedStocking_StockSuccess__I-IIP\",\"StockingSelected\":\"TShirtsStockingSelectedStocking_StockingSelected__3xKXU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Middle\":\"OffSiteStockingItemTotal_Middle__1BkxN\",\"InputWrp\":\"OffSiteStockingItemTotal_InputWrp__ccD9t\",\"TotalAmountWrp\":\"OffSiteStockingItemTotal_TotalAmountWrp__2D5dK\",\"TextEllipsis\":\"OffSiteStockingItemTotal_TextEllipsis__3xnup\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"SectionInitSelector_Main__vC8zG\",\"Title\":\"SectionInitSelector_Title__2tFaB\",\"Actions\":\"SectionInitSelector_Actions__2eDav\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"AppFeedback_Main__2zQwD\",\"DialogMain\":\"AppFeedback_DialogMain__3b4A8\",\"DialogActions\":\"AppFeedback_DialogActions__3Taue\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"RestaurantSelector\":\"OffSiteDeliveryItemRestaurants_RestaurantSelector__fbBaD\",\"Group\":\"OffSiteDeliveryItemRestaurants_Group__YOYr2\",\"Button\":\"OffSiteDeliveryItemRestaurants_Button__1Zbwh\",\"ButtonContent\":\"OffSiteDeliveryItemRestaurants_ButtonContent__1Lau7\",\"TextEllipsis\":\"OffSiteDeliveryItemRestaurants_TextEllipsis__3uB32\",\"SelectedPending\":\"OffSiteDeliveryItemRestaurants_SelectedPending__3clZE\",\"NotSelectedPending\":\"OffSiteDeliveryItemRestaurants_NotSelectedPending__1-z1P\",\"Disabled\":\"OffSiteDeliveryItemRestaurants_Disabled__kyECo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Reception\":\"OffSiteReception_Reception__2MmDM\",\"ReceptionToolbar\":\"OffSiteReception_ReceptionToolbar__1t0mj\",\"ReceptionContent\":\"OffSiteReception_ReceptionContent__39UG7\",\"ReceptionContentTask\":\"OffSiteReception_ReceptionContentTask__3j0Cw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"TShirtsStockingSelected_Main__1oeTK\",\"Header\":\"TShirtsStockingSelected_Header__1Ur-b\",\"Content\":\"TShirtsStockingSelected_Content__y6OH3\",\"Close\":\"TShirtsStockingSelected_Close__1eQBK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"TShirtsStockingSelectedInventory_Main__3K8EV\",\"ResourceEdit\":\"TShirtsStockingSelectedInventory_ResourceEdit__1nyex\",\"QtyDisplay\":\"TShirtsStockingSelectedInventory_QtyDisplay__mUNaz\",\"Submit\":\"TShirtsStockingSelectedInventory_Submit__22pxt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Details\":\"OnHandTShirtItem_Details__1mbCM\",\"DetailsInput\":\"OnHandTShirtItem_DetailsInput__14nVq\",\"Title\":\"OnHandTShirtItem_Title__OgMeM\",\"Actions\":\"OnHandTShirtItem_Actions__if8UE\",\"Meta\":\"OnHandTShirtItem_Meta__3e6Xf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"AppLayout_Main__3jtUb\",\"TestEnv\":\"AppLayout_TestEnv__3Jb0H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"DeliveryOrders_Main__ctmLM\",\"TableHeader\":\"DeliveryOrders_TableHeader__3LOG9\",\"Explained\":\"DeliveryOrders_Explained__3A2wi\",\"Header\":\"DeliveryOrders_Header__2YEfC\",\"Content\":\"DeliveryOrders_Content__2iUx5\",\"Row\":\"DeliveryOrders_Row__1mKLb\",\"VendorRow\":\"DeliveryOrders_VendorRow__3r0UZ\",\"VendorContent\":\"DeliveryOrders_VendorContent__3pLEE\",\"VendorName\":\"DeliveryOrders_VendorName__ZHemG\",\"Error\":\"DeliveryOrders_Error__3or0e\",\"NoDelivery\":\"DeliveryOrders_NoDelivery__2mOZU\",\"DialogWrp\":\"DeliveryOrders_DialogWrp__10pRS\",\"DialogHeaderCell\":\"DeliveryOrders_DialogHeaderCell__2Ts8y\",\"DialogCell\":\"DeliveryOrders_DialogCell__2zvtK\",\"DialogOrderEditor\":\"DeliveryOrders_DialogOrderEditor__2GXe7\",\"DialogTitleContent\":\"DeliveryOrders_DialogTitleContent__20Ijm\",\"DialogOrderEditorButton\":\"DeliveryOrders_DialogOrderEditorButton__35DHp\",\"DialogOrderEditorInput\":\"DeliveryOrders_DialogOrderEditorInput__2-jUO\",\"DialogContent\":\"DeliveryOrders_DialogContent__1oky6\",\"DialogActions\":\"DeliveryOrders_DialogActions__1lHo1\",\"DialogEditorAdd\":\"DeliveryOrders_DialogEditorAdd__1KpmQ\",\"DialogOrderLabel\":\"DeliveryOrders_DialogOrderLabel__2eYaV\",\"DialogOrderLabelDiscount\":\"DeliveryOrders_DialogOrderLabelDiscount__164lg\",\"DialogAddVendor\":\"DeliveryOrders_DialogAddVendor__2CugW\",\"DialogTitleText\":\"DeliveryOrders_DialogTitleText__8XAIx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Invalid\":\"OnHandStatus_Invalid__1GExt\",\"InProgress\":\"OnHandStatus_InProgress__3VmoJ\",\"Done\":\"OnHandStatus_Done__3tqWS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"DeliveryFoodItemRestaurantDeliveryFixedCell_Main__1fb4W\",\"Decrease\":\"DeliveryFoodItemRestaurantDeliveryFixedCell_Decrease__16Up6\",\"Increase\":\"DeliveryFoodItemRestaurantDeliveryFixedCell_Increase__3HTVm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OffSiteOnHandItemHeader_Main__3GIiR\",\"MenuItem\":\"OffSiteOnHandItemHeader_MenuItem__3Gk1_\",\"SelectedMenuItem\":\"OffSiteOnHandItemHeader_SelectedMenuItem__1PG_g\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Day\":\"AppDay_Day__oCx4G\",\"DayNav\":\"AppDay_DayNav__8ykg5\",\"DayPicker\":\"AppDay_DayPicker__1kAUh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"SectionHeaderSelector_Main__1WEZc\",\"Icon\":\"SectionHeaderSelector_Icon__3pO0v\",\"Label\":\"SectionHeaderSelector_Label__175aK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menusUploadsDropZones\":\"MenusSalesDropZoneWrp_menusUploadsDropZones__23qIU\",\"menusUploads\":\"MenusSalesDropZoneWrp_menusUploads__2xeMm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menusDropZoneArea\":\"MenusSalesDropZone_menusDropZoneArea__3IsHB\",\"menusDropZoneTitle\":\"MenusSalesDropZone_menusDropZoneTitle__20KfX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OnHandItemMetaData_Main__2nUaJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Label\":\"OnHandItemQuickInput_Label__3oKAW\",\"Display\":\"OnHandItemQuickInput_Display__23nig\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"AppMenu_Main__3pgyt\",\"Item\":\"AppMenu_Item__3okXf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"DataEditor_Main__1Kt3h\",\"ContentWrp\":\"DataEditor_ContentWrp__15Qjj\",\"ToolbarWrp\":\"DataEditor_ToolbarWrp__YTFmb\",\"FooterWrp\":\"DataEditor_FooterWrp__2D9fn\",\"Footer\":\"DataEditor_Footer__3X-7r\",\"Content\":\"DataEditor_Content__2p6oc\",\"RowWrp\":\"DataEditor_RowWrp__2w9Ll\",\"Toolbar\":\"DataEditor_Toolbar__1ITm5\",\"ToolbarSelection\":\"DataEditor_ToolbarSelection__hRIbF\",\"ToolbarSearch\":\"DataEditor_ToolbarSearch__lVyjA\",\"ToolbarSearchInput\":\"DataEditor_ToolbarSearchInput__3GJ-p\",\"ToolbarSearchBtn\":\"DataEditor_ToolbarSearchBtn__1qrtp\",\"ToolbarFilter\":\"DataEditor_ToolbarFilter__QlxwX\",\"HeaderWrp\":\"DataEditor_HeaderWrp__vyBAK\",\"Header\":\"DataEditor_Header__340Mm\",\"HeaderSort\":\"DataEditor_HeaderSort__12T_Q\",\"HeaderSortIcon\":\"DataEditor_HeaderSortIcon__3Z9re\",\"Filter\":\"DataEditor_Filter__HmuON\",\"ContentItems\":\"DataEditor_ContentItems__3YqAp\",\"Row\":\"DataEditor_Row__3BVNn\",\"ItemActions\":\"DataEditor_ItemActions__1fThO\",\"ItemContent\":\"DataEditor_ItemContent__lyRnn\",\"ItemContentInput\":\"DataEditor_ItemContentInput__1ml9_\",\"ToolbarForm\":\"DataEditor_ToolbarForm__OICnx\",\"ItemsCount\":\"DataEditor_ItemsCount__2-pLB\",\"OrderSaveBtn\":\"DataEditor_OrderSaveBtn__eWYt4\",\"Handle\":\"DataEditor_Handle__2CHA0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"DeliveryFood_Main__1_3Lp\",\"Toolbar\":\"DeliveryFood_Toolbar__2Pat2\",\"ToolbarInfo\":\"DeliveryFood_ToolbarInfo__-L9Z0\",\"Row\":\"DeliveryFood_Row__1TZCE\",\"Header\":\"DeliveryFood_Header__Jpy7I\",\"ItemRestaurantHeader\":\"DeliveryFood_ItemRestaurantHeader__2JMpY\",\"CellRestaurantName\":\"DeliveryFood_CellRestaurantName__hJzMk\",\"CellsRestaurantSections\":\"DeliveryFood_CellsRestaurantSections__1pXKs\",\"Content\":\"DeliveryFood_Content__p3DXx\",\"Sections\":\"DeliveryFood_Sections__22Yd3\",\"Section\":\"DeliveryFood_Section__MV9xJ\",\"SectionHeader\":\"DeliveryFood_SectionHeader__1U3Ob\",\"SectionRow\":\"DeliveryFood_SectionRow__1DZ_N\",\"SectionRowQuantity\":\"DeliveryFood_SectionRowQuantity__210HW\",\"SectionRowPackType\":\"DeliveryFood_SectionRowPackType__18Drj\",\"Signature\":\"DeliveryFood_Signature__3GLFL\",\"Cell\":\"DeliveryFood_Cell__3pqEB\",\"ON_HAND\":\"DeliveryFood_ON_HAND__aHgvr\",\"SINGLE\":\"DeliveryFood_SINGLE__W6ZUW\",\"MULTIPLE\":\"DeliveryFood_MULTIPLE__2iMEH\",\"DELIVERY\":\"DeliveryFood_DELIVERY__21_cX\",\"DELIVERY_SALES\":\"DeliveryFood_DELIVERY_SALES__1BwtE\",\"PREP\":\"DeliveryFood_PREP__UfFhx\",\"PREP_FOR_DELIVERY\":\"DeliveryFood_PREP_FOR_DELIVERY__1u7D3\",\"Item\":\"DeliveryFood_Item__36CrL\",\"ItemRestaurant\":\"DeliveryFood_ItemRestaurant__3mLE3\",\"RestaurantDeliveryHeader\":\"DeliveryFood_RestaurantDeliveryHeader__CCqQa\",\"DELIVERY_FIXED\":\"DeliveryFood_DELIVERY_FIXED__1KauV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Title\":\"OffSiteTasks_Title__1vRrD\",\"TasksWrp\":\"OffSiteTasks_TasksWrp__3Hg5g\",\"TasksCounter\":\"OffSiteTasks_TasksCounter__1RRcF\",\"TasksStatusCounter\":\"OffSiteTasks_TasksStatusCounter__1CvA-\",\"TasksCounterButton\":\"OffSiteTasks_TasksCounterButton__r2vMA\",\"MuiButton-startIcon\":\"OffSiteTasks_MuiButton-startIcon__NCfX5\",\"MuiButton-endIcon\":\"OffSiteTasks_MuiButton-endIcon__WcP3D\",\"TasksNavigatorWrp\":\"OffSiteTasks_TasksNavigatorWrp__1r_SR\",\"TasksNavigatorStart\":\"OffSiteTasks_TasksNavigatorStart__39Ub4\",\"TasksNavigatorStartButton\":\"OffSiteTasks_TasksNavigatorStartButton__1Hoyx\",\"TasksNavigator\":\"OffSiteTasks_TasksNavigator__NId1A\",\"TasksNavigatorLeft\":\"OffSiteTasks_TasksNavigatorLeft__19-fe\",\"TasksNavigatorRight\":\"OffSiteTasks_TasksNavigatorRight__1rkmr\",\"TaskNavigatorItem\":\"OffSiteTasks_TaskNavigatorItem__2TP8I\",\"ProgressCounter\":\"OffSiteTasks_ProgressCounter__RBsQo\",\"TextEllipsis\":\"OffSiteTasks_TextEllipsis__BJ9Z9\",\"OffSiteStatusTableWrp\":\"OffSiteTasks_OffSiteStatusTableWrp__1oLHi\",\"TasksFilter\":\"OffSiteTasks_TasksFilter__1lg8U\",\"RestaurantTasks\":\"OffSiteTasks_RestaurantTasks__ORe7g\",\"RestaurantTasksLabel\":\"OffSiteTasks_RestaurantTasksLabel__FRwCm\",\"TasksDialog\":\"OffSiteTasks_TasksDialog__2c9De\",\"TasksDialogContent\":\"OffSiteTasks_TasksDialogContent__2y6oc\",\"TasksDialogActions\":\"OffSiteTasks_TasksDialogActions__Gk6Fx\",\"RestaurantTasksRow\":\"OffSiteTasks_RestaurantTasksRow__RYCSP\",\"RestaurantTasksTransit\":\"OffSiteTasks_RestaurantTasksTransit__377LN\",\"RestaurantTasksLoaded\":\"OffSiteTasks_RestaurantTasksLoaded__3hGH3\",\"RestaurantTasksPending\":\"OffSiteTasks_RestaurantTasksPending__15Chl\",\"RestaurantTasksHeader\":\"OffSiteTasks_RestaurantTasksHeader__3Pu8U\",\"OffSiteDialogActions\":\"OffSiteTasks_OffSiteDialogActions__1n7al\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ReordersAlerts\":\"OffSiteReorders_ReordersAlerts__2YIJ9\",\"OpenAlerts\":\"OffSiteReorders_OpenAlerts__kqVYy\",\"SnoozedAlerts\":\"OffSiteReorders_SnoozedAlerts__3kqeo\",\"CompletedAlerts\":\"OffSiteReorders_CompletedAlerts__5p1MG\",\"OpenAlert\":\"OffSiteReorders_OpenAlert__2F_64\",\"SnoozedAlert\":\"OffSiteReorders_SnoozedAlert__8PXrx\",\"CompletedAlert\":\"OffSiteReorders_CompletedAlert__3dHMF\",\"AlertTypeDividers\":\"OffSiteReorders_AlertTypeDividers__3eQoh\",\"ItemsCount\":\"OffSiteReorders_ItemsCount__2iJ7D\",\"ItemName\":\"OffSiteReorders_ItemName__2GEdi\",\"ItemStock\":\"OffSiteReorders_ItemStock__2L5B9\",\"ItemPar\":\"OffSiteReorders_ItemPar__JUGPU\",\"ItemSnoozedUntil\":\"OffSiteReorders_ItemSnoozedUntil__LgB-V\",\"ItemDoneBy\":\"OffSiteReorders_ItemDoneBy__3FnGZ\",\"Controls\":\"OffSiteReorders_Controls__3C2rK\",\"LastUpdatedAlert\":\"OffSiteReorders_LastUpdatedAlert__3o8jn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"DataEditorCellEditWrp_Main__25r_H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OnHand_Main__1kt2f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Tab\":\"OnHandItemTab_Tab__f0gA3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OnHandItemClearInput_Main__1yqdq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"DeliveryInput\":\"OffSiteDeliveryItemInput_DeliveryInput__1E49T\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OffSiteDeliveryItem_Main__2dXLF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OffSiteStockingItem_Main__DeJX1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Input\":\"OffSiteStockingItemInput_Input__3W7Eg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"QuickInputs\":\"OffSiteStockingItemQuickInputs_QuickInputs__3eWmZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OffSiteStockingItemClearInput_Main__2mJv0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"OffSiteOnHandItem_Main__1_9wm\",\"Details\":\"OffSiteOnHandItem_Details__9sO-R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Header\":\"TShirtsStockingHeader_Header__XmB3n\",\"SizeSelected\":\"TShirtsStockingHeader_SizeSelected__32Ad3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"AppHome_Main___-7H2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Main\":\"AppHeader_Main__22byv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Content\":\"TShirtsStocking_Content__3YkKT\",\"Size\":\"TShirtsStocking_Size__vEx9E\",\"SizeStatus-INVALID\":\"TShirtsStocking_SizeStatus-INVALID__E6bkh\",\"SizeStatus-NOT_STARTED\":\"TShirtsStocking_SizeStatus-NOT_STARTED__EVlc-\",\"SizeStatus-COMPLETED\":\"TShirtsStocking_SizeStatus-COMPLETED__1uFO6\",\"SelectionRestaurant\":\"TShirtsStocking_SelectionRestaurant__3r9_k\",\"ModeSwitch\":\"TShirtsStocking_ModeSwitch__2maBA\",\"NA\":\"TShirtsStocking_NA__24DN3\",\"Status\":\"TShirtsStocking_Status__1DY_E\",\"Selected\":\"TShirtsStocking_Selected__3iOr-\",\"StatusInvalid\":\"TShirtsStocking_StatusInvalid__3NLv_\",\"StatusNeedsOnHand\":\"TShirtsStocking_StatusNeedsOnHand___Qc9y\",\"StatusNeedsStocking\":\"TShirtsStocking_StatusNeedsStocking__1v0mb\",\"StatusCompleted\":\"TShirtsStocking_StatusCompleted__3Cl1P\",\"MasterInventory\":\"TShirtsStocking_MasterInventory__14VsF\",\"MasterInventoryLabel\":\"TShirtsStocking_MasterInventoryLabel__2YNC9\",\"InventorySelected\":\"TShirtsStocking_InventorySelected__3fefz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Details\":\"OnHandItem_Details__2V_Tv\",\"DetailsInput\":\"OnHandItem_DetailsInput__3aQeY\",\"Title\":\"OnHandItem_Title__1lHSK\",\"Actions\":\"OnHandItem_Actions__3tw3X\",\"Meta\":\"OnHandItem_Meta__3oHLr\",\"ActionsNav\":\"OnHandItem_ActionsNav__2JYML\",\"TabHead\":\"OnHandItem_TabHead__2eWqV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menus\":\"Menus_menus__Ebj6y\",\"menusCompletion\":\"Menus_menusCompletion__1swQF\",\"MuiLinearProgress-root\":\"Menus_MuiLinearProgress-root__4cKPs\",\"menusContent\":\"Menus_menusContent__d_jSj\",\"menuContentItems\":\"Menus_menuContentItems__3IiCq\",\"menuContentHeader\":\"Menus_menuContentHeader__3gJM0\",\"menuContentItem\":\"Menus_menuContentItem__2EYcY\",\"menuItem\":\"Menus_menuItem__PfsYu\",\"menuItemSaleSingle\":\"Menus_menuItemSaleSingle__Fhd9c\",\"menuItemSaleMultiple\":\"Menus_menuItemSaleMultiple__3G80i\",\"menuItemRecipe\":\"Menus_menuItemRecipe__igwwD\",\"menuItemMissingRecipe\":\"Menus_menuItemMissingRecipe__3__Aq\"};","function buildSubject({ type, userName, date, priority }) {\n return `New ${type} reported by \"${userName}\" @${type} ${priority} ${date}`;\n}\n\nfunction buildBody({ details, day, location }) {\n const detailsHTML = `[Details]
${details}

`;\n const dayHTML = `[Day]
${day}

`;\n const locationHTML = `[Location]
${location}

`;\n\n return `${detailsHTML} ${dayHTML} ${locationHTML}`;\n}\n\nfunction buildEmailFeedback(feedback) {\n const { type, priority, date, details, userName, day, sentAt, location } = feedback;\n\n const subject = buildSubject({ type, userName, date, priority });\n const bodyHTML = buildBody({ details, day, location });\n\n const email = {\n subject,\n bodyHTML,\n to: [\"marian.morosac@gmail.com\"],\n bcc: [\n \"OCMDApp \",\n ],\n sentAt,\n replyTo: [\"marian.morosac@gmail.com\", \"sb86117@gmail.com\"],\n sender: \"feedback@ocmdapp.com\",\n };\n\n return email;\n}\n\nexport { buildEmailFeedback };\n","/* tslint:disable */\n/* eslint-disable */\n// this is an auto generated file. This will be overwritten\n\nexport const getRestaurant = /* GraphQL */ `\n query GetRestaurant($id: ID!, $name: String!) {\n getRestaurant(id: $id, name: $name) {\n id\n name\n alias\n usersGroup\n ratio\n offSeason\n open\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listRestaurants = /* GraphQL */ `\n query ListRestaurants(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelRestaurantFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listRestaurants(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n alias\n usersGroup\n ratio\n offSeason\n open\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDpsEmailRecipient = /* GraphQL */ `\n query GetDpsEmailRecipient($name: String!, $restaurantId: ID!) {\n getDpsEmailRecipient(name: $name, restaurantId: $restaurantId) {\n name\n restaurantId\n email\n isSubscribed\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDpsEmailRecipients = /* GraphQL */ `\n query ListDpsEmailRecipients(\n $name: String\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelDpsEmailRecipientFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDpsEmailRecipients(\n name: $name\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n name\n restaurantId\n email\n isSubscribed\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDpsEmail = /* GraphQL */ `\n query GetDpsEmail($sentAt: Int!, $restaurantId: ID!, $sentBy: String!) {\n getDpsEmail(sentAt: $sentAt, restaurantId: $restaurantId, sentBy: $sentBy) {\n sentAt\n restaurantId\n sentBy\n recipients\n subject\n body\n configs\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDpsEmails = /* GraphQL */ `\n query ListDpsEmails(\n $sentAt: Int\n $restaurantIdSentBy: ModelDpsEmailPrimaryCompositeKeyConditionInput\n $filter: ModelDpsEmailFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDpsEmails(\n sentAt: $sentAt\n restaurantIdSentBy: $restaurantIdSentBy\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n sentAt\n restaurantId\n sentBy\n recipients\n subject\n body\n configs\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDpsPack = /* GraphQL */ `\n query GetDpsPack($id: ID!, $name: String!) {\n getDpsPack(id: $id, name: $name) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDpsPacks = /* GraphQL */ `\n query ListDpsPacks(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelDpsPackFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDpsPacks(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDpsIngredient = /* GraphQL */ `\n query GetDpsIngredient($id: ID!, $name: String!) {\n getDpsIngredient(id: $id, name: $name) {\n id\n name\n dpsPackId\n dpsPackSize\n subDpsPackId\n subDpsPackSize\n subSubDpsPackId\n useSubPack\n ratio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDpsIngredients = /* GraphQL */ `\n query ListDpsIngredients(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelDpsIngredientFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDpsIngredients(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n dpsPackId\n dpsPackSize\n subDpsPackId\n subDpsPackSize\n subSubDpsPackId\n useSubPack\n ratio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDpsMenuItem = /* GraphQL */ `\n query GetDpsMenuItem($id: ID!, $name: String!, $restaurantId: ID!) {\n getDpsMenuItem(id: $id, name: $name, restaurantId: $restaurantId) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDpsMenuItems = /* GraphQL */ `\n query ListDpsMenuItems(\n $id: ID\n $nameRestaurantId: ModelDpsMenuItemPrimaryCompositeKeyConditionInput\n $filter: ModelDpsMenuItemFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDpsMenuItems(\n id: $id\n nameRestaurantId: $nameRestaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDpsMenuItemSale = /* GraphQL */ `\n query GetDpsMenuItemSale(\n $day: Int!\n $dpsMenuItemId: ID!\n $type: DpsSaleType!\n ) {\n getDpsMenuItemSale(day: $day, dpsMenuItemId: $dpsMenuItemId, type: $type) {\n dpsMenuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDpsMenuItemSales = /* GraphQL */ `\n query ListDpsMenuItemSales(\n $day: Int\n $dpsMenuItemIdType: ModelDpsMenuItemSalePrimaryCompositeKeyConditionInput\n $filter: ModelDpsMenuItemSaleFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDpsMenuItemSales(\n day: $day\n dpsMenuItemIdType: $dpsMenuItemIdType\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n dpsMenuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDpsMenuItemSaleMeta = /* GraphQL */ `\n query GetDpsMenuItemSaleMeta(\n $day: Int!\n $restaurantId: ID!\n $saleType: String!\n ) {\n getDpsMenuItemSaleMeta(\n day: $day\n restaurantId: $restaurantId\n saleType: $saleType\n ) {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDpsMenuItemSaleMetas = /* GraphQL */ `\n query ListDpsMenuItemSaleMetas(\n $day: Int\n $restaurantIdSaleType: ModelDpsMenuItemSaleMetaPrimaryCompositeKeyConditionInput\n $filter: ModelDpsMenuItemSaleMetaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDpsMenuItemSaleMetas(\n day: $day\n restaurantIdSaleType: $restaurantIdSaleType\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDpsRecipeItem = /* GraphQL */ `\n query GetDpsRecipeItem($dpsMenuItemId: ID!, $dpsIngredientId: ID!) {\n getDpsRecipeItem(\n dpsMenuItemId: $dpsMenuItemId\n dpsIngredientId: $dpsIngredientId\n ) {\n dpsMenuItemId\n dpsIngredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDpsRecipeItems = /* GraphQL */ `\n query ListDpsRecipeItems(\n $dpsMenuItemId: ID\n $dpsIngredientId: ModelIDKeyConditionInput\n $filter: ModelDpsRecipeItemFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDpsRecipeItems(\n dpsMenuItemId: $dpsMenuItemId\n dpsIngredientId: $dpsIngredientId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n dpsMenuItemId\n dpsIngredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getIngredientPack = /* GraphQL */ `\n query GetIngredientPack($id: ID!, $display: String!) {\n getIngredientPack(id: $id, display: $display) {\n id\n display\n name\n alias\n size\n order\n portionRatio\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listIngredientPacks = /* GraphQL */ `\n query ListIngredientPacks(\n $id: ID\n $display: ModelStringKeyConditionInput\n $filter: ModelIngredientPackFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listIngredientPacks(\n id: $id\n display: $display\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n display\n name\n alias\n size\n order\n portionRatio\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getIngredient = /* GraphQL */ `\n query GetIngredient($id: ID!, $name: String!) {\n getIngredient(id: $id, name: $name) {\n id\n name\n ingredientPackId\n salesRatio\n laborTime\n batchSize\n portionTime\n order\n onHandAlias\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listIngredients = /* GraphQL */ `\n query ListIngredients(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelIngredientFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listIngredients(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n ingredientPackId\n salesRatio\n laborTime\n batchSize\n portionTime\n order\n onHandAlias\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getIngredientInventory = /* GraphQL */ `\n query GetIngredientInventory($day: Int!, $ingredientOnHandAreaId: ID!) {\n getIngredientInventory(\n day: $day\n ingredientOnHandAreaId: $ingredientOnHandAreaId\n ) {\n ingredientOnHandAreaId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listIngredientInventorys = /* GraphQL */ `\n query ListIngredientInventorys(\n $day: Int\n $ingredientOnHandAreaId: ModelIDKeyConditionInput\n $filter: ModelIngredientInventoryFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listIngredientInventorys(\n day: $day\n ingredientOnHandAreaId: $ingredientOnHandAreaId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n ingredientOnHandAreaId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getIngredientInventoryMeta = /* GraphQL */ `\n query GetIngredientInventoryMeta($day: Int!, $restaurantId: ID!) {\n getIngredientInventoryMeta(day: $day, restaurantId: $restaurantId) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listIngredientInventoryMetas = /* GraphQL */ `\n query ListIngredientInventoryMetas(\n $day: Int\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelIngredientInventoryMetaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listIngredientInventoryMetas(\n day: $day\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getIngredientOnHandArea = /* GraphQL */ `\n query GetIngredientOnHandArea(\n $id: ID!\n $ingredientId: ID!\n $onHandAreaId: ID!\n ) {\n getIngredientOnHandArea(\n id: $id\n ingredientId: $ingredientId\n onHandAreaId: $onHandAreaId\n ) {\n id\n ingredientId\n onHandAreaId\n bulk\n portionRatio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listIngredientOnHandAreas = /* GraphQL */ `\n query ListIngredientOnHandAreas(\n $id: ID\n $ingredientIdOnHandAreaId: ModelIngredientOnHandAreaPrimaryCompositeKeyConditionInput\n $filter: ModelIngredientOnHandAreaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listIngredientOnHandAreas(\n id: $id\n ingredientIdOnHandAreaId: $ingredientIdOnHandAreaId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n ingredientId\n onHandAreaId\n bulk\n portionRatio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getIngredientDeliveryArea = /* GraphQL */ `\n query GetIngredientDeliveryArea(\n $id: ID!\n $ingredientId: ID!\n $deliveryAreaId: ID!\n ) {\n getIngredientDeliveryArea(\n id: $id\n ingredientId: $ingredientId\n deliveryAreaId: $deliveryAreaId\n ) {\n id\n ingredientId\n deliveryAreaId\n fixedNeed\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listIngredientDeliveryAreas = /* GraphQL */ `\n query ListIngredientDeliveryAreas(\n $id: ID\n $ingredientIdDeliveryAreaId: ModelIngredientDeliveryAreaPrimaryCompositeKeyConditionInput\n $filter: ModelIngredientDeliveryAreaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listIngredientDeliveryAreas(\n id: $id\n ingredientIdDeliveryAreaId: $ingredientIdDeliveryAreaId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n ingredientId\n deliveryAreaId\n fixedNeed\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getIngredientTransaction = /* GraphQL */ `\n query GetIngredientTransaction($ingredientId: ID!, $createdAt: Int!) {\n getIngredientTransaction(\n ingredientId: $ingredientId\n createdAt: $createdAt\n ) {\n ingredientId\n createdAt\n type\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const listIngredientTransactions = /* GraphQL */ `\n query ListIngredientTransactions(\n $ingredientId: ID\n $createdAt: ModelIntKeyConditionInput\n $filter: ModelIngredientTransactionFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listIngredientTransactions(\n ingredientId: $ingredientId\n createdAt: $createdAt\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n ingredientId\n createdAt\n type\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getMenuItem = /* GraphQL */ `\n query GetMenuItem($id: ID!, $name: String!, $restaurantId: ID!) {\n getMenuItem(id: $id, name: $name, restaurantId: $restaurantId) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listMenuItems = /* GraphQL */ `\n query ListMenuItems(\n $id: ID\n $nameRestaurantId: ModelMenuItemPrimaryCompositeKeyConditionInput\n $filter: ModelMenuItemFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listMenuItems(\n id: $id\n nameRestaurantId: $nameRestaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getRecipeItem = /* GraphQL */ `\n query GetRecipeItem($menuItemId: ID!, $ingredientId: ID!) {\n getRecipeItem(menuItemId: $menuItemId, ingredientId: $ingredientId) {\n menuItemId\n ingredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listRecipeItems = /* GraphQL */ `\n query ListRecipeItems(\n $menuItemId: ID\n $ingredientId: ModelIDKeyConditionInput\n $filter: ModelRecipeItemFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listRecipeItems(\n menuItemId: $menuItemId\n ingredientId: $ingredientId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n menuItemId\n ingredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getMenuItemSale = /* GraphQL */ `\n query GetMenuItemSale($day: Int!, $menuItemId: ID!, $type: FoodSaleType!) {\n getMenuItemSale(day: $day, menuItemId: $menuItemId, type: $type) {\n menuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listMenuItemSales = /* GraphQL */ `\n query ListMenuItemSales(\n $day: Int\n $menuItemIdType: ModelMenuItemSalePrimaryCompositeKeyConditionInput\n $filter: ModelMenuItemSaleFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listMenuItemSales(\n day: $day\n menuItemIdType: $menuItemIdType\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n menuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getMenuItemSaleMeta = /* GraphQL */ `\n query GetMenuItemSaleMeta(\n $day: Int!\n $restaurantId: ID!\n $saleType: String!\n ) {\n getMenuItemSaleMeta(\n day: $day\n restaurantId: $restaurantId\n saleType: $saleType\n ) {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listMenuItemSaleMetas = /* GraphQL */ `\n query ListMenuItemSaleMetas(\n $day: Int\n $restaurantIdSaleType: ModelMenuItemSaleMetaPrimaryCompositeKeyConditionInput\n $filter: ModelMenuItemSaleMetaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listMenuItemSaleMetas(\n day: $day\n restaurantIdSaleType: $restaurantIdSaleType\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDeliveryArea = /* GraphQL */ `\n query GetDeliveryArea($id: ID!, $restaurantId: ID!) {\n getDeliveryArea(id: $id, restaurantId: $restaurantId) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDeliveryAreas = /* GraphQL */ `\n query ListDeliveryAreas(\n $id: ID\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelDeliveryAreaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listDeliveryAreas(\n id: $id\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOnHandArea = /* GraphQL */ `\n query GetOnHandArea($id: ID!, $restaurantId: ID!) {\n getOnHandArea(id: $id, restaurantId: $restaurantId) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOnHandAreas = /* GraphQL */ `\n query ListOnHandAreas(\n $id: ID\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelOnHandAreaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOnHandAreas(\n id: $id\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOffSiteItem = /* GraphQL */ `\n query GetOffSiteItem($id: ID!, $name: String!, $offSiteAreaId: ID!) {\n getOffSiteItem(id: $id, name: $name, offSiteAreaId: $offSiteAreaId) {\n id\n name\n offSiteAreaId\n offSiteUnitId\n conversion\n offSiteSubUnitId\n alertThreshold\n par\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOffSiteItems = /* GraphQL */ `\n query ListOffSiteItems(\n $id: ID\n $nameOffSiteAreaId: ModelOffSiteItemPrimaryCompositeKeyConditionInput\n $filter: ModelOffSiteItemFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOffSiteItems(\n id: $id\n nameOffSiteAreaId: $nameOffSiteAreaId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n offSiteAreaId\n offSiteUnitId\n conversion\n offSiteSubUnitId\n alertThreshold\n par\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOffSiteArea = /* GraphQL */ `\n query GetOffSiteArea($id: ID!, $restaurantId: ID!) {\n getOffSiteArea(id: $id, restaurantId: $restaurantId) {\n id\n restaurantId\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOffSiteAreas = /* GraphQL */ `\n query ListOffSiteAreas(\n $id: ID\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelOffSiteAreaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOffSiteAreas(\n id: $id\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n restaurantId\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOffSiteUnit = /* GraphQL */ `\n query GetOffSiteUnit($id: ID!, $name: String!) {\n getOffSiteUnit(id: $id, name: $name) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOffSiteUnits = /* GraphQL */ `\n query ListOffSiteUnits(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelOffSiteUnitFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOffSiteUnits(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOffSiteTransaction = /* GraphQL */ `\n query GetOffSiteTransaction(\n $offSiteItemId: ID!\n $type: OffSiteTransactionType!\n $createdAt: AWSDateTime!\n ) {\n getOffSiteTransaction(\n offSiteItemId: $offSiteItemId\n type: $type\n createdAt: $createdAt\n ) {\n offSiteItemId\n type\n createdAt\n status\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const listOffSiteTransactions = /* GraphQL */ `\n query ListOffSiteTransactions(\n $offSiteItemId: ID\n $typeCreatedAt: ModelOffSiteTransactionPrimaryCompositeKeyConditionInput\n $filter: ModelOffSiteTransactionFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOffSiteTransactions(\n offSiteItemId: $offSiteItemId\n typeCreatedAt: $typeCreatedAt\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n offSiteItemId\n type\n createdAt\n status\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOffSiteAlert = /* GraphQL */ `\n query GetOffSiteAlert($offSiteItemId: ID!, $createdAt: AWSDateTime!) {\n getOffSiteAlert(offSiteItemId: $offSiteItemId, createdAt: $createdAt) {\n offSiteItemId\n createdAt\n status\n snoozedUntil\n message\n createdBy\n lastUpdatedBy\n lastUpdatedAt\n updatedAt\n }\n }\n`;\nexport const listOffSiteAlerts = /* GraphQL */ `\n query ListOffSiteAlerts(\n $offSiteItemId: ID\n $createdAt: ModelStringKeyConditionInput\n $filter: ModelOffSiteAlertFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOffSiteAlerts(\n offSiteItemId: $offSiteItemId\n createdAt: $createdAt\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n offSiteItemId\n createdAt\n status\n snoozedUntil\n message\n createdBy\n lastUpdatedBy\n lastUpdatedAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOrder = /* GraphQL */ `\n query GetOrder($id: ID!, $orderAreaId: ID!) {\n getOrder(id: $id, orderAreaId: $orderAreaId) {\n id\n orderAreaId\n name\n orderOnHandUnitId\n orderDeliveryUnitId\n orderVendorId\n discount\n par\n conversion\n alertThreshold\n offSiteItemId\n stockLimit\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOrders = /* GraphQL */ `\n query ListOrders(\n $id: ID\n $orderAreaId: ModelIDKeyConditionInput\n $filter: ModelOrderFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOrders(\n id: $id\n orderAreaId: $orderAreaId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n orderAreaId\n name\n orderOnHandUnitId\n orderDeliveryUnitId\n orderVendorId\n discount\n par\n conversion\n alertThreshold\n offSiteItemId\n stockLimit\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOrderArea = /* GraphQL */ `\n query GetOrderArea($id: ID!, $restaurantId: ID!) {\n getOrderArea(id: $id, restaurantId: $restaurantId) {\n id\n restaurantId\n name\n order\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOrderAreas = /* GraphQL */ `\n query ListOrderAreas(\n $id: ID\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelOrderAreaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOrderAreas(\n id: $id\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n restaurantId\n name\n order\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOrderUnit = /* GraphQL */ `\n query GetOrderUnit($id: ID!, $name: String!) {\n getOrderUnit(id: $id, name: $name) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOrderUnits = /* GraphQL */ `\n query ListOrderUnits(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelOrderUnitFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOrderUnits(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOrderVendor = /* GraphQL */ `\n query GetOrderVendor($id: ID!, $name: String!) {\n getOrderVendor(id: $id, name: $name) {\n id\n name\n email\n emailBcc\n isOffSite\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOrderVendors = /* GraphQL */ `\n query ListOrderVendors(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelOrderVendorFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOrderVendors(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n email\n emailBcc\n isOffSite\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOrderInventory = /* GraphQL */ `\n query GetOrderInventory($day: Int!, $orderId: ID!) {\n getOrderInventory(day: $day, orderId: $orderId) {\n orderId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOrderInventorys = /* GraphQL */ `\n query ListOrderInventorys(\n $day: Int\n $orderId: ModelIDKeyConditionInput\n $filter: ModelOrderInventoryFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOrderInventorys(\n day: $day\n orderId: $orderId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n orderId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getOrderInventoryMeta = /* GraphQL */ `\n query GetOrderInventoryMeta($day: Int!, $restaurantId: ID!) {\n getOrderInventoryMeta(day: $day, restaurantId: $restaurantId) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listOrderInventoryMetas = /* GraphQL */ `\n query ListOrderInventoryMetas(\n $day: Int\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelOrderInventoryMetaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listOrderInventoryMetas(\n day: $day\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getTShirt = /* GraphQL */ `\n query GetTShirt($id: ID!, $restaurantId: ID!, $display: String!) {\n getTShirt(id: $id, restaurantId: $restaurantId, display: $display) {\n id\n restaurantId\n display\n name\n sizeId\n stockCapacity\n par\n packSize\n discount\n order\n styleId\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listTShirts = /* GraphQL */ `\n query ListTShirts(\n $id: ID\n $restaurantIdDisplay: ModelTShirtPrimaryCompositeKeyConditionInput\n $filter: ModelTShirtFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listTShirts(\n id: $id\n restaurantIdDisplay: $restaurantIdDisplay\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n restaurantId\n display\n name\n sizeId\n stockCapacity\n par\n packSize\n discount\n order\n styleId\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getTShirtSize = /* GraphQL */ `\n query GetTShirtSize($id: ID!, $name: String!) {\n getTShirtSize(id: $id, name: $name) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listTShirtSizes = /* GraphQL */ `\n query ListTShirtSizes(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelTShirtSizeFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listTShirtSizes(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getTShirtStyle = /* GraphQL */ `\n query GetTShirtStyle($id: ID!, $name: String!) {\n getTShirtStyle(id: $id, name: $name) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listTShirtStyles = /* GraphQL */ `\n query ListTShirtStyles(\n $id: ID\n $name: ModelStringKeyConditionInput\n $filter: ModelTShirtStyleFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listTShirtStyles(\n id: $id\n name: $name\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getTShirtInventory = /* GraphQL */ `\n query GetTShirtInventory($day: Int!, $tShirtId: ID!) {\n getTShirtInventory(day: $day, tShirtId: $tShirtId) {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listTShirtInventorys = /* GraphQL */ `\n query ListTShirtInventorys(\n $day: Int\n $tShirtId: ModelIDKeyConditionInput\n $filter: ModelTShirtInventoryFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listTShirtInventorys(\n day: $day\n tShirtId: $tShirtId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getTShirtInventoryMeta = /* GraphQL */ `\n query GetTShirtInventoryMeta($day: Int!, $restaurantId: ID!) {\n getTShirtInventoryMeta(day: $day, restaurantId: $restaurantId) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listTShirtInventoryMetas = /* GraphQL */ `\n query ListTShirtInventoryMetas(\n $day: Int\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelTShirtInventoryMetaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listTShirtInventoryMetas(\n day: $day\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getTShirtSale = /* GraphQL */ `\n query GetTShirtSale($day: Int!, $tShirtId: ID!) {\n getTShirtSale(day: $day, tShirtId: $tShirtId) {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listTShirtSales = /* GraphQL */ `\n query ListTShirtSales(\n $day: Int\n $tShirtId: ModelIDKeyConditionInput\n $filter: ModelTShirtSaleFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listTShirtSales(\n day: $day\n tShirtId: $tShirtId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getTShirtSaleMeta = /* GraphQL */ `\n query GetTShirtSaleMeta($day: Int!, $restaurantId: ID!) {\n getTShirtSaleMeta(day: $day, restaurantId: $restaurantId) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const listTShirtSaleMetas = /* GraphQL */ `\n query ListTShirtSaleMetas(\n $day: Int\n $restaurantId: ModelIDKeyConditionInput\n $filter: ModelTShirtSaleMetaFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listTShirtSaleMetas(\n day: $day\n restaurantId: $restaurantId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getTShirtTransaction = /* GraphQL */ `\n query GetTShirtTransaction($tShirtId: ID!, $createdAt: Int!) {\n getTShirtTransaction(tShirtId: $tShirtId, createdAt: $createdAt) {\n tShirtId\n createdAt\n type\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const listTShirtTransactions = /* GraphQL */ `\n query ListTShirtTransactions(\n $tShirtId: ID\n $createdAt: ModelIntKeyConditionInput\n $filter: ModelTShirtTransactionFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listTShirtTransactions(\n tShirtId: $tShirtId\n createdAt: $createdAt\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n tShirtId\n createdAt\n type\n quantity\n createdBy\n updatedAt\n }\n nextToken\n }\n }\n`;\n","/* tslint:disable */\n/* eslint-disable */\n// this is an auto generated file. This will be overwritten\n\nexport const sendEmail = /* GraphQL */ `\n mutation SendEmail($email: String) {\n sendEmail(email: $email)\n }\n`;\nexport const callS3Client = /* GraphQL */ `\n mutation CallS3Client($requests: String) {\n callS3Client(requests: $requests)\n }\n`;\nexport const createRestaurant = /* GraphQL */ `\n mutation CreateRestaurant(\n $input: CreateRestaurantInput!\n $condition: ModelRestaurantConditionInput\n ) {\n createRestaurant(input: $input, condition: $condition) {\n id\n name\n alias\n usersGroup\n ratio\n offSeason\n open\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateRestaurant = /* GraphQL */ `\n mutation UpdateRestaurant(\n $input: UpdateRestaurantInput!\n $condition: ModelRestaurantConditionInput\n ) {\n updateRestaurant(input: $input, condition: $condition) {\n id\n name\n alias\n usersGroup\n ratio\n offSeason\n open\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteRestaurant = /* GraphQL */ `\n mutation DeleteRestaurant(\n $input: DeleteRestaurantInput!\n $condition: ModelRestaurantConditionInput\n ) {\n deleteRestaurant(input: $input, condition: $condition) {\n id\n name\n alias\n usersGroup\n ratio\n offSeason\n open\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDpsEmailRecipient = /* GraphQL */ `\n mutation CreateDpsEmailRecipient(\n $input: CreateDpsEmailRecipientInput!\n $condition: ModelDpsEmailRecipientConditionInput\n ) {\n createDpsEmailRecipient(input: $input, condition: $condition) {\n name\n restaurantId\n email\n isSubscribed\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDpsEmailRecipient = /* GraphQL */ `\n mutation UpdateDpsEmailRecipient(\n $input: UpdateDpsEmailRecipientInput!\n $condition: ModelDpsEmailRecipientConditionInput\n ) {\n updateDpsEmailRecipient(input: $input, condition: $condition) {\n name\n restaurantId\n email\n isSubscribed\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDpsEmailRecipient = /* GraphQL */ `\n mutation DeleteDpsEmailRecipient(\n $input: DeleteDpsEmailRecipientInput!\n $condition: ModelDpsEmailRecipientConditionInput\n ) {\n deleteDpsEmailRecipient(input: $input, condition: $condition) {\n name\n restaurantId\n email\n isSubscribed\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDpsEmail = /* GraphQL */ `\n mutation CreateDpsEmail(\n $input: CreateDpsEmailInput!\n $condition: ModelDpsEmailConditionInput\n ) {\n createDpsEmail(input: $input, condition: $condition) {\n sentAt\n restaurantId\n sentBy\n recipients\n subject\n body\n configs\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDpsEmail = /* GraphQL */ `\n mutation UpdateDpsEmail(\n $input: UpdateDpsEmailInput!\n $condition: ModelDpsEmailConditionInput\n ) {\n updateDpsEmail(input: $input, condition: $condition) {\n sentAt\n restaurantId\n sentBy\n recipients\n subject\n body\n configs\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDpsEmail = /* GraphQL */ `\n mutation DeleteDpsEmail(\n $input: DeleteDpsEmailInput!\n $condition: ModelDpsEmailConditionInput\n ) {\n deleteDpsEmail(input: $input, condition: $condition) {\n sentAt\n restaurantId\n sentBy\n recipients\n subject\n body\n configs\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDpsPack = /* GraphQL */ `\n mutation CreateDpsPack(\n $input: CreateDpsPackInput!\n $condition: ModelDpsPackConditionInput\n ) {\n createDpsPack(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDpsPack = /* GraphQL */ `\n mutation UpdateDpsPack(\n $input: UpdateDpsPackInput!\n $condition: ModelDpsPackConditionInput\n ) {\n updateDpsPack(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDpsPack = /* GraphQL */ `\n mutation DeleteDpsPack(\n $input: DeleteDpsPackInput!\n $condition: ModelDpsPackConditionInput\n ) {\n deleteDpsPack(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDpsIngredient = /* GraphQL */ `\n mutation CreateDpsIngredient(\n $input: CreateDpsIngredientInput!\n $condition: ModelDpsIngredientConditionInput\n ) {\n createDpsIngredient(input: $input, condition: $condition) {\n id\n name\n dpsPackId\n dpsPackSize\n subDpsPackId\n subDpsPackSize\n subSubDpsPackId\n useSubPack\n ratio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDpsIngredient = /* GraphQL */ `\n mutation UpdateDpsIngredient(\n $input: UpdateDpsIngredientInput!\n $condition: ModelDpsIngredientConditionInput\n ) {\n updateDpsIngredient(input: $input, condition: $condition) {\n id\n name\n dpsPackId\n dpsPackSize\n subDpsPackId\n subDpsPackSize\n subSubDpsPackId\n useSubPack\n ratio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDpsIngredient = /* GraphQL */ `\n mutation DeleteDpsIngredient(\n $input: DeleteDpsIngredientInput!\n $condition: ModelDpsIngredientConditionInput\n ) {\n deleteDpsIngredient(input: $input, condition: $condition) {\n id\n name\n dpsPackId\n dpsPackSize\n subDpsPackId\n subDpsPackSize\n subSubDpsPackId\n useSubPack\n ratio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDpsMenuItem = /* GraphQL */ `\n mutation CreateDpsMenuItem(\n $input: CreateDpsMenuItemInput!\n $condition: ModelDpsMenuItemConditionInput\n ) {\n createDpsMenuItem(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDpsMenuItem = /* GraphQL */ `\n mutation UpdateDpsMenuItem(\n $input: UpdateDpsMenuItemInput!\n $condition: ModelDpsMenuItemConditionInput\n ) {\n updateDpsMenuItem(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDpsMenuItem = /* GraphQL */ `\n mutation DeleteDpsMenuItem(\n $input: DeleteDpsMenuItemInput!\n $condition: ModelDpsMenuItemConditionInput\n ) {\n deleteDpsMenuItem(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDpsMenuItemSale = /* GraphQL */ `\n mutation CreateDpsMenuItemSale(\n $input: CreateDpsMenuItemSaleInput!\n $condition: ModelDpsMenuItemSaleConditionInput\n ) {\n createDpsMenuItemSale(input: $input, condition: $condition) {\n dpsMenuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDpsMenuItemSale = /* GraphQL */ `\n mutation UpdateDpsMenuItemSale(\n $input: UpdateDpsMenuItemSaleInput!\n $condition: ModelDpsMenuItemSaleConditionInput\n ) {\n updateDpsMenuItemSale(input: $input, condition: $condition) {\n dpsMenuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDpsMenuItemSale = /* GraphQL */ `\n mutation DeleteDpsMenuItemSale(\n $input: DeleteDpsMenuItemSaleInput!\n $condition: ModelDpsMenuItemSaleConditionInput\n ) {\n deleteDpsMenuItemSale(input: $input, condition: $condition) {\n dpsMenuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDpsMenuItemSaleMeta = /* GraphQL */ `\n mutation CreateDpsMenuItemSaleMeta(\n $input: CreateDpsMenuItemSaleMetaInput!\n $condition: ModelDpsMenuItemSaleMetaConditionInput\n ) {\n createDpsMenuItemSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDpsMenuItemSaleMeta = /* GraphQL */ `\n mutation UpdateDpsMenuItemSaleMeta(\n $input: UpdateDpsMenuItemSaleMetaInput!\n $condition: ModelDpsMenuItemSaleMetaConditionInput\n ) {\n updateDpsMenuItemSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDpsMenuItemSaleMeta = /* GraphQL */ `\n mutation DeleteDpsMenuItemSaleMeta(\n $input: DeleteDpsMenuItemSaleMetaInput!\n $condition: ModelDpsMenuItemSaleMetaConditionInput\n ) {\n deleteDpsMenuItemSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDpsRecipeItem = /* GraphQL */ `\n mutation CreateDpsRecipeItem(\n $input: CreateDpsRecipeItemInput!\n $condition: ModelDpsRecipeItemConditionInput\n ) {\n createDpsRecipeItem(input: $input, condition: $condition) {\n dpsMenuItemId\n dpsIngredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDpsRecipeItem = /* GraphQL */ `\n mutation UpdateDpsRecipeItem(\n $input: UpdateDpsRecipeItemInput!\n $condition: ModelDpsRecipeItemConditionInput\n ) {\n updateDpsRecipeItem(input: $input, condition: $condition) {\n dpsMenuItemId\n dpsIngredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDpsRecipeItem = /* GraphQL */ `\n mutation DeleteDpsRecipeItem(\n $input: DeleteDpsRecipeItemInput!\n $condition: ModelDpsRecipeItemConditionInput\n ) {\n deleteDpsRecipeItem(input: $input, condition: $condition) {\n dpsMenuItemId\n dpsIngredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createIngredientPack = /* GraphQL */ `\n mutation CreateIngredientPack(\n $input: CreateIngredientPackInput!\n $condition: ModelIngredientPackConditionInput\n ) {\n createIngredientPack(input: $input, condition: $condition) {\n id\n display\n name\n alias\n size\n order\n portionRatio\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateIngredientPack = /* GraphQL */ `\n mutation UpdateIngredientPack(\n $input: UpdateIngredientPackInput!\n $condition: ModelIngredientPackConditionInput\n ) {\n updateIngredientPack(input: $input, condition: $condition) {\n id\n display\n name\n alias\n size\n order\n portionRatio\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteIngredientPack = /* GraphQL */ `\n mutation DeleteIngredientPack(\n $input: DeleteIngredientPackInput!\n $condition: ModelIngredientPackConditionInput\n ) {\n deleteIngredientPack(input: $input, condition: $condition) {\n id\n display\n name\n alias\n size\n order\n portionRatio\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createIngredient = /* GraphQL */ `\n mutation CreateIngredient(\n $input: CreateIngredientInput!\n $condition: ModelIngredientConditionInput\n ) {\n createIngredient(input: $input, condition: $condition) {\n id\n name\n ingredientPackId\n salesRatio\n laborTime\n batchSize\n portionTime\n order\n onHandAlias\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateIngredient = /* GraphQL */ `\n mutation UpdateIngredient(\n $input: UpdateIngredientInput!\n $condition: ModelIngredientConditionInput\n ) {\n updateIngredient(input: $input, condition: $condition) {\n id\n name\n ingredientPackId\n salesRatio\n laborTime\n batchSize\n portionTime\n order\n onHandAlias\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteIngredient = /* GraphQL */ `\n mutation DeleteIngredient(\n $input: DeleteIngredientInput!\n $condition: ModelIngredientConditionInput\n ) {\n deleteIngredient(input: $input, condition: $condition) {\n id\n name\n ingredientPackId\n salesRatio\n laborTime\n batchSize\n portionTime\n order\n onHandAlias\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createIngredientInventory = /* GraphQL */ `\n mutation CreateIngredientInventory(\n $input: CreateIngredientInventoryInput!\n $condition: ModelIngredientInventoryConditionInput\n ) {\n createIngredientInventory(input: $input, condition: $condition) {\n ingredientOnHandAreaId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateIngredientInventory = /* GraphQL */ `\n mutation UpdateIngredientInventory(\n $input: UpdateIngredientInventoryInput!\n $condition: ModelIngredientInventoryConditionInput\n ) {\n updateIngredientInventory(input: $input, condition: $condition) {\n ingredientOnHandAreaId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteIngredientInventory = /* GraphQL */ `\n mutation DeleteIngredientInventory(\n $input: DeleteIngredientInventoryInput!\n $condition: ModelIngredientInventoryConditionInput\n ) {\n deleteIngredientInventory(input: $input, condition: $condition) {\n ingredientOnHandAreaId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createIngredientInventoryMeta = /* GraphQL */ `\n mutation CreateIngredientInventoryMeta(\n $input: CreateIngredientInventoryMetaInput!\n $condition: ModelIngredientInventoryMetaConditionInput\n ) {\n createIngredientInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateIngredientInventoryMeta = /* GraphQL */ `\n mutation UpdateIngredientInventoryMeta(\n $input: UpdateIngredientInventoryMetaInput!\n $condition: ModelIngredientInventoryMetaConditionInput\n ) {\n updateIngredientInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteIngredientInventoryMeta = /* GraphQL */ `\n mutation DeleteIngredientInventoryMeta(\n $input: DeleteIngredientInventoryMetaInput!\n $condition: ModelIngredientInventoryMetaConditionInput\n ) {\n deleteIngredientInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createIngredientOnHandArea = /* GraphQL */ `\n mutation CreateIngredientOnHandArea(\n $input: CreateIngredientOnHandAreaInput!\n $condition: ModelIngredientOnHandAreaConditionInput\n ) {\n createIngredientOnHandArea(input: $input, condition: $condition) {\n id\n ingredientId\n onHandAreaId\n bulk\n portionRatio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateIngredientOnHandArea = /* GraphQL */ `\n mutation UpdateIngredientOnHandArea(\n $input: UpdateIngredientOnHandAreaInput!\n $condition: ModelIngredientOnHandAreaConditionInput\n ) {\n updateIngredientOnHandArea(input: $input, condition: $condition) {\n id\n ingredientId\n onHandAreaId\n bulk\n portionRatio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteIngredientOnHandArea = /* GraphQL */ `\n mutation DeleteIngredientOnHandArea(\n $input: DeleteIngredientOnHandAreaInput!\n $condition: ModelIngredientOnHandAreaConditionInput\n ) {\n deleteIngredientOnHandArea(input: $input, condition: $condition) {\n id\n ingredientId\n onHandAreaId\n bulk\n portionRatio\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createIngredientDeliveryArea = /* GraphQL */ `\n mutation CreateIngredientDeliveryArea(\n $input: CreateIngredientDeliveryAreaInput!\n $condition: ModelIngredientDeliveryAreaConditionInput\n ) {\n createIngredientDeliveryArea(input: $input, condition: $condition) {\n id\n ingredientId\n deliveryAreaId\n fixedNeed\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateIngredientDeliveryArea = /* GraphQL */ `\n mutation UpdateIngredientDeliveryArea(\n $input: UpdateIngredientDeliveryAreaInput!\n $condition: ModelIngredientDeliveryAreaConditionInput\n ) {\n updateIngredientDeliveryArea(input: $input, condition: $condition) {\n id\n ingredientId\n deliveryAreaId\n fixedNeed\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteIngredientDeliveryArea = /* GraphQL */ `\n mutation DeleteIngredientDeliveryArea(\n $input: DeleteIngredientDeliveryAreaInput!\n $condition: ModelIngredientDeliveryAreaConditionInput\n ) {\n deleteIngredientDeliveryArea(input: $input, condition: $condition) {\n id\n ingredientId\n deliveryAreaId\n fixedNeed\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createIngredientTransaction = /* GraphQL */ `\n mutation CreateIngredientTransaction(\n $input: CreateIngredientTransactionInput!\n $condition: ModelIngredientTransactionConditionInput\n ) {\n createIngredientTransaction(input: $input, condition: $condition) {\n ingredientId\n createdAt\n type\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const updateIngredientTransaction = /* GraphQL */ `\n mutation UpdateIngredientTransaction(\n $input: UpdateIngredientTransactionInput!\n $condition: ModelIngredientTransactionConditionInput\n ) {\n updateIngredientTransaction(input: $input, condition: $condition) {\n ingredientId\n createdAt\n type\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const deleteIngredientTransaction = /* GraphQL */ `\n mutation DeleteIngredientTransaction(\n $input: DeleteIngredientTransactionInput!\n $condition: ModelIngredientTransactionConditionInput\n ) {\n deleteIngredientTransaction(input: $input, condition: $condition) {\n ingredientId\n createdAt\n type\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const createMenuItem = /* GraphQL */ `\n mutation CreateMenuItem(\n $input: CreateMenuItemInput!\n $condition: ModelMenuItemConditionInput\n ) {\n createMenuItem(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateMenuItem = /* GraphQL */ `\n mutation UpdateMenuItem(\n $input: UpdateMenuItemInput!\n $condition: ModelMenuItemConditionInput\n ) {\n updateMenuItem(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteMenuItem = /* GraphQL */ `\n mutation DeleteMenuItem(\n $input: DeleteMenuItemInput!\n $condition: ModelMenuItemConditionInput\n ) {\n deleteMenuItem(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createRecipeItem = /* GraphQL */ `\n mutation CreateRecipeItem(\n $input: CreateRecipeItemInput!\n $condition: ModelRecipeItemConditionInput\n ) {\n createRecipeItem(input: $input, condition: $condition) {\n menuItemId\n ingredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateRecipeItem = /* GraphQL */ `\n mutation UpdateRecipeItem(\n $input: UpdateRecipeItemInput!\n $condition: ModelRecipeItemConditionInput\n ) {\n updateRecipeItem(input: $input, condition: $condition) {\n menuItemId\n ingredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteRecipeItem = /* GraphQL */ `\n mutation DeleteRecipeItem(\n $input: DeleteRecipeItemInput!\n $condition: ModelRecipeItemConditionInput\n ) {\n deleteRecipeItem(input: $input, condition: $condition) {\n menuItemId\n ingredientId\n quantity\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createMenuItemSale = /* GraphQL */ `\n mutation CreateMenuItemSale(\n $input: CreateMenuItemSaleInput!\n $condition: ModelMenuItemSaleConditionInput\n ) {\n createMenuItemSale(input: $input, condition: $condition) {\n menuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateMenuItemSale = /* GraphQL */ `\n mutation UpdateMenuItemSale(\n $input: UpdateMenuItemSaleInput!\n $condition: ModelMenuItemSaleConditionInput\n ) {\n updateMenuItemSale(input: $input, condition: $condition) {\n menuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteMenuItemSale = /* GraphQL */ `\n mutation DeleteMenuItemSale(\n $input: DeleteMenuItemSaleInput!\n $condition: ModelMenuItemSaleConditionInput\n ) {\n deleteMenuItemSale(input: $input, condition: $condition) {\n menuItemId\n day\n type\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createMenuItemSaleMeta = /* GraphQL */ `\n mutation CreateMenuItemSaleMeta(\n $input: CreateMenuItemSaleMetaInput!\n $condition: ModelMenuItemSaleMetaConditionInput\n ) {\n createMenuItemSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateMenuItemSaleMeta = /* GraphQL */ `\n mutation UpdateMenuItemSaleMeta(\n $input: UpdateMenuItemSaleMetaInput!\n $condition: ModelMenuItemSaleMetaConditionInput\n ) {\n updateMenuItemSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteMenuItemSaleMeta = /* GraphQL */ `\n mutation DeleteMenuItemSaleMeta(\n $input: DeleteMenuItemSaleMetaInput!\n $condition: ModelMenuItemSaleMetaConditionInput\n ) {\n deleteMenuItemSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n saleType\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createDeliveryArea = /* GraphQL */ `\n mutation CreateDeliveryArea(\n $input: CreateDeliveryAreaInput!\n $condition: ModelDeliveryAreaConditionInput\n ) {\n createDeliveryArea(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateDeliveryArea = /* GraphQL */ `\n mutation UpdateDeliveryArea(\n $input: UpdateDeliveryAreaInput!\n $condition: ModelDeliveryAreaConditionInput\n ) {\n updateDeliveryArea(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteDeliveryArea = /* GraphQL */ `\n mutation DeleteDeliveryArea(\n $input: DeleteDeliveryAreaInput!\n $condition: ModelDeliveryAreaConditionInput\n ) {\n deleteDeliveryArea(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOnHandArea = /* GraphQL */ `\n mutation CreateOnHandArea(\n $input: CreateOnHandAreaInput!\n $condition: ModelOnHandAreaConditionInput\n ) {\n createOnHandArea(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOnHandArea = /* GraphQL */ `\n mutation UpdateOnHandArea(\n $input: UpdateOnHandAreaInput!\n $condition: ModelOnHandAreaConditionInput\n ) {\n updateOnHandArea(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOnHandArea = /* GraphQL */ `\n mutation DeleteOnHandArea(\n $input: DeleteOnHandAreaInput!\n $condition: ModelOnHandAreaConditionInput\n ) {\n deleteOnHandArea(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOffSiteItem = /* GraphQL */ `\n mutation CreateOffSiteItem(\n $input: CreateOffSiteItemInput!\n $condition: ModelOffSiteItemConditionInput\n ) {\n createOffSiteItem(input: $input, condition: $condition) {\n id\n name\n offSiteAreaId\n offSiteUnitId\n conversion\n offSiteSubUnitId\n alertThreshold\n par\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOffSiteItem = /* GraphQL */ `\n mutation UpdateOffSiteItem(\n $input: UpdateOffSiteItemInput!\n $condition: ModelOffSiteItemConditionInput\n ) {\n updateOffSiteItem(input: $input, condition: $condition) {\n id\n name\n offSiteAreaId\n offSiteUnitId\n conversion\n offSiteSubUnitId\n alertThreshold\n par\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOffSiteItem = /* GraphQL */ `\n mutation DeleteOffSiteItem(\n $input: DeleteOffSiteItemInput!\n $condition: ModelOffSiteItemConditionInput\n ) {\n deleteOffSiteItem(input: $input, condition: $condition) {\n id\n name\n offSiteAreaId\n offSiteUnitId\n conversion\n offSiteSubUnitId\n alertThreshold\n par\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOffSiteArea = /* GraphQL */ `\n mutation CreateOffSiteArea(\n $input: CreateOffSiteAreaInput!\n $condition: ModelOffSiteAreaConditionInput\n ) {\n createOffSiteArea(input: $input, condition: $condition) {\n id\n restaurantId\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOffSiteArea = /* GraphQL */ `\n mutation UpdateOffSiteArea(\n $input: UpdateOffSiteAreaInput!\n $condition: ModelOffSiteAreaConditionInput\n ) {\n updateOffSiteArea(input: $input, condition: $condition) {\n id\n restaurantId\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOffSiteArea = /* GraphQL */ `\n mutation DeleteOffSiteArea(\n $input: DeleteOffSiteAreaInput!\n $condition: ModelOffSiteAreaConditionInput\n ) {\n deleteOffSiteArea(input: $input, condition: $condition) {\n id\n restaurantId\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOffSiteUnit = /* GraphQL */ `\n mutation CreateOffSiteUnit(\n $input: CreateOffSiteUnitInput!\n $condition: ModelOffSiteUnitConditionInput\n ) {\n createOffSiteUnit(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOffSiteUnit = /* GraphQL */ `\n mutation UpdateOffSiteUnit(\n $input: UpdateOffSiteUnitInput!\n $condition: ModelOffSiteUnitConditionInput\n ) {\n updateOffSiteUnit(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOffSiteUnit = /* GraphQL */ `\n mutation DeleteOffSiteUnit(\n $input: DeleteOffSiteUnitInput!\n $condition: ModelOffSiteUnitConditionInput\n ) {\n deleteOffSiteUnit(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOffSiteTransaction = /* GraphQL */ `\n mutation CreateOffSiteTransaction(\n $input: CreateOffSiteTransactionInput!\n $condition: ModelOffSiteTransactionConditionInput\n ) {\n createOffSiteTransaction(input: $input, condition: $condition) {\n offSiteItemId\n type\n createdAt\n status\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const updateOffSiteTransaction = /* GraphQL */ `\n mutation UpdateOffSiteTransaction(\n $input: UpdateOffSiteTransactionInput!\n $condition: ModelOffSiteTransactionConditionInput\n ) {\n updateOffSiteTransaction(input: $input, condition: $condition) {\n offSiteItemId\n type\n createdAt\n status\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const deleteOffSiteTransaction = /* GraphQL */ `\n mutation DeleteOffSiteTransaction(\n $input: DeleteOffSiteTransactionInput!\n $condition: ModelOffSiteTransactionConditionInput\n ) {\n deleteOffSiteTransaction(input: $input, condition: $condition) {\n offSiteItemId\n type\n createdAt\n status\n restaurantId\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const createOffSiteAlert = /* GraphQL */ `\n mutation CreateOffSiteAlert(\n $input: CreateOffSiteAlertInput!\n $condition: ModelOffSiteAlertConditionInput\n ) {\n createOffSiteAlert(input: $input, condition: $condition) {\n offSiteItemId\n createdAt\n status\n snoozedUntil\n message\n createdBy\n lastUpdatedBy\n lastUpdatedAt\n updatedAt\n }\n }\n`;\nexport const updateOffSiteAlert = /* GraphQL */ `\n mutation UpdateOffSiteAlert(\n $input: UpdateOffSiteAlertInput!\n $condition: ModelOffSiteAlertConditionInput\n ) {\n updateOffSiteAlert(input: $input, condition: $condition) {\n offSiteItemId\n createdAt\n status\n snoozedUntil\n message\n createdBy\n lastUpdatedBy\n lastUpdatedAt\n updatedAt\n }\n }\n`;\nexport const deleteOffSiteAlert = /* GraphQL */ `\n mutation DeleteOffSiteAlert(\n $input: DeleteOffSiteAlertInput!\n $condition: ModelOffSiteAlertConditionInput\n ) {\n deleteOffSiteAlert(input: $input, condition: $condition) {\n offSiteItemId\n createdAt\n status\n snoozedUntil\n message\n createdBy\n lastUpdatedBy\n lastUpdatedAt\n updatedAt\n }\n }\n`;\nexport const createOrder = /* GraphQL */ `\n mutation CreateOrder(\n $input: CreateOrderInput!\n $condition: ModelOrderConditionInput\n ) {\n createOrder(input: $input, condition: $condition) {\n id\n orderAreaId\n name\n orderOnHandUnitId\n orderDeliveryUnitId\n orderVendorId\n discount\n par\n conversion\n alertThreshold\n offSiteItemId\n stockLimit\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOrder = /* GraphQL */ `\n mutation UpdateOrder(\n $input: UpdateOrderInput!\n $condition: ModelOrderConditionInput\n ) {\n updateOrder(input: $input, condition: $condition) {\n id\n orderAreaId\n name\n orderOnHandUnitId\n orderDeliveryUnitId\n orderVendorId\n discount\n par\n conversion\n alertThreshold\n offSiteItemId\n stockLimit\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOrder = /* GraphQL */ `\n mutation DeleteOrder(\n $input: DeleteOrderInput!\n $condition: ModelOrderConditionInput\n ) {\n deleteOrder(input: $input, condition: $condition) {\n id\n orderAreaId\n name\n orderOnHandUnitId\n orderDeliveryUnitId\n orderVendorId\n discount\n par\n conversion\n alertThreshold\n offSiteItemId\n stockLimit\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOrderArea = /* GraphQL */ `\n mutation CreateOrderArea(\n $input: CreateOrderAreaInput!\n $condition: ModelOrderAreaConditionInput\n ) {\n createOrderArea(input: $input, condition: $condition) {\n id\n restaurantId\n name\n order\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOrderArea = /* GraphQL */ `\n mutation UpdateOrderArea(\n $input: UpdateOrderAreaInput!\n $condition: ModelOrderAreaConditionInput\n ) {\n updateOrderArea(input: $input, condition: $condition) {\n id\n restaurantId\n name\n order\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOrderArea = /* GraphQL */ `\n mutation DeleteOrderArea(\n $input: DeleteOrderAreaInput!\n $condition: ModelOrderAreaConditionInput\n ) {\n deleteOrderArea(input: $input, condition: $condition) {\n id\n restaurantId\n name\n order\n type\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOrderUnit = /* GraphQL */ `\n mutation CreateOrderUnit(\n $input: CreateOrderUnitInput!\n $condition: ModelOrderUnitConditionInput\n ) {\n createOrderUnit(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOrderUnit = /* GraphQL */ `\n mutation UpdateOrderUnit(\n $input: UpdateOrderUnitInput!\n $condition: ModelOrderUnitConditionInput\n ) {\n updateOrderUnit(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOrderUnit = /* GraphQL */ `\n mutation DeleteOrderUnit(\n $input: DeleteOrderUnitInput!\n $condition: ModelOrderUnitConditionInput\n ) {\n deleteOrderUnit(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOrderVendor = /* GraphQL */ `\n mutation CreateOrderVendor(\n $input: CreateOrderVendorInput!\n $condition: ModelOrderVendorConditionInput\n ) {\n createOrderVendor(input: $input, condition: $condition) {\n id\n name\n email\n emailBcc\n isOffSite\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOrderVendor = /* GraphQL */ `\n mutation UpdateOrderVendor(\n $input: UpdateOrderVendorInput!\n $condition: ModelOrderVendorConditionInput\n ) {\n updateOrderVendor(input: $input, condition: $condition) {\n id\n name\n email\n emailBcc\n isOffSite\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOrderVendor = /* GraphQL */ `\n mutation DeleteOrderVendor(\n $input: DeleteOrderVendorInput!\n $condition: ModelOrderVendorConditionInput\n ) {\n deleteOrderVendor(input: $input, condition: $condition) {\n id\n name\n email\n emailBcc\n isOffSite\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOrderInventory = /* GraphQL */ `\n mutation CreateOrderInventory(\n $input: CreateOrderInventoryInput!\n $condition: ModelOrderInventoryConditionInput\n ) {\n createOrderInventory(input: $input, condition: $condition) {\n orderId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOrderInventory = /* GraphQL */ `\n mutation UpdateOrderInventory(\n $input: UpdateOrderInventoryInput!\n $condition: ModelOrderInventoryConditionInput\n ) {\n updateOrderInventory(input: $input, condition: $condition) {\n orderId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOrderInventory = /* GraphQL */ `\n mutation DeleteOrderInventory(\n $input: DeleteOrderInventoryInput!\n $condition: ModelOrderInventoryConditionInput\n ) {\n deleteOrderInventory(input: $input, condition: $condition) {\n orderId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createOrderInventoryMeta = /* GraphQL */ `\n mutation CreateOrderInventoryMeta(\n $input: CreateOrderInventoryMetaInput!\n $condition: ModelOrderInventoryMetaConditionInput\n ) {\n createOrderInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateOrderInventoryMeta = /* GraphQL */ `\n mutation UpdateOrderInventoryMeta(\n $input: UpdateOrderInventoryMetaInput!\n $condition: ModelOrderInventoryMetaConditionInput\n ) {\n updateOrderInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteOrderInventoryMeta = /* GraphQL */ `\n mutation DeleteOrderInventoryMeta(\n $input: DeleteOrderInventoryMetaInput!\n $condition: ModelOrderInventoryMetaConditionInput\n ) {\n deleteOrderInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createTShirt = /* GraphQL */ `\n mutation CreateTShirt(\n $input: CreateTShirtInput!\n $condition: ModelTShirtConditionInput\n ) {\n createTShirt(input: $input, condition: $condition) {\n id\n restaurantId\n display\n name\n sizeId\n stockCapacity\n par\n packSize\n discount\n order\n styleId\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateTShirt = /* GraphQL */ `\n mutation UpdateTShirt(\n $input: UpdateTShirtInput!\n $condition: ModelTShirtConditionInput\n ) {\n updateTShirt(input: $input, condition: $condition) {\n id\n restaurantId\n display\n name\n sizeId\n stockCapacity\n par\n packSize\n discount\n order\n styleId\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteTShirt = /* GraphQL */ `\n mutation DeleteTShirt(\n $input: DeleteTShirtInput!\n $condition: ModelTShirtConditionInput\n ) {\n deleteTShirt(input: $input, condition: $condition) {\n id\n restaurantId\n display\n name\n sizeId\n stockCapacity\n par\n packSize\n discount\n order\n styleId\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createTShirtSize = /* GraphQL */ `\n mutation CreateTShirtSize(\n $input: CreateTShirtSizeInput!\n $condition: ModelTShirtSizeConditionInput\n ) {\n createTShirtSize(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateTShirtSize = /* GraphQL */ `\n mutation UpdateTShirtSize(\n $input: UpdateTShirtSizeInput!\n $condition: ModelTShirtSizeConditionInput\n ) {\n updateTShirtSize(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteTShirtSize = /* GraphQL */ `\n mutation DeleteTShirtSize(\n $input: DeleteTShirtSizeInput!\n $condition: ModelTShirtSizeConditionInput\n ) {\n deleteTShirtSize(input: $input, condition: $condition) {\n id\n name\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createTShirtStyle = /* GraphQL */ `\n mutation CreateTShirtStyle(\n $input: CreateTShirtStyleInput!\n $condition: ModelTShirtStyleConditionInput\n ) {\n createTShirtStyle(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateTShirtStyle = /* GraphQL */ `\n mutation UpdateTShirtStyle(\n $input: UpdateTShirtStyleInput!\n $condition: ModelTShirtStyleConditionInput\n ) {\n updateTShirtStyle(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteTShirtStyle = /* GraphQL */ `\n mutation DeleteTShirtStyle(\n $input: DeleteTShirtStyleInput!\n $condition: ModelTShirtStyleConditionInput\n ) {\n deleteTShirtStyle(input: $input, condition: $condition) {\n id\n name\n restaurantId\n order\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createTShirtInventory = /* GraphQL */ `\n mutation CreateTShirtInventory(\n $input: CreateTShirtInventoryInput!\n $condition: ModelTShirtInventoryConditionInput\n ) {\n createTShirtInventory(input: $input, condition: $condition) {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateTShirtInventory = /* GraphQL */ `\n mutation UpdateTShirtInventory(\n $input: UpdateTShirtInventoryInput!\n $condition: ModelTShirtInventoryConditionInput\n ) {\n updateTShirtInventory(input: $input, condition: $condition) {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteTShirtInventory = /* GraphQL */ `\n mutation DeleteTShirtInventory(\n $input: DeleteTShirtInventoryInput!\n $condition: ModelTShirtInventoryConditionInput\n ) {\n deleteTShirtInventory(input: $input, condition: $condition) {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createTShirtInventoryMeta = /* GraphQL */ `\n mutation CreateTShirtInventoryMeta(\n $input: CreateTShirtInventoryMetaInput!\n $condition: ModelTShirtInventoryMetaConditionInput\n ) {\n createTShirtInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateTShirtInventoryMeta = /* GraphQL */ `\n mutation UpdateTShirtInventoryMeta(\n $input: UpdateTShirtInventoryMetaInput!\n $condition: ModelTShirtInventoryMetaConditionInput\n ) {\n updateTShirtInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteTShirtInventoryMeta = /* GraphQL */ `\n mutation DeleteTShirtInventoryMeta(\n $input: DeleteTShirtInventoryMetaInput!\n $condition: ModelTShirtInventoryMetaConditionInput\n ) {\n deleteTShirtInventoryMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createTShirtSale = /* GraphQL */ `\n mutation CreateTShirtSale(\n $input: CreateTShirtSaleInput!\n $condition: ModelTShirtSaleConditionInput\n ) {\n createTShirtSale(input: $input, condition: $condition) {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateTShirtSale = /* GraphQL */ `\n mutation UpdateTShirtSale(\n $input: UpdateTShirtSaleInput!\n $condition: ModelTShirtSaleConditionInput\n ) {\n updateTShirtSale(input: $input, condition: $condition) {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteTShirtSale = /* GraphQL */ `\n mutation DeleteTShirtSale(\n $input: DeleteTShirtSaleInput!\n $condition: ModelTShirtSaleConditionInput\n ) {\n deleteTShirtSale(input: $input, condition: $condition) {\n tShirtId\n day\n quantity\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createTShirtSaleMeta = /* GraphQL */ `\n mutation CreateTShirtSaleMeta(\n $input: CreateTShirtSaleMetaInput!\n $condition: ModelTShirtSaleMetaConditionInput\n ) {\n createTShirtSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateTShirtSaleMeta = /* GraphQL */ `\n mutation UpdateTShirtSaleMeta(\n $input: UpdateTShirtSaleMetaInput!\n $condition: ModelTShirtSaleMetaConditionInput\n ) {\n updateTShirtSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteTShirtSaleMeta = /* GraphQL */ `\n mutation DeleteTShirtSaleMeta(\n $input: DeleteTShirtSaleMetaInput!\n $condition: ModelTShirtSaleMetaConditionInput\n ) {\n deleteTShirtSaleMeta(input: $input, condition: $condition) {\n day\n restaurantId\n storageKey\n status\n completion\n lastUpdatedBy\n lastUpdatedAt\n createdAt\n updatedAt\n }\n }\n`;\nexport const createTShirtTransaction = /* GraphQL */ `\n mutation CreateTShirtTransaction(\n $input: CreateTShirtTransactionInput!\n $condition: ModelTShirtTransactionConditionInput\n ) {\n createTShirtTransaction(input: $input, condition: $condition) {\n tShirtId\n createdAt\n type\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const updateTShirtTransaction = /* GraphQL */ `\n mutation UpdateTShirtTransaction(\n $input: UpdateTShirtTransactionInput!\n $condition: ModelTShirtTransactionConditionInput\n ) {\n updateTShirtTransaction(input: $input, condition: $condition) {\n tShirtId\n createdAt\n type\n quantity\n createdBy\n updatedAt\n }\n }\n`;\nexport const deleteTShirtTransaction = /* GraphQL */ `\n mutation DeleteTShirtTransaction(\n $input: DeleteTShirtTransactionInput!\n $condition: ModelTShirtTransactionConditionInput\n ) {\n deleteTShirtTransaction(input: $input, condition: $condition) {\n tShirtId\n createdAt\n type\n quantity\n createdBy\n updatedAt\n }\n }\n`;\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { ModelConfig } from \"./ModelConfig\";\nimport * as graphQlOperations from \"../graphql/graph-ql-operations\";\nimport { Resource } from \"../resources/Resource\";\n\nconst queries: { [key: string]: any } = graphQlOperations.queries;\nconst mutations: { [key: string]: any } = graphQlOperations.mutations;\n\nclass ModelApi {\n public typeName: string;\n public limit = 100000;\n\n static async customMutation(input: any, mutationName: string): Promise {\n const operation = graphqlOperation(mutations[mutationName], input);\n const response = (await API.graphql(operation)) as {\n data: { [key: string]: any };\n };\n return response.data[mutationName];\n }\n\n async list(filter?: any): Promise {\n const queryName = `list${this.typeName}s`;\n const operation = queries[queryName];\n\n const variables = { limit: this.limit, filter: filter || null };\n const response = (await API.graphql(graphqlOperation(operation, variables))) as {\n data: { [key: string]: any };\n };\n return response.data[queryName].items;\n }\n\n async get(input: any): Promise {\n const operationName = `get${this.typeName}`;\n const operation = queries[operationName];\n\n const response = (await API.graphql(graphqlOperation(operation, input))) as {\n data: { [key: string]: any };\n };\n return response.data[operationName].item;\n }\n\n async restore(item: any): Promise {\n const operationName = `get${this.typeName}`;\n const operation = queries[operationName];\n\n const input = item.getModel().extractKeyObject(item);\n const variables = { limit: this.limit, input };\n\n const response = (await API.graphql(graphqlOperation(operation, variables))) as {\n data: { [key: string]: any };\n };\n // TODO: check the result holds only one item; throw error otherwise\n item.data = response.data[operationName];\n return item;\n }\n\n async update(input: any, keepCreatedAt = false, keepUpdatedAt = false): Promise {\n const mutationName = `update${this.typeName}`;\n const mutation = mutations[mutationName];\n\n if (!keepCreatedAt) {\n delete input.createdAt;\n }\n if (!keepUpdatedAt) {\n delete input.updatedAt;\n }\n\n const response = (await API.graphql(graphqlOperation(mutation, { input }))) as {\n data: { [key: string]: any };\n };\n return response.data[mutationName];\n }\n\n async create(input: any): Promise {\n const mutationName = `create${this.typeName}`;\n const mutation = mutations[mutationName];\n\n console.log(`Creating ${this.typeName}, from data: ${JSON.stringify(input)}`);\n\n const response = (await API.graphql(graphqlOperation(mutation, { input }))) as {\n data: { [key: string]: any };\n };\n return response.data[mutationName];\n }\n\n async delete(item: Resource, shouldConfirm = true): Promise {\n if (shouldConfirm) {\n if (!window.confirm(\"Are you sure you want to delete this item?\")) {\n return false;\n }\n }\n\n const mutationName = `delete${this.typeName}`;\n const mutation = mutations[mutationName];\n\n const input = item.getModel().extractKeyObject(item);\n const response = (await API.graphql(graphqlOperation(mutation, { input }))) as {\n data: { [key: string]: any };\n };\n return response.data[mutationName];\n }\n\n constructor(config: ModelConfig) {\n this.typeName = config.typeName;\n this.limit = config.limit;\n }\n}\n\nexport default ModelApi;\n","import ModelApi from \"../model/ModelApi\";\n\nfunction validateEmail(emailAddress) {\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(emailAddress).toLowerCase());\n}\n\nasync function sendEmail(emailObj) {\n let response;\n\n try {\n response = await ModelApi.customMutation({ email: JSON.stringify(emailObj) }, \"sendEmail\");\n } catch (e) {\n console.log(JSON.stringify(e));\n throw Error(\"Failed to initiate email call!\");\n }\n\n return response;\n}\n\nconst AppEmailService = {\n validateEmail,\n sendEmail,\n};\n\nexport default AppEmailService;\n","import { Button } from \"@material-ui/core\";\nimport { Component } from \"react\";\nimport { buildEmailFeedback } from \"../../containers/feedback/AppFeedbackUtils\";\nimport AppEmailService from \"../../services/AppEmailService\";\n\nclass ErrorHandler extends Component {\n state = { hasError: false, errorInfo: \"\" };\n\n componentDidCatch(error, errorInfo) {\n const errorInfoString = JSON.stringify(errorInfo, null, 4);\n this.setState({ hasError: true, errorInfo: errorInfoString });\n console.error(errorInfoString);\n }\n\n render() {\n if (this.state.hasError) {\n const handleSendFeedback = async () => {\n this.props.setGlobalSpinner(true);\n\n const feedback = {\n type: \"Bug\",\n priority: \"p1\",\n date: \"\",\n details: this.state.errorInfo,\n userName: this.props.appState.user.name,\n day: this.props.appState.day.data.display,\n sentAt: new Date().getTime(),\n location: window.location.href,\n };\n\n const email = buildEmailFeedback(feedback);\n\n try {\n await AppEmailService.sendEmail(email);\n alert(\"Error report sent!\");\n } catch (e) {\n alert(\"Failed to send Error, please contact admin!\");\n } finally {\n this.props.setGlobalSpinner(false);\n }\n };\n\n return (\n
\n Something went wrong!\n \n
\n );\n }\n return this.props.children;\n }\n}\n\nexport default ErrorHandler;\n","import React, { createContext, useContext, useState } from \"react\";\n\nconst GlobalSpinnerContext = createContext();\nconst GlobalSpinnerActionsContext = createContext();\n\n/* tslint-disable */\n/* eslint-disable */\nconst useContextFactory = (name, context) => {\n return () => {\n const ctx = useContext(context);\n if (ctx === undefined) {\n throw new Error(`use${name}Context must be used withing a ${name}ContextProvider.`);\n }\n return ctx;\n };\n};\n/* eslint-enable */\n/* tslint-enable */\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nexport const useGlobalSpinnerContext = useContextFactory(\n \"GlobalSpinnerContext\",\n GlobalSpinnerContext\n);\n// eslint-disable-next-line react-hooks/rules-of-hooks\nexport const useGlobalSpinnerActionsContext = useContextFactory(\n \"GlobalSpinnerActionsContext\",\n GlobalSpinnerActionsContext\n);\n\nconst GlobalSpinnerContextProvider = (props) => {\n const [isGlobalSpinnerOn, setGlobalSpinner] = useState(false);\n\n return (\n \n \n {props.children}\n \n \n );\n};\n\nexport default GlobalSpinnerContextProvider;\n","import moment from \"moment-timezone\";\nimport { AppDayType } from \"./AppDayType\";\n\nexport default class AppDayModel {\n public data: AppDayType;\n\n static WEEK_UNIX = 7 * 24 * 60 * 60;\n\n static getTodayUnixTime(): number {\n return moment().tz(\"America/New_York\").startOf(\"day\").unix();\n }\n\n static getTodayFilter(unixTime = AppDayModel.getTodayUnixTime()): { day: { eq: number } } {\n return { day: { eq: unixTime } };\n }\n\n static getCurrentUnixTime(): number {\n return moment().tz(\"America/New_York\").unix();\n }\n\n static getTimeDisplay(unixTime: number, format = \"h:mm:ss A, MMMM Do\"): string {\n return AppDayModel.createMomentFromUnixTime(unixTime).format(format);\n }\n\n static getDayTimeDisplay(unixTime: number, format = \"MMMM Do YYYY\"): string {\n return AppDayModel.createMomentFromUnixTime(unixTime).format(format);\n }\n\n static getPrevDayUnixTime(unixTime = AppDayModel.getTodayUnixTime()): number {\n return AppDayModel.createMomentFromUnixTime(unixTime)\n .subtract(1, \"days\")\n .tz(\"America/New_York\")\n .unix();\n }\n\n static getPrevDayFilter(unixTime: number): { day: { eq: number } } {\n return { day: { eq: AppDayModel.getPrevDayUnixTime(unixTime) } };\n }\n\n static getUnixTimeFromDate(date: Date): number {\n return moment(date).tz(\"America/New_York\").startOf(\"day\").unix();\n }\n\n static getNextDayUnixTime(unixTime = AppDayModel.getTodayUnixTime()): number {\n return AppDayModel.createMomentFromUnixTime(unixTime)\n .add(1, \"days\")\n .tz(\"America/New_York\")\n .unix();\n }\n\n static createMomentFromUnixTime(unixTime: number): moment.Moment {\n return moment(unixTime * 1000);\n }\n\n static isValid(day: AppDayModel): boolean {\n return day && typeof day.data.time === \"number\" && typeof day.data.display === \"string\";\n }\n\n static getDayLabel(day: AppDayModel): string {\n return AppDayModel.getTimeDisplay(day.data.time, \"YYYY-MM-DD\");\n }\n\n constructor(time?: number | Date) {\n let unixTime: number = AppDayModel.getTodayUnixTime();\n\n if (time?.constructor === Date) {\n unixTime = AppDayModel.getUnixTimeFromDate(time);\n }\n\n if (typeof time === \"number\") {\n unixTime = time;\n }\n\n this.data = {\n time: unixTime,\n display: AppDayModel.getTimeDisplay(unixTime),\n };\n }\n}\n","export type UserGroupType = string;\n\nexport const DEVS: UserGroupType = \"Devs\";\nexport const ADMINS: UserGroupType = \"Admins\";\nexport const DATA_EDITOR_USERS: UserGroupType = \"DataEditorUsers\";\nexport const MANAGERS: UserGroupType = \"Managers\";\nexport const ORDERS_ADMIN: UserGroupType = \"OrdersAdmin\";\nexport const KITCHEN_DELIVERY_USERS: UserGroupType = \"KitchenDeliveryUsers\";\nexport const ORDERS_DELIVERY_USERS: UserGroupType = \"OrdersDeliveryUsers\";\nexport const KITCHEN_USERS: UserGroupType = \"KitchenUsers\";\nexport const ORDERS_USERS: UserGroupType = \"OrdersUsers\";\nexport const STORE_USERS: UserGroupType = \"StoreUsers\";\nexport const WAREHOUSE_USERS: UserGroupType = \"WarehouseUsers\";\nexport const OFFICE_USERS: UserGroupType = \"OfficeUsers\";\nexport const BAR_USERS: UserGroupType = \"BarUsers\";\nexport const ON_HAND_UNLOCK: UserGroupType = \"OnHandUnlock\";\nexport const COMMISSARY_USERS: UserGroupType = \"CommissaryUsers\";\nexport const LIZARD_USERS: UserGroupType = \"LizardUsers\";\nexport const FREDDIES_USERS: UserGroupType = \"FreddiesUsers\";\nexport const TEST: UserGroupType = \"Test\";\nexport const GUESTS: UserGroupType = \"Guests\";\n","import { ReactNode } from \"react\";\nimport { ContainerPathType } from \"./ContainerPaths\";\nimport { UserGroupType } from \"./../services/AppUserGroupsData\";\n\nexport class ContainerConfig {\n public path: ContainerPathType;\n\n constructor(\n public name: string,\n public key: string,\n public url: string,\n // TODO: the argument is actually appState.user.groups, but not type exists yet\n public userAccess: ({ groups }: { groups?: UserGroupType[] }) => boolean,\n public component: any,\n public menuItem: any,\n public tasksHeaderComponent: ReactNode = null\n ) {\n this.key = key || name;\n this.path = url;\n }\n}\n","import { DEVS } from \"../services/AppUserGroupsData\";\nimport { ContainerConfig } from \"./ContainerConfig\";\nexport default class ContainerConfigBuilder {\n constructor(name, key) {\n this.name = name;\n this.key = key || name;\n }\n\n setKey(key) {\n this.key = key;\n return this;\n }\n\n setPath(url) {\n this.url = url;\n this.path = url;\n return this;\n }\n\n setUserAccess(allowedGroups) {\n if (!Array.isArray(allowedGroups)) {\n // defaults to no access at all (not even for DEVS)\n this.userAccess = () => false;\n return this;\n }\n\n if (allowedGroups.length === 0) {\n // if no group-restriction is set, access is PUBLIC\n this.userAccess = () => true;\n return this;\n }\n\n // \"DEVS\" is included by default\n this.userAccess = ({ groups }) => {\n return userCanAccess(allowedGroups, groups);\n };\n\n return this;\n\n /* ================== */\n function userCanAccess(allowedGroups, allGroups) {\n allowedGroups = [...allowedGroups, DEVS];\n return allowedGroups.reduce((acc, validGroup) => {\n acc = acc || allGroups.includes(validGroup);\n return acc;\n }, false);\n }\n }\n\n setComponent(component) {\n this.component = component;\n return this;\n }\n\n setMenuItem(menuItem) {\n this.menuItem = menuItem;\n return this;\n }\n\n build() {\n if (!(\"url\" in this)) {\n throw new Error(\"URL is missing\");\n }\n\n if (!(\"userAccess\" in this)) {\n throw new Error(\"User Access is missing\");\n }\n\n if (!(\"component\" in this)) {\n throw new Error(\"Component is missing\");\n }\n\n if (!(\"menuItem\" in this)) {\n throw new Error(\"Menu Item is missing\");\n }\n\n return new ContainerConfig(\n this.name,\n this.key,\n this.url,\n this.userAccess,\n this.component,\n this.menuItem\n );\n }\n}\n","export type ContainerPathType = string;\n\nexport type ContainerPathsType = {\n [key: string]: ContainerPathType;\n};\n\nexport const ContainerPaths: ContainerPathsType = {\n HOME: \"/home\",\n SIGN_OUT: \"/sign-out\",\n MENUS: \"/sales\",\n ON_HAND: \"/on-hand\",\n DELIVERY: \"/delivery\",\n EDITOR: \"/editor\",\n PULL: \"/pull\",\n STOCKING: \"/stocking\",\n REORDERS: \"/reorders\",\n RECEIVING: \"/receiving\",\n SALES: \"/sales\",\n};\n","import React from \"react\";\nimport { MdHome } from \"react-icons/md\";\n\nfunction AppHomeMenuItem(name: string) {\n return [\n ,\n
\n {name}\n
,\n ];\n}\n\nexport default AppHomeMenuItem;\n","import ContainerConfigBuilder from \"../ContainerConfigBuilder\";\nimport { ContainerPaths } from \"../ContainerPaths\";\nimport AppHome from \"./AppHome\";\nimport AppHomeMenuItem from \"./AppHomeMenuItem\";\n\nexport const AppHomeContainerConfig = new ContainerConfigBuilder(\"Home\")\n .setPath(ContainerPaths.HOME)\n .setUserAccess([])\n .setComponent(AppHome)\n .setMenuItem(AppHomeMenuItem)\n .build();\n","import { Auth } from \"aws-amplify\";\n\nfunction isValidUser(appUser) {\n if (appUser) {\n const { name, groups } = appUser;\n return name && Array.isArray(groups);\n }\n\n return Auth?.user?.signInUserSession?.idToken?.payload?.[\"cognito:groups\"];\n}\n\nfunction isValid(appState) {\n return (\n appState &&\n appState.user &&\n Array.isArray(appState.user.groups) &&\n appState.day &&\n appState.day.data.time &&\n appState.section\n );\n}\n\nconst AppContextValidator = {\n isValidUser,\n isValid,\n};\n\nexport default AppContextValidator;\n","import React, { useContext } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { AppContext } from \"../../context/AppContext\";\nimport AppContextValidator from \"../../context/AppContextValidator\";\n\nconst SignOut = ({ location }) => {\n const history = useHistory();\n const { appState, signOut } = useContext(AppContext);\n\n if (!AppContextValidator.isValidUser(appState.user)) {\n console.info(\"Invalid user data!\");\n return
;\n }\n\n if (window.confirm(\"Are you sure you want to sign out?\")) {\n history.push(\"/\");\n signOut();\n }\n\n return null;\n};\n\nexport default SignOut;\n","import React from \"react\";\nimport { MdExitToApp } from \"react-icons/md\";\n\nconst SignOutMenuItem = (name: string) => {\n return [\n ,\n
\n {name}\n
,\n ];\n};\n\nexport default SignOutMenuItem;\n","import ContainerConfigBuilder from \"../ContainerConfigBuilder\";\nimport { ContainerPaths } from \"../ContainerPaths\";\nimport SignOut from \"./SignOut\";\nimport SignOutMenuItem from \"./SignOutMenuItem\";\n\nexport const SignOutContainerConfig = new ContainerConfigBuilder(\"Sign Out\")\n .setPath(ContainerPaths.SIGN_OUT)\n .setUserAccess([])\n .setComponent(SignOut)\n .setMenuItem(SignOutMenuItem)\n .build();\n","import { Button } from \"@material-ui/core\";\nimport React from \"react\";\nimport { UserGroupType } from \"../../services/AppUserGroupsData\";\nimport { ContainerConfig } from \"../ContainerConfig\";\nimport { AppHomeContainerConfig } from \"../home/AppHomeContainerConfig\";\nimport { SignOutContainerConfig } from \"../sign-out/SignOutContainerConfig\";\nimport appSectionsStyle from \"./Sections.module.css\";\n\nclass Section {\n public pathNames;\n public iconSize;\n public iconHeaderSize;\n public iconHomeSize;\n public iconColor;\n public iconHeaderColor;\n public iconHomeColor;\n\n static isValidSection(section: Section): boolean {\n if (!section) {\n return false;\n }\n const { name, allowedGroups, disabled } = section;\n return typeof name === \"string\" && Array.isArray(allowedGroups) && disabled === false;\n }\n\n renderIcon(disabled: boolean): JSX.Element | null {\n return null;\n }\n\n renderHeaderIcon(): JSX.Element | null {\n return null;\n }\n\n renderHomeIcon(): JSX.Element | null {\n return null;\n }\n\n renderInitCard(onClick: any, selectedSection: Section): any {\n const handleSelection = () => {\n if (selectedSection && selectedSection.name === this.name) {\n return true;\n }\n\n return onClick(this);\n };\n\n return (\n \n
\n
\n {this.renderIcon(this.disabled)}\n
\n
\n {this.name}\n
\n
\n \n );\n }\n\n renderHome() {\n return (\n
\n {this.renderHomeIcon()}\n
\n {this.name}\n
\n
\n );\n }\n\n constructor(\n public pages: ContainerConfig[] = [],\n public name: string = \"?\",\n public allowedGroups: UserGroupType[] = [],\n public disabled = false,\n public basename: string,\n public tasksComponent?: any,\n public wrapperContextProvider?: any\n ) {\n this.pages = [AppHomeContainerConfig].concat(pages).concat([SignOutContainerConfig]);\n this.pathNames = this.pages.map(({ url }) => url);\n this.name = name;\n this.allowedGroups = allowedGroups;\n this.iconSize = 36;\n this.iconHeaderSize = 18;\n this.iconHomeSize = 90;\n this.iconColor = \"#3f50b6\";\n this.iconHeaderColor = \"white\";\n this.iconHomeColor = \"lightgray\";\n this.disabled = disabled;\n this.tasksComponent = tasksComponent;\n this.wrapperContextProvider = wrapperContextProvider;\n }\n\n getDefaultPath(groups?: UserGroupType[]): string {\n return AppHomeContainerConfig.url;\n }\n}\n\nexport { Section };\n","// export type SectioNameType = string;\n\nexport const SectionNames = {\n FOOD: \"Food\",\n ORDERS: \"Orders\",\n OFF_SITE: \"Off-Site\",\n T_SHIRTS: \"T-Shirts\",\n DPS: \"Dps\",\n ADMIN: \"Admin\",\n};\n","import { Resource } from \"./../resources/Resource\";\nimport { ResourceColumn } from \"../resources/ResourceColumn\";\nimport { ModelConfig } from \"./ModelConfig\";\n\nclass ModelEditor {\n public isEditable = true;\n public isDeletable = true;\n\n getSortCallback(sortColumn: ResourceColumn) {\n return (a: Resource, b: Resource): number => {\n if (sortColumn.defaultSortDirection === \"DESC\") {\n [a, b] = [b, a];\n }\n return sortColumn.sortCallback(a.data[sortColumn.field], b.data[sortColumn.field]);\n };\n }\n\n sort(items: Resource[] = []): Resource[] {\n const sortableColumns = this.config.columns.filter(\n ({ defaultSortDirection: sortKey }) => typeof sortKey === \"string\"\n );\n const columnsBySortRank = sortableColumns.sort((a, b) => {\n if (!!a.defaultSortRank && !!b.defaultSortRank) {\n return b?.defaultSortRank - a?.defaultSortRank;\n }\n return 0;\n });\n const sortCallbacks = columnsBySortRank.map(this.getSortCallback);\n\n return items.sort((a, b) => {\n return sortCallbacks.reduce((acc, sortCallback) => {\n return acc || sortCallback(a, b);\n }, 0);\n });\n }\n\n getNewItemTemplate(): { [key: string]: any } {\n return Object.fromEntries(\n this.config.columns.map(({ field, defaultValue }) => [field, defaultValue])\n );\n }\n\n validator(columns: ResourceColumn[], item: any): any {\n return columns\n .filter(({ isRequired }) => isRequired)\n .reduce((acc: any, current: ResourceColumn) => {\n if (item[current.field] === null || item[current.field] === undefined) {\n acc[current.field] = \"Required\";\n } else if (!current.validator(item[current.field])) {\n acc[current.field] = \"Invalid\";\n }\n return acc;\n }, {});\n }\n\n equals(itemA: Resource, itemB: Resource): boolean {\n return areNotEqualOnFields(\n itemA,\n itemB,\n this.config.columns.filter(({ isKey }) => isKey).map(({ field }) => field)\n );\n\n /* ---------- IMPL ---------- */\n function areNotEqualOnFields(oldItem: Resource, newItem: Resource, fields: string[]) {\n return fields.reduce((acc, field) => {\n return acc && areNotEqualOnField(oldItem, newItem, field);\n }, true);\n }\n\n function areNotEqualOnField(oldItem: Resource, newItem: Resource, field: string) {\n return oldItem.data[field] !== newItem.data[field];\n }\n }\n\n constructor(public config: ModelConfig) {}\n}\n\nexport default ModelEditor;\n","import { RefChainDisplay } from \"./ModelTypes\";\nimport { DataEditorState } from \"../containers/data-editor/types/DataEditorTypes\";\nimport { AppStateType } from \"../context/AppContextTypes\";\nimport { Resource, ResourceDataType } from \"./../resources/Resource\";\nimport ModelApi from \"./ModelApi\";\nimport { ModelConfig } from \"./ModelConfig\";\nimport ModelEditor from \"./ModelEditor\";\n\nclass Model {\n public editor: ModelEditor;\n public api: ModelApi;\n\n extractKeyObject(item: Resource): any {\n if (item.data === undefined || item.data === null) {\n return console.error(\"Cannot extract from invalid data\");\n }\n const keyColumns = this.config.columns.filter(({ isKey }) => isKey);\n const keyColumnsPairs = keyColumns.map(({ field }) => [field, item.data[field]]);\n\n return Object.fromEntries(keyColumnsPairs);\n }\n\n create(\n id: string | number | null,\n newValues: any,\n shouldConfirm: boolean,\n order: number | null\n ): false | Promise {\n if (shouldConfirm && !window.confirm(\"Are you sure you want to add this item?\")) {\n return false;\n }\n let inputForSubmission = newValues;\n\n if (typeof id === \"number\" || typeof id === \"string\") {\n inputForSubmission.id = id;\n }\n\n if (typeof order === \"number\") {\n inputForSubmission.order = order;\n }\n\n const input = this.prepForCreate(inputForSubmission);\n\n return this.api.create(input);\n }\n\n prepForCreate(data: any): any {\n return data;\n }\n\n // returns how some field wants to be displayed when its referenced inside another table\n refDisplay(data: ResourceDataType, dataEditorState?: DataEditorState): string {\n if (data.display) {\n return data.display;\n }\n if (data.name) {\n return data.name;\n }\n if (data.id) {\n return data.id;\n }\n return \"???\";\n }\n\n // returns how some field wants to be displayed when it is part of a chain of references\n refChainDisplay(\n data: ResourceDataType,\n dataEditorState: DataEditorState,\n resourceRefKey: string,\n ignoreRefDisplay = false,\n resourceRefKeys?: RefChainDisplay\n ): string {\n if (resourceRefKeys === undefined || resourceRefKeys.length === 0) {\n resourceRefKeys = [resourceRefKey];\n }\n\n const refDisplay = ignoreRefDisplay ? [] : [this.refDisplay(data)];\n const refDisplays = resourceRefKeys.map(\n (resourceRefKeysEntry: string | string[], index: number) => {\n let refKeyValue: any;\n\n if (Array.isArray(resourceRefKeysEntry)) {\n if (index === 0) {\n return null;\n }\n // there should be no case for a array parent\n const parentResourceRefKey: string | string[] =\n resourceRefKeys?.[index - 1] || \"\";\n if (Array.isArray(parentResourceRefKey)) {\n return null;\n }\n // when a key is an array, take the first item and find it in the previous resourceRefKey resources\n const parentRefKeyValue = data[parentResourceRefKey];\n resourceRefKeysEntry = resourceRefKeysEntry[0];\n const refKeyItems =\n dataEditorState.getItemsByResourceRefKey(parentResourceRefKey);\n const refKeyItem = refKeyItems.find(\n (item) => item.data[parentResourceRefKey] === parentRefKeyValue\n );\n refKeyValue = refKeyItem?.data[resourceRefKeysEntry];\n }\n\n if (typeof resourceRefKeysEntry === \"string\") {\n refKeyValue = data[resourceRefKeysEntry];\n }\n\n if (refKeyValue === null || refKeyValue === undefined) {\n // throw Error(`Invalid reference to ${refKeysEntry}`);\n return \"\";\n }\n\n const refKeyItems = dataEditorState.getItemsByResourceRefKey(resourceRefKeysEntry);\n const refKeyItem = refKeyItems.find((item) => item.data?.id === refKeyValue);\n\n let refDisplay = \"\";\n if (refKeyItem) {\n refDisplay = refKeyItem.getModel().refDisplay(refKeyItem.data) || \"Invalid\";\n }\n\n return refDisplay;\n }\n );\n\n const displays = [refDisplay, refDisplays]\n .flat()\n .filter((x) => x)\n .reverse()\n .join(\" - \");\n\n return displays;\n }\n\n getFilter(appState?: AppStateType): any {\n return null;\n }\n\n getResourceStoreKey() {\n return this.config.resourceStoreKey;\n }\n\n getResourceRefKey() {\n return this.config.resourceRefKey;\n }\n\n getColumns() {\n return this.config.columns;\n }\n\n constructor(public config: ModelConfig) {\n this.editor = new ModelEditor(this.config);\n this.api = new ModelApi(this.config);\n }\n}\n\nexport { Model };\n","import { ResourceColumn } from \"./../resources/ResourceColumn\";\n\nexport type ResourceStoreKey = string;\nexport type ResourceRefKey = string;\n\nexport class ModelConfig {\n constructor(\n // graphql schema type name\n public typeName: string,\n // dynamodb table limit\n public limit: number,\n // display limit\n public pageSize: number,\n // the key under which items of \"type\" can be stored (must be unique)\n public resourceStoreKey: ResourceStoreKey,\n // the user friendly name of the model\n public typeNameDisplay: string,\n // the unique key of the initial data for this model\n public initDataKey: string,\n // the unique key to reference this model\n public resourceRefKey: ResourceRefKey,\n // the definition of each property\n public columns: ResourceColumn[],\n // current page index, when it is the case\n public pageIndex: number = 0\n ) {}\n}\n","const DataEditorCellDisplay = ({ key, value }: { key: string; value: string }) => {\n return (\n \n {value}\n ;\n \n );\n};\n\nexport default DataEditorCellDisplay;\n","import { FormikErrors, FormikTouched } from \"formik\";\nimport dataEditorCellEditWrpStyles from \"./DataEditorCellEditWrp.module.css\";\n\ntype DataEditorCellEditType = {\n key: string;\n field: string;\n index: number;\n content: JSX.Element;\n errors: FormikErrors;\n touched: FormikTouched;\n isSubmitting: boolean;\n};\n\nconst DataEditorCellEditWrp = ({\n key,\n field,\n index,\n content,\n errors,\n touched,\n isSubmitting,\n}: DataEditorCellEditType) => {\n return (\n
\n {content}\n {errors[field] && touched[field]}\n
\n );\n};\n\nexport default DataEditorCellEditWrp;\n","import { FormikErrors, FormikProps, FormikTouched } from \"formik\";\nimport React from \"react\";\nimport { JsxElement } from \"typescript\";\nimport DataEditorCellDisplay from \"../containers/data-editor/components/content/item/cell/DataEditorCellDisplay\";\nimport DataEditorCellEditWrp from \"../containers/data-editor/components/content/item/cell/DataEditorCellEditWrp\";\nimport {\n DataEditorSortDirection,\n DataEditorState,\n} from \"../containers/data-editor/types/DataEditorTypes\";\nimport { AppSortCallbackType, AppValidatorType } from \"../types/AppTypes\";\n\nexport type ResourceColumnSortRank = number | null;\n\nexport class ResourceColumn {\n public resourceRefKeyAlias: string | null = null;\n public placeholder?: string;\n public disabled?: boolean = true;\n public editable?: boolean = false;\n public hide?: boolean = true;\n public isRequired?: boolean = true;\n public isKey?: boolean = false;\n public defaultSortDirection: DataEditorSortDirection | null = null;\n // unless this is \"-1\" (which cancels it)\n // the lower it is, the more important the sort criteria\n public defaultSortRank: ResourceColumnSortRank = -1;\n public sortCallback: AppSortCallbackType = (a, b) =>\n JSON.stringify(a).localeCompare(JSON.stringify(b));\n public validator: AppValidatorType = () => false;\n public width?: number = 1;\n public hideOnAdd?: boolean = false;\n public defaultValue?: any;\n\n constructor(public field: string, public name: string, public inputType: string) {\n // TODO: pass required; remove \"extract(Required)Properties\" methods\n this.resourceRefKeyAlias = field;\n }\n\n setOptional(isRequired = false) {\n this.isRequired = isRequired;\n return this;\n }\n\n setVisible(hide = false) {\n this.hide = hide;\n return this;\n }\n\n setDefault(defaultValue: any) {\n this.defaultValue = defaultValue;\n return this;\n }\n\n setEditable(editable = true) {\n this.editable = editable;\n if (this.editable) {\n this.disabled = false;\n }\n return this;\n }\n\n setDisabled(disabled: boolean) {\n this.disabled = disabled;\n return this;\n }\n\n setHideOnAdd() {\n this.hideOnAdd = true;\n return this;\n }\n\n setKey(isKey = true) {\n this.isKey = isKey;\n return this;\n }\n\n setSortDirection(\n sortDirection: DataEditorSortDirection,\n sortRank: ResourceColumnSortRank = -1\n ) {\n // true => sort ASC; false => sort DESC; else => don't sort\n // the higher the rank, the bigger the sort priority\n // rank = 0 is the last one and is to be used for items that have a .order value, ASC\n this.defaultSortDirection = sortDirection;\n this.defaultSortRank = sortRank;\n return this;\n }\n\n setSortCallback(sortCallback: AppSortCallbackType) {\n this.sortCallback = sortCallback;\n return this;\n }\n\n setResourceRefKeyAlias(resourceRefKeyAlias: string) {\n this.resourceRefKeyAlias = resourceRefKeyAlias;\n return this;\n }\n\n setValidator(validator: AppValidatorType) {\n this.validator = validator;\n return this;\n }\n\n setWidth(width: string) {\n const widths: any = {\n XS: 1,\n S: 2,\n M: 3,\n L: 4,\n XL: 5,\n };\n this.width = widths[width] || 1;\n return this;\n }\n\n getDisplay(data: any) {\n return data[this.field];\n }\n\n renderDisplay(key: string, value: any) {\n return ;\n }\n\n prepRenderEdit(index: number, fmkProps: FormikProps, dataEditorState?: DataEditorState) {\n const { touched, errors, isSubmitting } = fmkProps;\n const content =
Invalid!
;\n\n return this.renderEdit(index, this.field, content, errors, touched, isSubmitting);\n }\n\n renderEdit(\n index: number,\n field: string,\n content: JSX.Element,\n errors: FormikErrors,\n touched: FormikTouched,\n isSubmitting: boolean\n ) {\n const key = `cell-edit-wrp-${field}-${index}`;\n\n return (\n \n );\n }\n\n renderFilter() {\n return
...Filter...
;\n }\n}\n","import { FormikProps, FormikTouched } from \"formik\";\nimport React from \"react\";\nimport { ResourceColumn } from \"../ResourceColumn\";\n\nexport class ResourceColumnNumber extends ResourceColumn {\n public min?: number;\n\n constructor(public field: string, public name: string, public step: number = 1) {\n super(field, name, \"number\");\n this.min = 0;\n this.defaultValue = this.min;\n this.validator = (data: string) => parseFloat(data) >= 0;\n }\n\n prepRenderEdit(index: number, fmkProps: FormikProps) {\n const { handleChange, handleBlur, errors, values, isSubmitting } = fmkProps;\n const content = (\n \n );\n\n const touched: FormikTouched = fmkProps.touched;\n\n return super.renderEdit(index, this.field, content, errors, touched, isSubmitting);\n }\n}\n","import { Model } from \"../model/Model\";\nimport { ModelConfig } from \"../model/ModelConfig\";\nimport { ResourceColumn } from \"./ResourceColumn\";\n\nconst defaultModel = new Model(\n new ModelConfig(\n \"resource\",\n 0,\n 0,\n \"resourcesStoreKey\",\n \"resource\",\n \"resource\",\n \"resourceRef\",\n []\n )\n);\n\n// TODO: find out why is it necessary for T to \" T extends ...\"\n\nexport type ResourceDataType = {\n __typename: string;\n [key: string]: any;\n};\n\nexport type ResourceDisplayType = {\n [key: string]: string | undefined;\n};\n\nexport class Resource {\n // TODO: update this property every time some item is initialized, updated, or replaced\n // - it starts from the equivalent definition in .data\n // - then goes from resourceRefKey to resourceRefKey until it gets a replacement ref value\n // - then it's transformed by the column definition\n private display: ResourceDisplayType = {};\n\n // All classes that extend Resource have their own static implementation of getModel\n static getModel(): Model {\n return defaultModel;\n }\n\n getModel(): Model {\n return this.model || defaultModel;\n }\n\n getDisplay() {\n return this.display;\n }\n\n setDisplay(display: ResourceDisplayType) {\n this.display = display;\n }\n\n // compare items based on all key columns\n equals(item: Resource): boolean {\n const keyColumns = this.getModel()\n .getColumns()\n .filter((column: ResourceColumn) => column.isKey);\n\n return keyColumns.reduce((acc: boolean, column: ResourceColumn) => {\n return acc && this.data[column.field] === item.data[column.field];\n }, true);\n }\n\n constructor(public data: ResourceDataType, public model?: Model) {}\n}\n","import { DataEditorState } from \"../../../containers/data-editor/types/DataEditorTypes\";\nimport { Resource } from \"../../Resource\";\nimport { ResourceColumnSelect } from \"./ResourceColumnSelect\";\nimport {\n ResourceColumnSelectOption,\n ResourceColumnSelectRawOption,\n} from \"./ResourceColumnSelectTypes\";\n\nfunction transformRawOptions(\n rawOptions: ResourceColumnSelectRawOption[]\n): ResourceColumnSelectOption[] {\n let result: ResourceColumnSelectOption[] = [];\n\n result = rawOptions.map((rawOption: ResourceColumnSelectRawOption) => {\n if (typeof rawOption === \"string\") {\n return transformStringToOption(rawOption);\n }\n\n if (rawOption instanceof Resource) {\n return transformResourceToOption(rawOption);\n }\n\n return rawOption;\n });\n\n return result;\n}\n\nfunction getResourceRefKey(\n dataEditorState: DataEditorState,\n column: ResourceColumnSelect\n): string | null {\n if (dataEditorState.store.mapping.refKeyToStoreKey[column.field]) {\n return column.field;\n }\n\n if (\n column.resourceRefKeyAlias &&\n dataEditorState.store.mapping.refKeyToStoreKey[column.resourceRefKeyAlias]\n ) {\n return column.resourceRefKeyAlias;\n }\n\n return null;\n}\n\nfunction sortAvailableOptions(options: ResourceColumnSelectOption[]): ResourceColumnSelectOption[] {\n return options.sort(\n (optionA: ResourceColumnSelectOption, optionB: ResourceColumnSelectOption) => {\n return optionA.label.localeCompare(optionB.label);\n }\n );\n}\n\nfunction transformStringToOption(item: string): ResourceColumnSelectOption {\n return {\n label: item,\n selectValue: item,\n originalValue: item,\n };\n}\n\nfunction transformResourceToOption(\n item: Resource,\n dataEditorState?: DataEditorState\n): ResourceColumnSelectOption {\n return {\n label: item.getModel().refDisplay(item.data, dataEditorState),\n selectValue: item.data.id,\n originalValue: item,\n };\n}\n\nfunction getAvailableOptions(\n dataEditorState: DataEditorState,\n column: ResourceColumnSelect,\n resourceRefKey: string | null\n): ResourceColumnSelectOption[] {\n let result: ResourceColumnSelectOption[] = [];\n\n if (!resourceRefKey) {\n result = column.options;\n } else {\n result = dataEditorState\n .getItemsByStoreKey(dataEditorState.store.mapping.refKeyToStoreKey[resourceRefKey])\n .map((item: Resource) => transformResourceToOption(item, dataEditorState));\n }\n\n result = sortAvailableOptions(result);\n\n return result;\n}\n\nfunction getSelectedOption(\n column: ResourceColumnSelect,\n options: ResourceColumnSelectOption[],\n values: any\n): ResourceColumnSelectOption | undefined {\n let result: ResourceColumnSelectOption | undefined;\n\n const selectedOption: ResourceColumnSelectOption | undefined = options.find(\n (option: ResourceColumnSelectOption) => {\n if (option.originalValue instanceof Resource) {\n return option.originalValue.data.id === values[column.field];\n }\n return option.originalValue === values[column.field];\n }\n );\n\n result = selectedOption;\n\n return result;\n}\n\nconst ResourceColumnSelectUtils = {\n transformRawOptions,\n getResourceRefKey,\n getAvailableOptions,\n getSelectedOption,\n};\n\nexport default ResourceColumnSelectUtils;\n","import { FormikProps } from \"formik\";\nimport { DataEditorState } from \"../../../containers/data-editor/types/DataEditorTypes\";\nimport { ResourceColumn } from \"../../ResourceColumn\";\nimport {\n ResourceColumnSelectOption,\n ResourceColumnSelectRawOption,\n} from \"./ResourceColumnSelectTypes\";\nimport ResourceColumnSelectUtils from \"./ResourceColumnSelectUtils\";\n\nexport class ResourceColumnSelect extends ResourceColumn {\n public options: ResourceColumnSelectOption[];\n public defaultValue: ResourceColumnSelectOption;\n\n constructor(\n public field: string,\n public name: string,\n rawOptions: ResourceColumnSelectRawOption[] = []\n ) {\n super(field, name, \"select\");\n\n this.options = ResourceColumnSelectUtils.transformRawOptions(rawOptions);\n this.defaultValue = this.options[0];\n this.validator = (data) => !!rawOptions?.includes(data);\n }\n\n prepRenderEdit(index: number, fmkProps: FormikProps, dataEditorState: DataEditorState) {\n const { touched, errors, values, isSubmitting } = fmkProps;\n\n const resourceRefKey = ResourceColumnSelectUtils.getResourceRefKey(dataEditorState, this);\n\n const options = ResourceColumnSelectUtils.getAvailableOptions(\n dataEditorState,\n this,\n resourceRefKey\n );\n\n const selectedOption = ResourceColumnSelectUtils.getSelectedOption(this, options, values);\n\n const ResourceColumnSelectContent = () => {\n const { handleChange, handleBlur, isSubmitting } = fmkProps;\n const column = this;\n\n return (\n \n {selectedOption ? null : (\n \n )}\n {options.map((option: ResourceColumnSelectOption, index: number) => {\n return (\n \n );\n })}\n \n );\n };\n\n return super.renderEdit(\n index,\n this.field,\n ,\n errors,\n touched,\n isSubmitting\n );\n }\n}\n","import { FormikProps } from \"formik\";\nimport React from \"react\";\nimport { ResourceColumn } from \"../ResourceColumn\";\n\nexport class ResourceColumnText extends ResourceColumn {\n constructor(public field: string, public name: string) {\n super(field, name, \"text\");\n this.defaultValue = \"\";\n this.validator = (data) => /^[A-Za-z]+$/i.test(data);\n this.sortCallback = (a: any = {}, b: any = {}) =>\n JSON.stringify(a).localeCompare(JSON.stringify(b));\n }\n\n prepRenderEdit(index: number, fmkProps: FormikProps) {\n // TODO: check against the other items for potential duplicated values\n const { handleChange, handleBlur, touched, errors, values, isSubmitting } = fmkProps;\n const content = (\n \n );\n\n return super.renderEdit(index, this.field, content, errors, touched, isSubmitting);\n }\n}\n","import { Restaurant } from \"../../graphql/API\";\nimport { Model } from \"../../model/Model\";\nimport { ModelConfig } from \"../../model/ModelConfig\";\nimport { ResourceColumnNumber } from \"../../resources/columns/ResourceColumnNumber\";\nimport { ResourceColumnSelect } from \"../../resources/columns/select/ResourceColumnSelect\";\nimport { ResourceColumnText } from \"../../resources/columns/ResourceColumnText\";\nimport { Resource } from \"../../resources/Resource\";\n\n/* ---------- Restaurant Types ---------- */\nconst AppRestaurantTypes = {\n COMMISSARY: \"COMMISSARY\",\n RESTAURANT: \"RESTAURANT\",\n OFF_SITE: \"OFF-SITE\",\n};\n\n/* ---------- Restaurant ---------- */\nclass AppRestaurantModel extends Model {\n refDisplay(data: Restaurant) {\n return data.alias || \"Unknown\";\n }\n}\n\nconst appRestaurantModel = new AppRestaurantModel(\n new ModelConfig(\n \"Restaurant\",\n 10,\n 200,\n \"restaurants\",\n \"Restaurants\",\n \"Restaurant\",\n \"restaurantId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey().setSortDirection(\"ASC\", 1),\n new ResourceColumnText(\"name\", \"Name\").setKey().setVisible().setWidth(\"S\"),\n new ResourceColumnNumber(\"ratio\", \"Ratio\").setEditable().setVisible().setWidth(\"XS\"),\n new ResourceColumnText(\"alias\", \"Alias\").setEditable().setVisible().setWidth(\"XS\"),\n new ResourceColumnSelect(\"type\", \"Type\", [\n AppRestaurantTypes.COMMISSARY,\n AppRestaurantTypes.RESTAURANT,\n AppRestaurantTypes.OFF_SITE,\n ])\n .setVisible()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"offSeason\", \"Off-Season\")\n .setVisible()\n .setEditable()\n .setWidth(\"XS\"),\n new ResourceColumnNumber(\"open\", \"Open\").setVisible().setWidth(\"XS\").setEditable(),\n new ResourceColumnText(\"usersGroup\", \"Users Group\"),\n new ResourceColumnText(\"lastUpdatedBy\", \"Updated By\").setOptional(),\n new ResourceColumnNumber(\"lastUpdatedAt\", \"Update Time\").setOptional(),\n ]\n )\n);\n\nclass AppRestaurant extends Resource {\n static getModel(): AppRestaurantModel {\n return appRestaurantModel;\n }\n\n getModel(): AppRestaurantModel {\n return appRestaurantModel;\n }\n\n constructor(public data: Restaurant) {\n super(data, appRestaurantModel);\n }\n}\n\nexport { AppRestaurant, AppRestaurantTypes };\n","import { ResourceColumn } from \"../../../resources/ResourceColumn\";\nimport {\n DataEditorItemsType,\n DataEditorSortDirection,\n DataEditorSortQueueEntry,\n DataEditorSortQueues,\n DataEditorState,\n} from \"../types/DataEditorTypes\";\nimport { Resource } from \"./../../../resources/Resource\";\n\nfunction sortSortQueueByColumnsSortRank(\n a: DataEditorSortQueueEntry,\n b: DataEditorSortQueueEntry\n): number {\n if (a.column.defaultSortRank === null || b.column.defaultSortRank === null) {\n return 0;\n }\n\n return a.column.defaultSortRank - b.column.defaultSortRank;\n}\n\nfunction getDefaultResourceSortQueue(resource: typeof Resource): DataEditorSortQueueEntry[] {\n let result: DataEditorSortQueueEntry[] = [];\n const columns = resource.getModel().getColumns();\n\n for (const column of columns) {\n if (column.defaultSortRank === -1) {\n continue;\n }\n result.push(new DataEditorSortQueueEntry(column));\n }\n\n result.sort(sortSortQueueByColumnsSortRank);\n result = result.splice(0, 2);\n\n return result;\n}\n\nfunction getDefaultSortQueue(resources: typeof Resource[]): DataEditorSortQueues {\n const result: DataEditorSortQueues = {};\n\n resources.forEach((resource: typeof Resource) => {\n const storeKey = resource.getModel().getResourceStoreKey();\n result[storeKey] = getDefaultResourceSortQueue(resource);\n });\n\n return result;\n}\n\nfunction getNextSortDirection(\n sortQueue: DataEditorSortQueueEntry[],\n column: ResourceColumn\n): DataEditorSortDirection {\n const sortQueueEntry = sortQueue.find((s) => s.column === column);\n\n if (sortQueueEntry?.sortDirection === \"ASC\") {\n return \"DESC\";\n }\n\n return \"ASC\";\n}\n\nfunction removeElementByIndex(list: T[], index: number): T[] {\n return list.slice(0, index).concat(list.slice(index + 1));\n}\n\nfunction getNewSortQueue(\n dataEditorState: DataEditorState,\n selectedColumn: ResourceColumn\n): DataEditorSortQueueEntry[] {\n const selectedResource = dataEditorState.getSelectedResource();\n const storeKey = selectedResource.getModel().getResourceStoreKey();\n const currentSortQueue = dataEditorState.display.sortQueues[storeKey];\n const selectedColumnIndex = currentSortQueue.findIndex((r) => r.column === selectedColumn);\n\n let result = [...currentSortQueue];\n\n // new sort criteria\n if (selectedColumnIndex === -1) {\n result = [new DataEditorSortQueueEntry(selectedColumn, \"ASC\")].concat(result);\n return result;\n }\n\n // existing sort criteria\n const selectedColumnEntry = result[selectedColumnIndex];\n selectedColumnEntry.addClickCount();\n\n // it's been clicked twice already\n if (selectedColumnEntry.clickCount > 1) {\n result = removeElementByIndex(result, selectedColumnIndex);\n return result;\n }\n\n // it's been clicked only once, update just it's sortDirection\n if (selectedColumnEntry.clickCount === 1) {\n selectedColumnEntry.sortDirection = getNextSortDirection(result, selectedColumn);\n result[selectedColumnIndex] = selectedColumnEntry;\n return result;\n }\n\n result = removeElementByIndex(result, selectedColumnIndex);\n result = [selectedColumnEntry].concat(result);\n\n return result;\n}\n\nfunction getDisplayColumnSortDirection(\n dataEditorState: DataEditorState,\n column: ResourceColumn\n): DataEditorSortDirection | null {\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n const sortQueue = dataEditorState.display.sortQueues[storeKey];\n\n return sortQueue.find((s) => s.column === column)?.sortDirection || null;\n}\n\nfunction sortResourceItems(resourceItems: Resource[], sortQueue?: DataEditorSortQueueEntry[]) {\n if (!sortQueue) {\n return resourceItems[0].getModel().editor.sort(resourceItems);\n }\n\n return resourceItems.sort((resourceA: Resource, resourceB: Resource) => {\n for (let i = sortQueue.length - 1; i >= 0; i--) {\n const sortQueueEntry = sortQueue[i];\n const resourceADisplay = resourceA.getDisplay()[sortQueueEntry.column.field];\n const resourceBDisplay = resourceB.getDisplay()[sortQueueEntry.column.field];\n\n const fieldSortResult =\n sortQueueEntry.sortDirection === \"ASC\"\n ? sortQueueEntry.sortCallback(resourceADisplay, resourceBDisplay)\n : sortQueueEntry.sortCallback(resourceBDisplay, resourceADisplay);\n\n if (fieldSortResult === true || fieldSortResult > 0) {\n return 1;\n }\n\n if (fieldSortResult === false || fieldSortResult < 0) {\n return -1;\n }\n }\n\n return 0;\n });\n}\n\nfunction sortItemsByResource(\n items: DataEditorItemsType,\n resource: typeof Resource,\n sortQueue?: DataEditorSortQueueEntry[]\n): DataEditorItemsType {\n // sort by the storeKey\n const storeKey = resource.getModel().getResourceStoreKey();\n items.byResourceStoreKey[storeKey] = sortResourceItems(\n items.byResourceStoreKey[storeKey],\n sortQueue\n );\n\n // sort by the resourceRefKey\n const resourceRefKey = resource.getModel().getResourceRefKey();\n items.byResourceRefKey[resourceRefKey] = sortResourceItems(\n items.byResourceRefKey[resourceRefKey],\n sortQueue\n );\n\n return items;\n}\n\nconst DataEditorSortUtils = {\n getDefaultSortQueue,\n getNextSortDirection,\n getNewSortQueue,\n getDisplayColumnSortDirection,\n sortResourceItems,\n sortItemsByResource,\n};\n\nexport default DataEditorSortUtils;\n","import { Resource } from \"../resources/Resource\";\n\nconst data: any = {};\n\nasync function list(resource: typeof Resource): Promise {\n return data[resource.getModel().config.typeName] || [];\n}\n\nfunction canUseMock(useMock: any, resource: typeof Resource, filter: any): boolean {\n let result = true;\n\n const resourceConfig = resource.getModel().config;\n const resourceName = resourceConfig.initDataKey;\n const thereIsMockData = data[resourceName];\n\n result = !!useMock;\n result = result && (!filter || Object.keys(filter)[0] === \"day\");\n result = result && thereIsMockData;\n\n return result;\n}\n\nconst MocksApi = {\n list,\n canUseMock,\n};\n\nexport default MocksApi;\n","import { AppS3ClientResponse, AppS3ClientResponseBody, AppS3RequestType } from \"./AppS3Types\";\n\nexport function isAppS3ClientResponse(\n deserializedResponse: any\n): deserializedResponse is AppS3ClientResponse {\n let result: boolean = true;\n\n if (!deserializedResponse) {\n result = false;\n }\n\n if (typeof deserializedResponse.code !== \"number\") {\n result = false;\n }\n\n if (typeof deserializedResponse.data !== \"string\" && deserializedResponse.data !== null) {\n result = false;\n }\n\n if (!Array.isArray(deserializedResponse.body)) {\n result = false;\n }\n\n if (!deserializedResponse.body.every(isAppS3ClientResponseBody)) {\n result = false;\n }\n\n return result;\n}\n\nexport function isAppS3ClientResponseBody(item: any): item is AppS3ClientResponseBody {\n let result: boolean = true;\n\n if (!item) {\n result = false;\n }\n\n if (!isAppS3RequestType(item.type)) {\n result = false;\n }\n\n if (typeof item.key !== \"string\") {\n result = false;\n }\n\n if (item.data !== null && !Array.isArray(item.data)) {\n result = false;\n }\n\n if (typeof item.error !== \"string\" && item.error !== null) {\n result = false;\n }\n\n return result;\n}\n\nexport function isAppS3RequestType(type: any): type is AppS3RequestType {\n let result: boolean;\n\n result = type === \"GET_S3_OBJECTS\" || type === \"PUT_S3_OBJECTS\";\n\n return result;\n}\n","import ModelApi from \"../model/ModelApi\";\nimport { isAppS3ClientResponse } from \"./AppS3TypeGuards\";\nimport {\n AppS3ClientGetRequest,\n AppS3ClientPutRequest,\n AppS3ClientRequest,\n AppS3ClientResponse,\n AppS3ClientResponseBody,\n} from \"./AppS3Types\";\n\nexport function buildS3GetRequest(key: string): AppS3ClientGetRequest {\n return {\n type: \"GET_S3_OBJECTS\",\n key,\n data: null,\n } as AppS3ClientGetRequest;\n}\n\nexport function buildS3PutRequest(key: string, data: Object[]): AppS3ClientPutRequest {\n return {\n type: \"PUT_S3_OBJECTS\",\n key,\n data,\n } as AppS3ClientPutRequest;\n}\n\nasync function callS3Client(requests: AppS3ClientRequest[]): Promise {\n return (await ModelApi.customMutation(\n { requests: JSON.stringify(requests) },\n \"callS3Client\"\n )) as string;\n}\n\nexport async function sendS3Requests(\n requests: AppS3ClientRequest[]\n): Promise {\n let results: AppS3ClientResponseBody[] | null;\n\n try {\n const rawResponse = await callS3Client(requests);\n const response = deserializeResponse(rawResponse);\n\n if (response !== null) {\n console.log(\"Got the responses!\");\n results = response.body;\n } else {\n console.warn(\"Got empty responses!\");\n results = null;\n }\n } catch (e) {\n results = null;\n console.error(\"Failed to retrieve objects!\");\n }\n\n return results;\n}\n\nfunction deserializeResponse(rawResponse: string): AppS3ClientResponse | null {\n let result: AppS3ClientResponse | null;\n\n const deserializedResponse = JSON.parse(rawResponse);\n\n if (isAppS3ClientResponse(deserializedResponse)) {\n result = deserializedResponse;\n } else {\n result = null;\n }\n\n return result;\n}\n","import queryString from \"query-string\";\n\nimport AppDayModel from \"../components/day/AppDayModel\";\nimport { seriesPromises } from \"../resources/ResourcesService\";\n\nfunction groupDataByItem(key) {\n return (acc, item) => {\n acc[item.data[key]] = item;\n return acc;\n };\n}\n\nfunction groupDataByList(key, sortCallback = () => true) {\n return (acc, item) => {\n acc[item.data[key]] = acc[item.data[key]] || [];\n acc[item.data[key]].push(item);\n acc[item.data[key]].sort(sortCallback);\n return acc;\n };\n}\n\nconst SECTION_RESTAURANT_LOCAL_KEY = \"r20{sectionName}Restaurant\";\n\nfunction loadRestaurant(sectionName, pageUrl, restaurants, router) {\n let restaurant = null;\n const localKey = SECTION_RESTAURANT_LOCAL_KEY.replace(\"{sectionName}\", sectionName);\n\n // key from url\n const urlRestaurantAlias = queryString.parse(router.location.search).restaurant;\n const urlRestaurantsKeys = Object.keys(restaurants).filter(\n (restaurantKey) => restaurants[restaurantKey]?.data?.alias === urlRestaurantAlias\n );\n const urlRestaurantKey = urlRestaurantsKeys[0];\n if (urlRestaurantKey) {\n restaurant = restaurants[urlRestaurantKey];\n }\n\n // key from local\n if (!restaurant) {\n const localRestaurantAlias = localStorage.getItem(localKey);\n const localRestaurantKeys = Object.keys(restaurants).filter(\n (restaurantKey) => restaurants[restaurantKey]?.data?.alias === localRestaurantAlias\n );\n const localRestaurantKey = localRestaurantKeys[0];\n if (localRestaurantKey) {\n restaurant = restaurants[localRestaurantKey];\n }\n }\n\n // default\n if (!restaurant) {\n restaurant = restaurants[Object.keys(restaurants)[0]];\n }\n\n setRestaurant(sectionName, pageUrl, restaurant, router);\n return restaurant;\n}\n\nfunction setRestaurant(sectionName, pageUrl, restaurant, router) {\n const localKey = SECTION_RESTAURANT_LOCAL_KEY.replace(\"{sectionName}\", sectionName);\n localStorage.setItem(localKey, restaurant.data.alias);\n addQuery(router, \"restaurant\", restaurant?.data?.alias);\n // router.history.push(`/${pageUrl}?restaurant=${restaurant.data.alias}`);\n}\n\nfunction delay(time) {\n return new Promise((res) => setTimeout(res, time));\n}\n\nfunction getDailyDataKey(sectionName, dayLabel, type, restaurantAlias, count) {\n count = typeof count === \"number\" ? `__${JSON.stringify(count)}` : \"\";\n return `daily-data/${sectionName}/${dayLabel}__${sectionName}__${type}__${restaurantAlias}${count}.json`;\n}\n\nfunction extractCount(countPart) {\n const countPartPattern = /^__([0-9]*)/;\n\n if (!countPartPattern.test(countPart)) {\n console.log(\"No count attached to the key!\");\n return -1;\n }\n\n const countPartNr = countPart.match(countPartPattern)[1];\n\n if (!countPartNr || countPartNr === \"\") {\n return -1;\n }\n\n return parseInt(countPartNr);\n}\n\nfunction getNextDailyDataKey(dailyDataKey) {\n const dailyDataKeyPattern = /^daily-data\\/(.*)\\/(.*)__(.*)__(.*)__(.*)(__[0-9]*).json/;\n\n if (!dailyDataKeyPattern.test(dailyDataKey)) {\n console.error(\"Invalid daily data key provided!\", dailyDataKey);\n return [];\n }\n\n const keyParts = dailyDataKey.match(dailyDataKeyPattern);\n\n const sectionName = keyParts[1];\n const dayLabel = keyParts[2];\n const saleType = keyParts[4];\n const restaurantAlias = keyParts[5];\n const count = extractCount(keyParts[6]) + 1;\n\n return getDailyDataKey(sectionName, dayLabel, saleType, restaurantAlias, count);\n}\n\n// TODO: transfer thsi inside on-hand\nasync function buildMissingInventoriesMeta(\n restaurants,\n currentMetaItems,\n metaResource,\n day,\n userName,\n sectionName,\n createPromise\n) {\n if (!metaResource) {\n // TODO: test if this is a reliable approach for those that do not use \"daily meta\"\n return [];\n }\n\n const idsOfRestaurantsWithMeta = Object.values(currentMetaItems).map(\n (m) => m.data.restaurantId\n );\n const restaurantsWithoutMeta = restaurants.filter(\n ({ data: { id } }) => !idsOfRestaurantsWithMeta.includes(id)\n );\n const createMetaPromises = restaurantsWithoutMeta\n .map(createPromise.bind(null, metaResource, day, userName, sectionName))\n .flat();\n const missingMetaItems = await seriesPromises(createMetaPromises);\n\n return missingMetaItems.map((inventory) => new metaResource(inventory)) || [];\n}\n\nfunction createMetaInventoryPromise(metaResource, day, userName, sectionName, restaurant) {\n return [\n metaResource.getModel().api.create({\n day: day.data.time,\n restaurantId: restaurant.data.id,\n status: \"UNLOCKED\",\n storageKey: AppUtilsService.getDailyDataKey(\n sectionName,\n AppDayModel.getDayLabel(day),\n \"OnHand\",\n restaurant.data.alias\n ),\n completion: 0,\n lastUpdatedAt: AppDayModel.getCurrentUnixTime(),\n lastUpdatedBy: userName,\n }),\n ];\n}\n\nfunction buildSalesStorageKey(sectionName, day, saleType, restaurantAlias, count) {\n return AppUtilsService.getDailyDataKey(\n sectionName,\n AppDayModel.getDayLabel(day),\n `Sales_${saleType}`,\n restaurantAlias,\n count\n );\n}\n\nfunction createMetaSalePromiseType(metaResource, day, userName, sectionName, restaurant, saleType) {\n const storageKey = buildSalesStorageKey(sectionName, day, saleType, restaurant.data.alias, 0);\n\n return metaResource.getModel().api.create({\n day: day.data.time,\n restaurantId: restaurant.data.id,\n status: \"UNLOCKED\",\n saleType,\n storageKey,\n completion: 0,\n lastUpdatedAt: AppDayModel.getCurrentUnixTime(),\n lastUpdatedBy: userName,\n });\n}\n\nasync function updateMetaSalePromiseType(metaResourceModel, item) {\n item.storageKey = getNextDailyDataKey(item.storageKey);\n return await metaResourceModel.api.update(item);\n}\n\nfunction createMetaSalesPromise(metaResource, day, userName, sectionName, restaurant) {\n return [\n createMetaSalePromiseType(metaResource, day, userName, sectionName, restaurant, \"SINGLE\"),\n createMetaSalePromiseType(metaResource, day, userName, sectionName, restaurant, \"MULTIPLE\"),\n ];\n}\n\nfunction getEnvName(auth) {\n return auth?._config?.aws_user_files_s3_bucket?.split(\"-\")?.[1];\n}\n\nfunction print(pageIdentifier = \"\") {\n const appIdentifier = \"OCMD App\";\n const dateIdentifier = AppDayModel.getTimeDisplay(\n AppDayModel.getTodayUnixTime(),\n \"Do of MMM YYYY\"\n );\n document.title = `${appIdentifier} _ ${pageIdentifier} _ ${dateIdentifier}`;\n return window.print();\n}\n\nfunction addQuery(router, key, value) {\n let pathname = router.location.pathname;\n // returns path: '/app/books'\n let searchParams = new URLSearchParams(router.location.search);\n // returns the existing query string: '?type=foo&author=bar'\n searchParams.set(key, value);\n router.history.push({\n pathname: pathname,\n search: searchParams.toString(),\n });\n}\n\nfunction removeQuery(router, key) {\n let pathname = router.location.pathname;\n // returns path: '/app/foo'\n let searchParams = new URLSearchParams(router.location.search);\n // returns the existing query string: '?type=foo&author=bar'\n searchParams.delete(key);\n this.props.history.push({\n pathname: pathname,\n search: searchParams.toString(),\n });\n}\n\nconst AppUtilsService = {\n groupDataByItem,\n groupDataByList,\n loadRestaurant,\n setRestaurant,\n delay,\n getDailyDataKey,\n buildMissingInventoriesMeta,\n createMetaInventoryPromise,\n updateMetaSalePromiseType,\n createMetaSalePromiseType,\n createMetaSalesPromise,\n getEnvName,\n print,\n addQuery,\n removeQuery,\n};\n\nexport default AppUtilsService;\n","import MocksApi from \"../mocks/MocksApi\";\nimport { buildS3GetRequest, buildS3PutRequest, sendS3Requests } from \"../services/AppS3Service\";\nimport { AppS3ClientResponseBody } from \"../services/AppS3Types\";\nimport AppUtilsService from \"../services/AppUtilsService\";\nimport { Resource } from \"./Resource\";\nimport { ResourceRequests } from \"./ResourceTypes\";\n\nexport async function seriesPromises(promises: (Promise | undefined)[]): Promise {\n /*\n * serial executes Promises sequentially.\n * @param {funcs} An array of funcs that return promises.\n * @example\n * const urls = ['/url1', '/url2', '/url3']\n * serial(urls.map(url => () => $.ajax(url)))\n * .then(console.log.bind(console))\n */\n const serial = (funcs: any[]) =>\n funcs.reduce(\n (promise, func) =>\n promise.then(\n (result: any) =>\n func().then(\n (response: any) => {\n result.push(response);\n return result;\n },\n (err: any) => console.error(JSON.stringify(err))\n ),\n (err: any) => console.error(JSON.stringify(err))\n ),\n Promise.resolve([])\n );\n\n return await serial(promises.map((promise) => () => promise));\n}\n\n// TODO: use a global cache option as the third parameter\n// TODO: when using cache, check if the data is older than today\n// TODO: if data is from today, use it and update inner DB\n// TODO: if data is not older than today, take it from innerDB\n// TODO: make sure that a full-page reload gets all of the data fresh\nexport async function fetchResources(\n resources: ResourceRequests,\n useMock?: boolean\n): Promise {\n let responses = [];\n try {\n const promises = resources\n .map(([resourceType, filter]) => {\n if (MocksApi.canUseMock(useMock, resourceType, filter)) {\n return MocksApi.list(resourceType);\n }\n return resourceType.getModel().api.list(filter);\n })\n .filter((promise) => !!promise);\n\n responses = await seriesPromises(promises);\n } catch (e) {\n throw new Error(JSON.stringify(e, null, 2));\n }\n\n return responses.map((apiDataItems: any[], i: number) => {\n let items = apiDataItems.map((dbItem: any) => {\n return new resources[i][0](dbItem);\n });\n\n items = resources[i][0].getModel().editor.sort(items);\n\n return items;\n });\n}\n\nexport async function updateDailyData(data: any, key: string, keyData: any): Promise {\n if (!key && keyData) {\n const { sectionName, day, type, restaurantAlias } = keyData;\n // STEP 2: build the daily record key\n key = AppUtilsService.getDailyDataKey(sectionName, day, type, restaurantAlias);\n }\n\n // STEP 3: get the latest stored data and append the new values to it, with de-duplication\n let existingData: any[] = [];\n try {\n const result = await readS3File(key);\n if (result !== null) {\n existingData = result.data || [];\n }\n } catch (e: any) {\n console.error(e.message);\n }\n\n const mergedData = [existingData, data].flat().filter((x: any) => x);\n const serializedData = mergedData.map((x) => JSON.stringify(x));\n const deDupedData = Array.from(new Set(serializedData));\n const deSerializedData = deDupedData.map((x) => JSON.parse(x));\n\n // STEP 4: persist data to S3\n try {\n const requests = [buildS3PutRequest(key, deSerializedData)];\n\n await sendS3Requests(requests);\n\n console.log(\"Updated!\");\n } catch (e: any) {\n alert(\"Unable to save your changes!\");\n\n console.error(e);\n }\n}\n\nexport async function readS3File(key: string): Promise {\n let result;\n\n const request = buildS3GetRequest(key);\n const results = await sendS3Requests([request]);\n result = Array.isArray(results) ? results[0] : null;\n\n return result;\n}\n\n// grabs resource items from multiple files and build resource instances out of them\nexport async function readSectionS3Files(\n keys: string[],\n resource: typeof Resource\n): Promise {\n let result;\n\n let results = await sendS3Requests(keys.map(buildS3GetRequest));\n\n if (results === null) {\n return [];\n }\n\n result = buildResourcesFromResults(results, resource);\n\n return result;\n\n //----------------------------------------------------------------\n function buildResourcesFromResults(\n results: AppS3ClientResponseBody[],\n resource: typeof Resource\n ) {\n return results\n .map((result) => result.data || [])\n .flat()\n .map((item: any) => new resource(item));\n }\n}\n\nexport async function retry(asyncCallback: any, retriesLeft = 2, delay = 100): Promise {\n let success = false;\n\n while (!success && retriesLeft > 0) {\n try {\n await asyncCallback();\n retriesLeft = 0;\n success = true;\n } catch (e: any) {\n console.error(e.message);\n retriesLeft -= 1;\n await AppUtilsService.delay(delay);\n }\n }\n\n if (!success) {\n throw Error(\"Failed all retry attempts!\");\n }\n}\n","import { readS3File } from \"./ResourcesService\";\n\nexport default async function ResourceInitData(initDataKey: string): Promise {\n const key = `data/${initDataKey}.json`;\n const initDataFile = await readS3File(key);\n\n return initDataFile;\n}\n","import _ from \"lodash\";\nimport queryString from \"query-string\";\nimport { AppStateType } from \"../../../context/AppContextTypes\";\nimport { Resource } from \"../../../resources/Resource\";\nimport { ResourceColumn } from \"../../../resources/ResourceColumn\";\nimport ResourceInitData from \"../../../resources/ResourceInitData\";\nimport { fetchResources } from \"../../../resources/ResourcesService\";\nimport { ResourceRequest } from \"../../../resources/ResourceTypes\";\nimport {\n DataEditorItemsType,\n DataEditorMappingType,\n DataEditorResource,\n DataEditorResources,\n DataEditorState,\n ItemsByResourceRefKey,\n ItemsByResourceStoreKey,\n RefKeyToStoreKey,\n ResourceItemsType,\n ResourcesByStoreKey,\n StoreKeyToRefKey,\n} from \"../types/DataEditorTypes\";\nimport DataEditorDisplayUtils from \"./DataEditorDisplayUtils\";\n\nfunction getSelectedResourceFromLocationSearch(\n resources: typeof Resource[],\n location: any\n): typeof Resource {\n const queryStringValues = queryString.parse(location.search);\n\n if (!queryStringValues.resource) {\n return resources[0];\n }\n\n const matchingResources = resources.filter(\n (resource: typeof Resource) =>\n resource.getModel().config.initDataKey === queryStringValues.resource\n );\n if (matchingResources.length === 1) {\n return matchingResources[0];\n }\n\n return resources[0];\n}\n\nfunction getMappingDefaults(resources: typeof Resource[]): DataEditorMappingType {\n const mappingStoreKeyToRefKey: StoreKeyToRefKey = resources.reduce(\n (acc: StoreKeyToRefKey, resource: typeof Resource) => {\n acc[resource.getModel().getResourceStoreKey()] = resource\n .getModel()\n .getResourceRefKey();\n return acc;\n },\n {}\n );\n\n const mappingRefKeyToStoreKey: RefKeyToStoreKey = resources.reduce(\n (acc: RefKeyToStoreKey, resource: typeof Resource) => {\n acc[resource.getModel().getResourceRefKey()] = resource\n .getModel()\n .getResourceStoreKey();\n return acc;\n },\n {}\n );\n\n return {\n storeKeyToRefKey: mappingStoreKeyToRefKey,\n refKeyToStoreKey: mappingRefKeyToStoreKey,\n };\n}\n\nfunction getNextId(ids: (number | null)[]): number | null {\n if (ids.length === 0) return 0;\n if (_.includes(ids, null)) return 0;\n\n const currentIds = ids\n .map((id: number | null) => (id === null ? 0 : +id))\n .sort((idA: number, idB: number) => idA - idB);\n\n const currentlyMaxId = currentIds.length === 0 ? -1 : currentIds[currentIds.length - 1];\n\n return currentlyMaxId + 1;\n}\n\nfunction getColumnStyles(columns: ResourceColumn[]): { gridTemplateColumns: string } {\n const gridTemplateColumns = columns.reduce((acc, column) => {\n const frWidth = column.width || 1;\n const pxWidth = 20 * frWidth;\n acc += `minmax(${pxWidth}px, ${frWidth}fr) `;\n return acc;\n }, \"\");\n\n return { gridTemplateColumns };\n}\n\nfunction containsOrderColumn(columns: ResourceColumn[]): boolean {\n return columns.some(({ field }) => field === \"order\");\n}\n\nfunction getSelectedResourceItemsCount(dataEditorState: DataEditorState): number {\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n\n return dataEditorState.getItemsByStoreKey(storeKey).length;\n}\n\nfunction getSelectedResourcePageSize(dataEditorState: DataEditorState): number {\n if (dataEditorState.getSelectedResource()) {\n return dataEditorState.getSelectedResource().getModel().config.pageSize;\n }\n return 0;\n}\n\nfunction getPageSize(resource: typeof Resource) {\n return resource.getModel().config.pageSize;\n}\n\nfunction setPageIndex(resource: typeof Resource, pageIndex: number): any {\n resource.getModel().config.pageIndex = pageIndex;\n\n return resource;\n}\n\nfunction getPageIndex(resource: typeof Resource): number {\n return resource.getModel().config.pageIndex || 0;\n}\n\nfunction getPagesCount(itemsCount: number, pageSize: number): number {\n return Math.ceil(itemsCount / pageSize);\n}\n\nfunction getPageSlice(items: Resource[], resource: typeof Resource): Resource[] {\n const pageIndex = getPageIndex(resource) || 0;\n const pageSize = getPageSize(resource) || 200;\n const pagesCount = getPagesCount(items.length, pageSize);\n\n if (pagesCount < 2) {\n return items;\n }\n\n return items.slice(pageIndex * pageSize, (pageIndex + 1) * pageSize);\n}\n\nfunction getPageSliceIndexes(items: Resource[], resource: typeof Resource): [number, number] {\n const pageIndex = getPageIndex(resource) || 0;\n const pageSize = getPageSize(resource) || 200;\n const pagesCount = getPagesCount(items.length, pageSize);\n\n if (pagesCount < 2) {\n return [0, items.length];\n }\n\n return [pageIndex * pageSize, (pageIndex + 1) * pageSize];\n}\n\nfunction indexItemsByResourceStoreKey(resources: typeof Resource[]): ItemsByResourceStoreKey {\n return resources.reduce((acc: ItemsByResourceStoreKey, resource: typeof Resource) => {\n acc[resource.getModel().getResourceStoreKey()] = [];\n return acc;\n }, {});\n}\n\nfunction indexResourcesByStoreKey(resources: typeof Resource[]): ResourcesByStoreKey {\n return resources.reduce((acc: ResourcesByStoreKey, resource: typeof Resource) => {\n acc[resource.getModel().getResourceStoreKey()] = resource;\n return acc;\n }, {});\n}\n\nfunction extractColumnNames(resource: typeof Resource | null) {\n if (!resource) {\n return [];\n }\n\n return resource\n .getModel()\n .getColumns()\n .map(({ field }: { field: string }) => field);\n}\n\nfunction findColumnName(resource: typeof Resource | null, columnName: string) {\n if (!resource) {\n return false;\n }\n\n return resource\n .getModel()\n .getColumns()\n .find(({ field }) => field === columnName);\n}\n\nfunction hasColumn(resource: typeof Resource, columnName: string) {\n return findColumnName(resource, columnName);\n}\n\nfunction buildNewItemFromColumnNames(columnNames: string[], columnValues: string[]) {\n return columnNames.reduce((acc, name, i) => {\n if (columnValues[i] !== undefined) {\n acc[name] = columnValues[i];\n // transform booleans to Int\n if (typeof acc[name] === \"boolean\") {\n acc[name] = +acc[name];\n }\n }\n return acc;\n }, {} as { [key: string]: any });\n}\n\nasync function createNewItem(\n resource: typeof Resource,\n items: Resource[],\n columnNames: string[],\n columnValues: any[]\n): Promise {\n const newId = hasColumn(resource, \"id\") ? getNextId(items.map((item) => item.data.id)) : null;\n const newOrderIndex = hasColumn(resource, \"order\") ? items.length : null;\n const newItem = buildNewItemFromColumnNames(columnNames, columnValues);\n const createdItem = await resource.getModel().create(newId, newItem, true, newOrderIndex);\n\n return new resource(createdItem);\n}\n\nfunction getItemsByResourceStoreKey(resourcesItems: ResourceItemsType[]): ItemsByResourceStoreKey {\n const itemsByResourceStoreKey = resourcesItems.reduce(\n (acc: ItemsByResourceStoreKey, resourceItems: ResourceItemsType) => {\n acc[resourceItems.resource.getModel().getResourceStoreKey()] = resourceItems.items;\n return acc;\n },\n {}\n );\n\n return itemsByResourceStoreKey;\n}\n\nfunction getItemsByResourceRefKey(resourcesItems: ResourceItemsType[]): ItemsByResourceRefKey {\n const itemsByResourceRefKeyAndId = resourcesItems.reduce(\n (acc: ItemsByResourceRefKey, resourceItems: ResourceItemsType) => {\n acc[resourceItems.resource.getModel().getResourceRefKey()] = resourceItems.items;\n return acc;\n },\n {}\n );\n\n return itemsByResourceRefKeyAndId;\n}\n\nasync function getResourcesItems(\n appState: AppStateType,\n resources: typeof Resource[]\n): Promise {\n const resourceRequests = resources.map((resource: typeof Resource): ResourceRequest => {\n const filter = resource.getModel().getFilter(appState);\n return [resource, filter];\n });\n\n const resourceResponses = await fetchResources(resourceRequests);\n\n const resourcesItems = resourceResponses.map(\n (resourceResponse: Resource[], index: number): ResourceItemsType => {\n return { resource: resources[index], items: resourceResponse };\n }\n );\n\n return resourcesItems;\n}\n\nfunction clearItemsByResource(\n items: DataEditorItemsType,\n resource: typeof Resource\n): DataEditorItemsType {\n const storeKey = resource.getModel().getResourceStoreKey();\n const resourceRefKey = resource.getModel().getResourceRefKey();\n\n items.byResourceStoreKey[storeKey] = [];\n items.byResourceRefKey[resourceRefKey] = [];\n\n return items;\n}\n\nfunction clearItemByResource(\n items: DataEditorItemsType,\n resource: typeof Resource,\n resourceItem: Resource\n): DataEditorItemsType {\n // get keys\n const resourceStoreKey = resource.getModel().getResourceStoreKey();\n const resourceRefKey = resource.getModel().getResourceRefKey();\n\n // cannot find resources\n if (!items.byResourceStoreKey[resourceStoreKey]) {\n throw Error(\"Invalid resource!\");\n }\n if (!items.byResourceRefKey[resourceRefKey]) {\n throw Error(\"Invalid ref resource!\");\n }\n\n // get item sources\n const itemsByResourceStoreKey = items.byResourceStoreKey[resourceStoreKey];\n const itemsByResourceRefKey = items.byResourceRefKey[resourceRefKey];\n\n // get item index\n const resourceStoreKeyIndex = itemsByResourceStoreKey.findIndex((item: Resource) =>\n item.equals(resourceItem)\n );\n const resourceRefKeyIndex = itemsByResourceRefKey.findIndex((item: Resource) =>\n item.equals(resourceItem)\n );\n\n // cannot be found\n if (resourceStoreKeyIndex === -1) {\n throw Error(\"Invalid deletion attempt!\");\n }\n if (resourceRefKeyIndex === -1) {\n throw Error(\"Invalid deletion attempt!\");\n }\n\n // delete from all locations\n itemsByResourceStoreKey.splice(resourceStoreKeyIndex, 1);\n itemsByResourceRefKey.splice(resourceRefKeyIndex, 1);\n\n return items;\n}\n\nfunction addItemByResource(\n items: DataEditorItemsType,\n resource: typeof Resource,\n resourceItem: Resource\n): DataEditorItemsType {\n const storeKey = resource.getModel().getResourceStoreKey();\n items.byResourceStoreKey[storeKey]?.push(resourceItem);\n\n const resourceRefKey = resource.getModel().getResourceRefKey();\n items.byResourceRefKey[resourceRefKey]?.push(resourceItem);\n\n return items;\n}\n\nfunction getAddMenuInitialValues(dataEditorState: DataEditorState) {\n return dataEditorState.getSelectedResource().getModel().editor.getNewItemTemplate();\n}\n\n// put first the key columns, then the required ones\nfunction sortAddMenuColumns(a: ResourceColumn, b: ResourceColumn) {\n if (b.isKey && !a.isKey) {\n return 1;\n } else if (a.isKey && !b.isKey) {\n return -1;\n }\n\n if (b.isRequired && !a.isRequired) {\n return 1;\n } else if (a.isRequired && !b.isRequired) {\n return -1;\n }\n\n return 0;\n}\n\nfunction prepareDisplayColumnsForAddMenu(dataEditorState: DataEditorState) {\n return dataEditorState\n .getSelectedResource()\n .getModel()\n .config.columns.filter(({ hide }) => !hide)\n .sort(sortAddMenuColumns);\n}\n\nfunction replaceItem(items: DataEditorItemsType, item: Resource): DataEditorItemsType {\n // find and replace in byResourceStoreKey\n const resourceStoreKey = item.getModel().getResourceStoreKey();\n const resourceRefKey = item.getModel().getResourceRefKey();\n\n for (let i = 0; i < items.byResourceStoreKey[resourceStoreKey].length; i++) {\n if (items.byResourceStoreKey[resourceStoreKey][i].equals(item)) {\n items.byResourceStoreKey[resourceStoreKey][i] = item;\n }\n }\n\n // find and replace in byResourceRefKeyAndId\n for (let i = 0; i < items.byResourceRefKey[resourceRefKey].length; i++) {\n if (items.byResourceRefKey[resourceRefKey][i].equals(item)) {\n items.byResourceRefKey[resourceRefKey][i] = item;\n }\n }\n\n return items;\n}\n\nasync function fetchItemsFromBackup(resource: typeof Resource) {\n return await ResourceInitData(resource.getModel().config.initDataKey);\n}\n\nasync function loadDataEditorItems(\n appState: AppStateType,\n resources: typeof Resource[]\n): Promise {\n const resourceItems: ResourceItemsType[] = await DataEditorUtils.getResourcesItems(\n appState,\n resources\n );\n\n const items: DataEditorItemsType = {\n byResourceStoreKey: DataEditorUtils.getItemsByResourceStoreKey(resourceItems),\n byResourceRefKey: DataEditorUtils.getItemsByResourceRefKey(resourceItems),\n };\n\n return items;\n}\n\nfunction getSelectedResourceItems(dataEditorState: DataEditorState): Resource[] {\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n return dataEditorState.getItemsByStoreKey(storeKey) || [];\n}\n\nfunction getItemsDefaults(resources: typeof Resource[]): DataEditorItemsType {\n const itemsByResourceStoreKey: ItemsByResourceStoreKey = resources.reduce(\n (acc: ItemsByResourceStoreKey, resource: typeof Resource) => {\n acc[resource.getModel().getResourceStoreKey()] = [];\n return acc;\n },\n {}\n );\n\n const itemsByResourceRefKey: ItemsByResourceRefKey = resources.reduce(\n (acc: ItemsByResourceRefKey, resource: typeof Resource) => {\n acc[resource.getModel().getResourceRefKey()] = [];\n return acc;\n },\n {}\n );\n\n return {\n byResourceStoreKey: itemsByResourceStoreKey,\n byResourceRefKey: itemsByResourceRefKey,\n };\n}\n\nfunction getResourcesInit(\n dataEditorResources: DataEditorResource[],\n resources: typeof Resource[],\n location: any\n): DataEditorResources {\n const selectedResourceFromLocationSearch =\n DataEditorUtils.getSelectedResourceFromLocationSearch(resources, location);\n const resourcesByStoreKey = DataEditorUtils.indexResourcesByStoreKey(resources);\n\n return {\n all: resources,\n allDataEditorResources: dataEditorResources,\n selected: selectedResourceFromLocationSearch || resources[0],\n byStoreKey: resourcesByStoreKey,\n };\n}\n\nfunction searchResourceItem(resourceItem: Resource, searchText: string): boolean {\n return JSON.stringify(resourceItem.getDisplay())\n .toLowerCase()\n .includes(searchText.toLowerCase());\n}\n\n// get the items of the selected resource filtered by its search text\nfunction searchSelectedResourceItems(dataEditorState: DataEditorState): Resource[] {\n const resource = dataEditorState.getSelectedResource();\n const storeKey = resource.getModel().getResourceStoreKey();\n const searchText = dataEditorState.display.searchText[storeKey];\n const resourceItems = dataEditorState.getItemsByStoreKey(storeKey);\n\n if (!searchText) {\n return resourceItems;\n }\n\n return resourceItems.filter((resourceItem) => searchResourceItem(resourceItem, searchText));\n}\n\nconst DataEditorUtils = {\n loadDataEditorItems,\n getSelectedResourceFromLocationSearch,\n getNextId,\n getColumnStyles,\n containsOrderColumn,\n getSelectedResourceItemsCount,\n getSelectedResourcePageSize,\n setPageIndex,\n getPageIndex,\n getPagesCount,\n getPageSlice,\n getPageSliceIndexes,\n indexItemsByResourceStoreKey,\n indexResourcesByStoreKey,\n extractColumnNames,\n findColumnName,\n createNewItem,\n getItemsByResourceStoreKey,\n getItemsByResourceRefKey,\n getResourcesItems,\n clearItemsByResource,\n clearItemByResource,\n addItemByResource,\n getAddMenuInitialValues,\n prepareDisplayColumnsForAddMenu,\n replaceItem,\n fetchItemsFromBackup,\n getSelectedResourceItems,\n getItemsDefaults,\n getMappingDefaults,\n getResourcesInit,\n searchSelectedResourceItems,\n};\n\nexport default DataEditorUtils;\n","import { ResourceRefKey, ResourceStoreKey } from \"../../../model/ModelConfig\";\nimport { Resource } from \"../../../resources/Resource\";\nimport { ResourceColumn } from \"../../../resources/ResourceColumn\";\nimport DataEditorSortUtils from \"../utils/DataEditorSortUtils\";\nimport DataEditorUtils from \"../utils/DataEditorUtils\";\n\nexport type DataEditorSortableItem = {\n id: number;\n name: string;\n item: Resource;\n chosen?: boolean;\n};\n\nexport type ResourcesByStoreKey = {\n [storeKey: ResourceStoreKey]: typeof Resource;\n};\n\nexport type StoreKeyToRefKey = {\n [storeKey: ResourceStoreKey]: ResourceRefKey;\n};\n\nexport type RefKeyToStoreKey = {\n [resourceRefKey: ResourceRefKey]: ResourceStoreKey;\n};\n\nexport type ItemsByResourceStoreKey = {\n [storeKey: ResourceStoreKey]: Resource[];\n};\n\nexport type ItemsByResourceRefKey = {\n [resourceRefKey: ResourceRefKey]: Resource[];\n};\n\nexport type ResourceItemsType = {\n resource: typeof Resource;\n items: Resource[];\n};\n\nexport type DataEditorResourceConfig = {\n isVisibleInDataEditor: boolean;\n};\n\nexport class DataEditorResource {\n constructor(public resource: typeof Resource, public config: DataEditorResourceConfig) {}\n}\n\nexport type DataEditorResources = {\n all: typeof Resource[];\n allDataEditorResources: DataEditorResource[];\n selected: typeof Resource;\n byStoreKey: ResourcesByStoreKey;\n};\n\nexport type DataEditorItemsType = {\n byResourceStoreKey: ItemsByResourceStoreKey;\n byResourceRefKey: ItemsByResourceRefKey;\n};\n\nexport type DataEditorMappings = {\n storeKeyToRefKey: {\n [storeKey: ResourceStoreKey]: ResourceRefKey;\n };\n refKeyToStoreKey: {\n [resourceRefKey: ResourceRefKey]: ResourceStoreKey;\n };\n};\n\nexport type DataEditorMappingType = {\n storeKeyToRefKey: StoreKeyToRefKey;\n refKeyToStoreKey: RefKeyToStoreKey;\n};\n\nexport type DataEditorStore = {\n resources: DataEditorResources;\n items: DataEditorItemsType;\n mapping: DataEditorMappingType;\n};\n\nexport type DataEditorSortDirection = \"ASC\" | \"DESC\";\n\nexport class DataEditorSortQueueEntry {\n public sortDirection?: DataEditorSortDirection;\n public clickCount: number = 0;\n public sortCallback: Function = (a: any = {}, b: any = {}) =>\n JSON.stringify(a).localeCompare(JSON.stringify(b));\n\n addClickCount() {\n this.clickCount++;\n }\n\n constructor(\n public column: ResourceColumn,\n sortDirection?: DataEditorSortDirection,\n sortCallback?: Function\n ) {\n this.sortDirection = sortDirection || column.defaultSortDirection || \"ASC\";\n this.sortCallback = sortCallback || column.sortCallback;\n }\n}\n\nexport function isDataEditorSortQueue(valueToTest: any): valueToTest is DataEditorSortQueueEntry[] {\n return (\n Array.isArray(valueToTest) &&\n valueToTest.every((value) => value instanceof DataEditorSortQueueEntry)\n );\n}\n\nexport type DataEditorSortQueues = {\n [storeKey: ResourceStoreKey]: DataEditorSortQueueEntry[];\n};\n\nexport type DataEditorDisplay = {\n searchText: {\n [storeKey: ResourceStoreKey]: string | null;\n };\n filter: {\n [storeKey: ResourceStoreKey]: string | null;\n };\n // an array of column sort configurations\n // that would determine the type of sorting and the order of sorting\n sortQueues: DataEditorSortQueues;\n sortable: boolean; // TODO: are these used?\n enableReorder: boolean; // TODO: are these used?\n addDialogOpen: boolean;\n};\n\n// TODO: MAKE THIS A TYPE THAT IS INITIALIZED ONLY FROM \"resources: typeof Resources[]\", then later loaded\nexport class DataEditorState {\n public store: DataEditorStore;\n public display: DataEditorDisplay;\n\n getSelectedResource() {\n return this.store.resources.selected;\n }\n\n setSelectedResource(resource: typeof Resource) {\n this.store.resources.selected = resource;\n return this;\n }\n\n getAllResources() {\n return this.store.resources.all;\n }\n\n getResourceByStoreKey(storeKey: ResourceStoreKey) {\n return this.store.resources.byStoreKey[storeKey];\n }\n\n getItemsByStoreKey(storeKey: ResourceStoreKey) {\n return this.store.items.byResourceStoreKey[storeKey];\n }\n\n setItemsByStoreKey(storeKey: ResourceStoreKey, resourceItems: Resource[]) {\n this.store.items.byResourceStoreKey[storeKey] = resourceItems;\n }\n\n getItemsByResourceRefKey(resourceRefKey: ResourceRefKey) {\n return this.store.items.byResourceRefKey[resourceRefKey];\n }\n\n setItemsByResourceRefKey(resourceRefKey: ResourceRefKey, resourceItems: Resource[]) {\n this.store.items.byResourceRefKey[resourceRefKey] = resourceItems;\n }\n\n constructor(dataEditorResources: DataEditorResource[], public location: any) {\n const resources = dataEditorResources.map(\n (dataEditorResource) => dataEditorResource.resource\n );\n\n this.store = {\n resources: DataEditorUtils.getResourcesInit(dataEditorResources, resources, location),\n items: DataEditorUtils.getItemsDefaults(resources),\n mapping: DataEditorUtils.getMappingDefaults(resources),\n };\n\n this.display = {\n searchText: {},\n filter: {},\n sortQueues: DataEditorSortUtils.getDefaultSortQueue(resources),\n sortable: false, // TODO: MOVE THIS TO EACH RESOURCE\n enableReorder: false, // TODO: MOVE THIS TO EACH RESOURCE\n addDialogOpen: false,\n };\n }\n}\n\nexport type DataEditorContextState = {\n dataEditorState: DataEditorState;\n changeResource: Function;\n reOrderSelectedItems: Function;\n saveOrder: Function;\n updateSelectedResourceSorting: Function;\n updateSelectedResourcePageIndex: Function;\n setSearchText: Function;\n updateAllItems: Function;\n clearAllItemsFromSelectedResource: Function;\n updateItem: Function;\n updateResourceItems: Function;\n clearItem: Function;\n addNewItem: Function;\n openAddDialog: Function;\n closeAddDialog: Function;\n};\n","import { Resource, ResourceDisplayType } from \"../../../resources/Resource\";\nimport { ResourceColumn } from \"../../../resources/ResourceColumn\";\nimport {\n DataEditorItemsType,\n DataEditorSortableItem,\n DataEditorState,\n} from \"../types/DataEditorTypes\";\n\nfunction isValidRefField(dataEditorState: DataEditorState, field: string): boolean {\n return !!dataEditorState.store.mapping.refKeyToStoreKey[field];\n}\n\nfunction findRefItem(resourceRefItems: Resource[], resourceRefValue: any): Resource | undefined {\n // TODO: enforce the fact that a resourceRef MUST have an \"id'; alternatively, create some method to set it's ref-field\n return resourceRefItems.find((resourceRefItem: Resource) => {\n return resourceRefItem?.data?.id === resourceRefValue;\n });\n}\n\nfunction getResourceItemRefDisplay(\n dataEditorState: DataEditorState,\n resourceItem: Resource,\n resourceRefKey: string\n) {\n let result = resourceItem.data[resourceRefKey];\n\n const resourceRefKeyOriginalValue = resourceItem.data[resourceRefKey];\n const resourceRefStoreKey = dataEditorState.store.mapping.refKeyToStoreKey[resourceRefKey];\n\n const resourceRef = dataEditorState.getResourceByStoreKey(resourceRefStoreKey);\n const resourceRefItems = dataEditorState.getItemsByStoreKey(resourceRefStoreKey);\n const resourceRefItem = findRefItem(resourceRefItems, resourceRefKeyOriginalValue);\n\n if (resourceRefItem) {\n result = resourceRef.getModel().refDisplay(resourceRefItem.data, dataEditorState);\n }\n\n return result;\n}\n\nfunction getResourceItemDisplay(\n dataEditorState: DataEditorState,\n resource: typeof Resource,\n resourceItem: Resource\n): ResourceDisplayType {\n const display: ResourceDisplayType = resource\n .getModel()\n .getColumns()\n .reduce((accDisplay: ResourceDisplayType, column: ResourceColumn) => {\n accDisplay[column.field] = resourceItem.data[column.field];\n const resourceRefKey = column.resourceRefKeyAlias || column.field;\n\n if (isValidRefField(dataEditorState, resourceRefKey)) {\n accDisplay[column.field] = getResourceItemRefDisplay(\n dataEditorState,\n resourceItem,\n resourceRefKey\n );\n }\n\n return accDisplay;\n }, {} as ResourceDisplayType);\n\n return display;\n}\n\nfunction buildDisplayForResourceItems(\n dataEditorState: DataEditorState,\n resource: typeof Resource\n): DataEditorItemsType {\n // TODO: fix the duplicated computation due to storing items under store key and ref key\n const storeKey = resource.getModel().getResourceStoreKey();\n const storeKeyItems = dataEditorState.getItemsByStoreKey(storeKey);\n const storeKeyItemsWithDisplay = storeKeyItems.map((resourceItem: Resource) => {\n const display = getResourceItemDisplay(dataEditorState, resource, resourceItem);\n resourceItem.setDisplay(display);\n\n return resourceItem;\n });\n dataEditorState.setItemsByStoreKey(storeKey, storeKeyItemsWithDisplay);\n\n const resourceRefKey = resource.getModel().getResourceRefKey();\n const refKeyItems = dataEditorState.getItemsByResourceRefKey(resourceRefKey);\n const refKeyItemsWithDisplay = refKeyItems.map((resourceItem: Resource) => {\n const display = getResourceItemDisplay(dataEditorState, resource, resourceItem);\n resourceItem.setDisplay(display);\n\n return resourceItem;\n });\n dataEditorState.setItemsByResourceRefKey(resourceRefKey, refKeyItemsWithDisplay);\n\n return dataEditorState.store.items;\n}\n\nfunction buildDisplaysForAllItems(dataEditorState: DataEditorState): DataEditorItemsType {\n dataEditorState.getAllResources().forEach((resource: typeof Resource) => {\n dataEditorState.store.items = buildDisplayForResourceItems(dataEditorState, resource);\n });\n\n return dataEditorState.store.items;\n}\n\nfunction saveShuffledItems(\n dataEditorState: DataEditorState,\n shuffledItems: DataEditorSortableItem[],\n pageStartIndex: number,\n pageEndIndex: number\n): DataEditorItemsType {\n const shuffledResourceItems: Resource[] = shuffledItems.map(\n (shuffledItem: DataEditorSortableItem) => shuffledItem.item\n );\n\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n\n const resourceItems = dataEditorState\n .getItemsByStoreKey(storeKey)\n .map((resourceItem, index) => {\n if (index >= pageStartIndex && index < pageEndIndex) {\n return shuffledResourceItems[index - pageStartIndex];\n }\n return resourceItem;\n });\n\n dataEditorState.setItemsByStoreKey(storeKey, resourceItems);\n\n const resourceRefKey = dataEditorState.getSelectedResource().getModel().getResourceRefKey();\n dataEditorState.setItemsByResourceRefKey(resourceRefKey, resourceItems);\n\n return dataEditorState.store.items;\n}\n\nconst DataEditorDisplayUtils = {\n getResourceItemDisplay,\n buildDisplayForResourceItems,\n buildDisplaysForAllItems,\n saveShuffledItems,\n};\n\nexport default DataEditorDisplayUtils;\n","import _ from \"lodash\";\nimport {\n DataEditorItemsType,\n DataEditorSortQueueEntry,\n DataEditorState,\n isDataEditorSortQueue as isDataEditorSortQueueLike,\n} from \"../types/DataEditorTypes\";\nimport DataEditorDisplayUtils from \"../utils/DataEditorDisplayUtils\";\nimport DataEditorSortUtils from \"../utils/DataEditorSortUtils\";\nimport DataEditorUtils from \"../utils/DataEditorUtils\";\nimport { Resource } from \"./../../../resources/Resource\";\nimport { DataEditorAction } from \"./DataEditorAction\";\n\nconst DataEditorReducer = (\n dataEditorState: DataEditorState,\n action: DataEditorAction\n): DataEditorState => {\n if (action.type === \"RE_ORDER_SELECTED_ITEMS\") {\n dataEditorState.store.items = DataEditorDisplayUtils.saveShuffledItems(\n dataEditorState,\n action.payload.shuffledItems,\n action.payload.pageStartIndex,\n action.payload.pageEndIndex\n );\n\n dataEditorState.display.enableReorder = action.payload.enableReorder;\n }\n\n if (action.type === \"CHANGE_RESOURCE\") {\n dataEditorState = dataEditorState.setSelectedResource(\n action.payload.selectedResource as typeof Resource\n );\n }\n\n if (action.type === \"CLEAR_ALL_ITEMS_FROM_SELECTED_RESOURCE\") {\n dataEditorState.store.items = DataEditorUtils.clearItemsByResource(\n dataEditorState.store.items,\n dataEditorState.getSelectedResource()\n );\n }\n\n if (action.type === \"UPDATE_SELECTED_RESOURCE_SORT_QUEUE\") {\n if (!isDataEditorSortQueueLike(action.payload.newSortQueue)) {\n return dataEditorState;\n }\n\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n dataEditorState.display.sortQueues[storeKey] = action.payload\n .newSortQueue as DataEditorSortQueueEntry[];\n\n dataEditorState.store.items = DataEditorSortUtils.sortItemsByResource(\n dataEditorState.store.items,\n dataEditorState.getSelectedResource(),\n dataEditorState.display.sortQueues[storeKey]\n );\n }\n\n if (action.type === \"UPDATE_SELECTED_RESOURCE_PAGE_INDEX\") {\n dataEditorState.store.resources.selected.getModel().config.pageIndex =\n action.payload.newPageIndex;\n }\n\n if (action.type === \"SAVE_ORDER\") {\n dataEditorState.display.enableReorder = action.payload.enableReorder;\n\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n dataEditorState.setItemsByStoreKey(storeKey, action.payload.resourceItems as Resource[]);\n\n const resourceRefKey = dataEditorState\n .getSelectedResource()\n .getModel()\n .getResourceStoreKey();\n\n dataEditorState.setItemsByResourceRefKey(\n resourceRefKey,\n action.payload.resourceItems as Resource[]\n );\n }\n\n if (action.type === \"SET_SEARCH_TEXT\") {\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n dataEditorState.display.searchText[storeKey] = action.payload.searchText;\n }\n\n if (action.type === \"UPDATE_ALL_ITEMS\") {\n dataEditorState.store.items = action.payload.items;\n dataEditorState.store.items =\n DataEditorDisplayUtils.buildDisplaysForAllItems(dataEditorState);\n\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n dataEditorState.store.items = DataEditorSortUtils.sortItemsByResource(\n dataEditorState.store.items,\n dataEditorState.getSelectedResource(),\n dataEditorState.display.sortQueues[storeKey]\n );\n }\n\n if (action.type === \"REPLACE_ITEM\") {\n const resourceItem: Resource = action.payload.item;\n resourceItem.setDisplay(\n DataEditorDisplayUtils.getResourceItemDisplay(\n dataEditorState,\n dataEditorState.getSelectedResource(),\n resourceItem\n )\n );\n\n dataEditorState.store.items = DataEditorUtils.replaceItem(\n dataEditorState.store.items,\n resourceItem\n );\n }\n\n if (action.type === \"UPDATE_RESOURCE_ITEMS\") {\n // TODO: update items displays too\n const resource = dataEditorState.getSelectedResource();\n const storeKey = resource.getModel().getResourceStoreKey();\n\n dataEditorState.setItemsByStoreKey(storeKey, action.payload.resourceItems as Resource[]);\n\n const resourceRefKey = resource.getModel().getResourceStoreKey();\n dataEditorState.setItemsByResourceRefKey(\n resourceRefKey,\n action.payload.resourceItems as Resource[]\n );\n\n dataEditorState.store.items =\n DataEditorDisplayUtils.buildDisplaysForAllItems(dataEditorState);\n }\n\n if (action.type === \"CLEAR_ITEM\") {\n const newStoreItems: DataEditorItemsType = DataEditorUtils.clearItemByResource(\n dataEditorState.store.items,\n dataEditorState.getSelectedResource(),\n action.payload.resourceItem as Resource\n );\n dataEditorState.store.items = newStoreItems;\n }\n\n if (action.type === \"ADD_NEW_ITEM\") {\n const item = action.payload.resourceItem as Resource;\n const itemDisplay = DataEditorDisplayUtils.getResourceItemDisplay(\n dataEditorState,\n dataEditorState.getSelectedResource(),\n item\n );\n item.setDisplay(itemDisplay);\n\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n\n dataEditorState.store.items = DataEditorUtils.addItemByResource(\n dataEditorState.store.items,\n dataEditorState.getSelectedResource(),\n item\n );\n\n dataEditorState.store.items = DataEditorSortUtils.sortItemsByResource(\n dataEditorState.store.items,\n dataEditorState.getSelectedResource(),\n dataEditorState.display.sortQueues[storeKey]\n );\n }\n\n if (action.type === \"OPEN_ADD_DIALOG\") {\n dataEditorState.display.addDialogOpen = true;\n }\n\n if (action.type === \"CLOSE_ADD_DIALOG\") {\n dataEditorState.display.addDialogOpen = false;\n }\n\n return _.clone(dataEditorState);\n};\n\nexport { DataEditorReducer };\n","import { createContext, useCallback, useReducer } from \"react\";\nimport { Resource } from \"../../../resources/Resource\";\nimport {\n DataEditorContextState,\n DataEditorItemsType,\n DataEditorResource,\n DataEditorSortableItem,\n DataEditorSortQueueEntry,\n DataEditorState,\n} from \"../types/DataEditorTypes\";\nimport { DataEditorAction } from \"./DataEditorAction\";\nimport { DataEditorReducer } from \"./DataEditorReducer\";\n\nconst DataEditorContext = createContext({} as DataEditorContextState);\n\nconst DataEditorProvider = (props: {\n children: any;\n resources: DataEditorResource[];\n history: any;\n location: any;\n}): JSX.Element => {\n const { children, resources, history, location } = props;\n const [dataEditorState, dispatch] = useReducer(\n DataEditorReducer,\n new DataEditorState(resources, location)\n );\n\n const updateAllItems = useCallback(\n (items: DataEditorItemsType) => {\n const action: DataEditorAction = {\n type: \"UPDATE_ALL_ITEMS\",\n payload: {\n items,\n },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const changeResource = useCallback(\n (selectedResource: typeof Resource) => {\n history.push(`/editor?resource=${selectedResource.getModel().config.initDataKey}`);\n\n const action: DataEditorAction = {\n type: \"CHANGE_RESOURCE\",\n payload: { selectedResource },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const reOrderSelectedItems = useCallback(\n (shuffledItems: DataEditorSortableItem[], pageStartIndex: number, pageEndIndex: number) => {\n const action: DataEditorAction = {\n type: \"RE_ORDER_SELECTED_ITEMS\",\n payload: { shuffledItems, pageStartIndex, pageEndIndex, enableReorder: true },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const saveOrder = useCallback(\n (resourceItems: Resource[]) => {\n const action: DataEditorAction = {\n type: \"SAVE_ORDER\",\n payload: { resourceItems, enableReorder: false },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const updateSelectedResourceSorting = useCallback(\n (newSortQueue: DataEditorSortQueueEntry[]) => {\n const action: DataEditorAction = {\n type: \"UPDATE_SELECTED_RESOURCE_SORT_QUEUE\",\n payload: { newSortQueue },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const updateSelectedResourcePageIndex = useCallback(\n (newPageIndex: number) => {\n const action: DataEditorAction = {\n type: \"UPDATE_SELECTED_RESOURCE_PAGE_INDEX\",\n payload: { newPageIndex },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const setSearchText = useCallback(\n (searchText: string) => {\n const action: DataEditorAction = {\n type: \"SET_SEARCH_TEXT\",\n payload: { searchText, enableReorder: searchText.length === 0 },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const clearAllItemsFromSelectedResource = useCallback(() => {\n const action: DataEditorAction = {\n type: \"CLEAR_ALL_ITEMS_FROM_SELECTED_RESOURCE\",\n payload: {},\n };\n\n return dispatch(action);\n }, [dispatch]);\n\n const updateItem = useCallback(\n (item: Resource) => {\n const action: DataEditorAction = {\n type: \"REPLACE_ITEM\",\n payload: { item },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const updateResourceItems = useCallback(\n (resourceItems: Resource[]) => {\n const action: DataEditorAction = {\n type: \"UPDATE_RESOURCE_ITEMS\",\n payload: { resourceItems },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const clearItem = useCallback(\n (resourceItem: Resource) => {\n const action: DataEditorAction = {\n type: \"CLEAR_ITEM\",\n payload: { resourceItem },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const addNewItem = useCallback(\n (resourceItem: Resource) => {\n const action: DataEditorAction = {\n type: \"ADD_NEW_ITEM\",\n payload: { resourceItem },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const openAddDialog = useCallback(\n (resourceItem: Resource) => {\n const action: DataEditorAction = {\n type: \"OPEN_ADD_DIALOG\",\n payload: { resourceItem },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const closeAddDialog = useCallback(\n (resourceItem: Resource) => {\n const action: DataEditorAction = {\n type: \"CLOSE_ADD_DIALOG\",\n payload: { resourceItem },\n };\n\n return dispatch(action);\n },\n [dispatch]\n );\n\n const value: DataEditorContextState = {\n dataEditorState,\n changeResource,\n reOrderSelectedItems,\n saveOrder,\n updateSelectedResourceSorting,\n updateSelectedResourcePageIndex,\n setSearchText,\n updateAllItems,\n clearAllItemsFromSelectedResource,\n updateItem,\n updateResourceItems,\n clearItem,\n addNewItem,\n openAddDialog,\n closeAddDialog,\n };\n\n return {children};\n};\n\nexport { DataEditorContext, DataEditorProvider };\n","import { MdDehaze } from \"react-icons/md\";\nimport dataEditorStyles from \"../../../DataEditor.module.css\";\n\nconst DataEditorHandle = () => {\n return (\n
\n \n
\n );\n};\n\nexport default DataEditorHandle;\n","import {\n ADMINS,\n DEVS,\n GUESTS,\n KITCHEN_DELIVERY_USERS,\n MANAGERS,\n ORDERS_DELIVERY_USERS,\n ON_HAND_UNLOCK,\n ORDERS_ADMIN,\n STORE_USERS,\n} from \"./AppUserGroupsData\";\n\nfunction checkGroup(groupName, groups) {\n return groups.includes(groupName);\n}\n\nfunction isDev(groups) {\n return checkGroup(DEVS, groups);\n}\n\nfunction isAdmin(groups) {\n return checkGroup(ADMINS, groups);\n}\n\nfunction isOrdersAdmin(groups) {\n return checkGroup(ORDERS_ADMIN, groups);\n}\n\nfunction isManager(groups) {\n return checkGroup(MANAGERS, groups);\n}\n\nfunction isKitchenDelivery(groups) {\n return checkGroup(KITCHEN_DELIVERY_USERS, groups);\n}\n\nfunction isOrdersDelivery(groups) {\n return checkGroup(ORDERS_DELIVERY_USERS, groups);\n}\n\nfunction isOnHandUnlock(groups) {\n return checkGroup(ON_HAND_UNLOCK, groups);\n}\n\nfunction isStoreUser(groups) {\n return checkGroup(STORE_USERS, groups);\n}\n\n// this filter is required whenever an user only has access to a specific restaurant\nfunction getUserRestaurantWithFilter(restaurants, userGroups) {\n return { restaurants };\n // todo: must be under food section\n // if (\n // isDev(userGroups) ||\n // isAdmin(userGroups) ||\n // isKitchenDelivery(userGroups) ||\n // isOrdersAdmin(userGroups) ||\n // isOrdersDelivery(userGroups || isManager(userGroups))\n // ) {\n // return { restaurants };\n // }\n\n // const userRestaurants = restaurants.filter(({ data: { usersGroup } }) =>\n // userGroups.includes(usersGroup)\n // );\n\n // if (userRestaurants.length === 0) {\n // const errorMessage = \"No restaurant access configured\";\n\n // alert(errorMessage);\n\n // throw Error(errorMessage);\n // }\n\n // restaurants = [...userRestaurants];\n // return { restaurants, restaurantFilter: { restaurantId: { eq: restaurants[0].data.id } } };\n}\n\nfunction hasDevAccess(userGroups) {\n return isDev(userGroups);\n}\n\nfunction hasAdminAccess(userGroups) {\n return isAdmin(userGroups) || hasDevAccess(userGroups);\n}\n\nfunction hasDataEditorAdminAccess(userGroups) {\n return isOrdersAdmin(userGroups) || isAdmin(userGroups) || hasDevAccess(userGroups);\n}\n\nfunction hasManagerAccess(userGroups) {\n return isManager(userGroups) || hasAdminAccess(userGroups);\n}\n\nfunction hasTShirtsStockingAccess(userGroups) {\n return isStoreUser(userGroups) || isManager(userGroups) || hasAdminAccess(userGroups);\n}\n\nfunction hasNonGuestAccess(userGroups) {\n return userGroups?.[0] && userGroups[0] !== GUESTS;\n}\n\nconst AppUserGroups = {\n hasDevAccess,\n hasAdminAccess,\n hasDataEditorAdminAccess,\n hasManagerAccess,\n hasNonGuestAccess,\n isOnHandUnlock,\n getUserRestaurantWithFilter,\n hasTShirtsStockingAccess,\n};\n\nexport default AppUserGroups;\n","import { IconButton } from \"@material-ui/core\";\nimport { useContext } from \"react\";\nimport { MdDelete } from \"react-icons/md\";\nimport { useGlobalSpinnerActionsContext } from \"../../../../../components/global-spinner/GlobalSpinnerContext\";\nimport { AppContext } from \"../../../../../context/AppContext\";\nimport { Resource } from \"../../../../../resources/Resource\";\nimport AppUserGroups from \"../../../../../services/AppUserGroups\";\nimport { DataEditorContext } from \"../../../context/DataEditorContext\";\n\nexport default function DataEditorItemDeleteButton({ item }: { item: Resource }) {\n const { appState } = useContext(AppContext);\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { clearItem } = useContext(DataEditorContext);\n\n const handleDelete = async (event: any) => {\n try {\n setGlobalSpinner(true);\n\n await item.getModel().api.delete(item);\n\n return clearItem(item);\n } catch (e: any) {\n throw Error(e);\n } finally {\n setGlobalSpinner(false);\n }\n };\n\n if (!AppUserGroups.hasDataEditorAdminAccess(appState.user.groups)) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n","import { IconButton } from \"@material-ui/core\";\nimport { MdEdit } from \"react-icons/md\";\nimport { DataEditorItemModeParams } from \"./DataEditorItem\";\n\nexport default function DataEditorItemEditButton({\n item,\n index,\n setIsEditing,\n}: DataEditorItemModeParams) {\n const onEdit = () => setIsEditing(true);\n\n return (\n \n \n \n );\n}\n","import dataEditorStyles from \"../../../DataEditor.module.css\";\nimport DataEditorUtils from \"../../../utils/DataEditorUtils\";\nimport { DataEditorItemModeParams } from \"./DataEditorItem\";\nimport DataEditorItemDeleteButton from \"./DataEditorItemDeleteButton\";\nimport DataEditorItemEditButton from \"./DataEditorItemEditButton\";\n\nconst DataEditorItemDisplay = ({ item, index, setIsEditing }: DataEditorItemModeParams) => {\n const displayColumns = item\n .getModel()\n .getColumns()\n .filter(({ hide }) => !hide);\n const columnStyles = DataEditorUtils.getColumnStyles(displayColumns);\n\n return (\n
\n
\n \n \n
\n\n
\n {displayColumns.map((column) => {\n const key = `${column.name}-${index}`;\n const value = item.getDisplay()[column.field];\n\n return column.renderDisplay(key, value);\n })}\n
\n
\n );\n};\n\nexport default DataEditorItemDisplay;\n","import IconButton from \"@material-ui/core/IconButton\";\nimport { Formik, FormikHelpers, FormikProps } from \"formik\";\nimport { useContext } from \"react\";\nimport { MdCheck, MdClear } from \"react-icons/md\";\nimport { useGlobalSpinnerActionsContext } from \"../../../../../components/global-spinner/GlobalSpinnerContext\";\nimport { DataEditorContext } from \"../../../context/DataEditorContext\";\nimport dataEditorStyles from \"../../../DataEditor.module.css\";\nimport DataEditorUtils from \"../../../utils/DataEditorUtils\";\nimport { DataEditorItemModeParams } from \"./DataEditorItem\";\n\nconst DataEditorItemEdit = ({ item, index, setIsEditing }: DataEditorItemModeParams) => {\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { dataEditorState, updateItem: replaceItem } = useContext(DataEditorContext);\n\n const onEditCancel = () => setIsEditing(false);\n\n const handleEditSubmit = async (fmkProps: FormikProps) => {\n try {\n setGlobalSpinner(true);\n\n item.data = await item.getModel().api.update(fmkProps.values);\n\n onEditCancel();\n\n replaceItem(item);\n } catch (e: any) {\n throw Error(e.message);\n } finally {\n setGlobalSpinner(false);\n }\n };\n\n const onSubmit = (values: any, { setSubmitting }: FormikHelpers) => {\n handleEditSubmit(values).then(() => setSubmitting(false));\n };\n\n const validator = (data: any) => {\n const columns = item.getModel().config.columns;\n return item.getModel().editor.validator(columns, data);\n };\n\n return (\n \n {(fmkProps) => {\n const displayColumns = item\n .getModel()\n .getColumns()\n .filter(({ hide }) => !hide);\n const columnStyles = DataEditorUtils.getColumnStyles(displayColumns);\n\n return (\n \n
\n handleEditSubmit(fmkProps)}\n >\n \n \n\n \n \n \n
\n\n
\n {displayColumns.map((column) => {\n // TODO: make all columns editable\n // - handle key changes with delete + add\n // - handle cascade updates\n\n if (!column.editable) {\n const key = `${column.name}-${index}`;\n const value = item.getDisplay()[column.field];\n\n return column.renderDisplay(key, value);\n }\n\n return column.prepRenderEdit(index, fmkProps, dataEditorState);\n })}\n
\n \n );\n }}\n \n );\n};\n\nexport default DataEditorItemEdit;\n","import { useState } from \"react\";\nimport { Resource } from \"../../../../../resources/Resource\";\nimport DataEditorItemDisplay from \"./DataEditorItemDisplay\";\nimport DataEditorItemEdit from \"./DataEditorItemEdit\";\n\nexport type DataEditorItemParams = { item: Resource; index: number };\nexport type DataEditorItemModeParams = DataEditorItemParams & {\n setIsEditing: Function;\n};\n\nfunction DataEditorItem({ item, index }: DataEditorItemParams) {\n const [isEditing, setIsEditing] = useState(false);\n\n if (isEditing) {\n return ;\n }\n\n return ;\n}\n\nexport default DataEditorItem;\n","import { Resource } from \"../../../../../resources/Resource\";\nimport dataEditorStyles from \"../../../DataEditor.module.css\";\nimport DataEditorHandle from \"./DataEditorHandle\";\nimport DataEditorItem from \"./DataEditorItem\";\n\nexport default function DataEditorItemWrp({\n item,\n index,\n hideHandle,\n}: {\n item: Resource;\n index: number;\n hideHandle: boolean;\n}) {\n const name = item.getModel().config.typeName;\n const key = `item-${name}-${index}`;\n\n return (\n
\n \n {hideHandle ?
: }\n
\n );\n}\n","import { useContext, useEffect } from \"react\";\nimport { ReactSortable } from \"react-sortablejs\";\nimport { Resource } from \"../../../../resources/Resource\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\nimport dataEditorStyles from \"../../DataEditor.module.css\";\nimport { DataEditorSortableItem } from \"../../types/DataEditorTypes\";\nimport DataEditorUtils from \"../../utils/DataEditorUtils\";\nimport DataEditorItemWrp from \"./item/DataEditorItemWrp\";\n\nfunction buildSortableItem(item: Resource, index: number): DataEditorSortableItem {\n return {\n id: index,\n name: \"\" + index,\n item,\n };\n}\n\nconst DataEditorItems = () => {\n const { dataEditorState, reOrderSelectedItems } = useContext(DataEditorContext);\n\n useEffect(() => {}, [dataEditorState.store.resources.selected, dataEditorState.store.items]);\n\n // TODO: study sortable-js\n const handleOrderUpdate = (\n items: { id: string | number }[],\n pageStartIndex: number,\n pageEndIndex: number,\n args: any\n ) => {\n const oldIds = items\n .map(({ id }: { id: string | number }) => +id + pageStartIndex)\n .join(\",\");\n const newIds = args\n .map(({ id }: { id: string | number }) => +id + pageStartIndex)\n .join(\",\");\n\n if (oldIds !== newIds) {\n reOrderSelectedItems(args, pageStartIndex, pageEndIndex);\n }\n };\n\n // do not sort resources that don't have an order\n const hideHandle = dataEditorState.getSelectedResource()\n ? !DataEditorUtils.containsOrderColumn(\n dataEditorState.getSelectedResource().getModel().getColumns()\n )\n : false;\n\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n let resourceItems = dataEditorState.getItemsByStoreKey(storeKey) || [];\n\n if (dataEditorState.display.searchText[storeKey]) {\n resourceItems = DataEditorUtils.searchSelectedResourceItems(dataEditorState);\n }\n\n const [pageStartIndex, pageEndIndex] = DataEditorUtils.getPageSliceIndexes(\n resourceItems,\n dataEditorState.getSelectedResource()\n );\n\n resourceItems = DataEditorUtils.getPageSlice(\n resourceItems,\n dataEditorState.getSelectedResource()\n );\n\n // TODO: disable sort-ability if items are filtered\n const sortableResourceItems = resourceItems.map(buildSortableItem);\n\n return (\n \n {resourceItems.map((item: Resource, index) => {\n return ;\n })}\n \n );\n};\n\nexport default DataEditorItems;\n","import { FormikProps } from \"formik\";\nimport { useContext } from \"react\";\nimport { ResourceColumn } from \"../../../../../../resources/ResourceColumn\";\nimport { DataEditorContext } from \"../../../../context/DataEditorContext\";\nimport dataEditorAddStyles from \"./DataEditorAdd.module.css\";\n\nexport default function DataEditorAddDisplayColumn({\n fmkProps,\n column,\n index: columnIndex,\n}: {\n fmkProps: FormikProps;\n column: ResourceColumn;\n index: number;\n}) {\n const { dataEditorState } = useContext(DataEditorContext);\n\n if (column.hideOnAdd) {\n return null;\n }\n\n let style = {};\n\n if (column.isKey) {\n style = Object.assign(style, { color: \"red\" });\n }\n\n if (column.isRequired) {\n style = Object.assign(style, { fontWeight: 600 });\n }\n\n return (\n
\n \n {column.name}\n \n {column.prepRenderEdit(columnIndex, fmkProps, dataEditorState)}\n
\n );\n}\n","import { Button } from \"@material-ui/core\";\nimport { Formik, FormikHelpers, FormikProps } from \"formik\";\nimport { useContext } from \"react\";\nimport { Resource } from \"../../../../../../resources/Resource\";\nimport { ResourceColumn } from \"../../../../../../resources/ResourceColumn\";\nimport { DataEditorContext } from \"../../../../context/DataEditorContext\";\nimport DataEditorUtils from \"../../../../utils/DataEditorUtils\";\nimport styles from \"./DataEditorAdd.module.css\";\nimport DataEditorAddDisplayColumn from \"./DataEditorAddDisplayColumn\";\n\nexport default function DataEditorAddContent() {\n const { dataEditorState, addNewItem, closeAddDialog } = useContext(DataEditorContext);\n\n const initialValues = DataEditorUtils.getAddMenuInitialValues(dataEditorState);\n const displayColumns = DataEditorUtils.prepareDisplayColumnsForAddMenu(dataEditorState);\n\n // TODO: find the actual way to get the object; study formik submit (avoid page refresh!!!)\n const handleSubmit = async (fmkProps: FormikProps) => {\n const columnNames: string[] = DataEditorUtils.extractColumnNames(\n dataEditorState.getSelectedResource()\n );\n const columnValues: any[] =\n columnNames.map((columnName) => fmkProps.values[columnName]) || [];\n\n const items: Resource[] = DataEditorUtils.getSelectedResourceItems(dataEditorState);\n\n const newItem: Resource = await DataEditorUtils.createNewItem(\n dataEditorState.getSelectedResource(),\n items,\n columnNames,\n columnValues\n );\n\n addNewItem(newItem);\n };\n\n const onSubmit = async (values: any, { setSubmitting }: FormikHelpers) => {\n await handleSubmit(values).then(() => setSubmitting(false));\n };\n\n const validate = (item: any) => {\n const columns = dataEditorState.getSelectedResource().getModel().config.columns;\n return dataEditorState.getSelectedResource().getModel().editor.validator(columns, item);\n };\n\n return (\n \n {(fmkProps: FormikProps) => {\n return (\n
\n {displayColumns.map((column: ResourceColumn, index: number) => {\n return (\n \n );\n })}\n
\n {/* TODO: use the handleSubmit from Formik (if it would work...) */}\n handleSubmit(fmkProps)}\n color=\"secondary\"\n variant={\"contained\"}\n >\n Submit\n \n closeAddDialog()}\n color=\"primary\"\n variant={\"outlined\"}\n >\n Cancel\n \n
\n \n );\n }}\n \n );\n}\n","import Dialog from \"@material-ui/core/Dialog\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport { useContext } from \"react\";\nimport { MdAddBox } from \"react-icons/md\";\nimport { DataEditorContext } from \"../../../../context/DataEditorContext\";\nimport dataEditorAddStyles from \"./DataEditorAdd.module.css\";\nimport DataEditorAddContent from \"./DataEditorAddContent\";\n\nconst DataEditorAdd = () => {\n const { dataEditorState, openAddDialog, closeAddDialog } = useContext(DataEditorContext);\n\n return (\n
\n openAddDialog()}>\n \n \n closeAddDialog()}\n aria-labelledby=\"customized-dialog-title\"\n open={dataEditorState.display.addDialogOpen}\n >\n \n \n \n \n
\n );\n};\n\nexport default DataEditorAdd;\n","import { GrAscend, GrDescend } from \"react-icons/gr\";\nimport styles from \"../../../DataEditor.module.css\";\nimport { DataEditorSortDirection } from \"../../../types/DataEditorTypes\";\n\nexport default function DataEditorHeaderCellSortIcon({\n sortDirection,\n}: {\n sortDirection: DataEditorSortDirection;\n}) {\n const size = 16;\n\n return (\n
\n {sortDirection === \"ASC\" ? : }\n
\n );\n}\n","import { useContext } from \"react\";\nimport { ResourceColumn } from \"../../../../../resources/ResourceColumn\";\nimport { DataEditorContext } from \"../../../context/DataEditorContext\";\nimport styles from \"../../../DataEditor.module.css\";\nimport { DataEditorSortQueueEntry } from \"../../../types/DataEditorTypes\";\nimport DataEditorSortUtils from \"../../../utils/DataEditorSortUtils\";\nimport DataEditorHeaderCellSortIcon from \"./DataEditorHeaderCellSortIcon\";\n\nexport default function DataEditorHeaderColumn({\n column,\n index,\n}: {\n column: ResourceColumn;\n index: number;\n}) {\n const { dataEditorState, updateSelectedResourceSorting } = useContext(DataEditorContext);\n\n const handleSortUpdate = () => {\n const newSortQueue: DataEditorSortQueueEntry[] = DataEditorSortUtils.getNewSortQueue(\n dataEditorState,\n column\n );\n updateSelectedResourceSorting(newSortQueue);\n };\n\n const sortDirection = DataEditorSortUtils.getDisplayColumnSortDirection(\n dataEditorState,\n column\n );\n\n return (\n
handleSortUpdate()} className={styles.HeaderSort}>\n {sortDirection ? : null}\n \n {column.name}\n \n
\n );\n}\n","import { useContext } from \"react\";\nimport { DataEditorContext } from \"../../../context/DataEditorContext\";\nimport dataEditorStyles from \"../../../DataEditor.module.css\";\nimport DataEditorUtils from \"../../../utils/DataEditorUtils\";\nimport DataEditorHeaderColumn from \"./DataEditorHeaderColumn\";\n\nexport default function DataEditorHeaderColumns() {\n const { dataEditorState } = useContext(DataEditorContext);\n\n const columns = dataEditorState.getSelectedResource().getModel().getColumns();\n const columnStyles = DataEditorUtils.getColumnStyles(columns.filter(({ hide }) => !hide));\n\n return (\n
\n {columns.map((column, index) => {\n if (column.hide) {\n return null;\n }\n\n return (\n \n );\n })}\n
\n );\n}\n","import { Button } from \"@material-ui/core\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport { useContext, useEffect } from \"react\";\nimport { MdPlaylistAddCheck } from \"react-icons/md\";\nimport { useGlobalSpinnerActionsContext } from \"../../../../../../components/global-spinner/GlobalSpinnerContext\";\nimport { Resource } from \"../../../../../../resources/Resource\";\nimport { seriesPromises } from \"../../../../../../resources/ResourcesService\";\nimport { DataEditorContext } from \"../../../../context/DataEditorContext\";\nimport dataEditorStyles from \"../../../../DataEditor.module.css\";\nimport DataEditorUtils from \"../../../../utils/DataEditorUtils\";\n\nconst DataEditorSaveOrderBtn = () => {\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { dataEditorState, saveOrder } = useContext(DataEditorContext);\n\n useEffect(() => {}, [\n dataEditorState.store.resources.selected,\n dataEditorState.display.enableReorder,\n ]);\n\n const handleSaveOrder = async () => {\n setGlobalSpinner(true);\n\n try {\n const selectedResource = dataEditorState.getSelectedResource();\n const storeKey = selectedResource.getModel().getResourceStoreKey();\n const resourceRefKey = selectedResource.getModel().getResourceRefKey();\n\n const items = dataEditorState.getItemsByStoreKey(storeKey);\n const itemsToBeUpdated: Resource[] = [];\n const updatedItems = items.map((item: Resource, index: number) => {\n if (item.data.order !== index) {\n item.data.order = index;\n itemsToBeUpdated.push(item);\n }\n return item;\n });\n\n const itemsToBeUpdatedPromises = itemsToBeUpdated.map((item) =>\n item.getModel().api.update(item.data)\n );\n\n await seriesPromises(itemsToBeUpdatedPromises);\n\n dataEditorState.setItemsByStoreKey(storeKey, updatedItems);\n dataEditorState.setItemsByResourceRefKey(resourceRefKey, updatedItems);\n\n saveOrder(updatedItems);\n } catch (e: any) {\n throw Error(e.message);\n } finally {\n setGlobalSpinner(false);\n }\n };\n\n if (\n !DataEditorUtils.containsOrderColumn(\n dataEditorState.getSelectedResource().getModel().getColumns()\n )\n ) {\n // no ordering for this resource\n return
;\n }\n\n if (!dataEditorState.display.enableReorder) {\n // no reordering occurred\n return
;\n }\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport default DataEditorSaveOrderBtn;\n","import { useContext, useEffect } from \"react\";\nimport { DataEditorContext } from \"../../../context/DataEditorContext\";\nimport styles from \"../../../DataEditor.module.css\";\nimport DataEditorAdd from \"./add/DataEditorAdd\";\nimport DataEditorHeaderColumns from \"./DataEditorHeaderColumns\";\nimport DataEditorSaveOrderBtn from \"./order/DataEditorSaveOrderBtn\";\n\nconst DataEditorHeader = () => {\n const { dataEditorState } = useContext(DataEditorContext);\n\n useEffect(() => {}, [dataEditorState.getSelectedResource()]);\n\n return (\n
\n
\n \n \n
\n \n
\n );\n};\n\nexport default DataEditorHeader;\n","import { IconButton } from \"@material-ui/core\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport { useContext } from \"react\";\nimport { FcAddDatabase } from \"react-icons/fc\";\nimport { useGlobalSpinnerActionsContext } from \"../../../../components/global-spinner/GlobalSpinnerContext\";\nimport { AppContext } from \"../../../../context/AppContext\";\nimport { Resource } from \"../../../../resources/Resource\";\nimport { seriesPromises } from \"../../../../resources/ResourcesService\";\nimport AppUserGroups from \"../../../../services/AppUserGroups\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\nimport DataEditorUtils from \"../../utils/DataEditorUtils\";\n\nconst DataEditorAddAllBtn = () => {\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { appState } = useContext(AppContext);\n const { dataEditorState, updateResourceItems: replaceResourceItems } =\n useContext(DataEditorContext);\n\n const addAllFromBackup = async () => {\n if (!window.confirm(\"Are you sure you want to add all items from last backup?\")) {\n return;\n }\n\n // fetch items from backuo\n setGlobalSpinner(true);\n let itemsDataFromBackup = [];\n\n try {\n itemsDataFromBackup = await DataEditorUtils.fetchItemsFromBackup(\n dataEditorState.getSelectedResource()\n );\n } catch (e: any) {\n throw Error(e.message);\n } finally {\n setGlobalSpinner(false);\n }\n\n // create items from backup\n setGlobalSpinner(true);\n\n try {\n const items = itemsDataFromBackup?.data?.map((itemFromBackup: any) => {\n const selectedResource = dataEditorState.getSelectedResource();\n return new selectedResource(itemFromBackup);\n });\n\n const itemsCreationPromises = items.map((item: Resource) => {\n return dataEditorState.getSelectedResource().getModel().api.create(item.data);\n });\n\n await seriesPromises(itemsCreationPromises);\n\n replaceResourceItems(items);\n } catch (e: any) {\n throw Error(e.message);\n } finally {\n setGlobalSpinner(false);\n }\n };\n\n if (!AppUserGroups.hasDevAccess(appState.user.groups)) {\n return null;\n }\n\n return (\n \n \n \n \n \n );\n};\n\nexport default DataEditorAddAllBtn;\n","import { IconButton } from \"@material-ui/core\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport { useContext } from \"react\";\nimport { FcDeleteDatabase } from \"react-icons/fc\";\nimport { useGlobalSpinnerActionsContext } from \"../../../../components/global-spinner/GlobalSpinnerContext\";\nimport { AppContext } from \"../../../../context/AppContext\";\nimport { Resource } from \"../../../../resources/Resource\";\nimport { seriesPromises } from \"../../../../resources/ResourcesService\";\nimport AppUserGroups from \"../../../../services/AppUserGroups\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\n\nconst DataEditorDeleteAllBtn = () => {\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { appState } = useContext(AppContext);\n const { dataEditorState, clearAllItemsFromSelectedResource } = useContext(DataEditorContext);\n\n const deleteAll = async () => {\n if (!window.confirm(\"Are you sure you want to delete all items?\")) {\n return false;\n }\n\n setGlobalSpinner(true);\n\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n const selectedResourceItems = dataEditorState.getItemsByStoreKey(storeKey);\n\n // no items to delete\n if (!selectedResourceItems) {\n setGlobalSpinner(false);\n return false;\n }\n\n try {\n const itemsDeletionPromises = selectedResourceItems.map(\n (selectedResourceItem: Resource) => {\n return dataEditorState\n .getSelectedResource()\n .getModel()\n .api.delete(selectedResourceItem, false);\n }\n );\n\n await seriesPromises(itemsDeletionPromises);\n\n return clearAllItemsFromSelectedResource();\n } catch (e: any) {\n throw Error(e.message);\n } finally {\n setGlobalSpinner(false);\n }\n };\n\n if (!AppUserGroups.hasDevAccess(appState.user.groups)) {\n return null;\n }\n\n return (\n \n \n \n \n \n );\n};\n\nexport default DataEditorDeleteAllBtn;\n","import { useContext } from \"react\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\nimport dataEditorStyles from \"../../DataEditor.module.css\";\nimport DataEditorUtils from \"../../utils/DataEditorUtils\";\n\nconst DataEditorItemsCount = () => {\n const { dataEditorState } = useContext(DataEditorContext);\n\n if (!dataEditorState.store || !dataEditorState.getSelectedResource()) {\n return
?
;\n }\n\n const itemsCount = DataEditorUtils.getSelectedResourceItemsCount(dataEditorState);\n\n return
{`${itemsCount} rows`}
;\n};\n\nexport default DataEditorItemsCount;\n","import { makeStyles } from \"@material-ui/core\";\nimport Pagination from \"@material-ui/lab/Pagination\";\nimport { useContext } from \"react\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\nimport DataEditorUtils from \"../../utils/DataEditorUtils\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n \"& > *\": {\n marginTop: theme.spacing(0),\n },\n },\n}));\n\nexport default function DataEditorPagination() {\n const { dataEditorState, updateSelectedResourcePageIndex } = useContext(DataEditorContext);\n const classes = useStyles();\n\n const itemsCount = DataEditorUtils.getSelectedResourceItemsCount(dataEditorState);\n const pageSize = DataEditorUtils.getSelectedResourcePageSize(dataEditorState);\n const pageCount = DataEditorUtils.getPagesCount(itemsCount, pageSize);\n\n const onPageChange = (event: any, pageIndex: number) => {\n // TODO: do not keep page index at resource lvl...\n return updateSelectedResourcePageIndex(pageIndex - 1);\n };\n\n // too few pages\n if (pageCount < 2) {\n return null;\n }\n\n const defaultPage = DataEditorUtils.getPageIndex(dataEditorState.getSelectedResource()) || 1;\n\n return (\n
\n
\n \n
\n
\n );\n}\n","import { IconButton } from \"@material-ui/core\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport { useContext } from \"react\";\nimport { MdRefresh } from \"react-icons/md\";\nimport { useGlobalSpinnerActionsContext } from \"../../../../components/global-spinner/GlobalSpinnerContext\";\nimport { AppContext } from \"../../../../context/AppContext\";\nimport { fetchResources } from \"../../../../resources/ResourcesService\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\n\nconst DataEditorRefreshBtn = () => {\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { appState } = useContext(AppContext);\n const { dataEditorState, updateResourceItems } = useContext(DataEditorContext);\n\n const onRefreshData = async () => {\n try {\n setGlobalSpinner(true);\n const resource = dataEditorState.getSelectedResource();\n const filter = resource.getModel().getFilter(appState);\n\n const [resourceItems] = await fetchResources([[resource, filter]]);\n\n updateResourceItems(resourceItems);\n } catch (e: any) {\n throw Error(e.message);\n } finally {\n setGlobalSpinner(false);\n }\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport default DataEditorRefreshBtn;\n","import { useContext, useEffect } from \"react\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\nimport dataEditorStyles from \"../../DataEditor.module.css\";\nimport DataEditorAddAllBtn from \"./DataEditorAddAllBtn\";\nimport DataEditorDeleteAllBtn from \"./DataEditorDeleteAllBtn\";\nimport DataEditorItemsCount from \"./DataEditorItemsCount\";\nimport DataEditorPagination from \"./DataEditorPagination\";\nimport DataEditorRefreshBtn from \"./DataEditorRefreshBtn\";\n\n/**\n * Holds general actions applicable to multiple (types of) data\n * TODO:\n * - \"edit all\"\n * - \"delete everything\"\n * - \"add everything\"\n * - disable \"add all\" if items are not empty (or avoid adding items that already exist)\n * - check data health (valid references to other types ids)\n */\n\nconst DataEditorFooter = () => {\n const { dataEditorState } = useContext(DataEditorContext);\n\n useEffect(() => {}, [dataEditorState.store]);\n\n if (!dataEditorState?.getSelectedResource() || !dataEditorState.store) {\n console.info(\"Invalid dataEditorState selectedResource or store\");\n return
;\n }\n\n return (\n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n );\n};\n\nexport default DataEditorFooter;\n","import FormControl from \"@material-ui/core/FormControl\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport Select from \"@material-ui/core/Select\";\nimport { useContext } from \"react\";\nimport { Resource } from \"../../../../resources/Resource\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\nimport dataEditorStyles from \"../../DataEditor.module.css\";\nimport { DataEditorResource } from \"../../types/DataEditorTypes\";\n\nconst DataEditorResourceSelect = () => {\n const { dataEditorState, changeResource } = useContext(DataEditorContext);\n\n const onSelectResource = (resources: typeof Resource[], resourceIndex: number) => {\n changeResource(resources[resourceIndex]);\n };\n\n // TODO: wrap resource object to be able to include \"isVisibleInDataEditor\"\n const visibleResources = dataEditorState.store.resources.allDataEditorResources\n .filter((resource: DataEditorResource) => resource.config.isVisibleInDataEditor)\n .map((resource: DataEditorResource) => resource.resource);\n\n const selectedResourceIndex = visibleResources.findIndex((resource: typeof Resource) => {\n return (\n resource.getModel().getResourceStoreKey() ===\n dataEditorState.getSelectedResource().getModel().getResourceStoreKey()\n );\n });\n\n return (\n
\n \n \n onSelectResource(visibleResources, event.target.value as number)\n }\n >\n {visibleResources.map((resource, index) => (\n \n {resource.getModel().config.typeNameDisplay}\n \n ))}\n \n \n
\n );\n};\n\nexport default DataEditorResourceSelect;\n","import IconButton from \"@material-ui/core/IconButton\";\nimport InputBase from \"@material-ui/core/InputBase\";\nimport { useContext, useEffect } from \"react\";\nimport { MdSearch } from \"react-icons/md\";\nimport { DataEditorContext } from \"../../context/DataEditorContext\";\nimport dataEditorStyles from \"../../DataEditor.module.css\";\n\nconst DataEditorSearch = () => {\n const { dataEditorState, setSearchText } = useContext(DataEditorContext);\n\n useEffect(() => {}, [\n dataEditorState.store.resources.selected,\n dataEditorState.display.searchText,\n ]);\n\n const handleSearch = (searchText: string) => {\n // return _.debounce(() => setSearchText(searchText), 1000);\n setSearchText(searchText);\n };\n\n const storeKey = dataEditorState.getSelectedResource().getModel().getResourceStoreKey();\n\n return (\n
\n handleSearch(event?.target?.value as string)}\n inputProps={{ \"aria-label\": \"search\" }}\n />\n \n \n \n
\n );\n};\n\nexport default DataEditorSearch;\n","import dataEditorStyles from \"../../DataEditor.module.css\";\nimport DataEditorResourceSelect from \"./DataEditorResourceSelect\";\nimport DataEditorSearch from \"./DataEditorSearch\";\n\n/**\n * Holds data type selection\n */\n\nconst DataEditorToolbar = () => {\n return (\n
\n \n \n {/**/}\n
\n );\n};\n\nexport default DataEditorToolbar;\n","import React, { useContext, useEffect } from \"react\";\nimport { useGlobalSpinnerActionsContext } from \"../../components/global-spinner/GlobalSpinnerContext\";\nimport { AppContext } from \"../../context/AppContext\";\nimport DataEditorItems from \"./components/content/DataEditorItems\";\nimport DataEditorHeader from \"./components/content/header/DataEditorHeader\";\nimport DataEditorFooter from \"./components/footer/DataEditorFooter\";\nimport DataEditorToolbar from \"./components/toolbar/DataEditorToolbar\";\nimport { DataEditorContext } from \"./context/DataEditorContext\";\nimport dataEditorStyles from \"./DataEditor.module.css\";\nimport { DataEditorItemsType } from \"./types/DataEditorTypes\";\nimport DataEditorUtils from \"./utils/DataEditorUtils\";\n\nconst DataEditor = (props: any) => {\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { appState } = useContext(AppContext);\n const { dataEditorState, updateAllItems } = useContext(DataEditorContext);\n\n useEffect(() => {\n setGlobalSpinner(true);\n DataEditorUtils.loadDataEditorItems(appState, dataEditorState.getAllResources()).then(\n (items: DataEditorItemsType) => {\n setGlobalSpinner(false);\n return updateAllItems(items);\n }\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n );\n};\n\nexport default React.memo(DataEditor);\n","import React from \"react\";\nimport { AppRestaurant } from \"../AdminResources\";\nimport DataEditor from \"../../data-editor/DataEditor\";\nimport { DataEditorProvider } from \"../../data-editor/context/DataEditorContext\";\nimport { DataEditorResource } from \"../../data-editor/types/DataEditorTypes\";\n\nconst DataEditorAdmin = (props: any) => {\n const { history, location } = props;\n\n const pageResources = [new DataEditorResource(AppRestaurant, { isVisibleInDataEditor: true })];\n\n console.log(\"Rendering DataEditorAdmin\");\n\n return (\n \n \n \n );\n};\n\nexport default DataEditorAdmin;\n","import React from \"react\";\nimport { FiEdit } from \"react-icons/fi\";\n\nconst DataEditorAdminMenuItem = (name: string) => {\n return [\n ,\n
\n {name}\n
,\n ];\n};\n\nexport default DataEditorAdminMenuItem;\n","import { ContainerConfigSection } from \"./../ContainerConfigSection\";\nimport ContainerConfigBuilder from \"../ContainerConfigBuilder\";\nimport { ADMINS, DATA_EDITOR_USERS, ORDERS_ADMIN } from \"../../services/AppUserGroupsData\";\nimport DataEditorAdmin from \"./data-editor/DataEditorAdmin\";\nimport DataEditorAdminMenuItem from \"./data-editor/DataEditorAdminMenuItem\";\nimport { ContainerPaths } from \"../ContainerPaths\";\n\nexport const AdminContainerConfig: ContainerConfigSection = {\n DataEditor: new ContainerConfigBuilder(\"Editor\")\n .setPath(ContainerPaths.EDITOR)\n .setUserAccess([ORDERS_ADMIN, DATA_EDITOR_USERS, ADMINS])\n .setComponent(DataEditorAdmin)\n .setMenuItem(DataEditorAdminMenuItem)\n .build(),\n};\n","const ContainerBasePaths = {\n FOOD: \"/food\",\n ORDERS: \"/orders\",\n OFF_SITE: \"/offsite\",\n T_SHIRTS: \"/tshirts\",\n DPS: \"/dps\",\n ADMIN: \"/admin\",\n};\n\nexport default ContainerBasePaths;\n","import { ADMINS, DEVS, ORDERS_ADMIN } from \"../../services/AppUserGroupsData\";\nimport { SectionNames } from \"../sections/SectionNames\";\nimport { UserGroupType } from \"./../../services/AppUserGroupsData\";\nimport { ContainerConfig } from \"./../ContainerConfig\";\nimport { AdminContainerConfig } from \"./AdminContainerConfig\";\nimport { AdminSection } from \"./AdminSection\";\n\nconst adminSectionPages: ContainerConfig[] = [AdminContainerConfig.DataEditor];\nconst adminSectionAllowedUserGroups: UserGroupType[] = [ORDERS_ADMIN, ADMINS, DEVS];\nconst isAdminSectionDisabled = false;\n\nexport const AdminSectionConfig = new AdminSection(\n adminSectionPages,\n SectionNames.ADMIN,\n adminSectionAllowedUserGroups,\n isAdminSectionDisabled\n);\n","import React from \"react\";\nimport { RiAdminLine } from \"react-icons/ri\";\nimport { ADMINS, DEVS, UserGroupType } from \"../../services/AppUserGroupsData\";\nimport ContainerBasePaths from \"../ContainerBasePaths\";\nimport { ContainerConfig } from \"../ContainerConfig\";\nimport { Section } from \"../sections/Section\";\nimport { AdminContainerConfig } from \"./AdminContainerConfig\";\n\nexport class AdminSection extends Section {\n renderIcon(disabled: boolean): JSX.Element {\n return ;\n }\n\n renderHeaderIcon(): JSX.Element {\n return ;\n }\n\n renderHomeIcon() {\n return ;\n }\n\n getDefaultPath(userGroups: UserGroupType[]) {\n if (userGroups.includes(ADMINS) || userGroups.includes(DEVS)) {\n return AdminContainerConfig.DataEditor.url;\n }\n console.error(\"Couldn't match the user to any known section pages\", userGroups);\n return super.getDefaultPath(userGroups);\n }\n\n constructor(\n pages: ContainerConfig[],\n name: string,\n allowedGroups: UserGroupType[],\n disabled: boolean\n ) {\n super(pages, name, allowedGroups, disabled, ContainerBasePaths.ADMIN);\n }\n}\n","const MenusActions = {\n LOAD_MENUS: \"LOAD_MENUS\",\n UPLOAD_SALES: \"UPLOAD_SALES\",\n CHANGE_RESTAURANT: \"CHANGE_RESTAURANT\",\n OPEN_ADD_DIALOG: \"OPEN_ADD_DIALOG\",\n CLOSE_ADD_DIALOG: \"CLOSE_ADD_DIALOG\",\n};\n\nexport default MenusActions;\n","const CacheDataTerms = {\n in: {},\n out: {},\n};\n\nexport default CacheDataTerms;\n","// TODO: make a config file or setting\nconst ClearedChars = \" \\n\\t\\v\\r$%#/&\\\\+:=*|\".split(\"\");\n\nexport default ClearedChars;\n","import CacheDataTerms from \"./CacheDataTerms\";\nimport ClearedChars from \"./ClearedChars\";\n\nfunction filterRows(salesData) {\n return salesData.filter((sale) => sale.length === 8 && sale[0].length !== 0);\n}\n\nfunction parseRawSales(salesData) {\n const headerIndex = salesData.findIndex((sale) => {\n // we identify the header by the first row that has a \"Name\" column\n // we ignore all entries with less than 9 columns\n return sale.length > 9 && sale[0].toLowerCase() === \"name\";\n });\n // if we can't find the header, we return an empty array\n if (headerIndex === -1) {\n console.error(\"Can't find header\");\n return [];\n }\n\n // we extract the index of the columns we want to extract\n const header = salesData[headerIndex];\n\n // we extract the index of the columns we want to extract (Name and Quantity Sold)\n const [menuItemNameIndex, quantitySoldIndex] = extractTargetColumnsIndex(header);\n\n // we return the data we want, removing the header\n return salesData.slice(1).map((s) => [s[menuItemNameIndex], parseFloat(s[quantitySoldIndex])]);\n\n /* ---------- IMPL ---------- */\n function extractTargetColumnsIndex(header) {\n return [\n header.findIndex((item) => item.toLowerCase() === \"Name\".toLowerCase()),\n header.findIndex((item) => item.toLowerCase() === \"Quantity Sold\".toLowerCase()),\n ];\n }\n}\n\nfunction sortParsedSales(salesData) {\n return salesData.sort((a, b) => a[0].localeCompare(b[0]));\n}\n\nfunction filterSortedSales(salesData) {\n return salesData.filter((item) => item[0] !== \"\");\n}\n\nconst clearIllegalChars = (data) => {\n let joinResult = false;\n if (typeof data === \"string\") {\n data = data.split(\"\");\n joinResult = true;\n }\n\n let result = data.filter((c) => !ClearedChars.includes(c)).map((x) => x.toLowerCase());\n\n if (result.length > 0 && result.join(\"\") !== data.join(\"\")) {\n CacheDataTerms.in[result.join(\"\")] = data.join(\"\");\n CacheDataTerms.out[data.join(\"\")] = result.join(\"\");\n }\n return joinResult ? result.join(\"\") : result;\n};\n\nfunction mergeFilteredSales(salesData) {\n return salesData.map((s) => s).reduce(mergeSameSales, []);\n\n /* ---------- IMPL ---------- */\n function mergeSameSales(acc, curr) {\n const isSameAsAccHead =\n acc.length > 0 &&\n clearIllegalChars(acc[acc.length - 1][0]) === clearIllegalChars(curr[0]);\n if (isSameAsAccHead) {\n acc[acc.length - 1][1] += curr[1];\n console.log(curr[0]);\n } else {\n acc.push(curr);\n }\n return acc;\n }\n}\n\nconst SalesParser = {\n filterRows,\n parseRawSales,\n sortParsedSales,\n filterSortedSales,\n mergeFilteredSales,\n clearIllegalChars,\n};\n\nexport default SalesParser;\n","import { FormikProps } from \"formik\";\nimport React from \"react\";\nimport AppDayModel from \"../../components/day/AppDayModel\";\nimport DataEditorCellDisplay from \"../../containers/data-editor/components/content/item/cell/DataEditorCellDisplay\";\nimport { ResourceColumn } from \"../ResourceColumn\";\n\nexport class ResourceColumnDate extends ResourceColumn {\n constructor(\n public field: string,\n public name: string,\n public format: string = \"h:mm:ss A, MMMM Do\"\n ) {\n super(field, name, \"date\");\n }\n\n prepRenderEdit(index: number, fmkProps: FormikProps) {\n const { touched, errors, isSubmitting } = fmkProps;\n // TODO: add some date-related display\n const content =
...
;\n\n return super.renderEdit(index, this.field, content, errors, touched, isSubmitting);\n }\n\n renderDisplay(key: string, value: any) {\n return (\n \n );\n }\n}\n","import AppDayModel from \"../../components/day/AppDayModel\";\nimport { Model } from \"../../model/Model\";\nimport { ModelConfig } from \"../../model/ModelConfig\";\nimport { ResourceColumnDate } from \"../../resources/columns/ResourceColumnDate\";\nimport { ResourceColumnNumber } from \"../../resources/columns/ResourceColumnNumber\";\nimport { ResourceColumnSelect } from \"../../resources/columns/select/ResourceColumnSelect\";\nimport { ResourceColumnText } from \"../../resources/columns/ResourceColumnText\";\nimport { Resource } from \"../../resources/Resource\";\nimport { DataEditorState } from \"../data-editor/types/DataEditorTypes\";\nimport {\n DeliveryArea,\n Ingredient,\n IngredientDeliveryArea,\n IngredientInventory,\n IngredientInventoryMeta,\n IngredientOnHandArea,\n IngredientPack,\n MenuItem,\n MenuItemSale,\n MenuItemSaleMeta,\n OnHandArea,\n RecipeItem,\n} from \"./../../graphql/API\";\n\n/* ---------- IngredientPack ---------- */\nclass AppIngredientPackModel extends Model {\n prepForCreate(data: IngredientPack) {\n data = { ...data, display: `${data.name} (${data.size})` };\n return super.prepForCreate(data);\n }\n}\n\nconst appIngredientPackModel = new AppIngredientPackModel(\n new ModelConfig(\n \"IngredientPack\",\n 1000,\n 200,\n \"ingredientPacks\",\n \"Packs\",\n \"IngredientPack\",\n \"ingredientPackId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnText(\"display\", \"Display\").setKey(),\n new ResourceColumnText(\"name\", \"Name\").setVisible().setWidth(\"M\"),\n new ResourceColumnText(\"alias\", \"Alias\").setVisible().setWidth(\"S\"),\n new ResourceColumnNumber(\"size\", \"Size\").setVisible().setWidth(\"XS\").setEditable(),\n new ResourceColumnNumber(\"portionRatio\", \"Portion Ratio\")\n .setVisible()\n .setOptional()\n .setEditable()\n .setWidth(\"XS\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppIngredientPack extends Resource {\n static getModel(): AppIngredientPackModel {\n return appIngredientPackModel;\n }\n\n getModel(): AppIngredientPackModel {\n return appIngredientPackModel;\n }\n\n constructor(data: IngredientPack) {\n super(data, appIngredientPackModel);\n }\n}\n\n/* ---------- Ingredient ---------- */\nconst appIngredientModel = new Model(\n new ModelConfig(\n \"Ingredient\",\n 10000,\n 200,\n \"ingredients\",\n \"Ingredients\",\n \"Ingredient\",\n \"ingredientId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnText(\"name\", \"Name\").setKey().setVisible().setWidth(\"S\"),\n new ResourceColumnSelect(\"ingredientPackId\", \"Pack\")\n .setVisible()\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"salesRatio\", \"Ratio\")\n .setVisible()\n .setWidth(\"S\")\n .setEditable()\n .setOptional(),\n new ResourceColumnNumber(\"laborTime\", \"Labor (min)\")\n .setVisible()\n .setOptional()\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"batchSize\", \"Batch Size\")\n .setVisible()\n .setOptional()\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"portionTime\", \"Portion (min)\")\n .setVisible()\n .setOptional()\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"onHandAlias\", \"Alias\")\n .setVisible()\n .setOptional()\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppIngredient extends Resource {\n static getModel(): Model {\n return appIngredientModel;\n }\n\n getModel(): Model {\n return appIngredientModel;\n }\n\n constructor(data: Ingredient) {\n super(data, appIngredientModel);\n }\n}\n\n/* ---------- IngredientInventory ---------- */\nclass AppIngredientInventoryModel extends Model {\n getFilter(appState: any) {\n return {\n day: { eq: appState.day.data.time || AppDayModel.getTodayUnixTime() },\n };\n }\n}\n\nconst appIngredientInventoryModel = new AppIngredientInventoryModel(\n new ModelConfig(\n \"IngredientInventory\",\n 200000,\n 200,\n \"ingredientInventories\",\n \"On Hand Today\",\n \"IngredientInventory\",\n \"ingredientInventoryId\",\n [\n new ResourceColumnSelect(\"ingredientOnHandAreaId\", \"Rest - Area - Ingr\")\n .setVisible()\n .setWidth(\"S\")\n .setSortDirection(\"ASC\", 1)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b))\n .setKey(),\n new ResourceColumnDate(\"day\", \"Day\").setKey(),\n new ResourceColumnNumber(\"quantity\", \"Qty\").setVisible().setWidth(\"XS\").setOptional(),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setVisible().setWidth(\"XS\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setVisible().setWidth(\"S\").setOptional(),\n ]\n )\n);\n\nclass AppIngredientInventory extends Resource {\n static getModel(): AppIngredientInventoryModel {\n return appIngredientInventoryModel;\n }\n\n getModel(): AppIngredientInventoryModel {\n return appIngredientInventoryModel;\n }\n\n constructor(data: IngredientInventory) {\n super(data, appIngredientInventoryModel);\n }\n}\n\n/* ---------- IngredientInventoryMeta ---------- */\nconst appIngredientInventoryMetaModel = new Model(\n new ModelConfig(\n \"IngredientInventoryMeta\",\n 10000,\n 200,\n \"ingredientInventoriesMeta\",\n \"On Hand Records\",\n \"IngredientInventoryMeta\",\n \"ingredientInventoryMetaId\",\n [\n new ResourceColumnDate(\"day\", \"Day\", \"D MMM\")\n .setKey()\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(b) - parseInt(a))\n .setVisible()\n .setWidth(\"XS\"),\n new ResourceColumnSelect(\"restaurantId\", \"Rest\")\n .setKey()\n .setSortDirection(\"ASC\", 1)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b))\n .setVisible()\n .setWidth(\"XS\"),\n new ResourceColumnSelect(\"status\", \"Status\", [\"UNLOCKED\", \"LOCKED\"])\n .setEditable()\n .setOptional()\n .setVisible()\n .setWidth(\"XS\"),\n new ResourceColumnText(\"storageKey\", \"S3 Path\")\n .setEditable()\n .setVisible()\n .setWidth(\"L\"),\n new ResourceColumnText(\"completion\", \"%\").setOptional().setWidth(\"XS\"),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setVisible().setOptional().setWidth(\"XS\"),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional().setWidth(\"S\"),\n ]\n )\n);\n\nclass AppIngredientInventoryMeta extends Resource {\n static getModel(): Model {\n return appIngredientInventoryMetaModel;\n }\n\n getModel(): Model {\n return appIngredientInventoryMetaModel;\n }\n\n constructor(data: IngredientInventoryMeta) {\n super(data, appIngredientInventoryMetaModel);\n }\n}\n\n/* ---------- IngredientOnHandArea ---------- */\nclass AppIngredientOnHandAreaModel extends Model {\n refDisplay(data: IngredientOnHandArea, dataEditorState?: DataEditorState) {\n if (dataEditorState) {\n return super.refChainDisplay(\n data,\n dataEditorState,\n \"ingredientOnHandAreaId\",\n true,\n // The [\"restaurantId\"] array means:\n // from the object with the same value for \"onHandAreaId\"\n // get the restaurantId and display it\n [\"ingredientId\", \"onHandAreaId\", [\"restaurantId\"]]\n );\n }\n return super.refDisplay(data);\n }\n}\n\nconst appIngredientOnHandAreaModel = new AppIngredientOnHandAreaModel(\n new ModelConfig(\n \"IngredientOnHandArea\",\n 1000,\n 200,\n \"ingredientOnHandAreas\",\n \"On Hand Config\",\n \"IngredientOnHandArea\",\n \"ingredientOnHandAreaId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnSelect(\"ingredientId\", \"Ingr.\").setVisible().setKey().setWidth(\"S\"),\n new ResourceColumnSelect(\"onHandAreaId\", \"Rest - Area\")\n .setVisible()\n .setKey()\n .setSortCallback((a, b) => parseInt(a) - parseInt(b))\n .setWidth(\"S\"),\n new ResourceColumnText(\"bulk\", \"Bulk\").setVisible().setWidth(\"XS\").setEditable(),\n new ResourceColumnNumber(\"portionRatio\", \"Ratio\")\n .setVisible()\n .setOptional()\n .setEditable()\n .setWidth(\"XS\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"Updated By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"Update Time\").setOptional(),\n ]\n )\n);\n\nclass AppIngredientOnHandArea extends Resource {\n static getModel(): AppIngredientOnHandAreaModel {\n return appIngredientOnHandAreaModel;\n }\n\n getModel(): AppIngredientOnHandAreaModel {\n return appIngredientOnHandAreaModel;\n }\n\n constructor(data: IngredientOnHandArea) {\n super(data, appIngredientOnHandAreaModel);\n }\n}\n\n/* ---------- IngredientDeliveryArea ---------- */\nconst appIngredientDeliveryAreaModel = new Model(\n new ModelConfig(\n \"IngredientDeliveryArea\",\n 1000,\n 200,\n \"ingredientDeliveryAreas\",\n \"Delivery Config\",\n \"IngredientDeliveryArea\",\n \"ingredientDeliveryAreaId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnSelect(\"ingredientId\", \"Ingr.\").setVisible().setKey().setWidth(\"S\"),\n new ResourceColumnSelect(\"deliveryAreaId\", \"Area\")\n .setVisible()\n .setKey()\n .setSortCallback((a, b) => parseInt(a) - parseInt(b))\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"fixedNeed\", \"Fixed Need\")\n .setVisible()\n .setEditable()\n .setWidth(\"XS\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppIngredientDeliveryArea extends Resource {\n static getModel(): Model {\n return appIngredientDeliveryAreaModel;\n }\n\n getModel(): Model {\n return appIngredientDeliveryAreaModel;\n }\n\n constructor(data: IngredientDeliveryArea) {\n super(data, appIngredientDeliveryAreaModel);\n }\n}\n\n/* ---------- MenuItem ---------- */\nclass AppMenuItemModel extends Model {\n refDisplay(data: MenuItem, dataEditorState?: DataEditorState) {\n if (dataEditorState) {\n return super.refChainDisplay(data, dataEditorState, \"restaurantId\");\n }\n return super.refDisplay(data);\n }\n}\n\nconst appMenuItemModel = new AppMenuItemModel(\n new ModelConfig(\"MenuItem\", 10000, 200, \"menuItems\", \"Menu Items\", \"MenuItem\", \"menuItemId\", [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnSelect(\"restaurantId\", \"Rest.\")\n .setKey()\n .setVisible()\n .setWidth(\"XS\")\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"name\", \"Name\")\n .setKey()\n .setSortCallback((a, b) => a.localeCompare(b))\n .setEditable()\n .setVisible()\n .setWidth(\"M\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ])\n);\n\nclass AppMenuItem extends Resource {\n static getModel(): AppMenuItemModel {\n return appMenuItemModel;\n }\n\n getModel(): AppMenuItemModel {\n return appMenuItemModel;\n }\n\n constructor(data: MenuItem) {\n super(data, appMenuItemModel);\n }\n}\n\n/* ---------- RecipeItem ---------- */\nconst appRecipeItemModel = new Model(\n new ModelConfig(\n \"RecipeItem\",\n 10000,\n 200,\n \"recipeItems\",\n \"Recipe Items\",\n \"RecipeItem\",\n \"recipeItemId\",\n [\n new ResourceColumnSelect(\"menuItemId\", \"Menu Item\")\n .setVisible()\n .setWidth(\"S\")\n .setKey()\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnSelect(\"ingredientId\", \"Ingr.\").setVisible().setKey().setWidth(\"S\"),\n new ResourceColumnNumber(\"quantity\", \"Qty\").setVisible().setEditable().setWidth(\"XS\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppRecipeItem extends Resource {\n static getModel(): Model {\n return appRecipeItemModel;\n }\n\n getModel(): Model {\n return appRecipeItemModel;\n }\n\n constructor(data: RecipeItem) {\n super(data, appRecipeItemModel);\n }\n}\n\n/* ---------- MenuItemSale ---------- */\nclass AppMenuItemSaleModel extends Model {\n getFilter(appState: any) {\n return {\n day: { eq: appState.day.data.time || AppDayModel.getTodayUnixTime() },\n };\n }\n}\n\nconst appMenuItemSaleModel = new AppMenuItemSaleModel(\n new ModelConfig(\n \"MenuItemSale\",\n 100000,\n 200,\n \"menuItemSales\",\n \"Sales Today\",\n \"MenuItemSale\",\n \"menuItemSaleId\",\n [\n new ResourceColumnSelect(\"menuItemId\", \"Rest - Menu Item\")\n .setKey()\n .setVisible()\n .setWidth(\"M\")\n .setSortDirection(\"ASC\", 0),\n new ResourceColumnDate(\"day\", \"Day\").setKey(),\n new ResourceColumnText(\"type\", \"Type\")\n .setKey()\n .setVisible()\n .setWidth(\"S\")\n .setSortDirection(\"ASC\", 1),\n new ResourceColumnNumber(\"quantity\", \"Qty\")\n .setOptional()\n .setVisible()\n .setWidth(\"XS\")\n .setEditable(),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setVisible().setWidth(\"XS\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setVisible().setWidth(\"S\").setOptional(),\n ]\n )\n);\n\nclass AppMenuItemSale extends Resource {\n static getModel(): AppMenuItemSaleModel {\n return appMenuItemSaleModel;\n }\n\n getModel(): AppMenuItemSaleModel {\n return appMenuItemSaleModel;\n }\n\n constructor(data: MenuItemSale) {\n super(data, appMenuItemSaleModel);\n }\n}\n\n/* ---------- MenuItemSaleMeta ---------- */\nconst appMenuItemSaleMetaModel = new Model(\n new ModelConfig(\n \"MenuItemSaleMeta\",\n 10000,\n 200,\n \"menuItemSalesMeta\",\n \"Sales Records\",\n \"MenuItemSaleMeta\",\n \"menuItemSaleMetaId\",\n [\n new ResourceColumnDate(\"day\", \"Day\", \"D MMM\")\n .setKey()\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(b) - parseInt(a))\n .setVisible()\n .setWidth(\"XS\"),\n new ResourceColumnSelect(\"restaurantId\", \"Rest\")\n .setKey()\n .setSortDirection(\"ASC\", 1)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b))\n .setVisible()\n .setWidth(\"XS\"),\n new ResourceColumnSelect(\"saleType\", \"Type\", [\"SINGLE\"])\n .setKey()\n .setVisible()\n .setWidth(\"XS\"),\n new ResourceColumnSelect(\"status\", \"Status\", [\"UNLOCKED\", \"LOCKED\"]).setOptional(),\n new ResourceColumnText(\"storageKey\", \"S3 Path\")\n .setEditable()\n .setVisible()\n .setWidth(\"L\"),\n new ResourceColumnText(\"completion\", \"%\").setOptional(),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional().setVisible().setWidth(\"XS\"),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional().setVisible().setWidth(\"XS\"),\n ]\n )\n);\n\nclass AppMenuItemSaleMeta extends Resource {\n static getModel(): Model {\n return appMenuItemSaleMetaModel;\n }\n\n getModel(): Model {\n return appMenuItemSaleMetaModel;\n }\n\n constructor(data: MenuItemSaleMeta) {\n super(data, appMenuItemSaleMetaModel);\n }\n}\n\n/* ---------- DeliveryArea ---------- */\nclass AppDeliveryAreaModel extends Model {\n refDisplay(data: DeliveryArea, dataEditorState?: DataEditorState) {\n if (dataEditorState) {\n return super.refChainDisplay(data, dataEditorState, \"restaurantId\");\n }\n return super.refDisplay(data);\n }\n}\n\nconst appDeliveryAreaModel = new AppDeliveryAreaModel(\n new ModelConfig(\n \"DeliveryArea\",\n 1000,\n 200,\n \"deliveryAreas\",\n \"Delivery Areas\",\n \"DeliveryArea\",\n \"deliveryAreaId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnText(\"name\", \"Name\").setVisible().setEditable().setWidth(\"S\"),\n new ResourceColumnSelect(\"restaurantId\", \"Rest\")\n .setKey()\n .setSortCallback((a, b) => parseInt(a) - parseInt(b))\n .setVisible()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppDeliveryArea extends Resource {\n static getModel(): AppDeliveryAreaModel {\n return appDeliveryAreaModel;\n }\n\n getModel(): AppDeliveryAreaModel {\n return appDeliveryAreaModel;\n }\n\n constructor(data: DeliveryArea) {\n super(data, appDeliveryAreaModel);\n }\n}\n\n/* ---------- OnHandArea ---------- */\nclass AppOnHandAreaModel extends Model {\n // replace with data editor context type\n refDisplay(data: OnHandArea, dataEditorState?: DataEditorState) {\n if (dataEditorState) {\n return super.refChainDisplay(data, dataEditorState, \"restaurantId\");\n }\n return super.refDisplay(data);\n }\n}\n\nconst appOnHandAreaModel = new AppOnHandAreaModel(\n new ModelConfig(\n \"OnHandArea\",\n 1000,\n 200,\n \"onHandAreas\",\n \"On Hand Areas\",\n \"OnHandArea\",\n \"onHandAreaId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnText(\"name\", \"Name\").setVisible().setEditable().setWidth(\"S\"),\n new ResourceColumnSelect(\"restaurantId\", \"Rest\")\n .setKey()\n .setSortCallback((a, b) => parseInt(a) - parseInt(b))\n .setVisible()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppOnHandArea extends Resource {\n static getModel(): AppOnHandAreaModel {\n return appOnHandAreaModel;\n }\n\n getModel(): AppOnHandAreaModel {\n return appOnHandAreaModel;\n }\n\n constructor(data: OnHandArea) {\n super(data, appOnHandAreaModel);\n }\n}\n\nexport {\n AppIngredientPack,\n AppIngredient,\n AppIngredientInventory,\n AppIngredientInventoryMeta,\n AppIngredientOnHandArea,\n AppIngredientDeliveryArea,\n AppMenuItem,\n AppRecipeItem,\n AppMenuItemSale,\n AppMenuItemSaleMeta,\n AppDeliveryArea,\n AppOnHandArea,\n};\n","import AppDayModel from \"../../components/day/AppDayModel\";\nimport {\n DpsEmail,\n DpsEmailRecipient,\n DpsIngredient,\n DpsMenuItem,\n DpsMenuItemSale,\n DpsMenuItemSaleMeta,\n DpsPack,\n DpsRecipeItem,\n} from \"../../graphql/API\";\nimport { Model } from \"../../model/Model\";\nimport { ModelConfig } from \"../../model/ModelConfig\";\nimport { ResourceColumnDate } from \"../../resources/columns/ResourceColumnDate\";\nimport { ResourceColumnNumber } from \"../../resources/columns/ResourceColumnNumber\";\nimport { ResourceColumnSelect } from \"../../resources/columns/select/ResourceColumnSelect\";\nimport { ResourceColumnText } from \"../../resources/columns/ResourceColumnText\";\nimport { Resource } from \"../../resources/Resource\";\nimport { DataEditorState } from \"../data-editor/types/DataEditorTypes\";\n\n/* ---------- DpsEmail ---------- */\nconst appDpsEmailModel = new Model(\n new ModelConfig(\"DpsEmail\", 1000, 200, \"dpsEmail\", \"Emails\", \"DpsEmail\", \"dpsEmail\", [\n new ResourceColumnDate(\"sentAt\", \"Sent At\")\n .setHideOnAdd()\n .setVisible()\n .setSortDirection(\"DESC\", 0)\n .setKey(),\n new ResourceColumnText(\"sentBy\", \"Sent By\").setHideOnAdd().setVisible().setKey(),\n new ResourceColumnText(\"restaurantId\", \"RST\").setHideOnAdd().setVisible().setKey(),\n new ResourceColumnText(\"subject\", \"Subject\").setHideOnAdd().setVisible(),\n new ResourceColumnText(\"recipients\", \"#\").setHideOnAdd().setVisible(),\n ])\n);\n\nclass AppDpsEmail extends Resource {\n static getModel(): Model {\n return appDpsEmailModel;\n }\n\n getModel(): Model {\n return appDpsEmailModel;\n }\n\n constructor(data: DpsEmail) {\n super(data, appDpsEmailModel);\n }\n}\n\n/* ---------- DpsEmailRecipient ---------- */\nconst appDpsEmailRecipientModel = new Model(\n new ModelConfig(\n \"DpsEmailRecipient\",\n 1000,\n 200,\n \"dpsEmailRecipient\",\n \"Recipients\",\n \"DpsEmailRecipient\",\n \"dpsEmailRecipient\",\n [\n new ResourceColumnText(\"name\", \"Name\")\n .setKey()\n .setVisible()\n .setWidth(\"S\")\n .setSortDirection(\"DESC\", 0),\n new ResourceColumnSelect(\"restaurantId\", \"Restaurant\")\n .setVisible()\n .setWidth(\"S\")\n .setSortDirection(\"DESC\", 1)\n .setKey(),\n new ResourceColumnText(\"email\", \"Email\").setVisible().setEditable().setWidth(\"M\"),\n new ResourceColumnNumber(\"isSubscribed\", \"Subscribed\")\n .setVisible()\n .setEditable()\n .setWidth(\"S\"),\n ]\n )\n);\n\nclass AppDpsEmailRecipient extends Resource {\n static getModel(): Model {\n return appDpsEmailRecipientModel;\n }\n\n getModel(): Model {\n return appDpsEmailRecipientModel;\n }\n\n constructor(data: DpsEmailRecipient) {\n super(data, appDpsEmailRecipientModel);\n }\n}\n\n/* ---------- DpsIngredient ---------- */\nclass AppDpsIngredientModel extends Model {\n refDisplay(data: DpsIngredient) {\n return super.refDisplay(data);\n }\n}\n\nconst appDpsIngredientModel = new AppDpsIngredientModel(\n new ModelConfig(\n \"DpsIngredient\",\n 1000,\n 200,\n \"dpsIngredients\",\n \"Ingredients\",\n \"DpsIngredient\",\n \"dpsIngredientId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnText(\"name\", \"Name\")\n .setKey()\n .setVisible()\n .setWidth(\"S\")\n .setSortDirection(\"ASC\", 1),\n new ResourceColumnSelect(\"dpsPackId\", \"Pack\").setVisible().setEditable().setWidth(\"XS\"),\n new ResourceColumnNumber(\"dpsPackSize\", \"Pack Size\")\n .setVisible()\n .setWidth(\"XS\")\n .setEditable(),\n new ResourceColumnSelect(\"subDpsPackId\", \"Sub-Pack\")\n .setResourceRefKeyAlias(\"dpsPackId\")\n .setVisible()\n .setEditable()\n .setWidth(\"XS\")\n .setOptional(),\n new ResourceColumnNumber(\"subDpsPackSize\", \"Sub-Pack Size\")\n .setVisible()\n .setWidth(\"XS\")\n .setEditable()\n .setOptional(),\n new ResourceColumnSelect(\"subSubDpsPackId\", \"Sub-Sub-Pack\")\n .setResourceRefKeyAlias(\"dpsPackId\")\n .setVisible()\n .setEditable()\n .setWidth(\"XS\")\n .setOptional(),\n new ResourceColumnNumber(\"useSubPack\", \"Use Sub-Pack\")\n .setVisible()\n .setEditable()\n .setWidth(\"XS\")\n .setOptional(),\n new ResourceColumnNumber(\"ratio\", \"Ratio\", 0.1)\n .setVisible()\n .setWidth(\"XS\")\n .setEditable()\n .setOptional(),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppDpsIngredient extends Resource {\n static getModel(): AppDpsIngredientModel {\n return appDpsIngredientModel;\n }\n\n getModel(): AppDpsIngredientModel {\n return appDpsIngredientModel;\n }\n\n constructor(data: DpsIngredient) {\n super(data, appDpsIngredientModel);\n }\n}\n\n/* ---------- DpsPack ---------- */\nconst appDpsPackModel = new Model(\n new ModelConfig(\"DpsPack\", 1000, 200, \"dpsPack\", \"Packs\", \"DpsPack\", \"dpsPackId\", [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnText(\"name\", \"Name\")\n .setVisible()\n .setKey()\n .setWidth(\"M\")\n .setSortDirection(\"ASC\", 1),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ])\n);\n\nclass AppDpsPack extends Resource {\n static getModel(): Model {\n return appDpsPackModel;\n }\n\n getModel(): Model {\n return appDpsPackModel;\n }\n\n constructor(data: DpsPack) {\n super(data, appDpsPackModel);\n }\n}\n\n/* ---------- DpsMenuItem ---------- */\nclass AppDpsMenuItemModel extends Model {\n refDisplay(data: DpsMenuItem, dataEditorState?: DataEditorState) {\n if (dataEditorState) {\n return super.refChainDisplay(data, dataEditorState, \"restaurantId\");\n }\n return super.refDisplay(data);\n }\n}\n\nconst appDpsMenuItemModel = new AppDpsMenuItemModel(\n new ModelConfig(\n \"DpsMenuItem\",\n 10000,\n 200,\n \"dpsMenuItems\",\n \"Menu Items\",\n \"DpsMenuItem\",\n \"dpsMenuItemId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnSelect(\"restaurantId\", \"Rest.\")\n .setKey()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"name\", \"Name\")\n .setKey()\n .setSortDirection(\"ASC\", 1)\n .setSortCallback((a, b) => a.localeCompare(b))\n .setEditable()\n .setVisible()\n .setWidth(\"M\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppDpsMenuItem extends Resource {\n static getModel(): AppDpsMenuItemModel {\n return appDpsMenuItemModel;\n }\n\n getModel(): AppDpsMenuItemModel {\n return appDpsMenuItemModel;\n }\n\n constructor(data: DpsMenuItem) {\n super(data, appDpsMenuItemModel);\n }\n}\n\n/* ---------- DpsRecipeItem ---------- */\nconst appDpsRecipeItemModel = new Model(\n new ModelConfig(\n \"DpsRecipeItem\",\n 10000,\n 200,\n \"dpsRecipeItems\",\n \"Recipe Items\",\n \"DpsRecipeItem\",\n \"dpsRecipeItemId\",\n [\n new ResourceColumnSelect(\"dpsMenuItemId\", \"Menu Item\")\n .setVisible()\n .setWidth(\"S\")\n .setKey()\n .setSortDirection(\"ASC\", 1)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnSelect(\"dpsIngredientId\", \"Ingr.\")\n .setVisible()\n .setKey()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"quantity\", \"Qty\").setVisible().setEditable().setWidth(\"XS\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional(),\n ]\n )\n);\n\nclass AppDpsRecipeItem extends Resource {\n static getModel(): Model {\n return appDpsRecipeItemModel;\n }\n\n getModel(): Model {\n return appDpsRecipeItemModel;\n }\n\n constructor(data: DpsRecipeItem) {\n super(data, appDpsRecipeItemModel);\n }\n}\n\n/* ---------- DpsMenuItemSale ---------- */\nclass DpsMenuItemSaleModel extends Model {\n getFilter(appState: any) {\n return {\n day: { eq: appState.day.data.time || AppDayModel.getTodayUnixTime() },\n };\n }\n}\n\nconst appDpsMenuItemSaleModel = new DpsMenuItemSaleModel(\n new ModelConfig(\n \"DpsMenuItemSale\",\n 100000,\n 200,\n \"dpsMenuItemSales\",\n \"Sales Today\",\n \"DpsMenuItemSale\",\n \"dpsMenuItemSaleId\",\n [\n new ResourceColumnSelect(\"dpsMenuItemId\", \"Rest - Menu Item\")\n .setKey()\n .setVisible()\n .setWidth(\"M\")\n .setSortDirection(\"ASC\", 0),\n new ResourceColumnDate(\"day\", \"Day\").setKey(),\n new ResourceColumnText(\"saleType\", \"Type\")\n .setKey()\n .setVisible()\n .setWidth(\"S\")\n .setSortDirection(\"ASC\", 1),\n new ResourceColumnNumber(\"quantity\", \"Qty\")\n .setOptional()\n .setVisible()\n .setWidth(\"XS\")\n .setEditable(),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setVisible().setWidth(\"XS\").setOptional(),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setVisible().setWidth(\"S\").setOptional(),\n ]\n )\n);\n\nclass AppDpsMenuItemSale extends Resource {\n static getModel(): DpsMenuItemSaleModel {\n return appDpsMenuItemSaleModel;\n }\n\n getModel(): DpsMenuItemSaleModel {\n return appDpsMenuItemSaleModel;\n }\n\n constructor(data: DpsMenuItemSale) {\n super(data, appDpsMenuItemSaleModel);\n }\n}\n\n/* ---------- DpsMenuItemSaleMeta ---------- */\nconst appDpsMenuItemSaleMetaModel = new Model(\n new ModelConfig(\n \"DpsMenuItemSaleMeta\",\n 1000,\n 200,\n \"dpsMenuItemSalesMeta\",\n \"Sales Records\",\n \"DpsMenuItemSaleMeta\",\n \"dpsMenuItemSaleMetaId\",\n [\n new ResourceColumnDate(\"day\", \"Day\", \"D MMM\")\n .setKey()\n .setSortDirection(\"DESC\", 1)\n .setSortCallback((a, b) => parseInt(b) - parseInt(a))\n .setVisible()\n .setWidth(\"XS\"),\n new ResourceColumnSelect(\"restaurantId\", \"Rest\")\n .setKey()\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a, b) => parseInt(a) - parseInt(b))\n .setVisible()\n .setWidth(\"XS\"),\n new ResourceColumnSelect(\"status\", \"Status\", [\"UNLOCKED\", \"LOCKED\"]).setOptional(),\n new ResourceColumnText(\"storageKey\", \"S3 Path\")\n .setEditable()\n .setVisible()\n .setWidth(\"L\"),\n new ResourceColumnText(\"completion\", \"%\").setOptional(),\n new ResourceColumnText(\"lastUpdatedBy\", \"By\").setOptional().setVisible().setWidth(\"XS\"),\n new ResourceColumnDate(\"lastUpdatedAt\", \"At\").setOptional().setVisible().setWidth(\"XS\"),\n ]\n )\n);\n\nclass AppDpsMenuItemSaleMeta extends Resource {\n static getModel(): Model {\n return appDpsMenuItemSaleMetaModel;\n }\n\n getModel(): Model {\n return appDpsMenuItemSaleMetaModel;\n }\n\n constructor(data: DpsMenuItemSaleMeta) {\n super(data, appDpsMenuItemSaleMetaModel);\n }\n}\n\nexport {\n AppDpsIngredient,\n AppDpsEmail,\n AppDpsEmailRecipient,\n AppDpsPack,\n AppDpsMenuItem,\n AppDpsRecipeItem,\n AppDpsMenuItemSale,\n AppDpsMenuItemSaleMeta,\n};\n","import {\n AppIngredient,\n AppMenuItem,\n AppMenuItemSale,\n AppMenuItemSaleMeta,\n AppRecipeItem,\n} from \"../../food/FoodResources\";\nimport {\n AppDpsIngredient,\n AppDpsMenuItem,\n AppDpsMenuItemSale,\n AppDpsRecipeItem,\n AppDpsMenuItemSaleMeta,\n} from \"../../dps/DpsResources\";\nimport { SectionNames } from \"../../sections/SectionNames\";\n\nconst CONFIGS = {\n DPS: {\n displayConfigs: {\n hideMultiple: true,\n },\n salesConfigs: [\n {\n saleType: \"SINGLE\",\n keyPrefix: \"Single\",\n action: \"uploadSingleDaySales\",\n fileNameSuffix: \"dps\",\n },\n ],\n resources: {\n menuItemResource: AppDpsMenuItem,\n menuItemSaleResource: AppDpsMenuItemSale,\n menuItemSaleMetaResource: AppDpsMenuItemSaleMeta,\n ingredientResource: AppDpsIngredient,\n recipeItemResource: AppDpsRecipeItem,\n },\n },\n FOOD: {\n displayConfigs: {\n hideMultiple: false,\n },\n salesConfigs: [\n {\n saleType: \"SINGLE\",\n keyPrefix: \"Single\",\n action: \"uploadSingleDaySales\",\n fileNameSuffix: \"ss\",\n },\n {\n saleType: \"MULTIPLE\",\n keyPrefix: \"Multiple\",\n action: \"uploadMultipleDaysSales\",\n fileNameSuffix: \"sm\",\n },\n ],\n resources: {\n menuItemResource: AppMenuItem,\n menuItemSaleResource: AppMenuItemSale,\n menuItemSaleMetaResource: AppMenuItemSaleMeta,\n ingredientResource: AppIngredient,\n recipeItemResource: AppRecipeItem,\n },\n },\n};\n\nfunction getConfig(sectionName) {\n if (sectionName === SectionNames.DPS) {\n return CONFIGS.DPS;\n }\n\n return CONFIGS.FOOD;\n}\n\nfunction getUtils(sectionName) {\n const INGREDIENT_ID = sectionName === SectionNames.FOOD ? \"ingredientId\" : \"dpsIngredientId\";\n const MENU_ITEM_ID = sectionName === SectionNames.FOOD ? \"menuItemId\" : \"dpsMenuItemId\";\n\n function recipeItemMenuItemFilter(menuItemId, recipeItem) {\n return recipeItem.data[MENU_ITEM_ID] === menuItemId;\n }\n\n function attachIngredientToRecipe(ingredientsById, recipeItem) {\n recipeItem.ingredient = ingredientsById[recipeItem.data[INGREDIENT_ID]];\n return recipeItem;\n }\n\n function attachMenuItemId(obj, menuItemId) {\n obj[MENU_ITEM_ID] = menuItemId;\n return obj;\n }\n\n function findSales(targetId, sales) {\n const findSalesType = (targetType) => {\n return sales.find((sale) => {\n return sale.data[MENU_ITEM_ID] === targetId && sale.data.type === targetType;\n });\n };\n\n return {\n SINGLE: findSalesType(\"SINGLE\"),\n MULTIPLE: findSalesType(\"MULTIPLE\"),\n };\n }\n\n return {\n recipeItemMenuItemFilter,\n attachIngredientToRecipe,\n attachMenuItemId,\n findSales,\n };\n}\n\nconst MenusSectionConfigs = {\n getConfig,\n getUtils,\n};\n\nexport default MenusSectionConfigs;\n","import SalesParser from \"../components/drop-zone/parsers/SalesParser\";\nimport MenusSectionConfigs from \"../config/MenusSectionConfigs\";\n\nfunction removeOracleIdSuffix(menuItemName) {\n return menuItemName?.split(\"(\")[0].trim() || menuItemName;\n}\n\n/**\n * @function findMenuItemCallback\n * @description Callback function to find a menu item by name\n * @param {any} menuItemName\n * @returns {function} Callback function to find a menu item by name\n */\nfunction findMenuItemCallback(menuItemName) {\n return (menuItem) => {\n let result = false;\n\n // either the menuItemName matches the menuItem name\n // or the menuItemName, without the suffix that starts with '(' would match the menuItem name\n result = menuItem.data.name === removeOracleIdSuffix(menuItemName);\n\n return result;\n };\n}\n\nfunction findMenuItem(menu, menuItemName) {\n return menu.find(findMenuItemCallback(menuItemName));\n}\n\nfunction findMenuItemIndex(menu, menuItemName) {\n return menu.findIndex(findMenuItemCallback(menuItemName));\n}\n\nfunction digestUploadedSales(sectionName, data, menu, saleType, day, lastUpdatedBy, lastUpdatedAt) {\n // TODO: fix this hack (this is supposed to replace the need to \"mergeSalesData\") in MenuSalesParser\n const validMenuItemNames = menu.map((menuItem) => menuItem.data.name);\n const nonIllegalCharMenuItems = menu.map((menuItem) =>\n SalesParser.clearIllegalChars(menuItem.data.name)\n );\n\n // build the data again, by adding up sales for same menu item\n // (or same menu item without \" ({id})\" suffix)\n // use the trimmed and non-illegal char name as the key\n const mergedData = data.reduce((acc, uploadedSale) => {\n const [name, quantitySold] = uploadedSale;\n\n // if the menu item is not valid, skip it\n const oracleIdTrimmedName = removeOracleIdSuffix(name);\n const nonIllegalOracleIdTrimmedName = SalesParser.clearIllegalChars(oracleIdTrimmedName);\n const nonIllegalCharName = SalesParser.clearIllegalChars(oracleIdTrimmedName);\n\n if (\n !nonIllegalCharMenuItems.includes(nonIllegalOracleIdTrimmedName) ||\n !nonIllegalCharMenuItems.includes(nonIllegalCharName)\n ) {\n return acc;\n }\n\n // name used to index values\n let keyName = \"\";\n\n if (nonIllegalCharMenuItems.includes(nonIllegalCharName)) {\n // if the name trimmed, without the oracle suffix, exists as a valid menu item, use it\n keyName = nonIllegalCharName;\n } else if (nonIllegalCharMenuItems.includes(nonIllegalOracleIdTrimmedName)) {\n // if the name trimmed, without the oracle suffix, exists as a valid menu item, use it\n keyName = nonIllegalOracleIdTrimmedName;\n }\n // actual name\n let trueName = null;\n\n if (validMenuItemNames.includes(name)) {\n trueName = name;\n } else if (validMenuItemNames.includes(oracleIdTrimmedName)) {\n trueName = oracleIdTrimmedName;\n }\n\n if (!keyName || !trueName) {\n return acc;\n }\n\n if (!acc[keyName]) {\n // if the menu item is valid, add it to the accumulator\n acc[keyName] = [trueName, 0];\n }\n\n acc[keyName][1] += quantitySold;\n\n return acc;\n }, {});\n\n const mergedDataArray = Object.values(mergedData);\n\n return mergedDataArray.reduce(\n (acc, uploadedSale) => {\n const [name, quantitySold] = uploadedSale;\n const menuItemIndex = findMenuItemIndex(acc.updatedMenu, name, saleType);\n const menuItem = findMenuItem(acc.updatedMenu, name, saleType);\n\n if (!menuItem) {\n acc.invalidQueue.push(uploadedSale);\n return acc;\n }\n\n // item need update\n if (menuItem.sales && menuItem.sales[saleType]) {\n menuItem.sales[saleType].data.quantity = quantitySold;\n menuItem.sales[saleType].data.lastUpdatedBy = lastUpdatedBy;\n menuItem.sales[saleType].data.lastUpdatedAt = lastUpdatedAt;\n acc.updateQueue.push(menuItem.sales[saleType]);\n return acc;\n }\n\n // item doesn't have a value\n const { attachMenuItemId } = MenusSectionConfigs.getUtils(sectionName);\n const { menuItemSaleResource } = MenusSectionConfigs.getConfig(sectionName).resources;\n menuItem.sales[saleType] = new menuItemSaleResource(\n attachMenuItemId(\n {\n day: day.data.time,\n type: saleType,\n quantity: quantitySold,\n lastUpdatedBy,\n lastUpdatedAt,\n },\n menuItem.data.id\n )\n );\n acc.createQueue.push(menuItem.sales[saleType]);\n\n acc.updatedMenu[menuItemIndex] = menuItem;\n return acc;\n },\n { updateQueue: [], createQueue: [], invalidQueue: [], updatedMenu: menu }\n );\n}\n\nfunction displayRecipeItem(recipeItem) {\n const quantity = recipeItem.data.quantity;\n const name = recipeItem.ingredient.data.name;\n\n return `${quantity} x ${name}`;\n}\n\nfunction getMenuItemCompletionScore({ sales: { SINGLE, MULTIPLE } }) {\n return !!SINGLE + !!MULTIPLE;\n}\n\nfunction getMenuCompletionScore(menu) {\n const menuItemsCompletionScore = menu\n .map(getMenuItemCompletionScore)\n .reduce((a, c) => a + c, 0);\n return menuItemsCompletionScore / (2 * menu.length);\n}\n\nfunction getTotalCompletionScore(restaurants) {\n const maxCompletionScore = restaurants.reduce((acc, { menu }) => {\n acc += 2 * menu.length;\n return acc;\n }, 0);\n\n const actualCompletionScore = restaurants.reduce((acc, { menu }) => {\n acc += getMenuCompletionScore(menu);\n return acc;\n }, 0);\n\n return actualCompletionScore / maxCompletionScore;\n}\n\nconst MenusUtils = {\n digestUploadedSales,\n displayRecipeItem,\n getMenuCompletionScore,\n getTotalCompletionScore,\n};\n\nexport default MenusUtils;\n","import MenusActions from \"./MenusActions\";\nimport MenusUtils from \"../services/MenusUtils\";\nimport AppUtilsService from \"../../../services/AppUtilsService\";\n\nexport default function MenusReducer(state, action) {\n if (action.type === MenusActions.LOAD_MENUS) {\n console.info(\"CONTEXT: MENUS: LOAD_MENUS\");\n state.restaurants = action.payload.restaurants;\n state.restaurant = action.payload.restaurant;\n state.completionScore = action.payload.completionScore;\n state.config = action.payload.config;\n state.sectionName = action.payload.sectionName;\n return { ...state };\n }\n\n if (action.type === MenusActions.CHANGE_RESTAURANT) {\n console.info(\"CONTEXT: MENUS: CHANGE_RESTAURANT\");\n const restaurant = state.restaurants[action.payload.restaurantId];\n AppUtilsService.setRestaurant(state.sectionName, \"sales\", restaurant, state.config.router);\n state.restaurant = restaurant;\n return { ...state };\n }\n\n if (action.type === MenusActions.UPLOAD_SALES) {\n console.info(\"CONTEXT: MENUS: UPLOAD_SALES\");\n state.restaurant = action.payload.restaurant;\n state.restaurants[state.restaurant.data.id] = state.restaurant;\n state.completionScore = MenusUtils.getTotalCompletionScore(\n Object.values(state.restaurants)\n );\n return { ...state };\n }\n\n if (action.type === MenusActions.OPEN_ADD_DIALOG) {\n console.info(\"CONTEXT: MENUS: OPEN_ADD_DIALOG\");\n state.openAddDialog = true;\n return { ...state };\n }\n\n if (action.type === MenusActions.CLOSE_ADD_DIALOG) {\n console.info(\"CONTEXT: MENUS: CLOSE_ADD_DIALOG\");\n state.openAddDialog = false;\n return { ...state };\n }\n\n return { ...state };\n}\n","import { fetchResources, readSectionS3Files } from \"../../../resources/ResourcesService\";\n\nimport AppUserGroups from \"../../../services/AppUserGroups\";\nimport AppUtilsService from \"../../../services/AppUtilsService\";\nimport { AppRestaurant } from \"../../admin/AdminResources\";\nimport MenusSectionConfigs from \"../config/MenusSectionConfigs\";\n\nexport default async function MenusResolver(\n userGroups,\n day,\n userName,\n sectionName,\n useMocks = false\n) {\n const {\n menuItemResource,\n menuItemSaleResource,\n menuItemSaleMetaResource,\n ingredientResource,\n recipeItemResource,\n } = MenusSectionConfigs.getConfig(sectionName).resources;\n const { recipeItemMenuItemFilter, attachIngredientToRecipe, findSales } =\n MenusSectionConfigs.getUtils(sectionName);\n\n const [appRestaurants] = await fetchResources(\n [[AppRestaurant, { type: { eq: \"RESTAURANT\" } }]],\n useMocks\n );\n let { restaurants, restaurantFilter } = AppUserGroups.getUserRestaurantWithFilter(\n appRestaurants,\n userGroups\n );\n\n // TODO: call items only from the remaining restaurants\n let [menuItems, recipeItems, ingredients] = await fetchResources(\n [[menuItemResource, restaurantFilter], [recipeItemResource], [ingredientResource]],\n useMocks\n );\n\n const dayFilter = { day: { eq: day.data.time } };\n const [currentMetaItems] = await fetchResources(\n [[menuItemSaleMetaResource, dayFilter]],\n useMocks\n );\n const missingMetaItems = await AppUtilsService.buildMissingInventoriesMeta(\n restaurants,\n currentMetaItems,\n menuItemSaleMetaResource,\n day,\n userName,\n sectionName,\n AppUtilsService.createMetaSalesPromise\n );\n const menuItemSalesMeta = currentMetaItems.concat(missingMetaItems);\n const storageKeys = menuItemSalesMeta\n .map(({ data: { storageKey } }) => storageKey)\n .filter((x) => x);\n const menuItemSales = await readSectionS3Files(storageKeys, menuItemSaleResource);\n\n const ingredientsById = ingredients.reduce(AppUtilsService.groupDataByItem(\"id\"), {});\n const menuItemSalesMetaByRestaurantId = menuItemSalesMeta.reduce(\n AppUtilsService.groupDataByList(\"restaurantId\"),\n {}\n );\n\n return restaurants.reduce((acc, restaurant) => {\n const restaurantId = restaurant.data.id;\n // ATTACH MENU\n restaurant.menu = menuItems\n .filter((menuItem) => menuItem.data.restaurantId === restaurantId)\n .map((menuItem) => {\n // ATTACH RECIPE\n menuItem.recipe = recipeItems\n .filter(recipeItemMenuItemFilter.bind(null, menuItem.data.id))\n .map(attachIngredientToRecipe.bind(null, ingredientsById));\n\n // ATTACH SALES\n menuItem.sales = findSales(menuItem.data.id, menuItemSales);\n return menuItem;\n });\n acc[restaurantId] = restaurant;\n // ATTACH META\n restaurant.meta = menuItemSalesMetaByRestaurantId[restaurantId].reduce((acc, meta) => {\n acc[meta.data.saleType] = meta;\n return acc;\n }, {});\n return acc;\n }, {});\n}\n","import React, { createContext, useCallback, useReducer } from \"react\";\nimport MenusReducer from \"./MenusReducer\";\nimport MenusActions from \"./MenusActions\";\nimport { seriesPromises, updateDailyData } from \"../../../resources/ResourcesService\";\nimport MenusUtils from \"../services/MenusUtils\";\nimport AppDayModel from \"../../../components/day/AppDayModel\";\nimport AppUtilsService from \"../../../services/AppUtilsService\";\nimport MenusResolver from \"../services/MenusResolver\";\n\nconst MenusContext = createContext({});\n\nconst MenusProvider = ({ children }) => {\n const [menusState, dispatch] = useReducer(MenusReducer, {\n restaurants: null,\n restaurant: null,\n completionScore: 0,\n config: null,\n sectionName: null,\n });\n\n const loadMenus = useCallback(\n async (config, sectionName, day, userName, userGroups, setGlobalSpinner) => {\n setGlobalSpinner(true);\n\n const restaurants = await MenusResolver(userGroups, day, userName, sectionName);\n const restaurant = AppUtilsService.loadRestaurant(\n sectionName,\n \"sales\",\n restaurants,\n config.router\n );\n const completionScore = MenusUtils.getMenuCompletionScore(restaurant.menu);\n\n setGlobalSpinner(false);\n return dispatch({\n type: MenusActions.LOAD_MENUS,\n payload: { config, sectionName, restaurants, restaurant, completionScore },\n });\n },\n [dispatch]\n );\n\n const salesUpload = useCallback(\n async (sectionName, data, restaurant, saleType, day, userName, setGlobalSpinner) => {\n setGlobalSpinner(true);\n\n const lastUpdatedBy = userName;\n const lastUpdatedAt = AppDayModel.getCurrentUnixTime();\n\n const { updatedMenu, updateQueue, createQueue, invalidQueue } =\n MenusUtils.digestUploadedSales(\n sectionName,\n data,\n restaurant.menu,\n saleType,\n day,\n lastUpdatedBy,\n lastUpdatedAt\n );\n\n const updatePromises = updateQueue.map((sale) => sale.model.api.update(sale.data));\n await seriesPromises(updatePromises);\n\n const createPromises = createQueue.map((sale) => sale.model.api.create(sale.data));\n await seriesPromises(createPromises);\n\n const uploadedSales = updateQueue.concat(createQueue).map(({ data }) => data);\n\n // increase the count of the storageKey\n restaurant.meta[saleType].data = await AppUtilsService.updateMetaSalePromiseType(\n restaurant.meta[saleType].model,\n restaurant.meta[saleType].data\n );\n\n const saleTypeStorageKey = restaurant.meta[saleType].data.storageKey;\n await updateDailyData(uploadedSales, saleTypeStorageKey);\n\n restaurant.menu = updatedMenu;\n restaurant.invalidQueue = invalidQueue.filter((x) => !!x);\n\n setGlobalSpinner(false);\n return dispatch({ type: MenusActions.UPLOAD_SALES, payload: { restaurant } });\n },\n [dispatch]\n );\n\n const changeRestaurant = useCallback(\n (restaurantId) => {\n return dispatch({ type: MenusActions.CHANGE_RESTAURANT, payload: { restaurantId } });\n },\n [dispatch]\n );\n\n const openAddDialog = useCallback(() => {\n return dispatch({ type: MenusActions.OPEN_ADD_DIALOG, payload: {} });\n }, [dispatch]);\n\n const closeAddDialog = useCallback(() => {\n return dispatch({ type: MenusActions.CLOSE_ADD_DIALOG, payload: {} });\n }, [dispatch]);\n\n const value = {\n menusState,\n loadMenus,\n salesUpload,\n changeRestaurant,\n openAddDialog,\n closeAddDialog,\n };\n\n return {children};\n};\n\nexport { MenusContext, MenusProvider };\n","import AppUserGroups from \"../../../../services/AppUserGroups\";\nimport menusToolbarStyles from \"./MenusToolbar.module.css\";\nimport { Button } from \"@material-ui/core\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { AppContext } from \"../../../../context/AppContext\";\nimport AppContextValidator from \"../../../../context/AppContextValidator\";\nimport { MenusContext } from \"../../context/MenusContext\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Dialog from \"@material-ui/core/Dialog\";\n\nconst MenusToolbarInvalidQueue = () => {\n const { appState } = useContext(AppContext);\n const { menusState } = useContext(MenusContext);\n const [state, setState] = useState({\n showInvalidQueue: false,\n });\n\n useEffect(() => {}, [menusState.restaurant]);\n\n if (!AppContextValidator.isValid(appState)) {\n return
;\n }\n\n if (\n !AppUserGroups.hasAdminAccess(appState.user.groups) ||\n !menusState.restaurant.invalidQueue ||\n menusState.restaurant.invalidQueue.length === 0\n ) {\n return
;\n }\n\n const handleShowInvalidQueue = () => {\n return setState((prevState) => {\n return { ...prevState, showInvalidQueue: true };\n });\n };\n\n const handleInvalidQueueDialogClose = () => {\n return setState((prevState) => {\n return { ...prevState, showInvalidQueue: false };\n });\n };\n\n if (state.showInvalidQueue) {\n return (\n \n \n Failed to upload these values\n \n \n
\n {menusState.restaurant.invalidQueue.map(([name, quantity]) => {\n return (\n
\n
{name}
\n
{quantity}
\n
\n );\n })}\n
\n
\n \n \n \n \n );\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default MenusToolbarInvalidQueue;\n","import React, { useContext, useEffect } from \"react\";\nimport menusToolbarStyles from \"./MenusToolbar.module.css\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport { AppContext } from \"../../../../context/AppContext\";\nimport { MenusContext } from \"../../context/MenusContext\";\nimport MenusToolbarInvalidQueue from \"./MenusToolbarInvalidQueue\";\n\nconst MenusToolbar = () => {\n const { appState } = useContext(AppContext);\n const { menusState, changeRestaurant } = useContext(MenusContext);\n\n useEffect(() => {}, [\n menusState.restaurants,\n menusState.restaurant,\n menusState.completionScore,\n ]);\n\n if (!menusState.restaurants) {\n console.info(\"MenusToolbar: Invalid menus restaurants!\");\n return
;\n }\n\n if (!menusState.restaurant) {\n console.info(\"MenusToolbar: Invalid menus restaurant!\");\n return
;\n }\n\n const handleRestaurantChange = (event) => {\n const selectedRestaurantId = event.target.value;\n return changeRestaurant(selectedRestaurantId);\n };\n\n const completionScore = appState.day ? Math.ceil(menusState.completionScore * 1000) / 10 : \"?\";\n\n return (\n
\n
\n \n \n {Object.values(menusState.restaurants).map((restaurant, i) => (\n \n {restaurant.data.name}\n \n ))}\n \n \n\n \n\n
\n

{completionScore} %

\n
\n
\n
\n );\n};\n\nexport default MenusToolbar;\n","import React, { useCallback, useMemo } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport menusSalesDropZoneStyles from \"./MenusSalesDropZone.module.css\";\n\nconst baseStyle = {\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"20px\",\n borderWidth: 2,\n borderRadius: 2,\n borderColor: \"#dddddd\",\n borderStyle: \"dashed\",\n backgroundColor: \"transparent\",\n color: \"#999999\",\n outline: \"none\",\n transition: \"border .24s ease-in-out\",\n};\n\nconst activeStyle = {\n borderColor: \"#2196f3\",\n backgroundColor: \"rgba(33,150,243,0.05)\",\n};\n\nconst acceptStyle = {\n borderColor: \"#00e676\",\n backgroundColor: \"rgba(0,230,118,0.05)\",\n};\n\nconst rejectStyle = {\n borderColor: \"#ff1744\",\n backgroundColor: \"rgba(255,23,68,0.05)\",\n};\n\nconst MenusSalesDropZone = ({ onUpdate, name, action, onLoad, requiredFileName }) => {\n const onDrop = useCallback(\n (acceptedFiles) => {\n if (acceptedFiles.length !== 1) {\n // TODO: make explicit error alert\n console.error(\"Invalid files count!\");\n return;\n }\n\n if (requiredFileName && acceptedFiles[0].name !== requiredFileName) {\n // TODO: make explicit error alert\n console.error(\n `Invalid file name; required: ${requiredFileName}, actual: ${acceptedFiles[0].name}`\n );\n return;\n }\n\n acceptedFiles.forEach((file) => {\n const reader = new FileReader();\n reader.onabort = () => console.log(\"file reading was aborted\");\n reader.onerror = () => console.log(\"file reading has failed\");\n reader.onload = () => onLoad(onUpdate, reader);\n reader.readAsBinaryString(file);\n });\n },\n [requiredFileName]\n );\n\n const { getRootProps, getInputProps, isDragActive, isDragAccept, isDragReject } = useDropzone({\n onDrop,\n minSize: 100,\n maxSize: 300000,\n });\n\n const style = useMemo(\n () => ({\n ...baseStyle,\n ...(isDragActive ? activeStyle : {}),\n ...(isDragAccept ? acceptStyle : {}),\n ...(isDragReject ? rejectStyle : {}),\n }),\n [isDragActive, isDragReject]\n );\n\n return (\n
\n \n \n Drag files or click to upload\n {name}\n
\n
\n );\n};\n\nexport default MenusSalesDropZone;\n","import Papa from \"papaparse\";\nimport SalesParser from \"./SalesParser\";\n\nconst MenuSalesParser = (onUpdate, reader) => {\n // TODO: expose these column names in settings\n // TODO: throw meaningful errors\n // TODO: check that all rows have the same size\n // TODO: test if quantities can be parsed\n try {\n let salesData = Papa.parse(reader.result).data;\n console.log(\"Raw sales data: \\n\", salesData);\n\n salesData = SalesParser.parseRawSales(salesData);\n console.log(\"Parsed sales data: \\n\", salesData);\n\n // filter out rows with invalid data\n salesData = salesData.filter((row) => {\n return (\n row &&\n // first element is a non-empty string\n typeof row[0] === \"string\" &&\n row[0].length > 0 &&\n // second element is a number, but non NaN\n typeof row[1] === \"number\" &&\n !isNaN(row[1]) &&\n // there are only 2 elements\n row.length === 2\n );\n });\n\n salesData = SalesParser.sortParsedSales(salesData);\n console.log(\"Sorted sales data: \\n\", salesData);\n\n salesData = SalesParser.filterSortedSales(salesData);\n console.log(\"Filtered sales data: \\n\", salesData);\n\n // TODO: 99% this should be removed because we should only merge against known menu items\n salesData = SalesParser.mergeFilteredSales(salesData);\n console.log(\"Merged sales data: \\n\", salesData);\n\n return onUpdate(salesData);\n } catch (e) {\n throw Error(`Cannot parse given file because of ${e}`);\n }\n};\n\nexport default MenuSalesParser;\n","import React from \"react\";\n\nconst MenusSalesNameDescriptor = ({ salesType, alias, fileName }) => {\n const day = salesType === \"SINGLE\" ? \"day\" : \"days\";\n return (\n \n {alias}'s SALES for {salesType} {day}\n : {fileName}\n \n );\n};\n\nexport default MenusSalesNameDescriptor;\n","import React, { useContext, useEffect } from \"react\";\nimport menusSalesDropZoneStylesWrp from \"./MenusSalesDropZoneWrp.module.css\";\nimport MenusSalesDropZone from \"./MenusSalesDropZone\";\nimport MenuSalesParser from \"./parsers/MenuSalesParser\";\nimport { MenusContext } from \"../../context/MenusContext\";\nimport { AppContext } from \"../../../../context/AppContext\";\nimport { useGlobalSpinnerActionsContext } from \"../../../../components/global-spinner/GlobalSpinnerContext\";\nimport AppContextValidator from \"../../../../context/AppContextValidator\";\nimport MenusSalesNameDescriptor from \"../MenusSalesNameDescriptor\";\n\nconst MenusSalesDropZoneWrp = ({ salesConfigs }) => {\n const { appState } = useContext(AppContext);\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { menusState, salesUpload } = useContext(MenusContext);\n\n useEffect(() => {}, [menusState.restaurant]);\n\n if (!(menusState.restaurant && menusState.restaurant.data)) {\n console.info(\"MenusSalesDropZoneWrp: Invalid restaurant\");\n return
;\n }\n\n if (!AppContextValidator.isValid(appState)) {\n console.info(\"MenusSalesDropZoneWrp: Invalid appState\");\n return
;\n }\n\n const handleSalesUpload = (saleType, data) => {\n return salesUpload(\n appState.section.name,\n data,\n menusState.restaurant,\n saleType,\n appState.day,\n appState.user.name,\n setGlobalSpinner\n );\n };\n\n const getContent = (salesConfig) => {\n const { saleType, keyPrefix, action, fileNameSuffix } = salesConfig;\n\n const restaurantAlias = menusState.restaurant.data.alias;\n const restaurantInitial = menusState.restaurant.data.alias[0].toLowerCase();\n const requiredFileName = `${restaurantInitial}${fileNameSuffix}.csv`;\n const name = (\n \n );\n\n return (\n \n );\n };\n\n return (\n
\n
\n {salesConfigs.map(getContent)}\n
\n
\n );\n};\n\nexport default MenusSalesDropZoneWrp;\n","import React from \"react\";\nimport menuStyles from \"../Menus.module.css\";\n\nconst MenusContentHeader = ({ displayConfigs: { hideMultiple } }) => {\n const hideMultipleContent = (\n
\n Sold\n
\n );\n\n const showMultipleContent = [\n
\n Single\n
,\n
\n Multiple\n
,\n ];\n\n const content = hideMultiple ? hideMultipleContent : showMultipleContent;\n\n return (\n
\n
\n Item\n
\n {content}\n
\n Recipe\n
\n
\n );\n};\n\nexport default MenusContentHeader;\n","import React, { useContext } from \"react\";\nimport menusStyles from \"../Menus.module.css\";\nimport LinearProgress from \"@material-ui/core/LinearProgress\";\nimport { MenusContext } from \"../context/MenusContext\";\n\nconst MenusCompletionStatus = () => {\n const { menusState } = useContext(MenusContext);\n\n if (!menusState.restaurant) {\n console.info(\"Invalid menus restaurant\");\n return
;\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default MenusCompletionStatus;\n","import React from \"react\";\nimport menuStyles from \"../Menus.module.css\";\nimport MenusUtils from \"../services/MenusUtils\";\n\nconst MenusItemRecipe = ({ recipe, index }) => {\n if (recipe.length === 0) {\n return (\n \n Missing recipe!\n
\n );\n }\n\n const recipeDisplay = recipe.map((i) => MenusUtils.displayRecipeItem(i)).join(\", \");\n\n return (\n
\n {recipeDisplay}\n
\n );\n};\n\nexport default MenusItemRecipe;\n","import React from \"react\";\nimport MenusItemRecipe from \"./MenusItemRecipe\";\nimport menuStyles from \"../Menus.module.css\";\n\nconst MenusItem = ({ item, index, displayConfigs: { hideMultiple } }) => {\n const { data, sales, recipe } = item;\n\n if (!(data && sales && recipe)) {\n console.info(\"Invalid Menu Item!\");\n return
;\n }\n\n return (\n
\n
\n {data.name}\n
\n
\n {sales.SINGLE ? sales.SINGLE.data?.quantity : \"\"}\n
\n {hideMultiple ? null : (\n
\n {sales.MULTIPLE ? sales.MULTIPLE.data?.quantity : \"\"}\n
\n )}\n \n
\n );\n};\n\nexport default MenusItem;\n","import React, { useContext, useEffect } from \"react\";\nimport menusStyles from \"../Menus.module.css\";\nimport { MenusContext } from \"../context/MenusContext\";\nimport MenusContentHeader from \"./MenusContentHeader\";\nimport MenusCompletionStatus from \"./MenusCompletionStatus\";\nimport MenusItem from \"./MenusItem\";\n\nconst MenusContent = () => {\n const { menusState } = useContext(MenusContext);\n\n useEffect(() => {\n console.log(\"MenusContent: USE EFFECT!\");\n }, [menusState.restaurant, menusState.completionScore, menusState.config]);\n\n if (!menusState.restaurant) {\n console.info(\"MenusContent: Invalid restaurant!\");\n return
;\n }\n\n if (!menusState.config) {\n console.info(\"MenusContent: Invalid config!\");\n return
;\n }\n\n return (\n
\n \n \n
\n {menusState.restaurant.menu\n .sort((a, b) => a.data.name.localeCompare(b.data.name))\n .map((menuItem, index) => {\n return (\n \n );\n })}\n
\n
\n );\n};\n\nexport default MenusContent;\n","import React, { useContext, useEffect } from \"react\";\nimport \"./components/toolbar/MenusToolbar.module.css\";\nimport menusStyles from \"./Menus.module.css\";\nimport { AppContext } from \"../../context/AppContext\";\nimport { useGlobalSpinnerActionsContext } from \"../../components/global-spinner/GlobalSpinnerContext\";\nimport MenusToolbar from \"./components/toolbar/MenusToolbar\";\nimport MenusSalesDropZoneWrp from \"./components/drop-zone/MenusSalesDropZoneWrp\";\nimport MenusContent from \"./components/MenusContent\";\nimport { MenusContext } from \"./context/MenusContext\";\nimport AppContextValidator from \"../../context/AppContextValidator\";\n\nlet isLoading = false;\n\nconst Menus = ({ config }) => {\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { appState } = useContext(AppContext);\n const { menusState, loadMenus } = useContext(MenusContext);\n\n /* ---------- HOOKS ---------- */\n useEffect(() => {\n console.info(\"Menus: USE EFFECT\");\n if (AppContextValidator.isValid(appState) && !isLoading) {\n isLoading = true;\n const {\n section: { name },\n day,\n user,\n } = appState;\n loadMenus(config, name, day, user.name, user.groups, setGlobalSpinner).then(\n () => (isLoading = false)\n );\n }\n }, [appState.day, appState.user, appState.section]);\n\n if (!(menusState.restaurants && menusState.restaurant)) {\n console.info(\"Menus: Invalid state!\");\n return
;\n }\n\n /* ---------- DISPLAY ---------- */\n return (\n
\n \n \n \n
\n );\n};\n\nexport default Menus;\n","import React, { useContext, useEffect } from \"react\";\nimport Menus from \"./Menus\";\nimport { MenusProvider } from \"./context/MenusContext\";\nimport { AppContext } from \"../../context/AppContext\";\nimport AppContextValidator from \"../../context/AppContextValidator\";\nimport MenusSectionConfigs from \"./config/MenusSectionConfigs\";\n\nconst MenusWrp = ({ history, location }) => {\n const { appState } = useContext(AppContext);\n\n useEffect(() => {\n console.info(\"MenusWrp: Use effect!\");\n }, [appState.day, appState.user, appState.section]);\n\n if (!AppContextValidator.isValid(appState)) {\n console.info(\"MenusWrp: Missing appState data!\");\n return
;\n }\n\n const config = {\n ...MenusSectionConfigs.getConfig(appState.section.name),\n router: {\n history,\n location,\n },\n };\n\n return (\n \n \n \n );\n};\n\nexport default MenusWrp;\n","import React from \"react\";\nimport { MdAttachMoney } from \"react-icons/md\";\n\nfunction MenusMenuItem(name: string) {\n return [\n ,\n
\n {name}\n
,\n ];\n}\n\nexport default MenusMenuItem;\n","import ContainerConfigBuilder from \"../ContainerConfigBuilder\";\nimport { ContainerPaths } from \"../ContainerPaths\";\nimport { ADMINS, MANAGERS } from \"../../services/AppUserGroupsData\";\nimport MenusWrp from \"./MenusWrp\";\nimport MenusMenuItem from \"./MenusMenuItem\";\n\nexport const MenusContainerConfig = new ContainerConfigBuilder(\"Menus\")\n .setPath(ContainerPaths.MENUS)\n .setUserAccess([MANAGERS, ADMINS])\n .setComponent(MenusWrp)\n .setMenuItem(MenusMenuItem)\n .build();\n","import MenusResolver from \"../../menus-sales/services/MenusResolver\";\nimport { fetchResources } from \"../../../resources/ResourcesService\";\nimport AppUtilsService from \"../../../services/AppUtilsService\";\nimport { AppDpsEmailRecipient, AppDpsPack } from \"../DpsResources\";\n\nasync function loadData(\n setGlobalSpinner,\n setState,\n userGroups,\n day,\n userName,\n sectionName,\n router\n) {\n setGlobalSpinner(true);\n const restaurants = await MenusResolver(userGroups, day, userName, sectionName);\n const restaurant = AppUtilsService.loadRestaurant(sectionName, \"pull\", restaurants, router);\n const [AppDpsPacks, AppDpsEmailRecipients] = await fetchResources([\n [AppDpsPack],\n [AppDpsEmailRecipient],\n ]);\n const packsById = AppDpsPacks.reduce(AppUtilsService.groupDataByItem(\"id\"), {});\n const recipients = AppDpsEmailRecipients.reduce(\n AppUtilsService.groupDataByList(\"restaurantId\"),\n {}\n );\n const ingredients = extractIngredientsDelivery(restaurant?.menu || [], packsById || {});\n setGlobalSpinner(false);\n\n setState((prevState) => {\n return { ...prevState, restaurants, restaurant, ingredients, packsById, recipients };\n });\n}\n\nfunction isValidState({ restaurant }) {\n return !!restaurant;\n}\n\nfunction plural(count, display) {\n return `${display}${count > 1 && display !== \"Each\" ? \"s\" : \"\"}`;\n}\n\nfunction roundOffSeason(value) {\n return Math.ceil(value * 10) / 10;\n}\n\nfunction roundOnSeason(value) {\n return Math.ceil(value);\n}\n\n/**\n * Map ingredients by id after attaching total amount sold, using the menu recipes and sales\n */\nfunction computeSoldIngredient(recipeItem, soldQuantity) {\n if (!recipeItem || !recipeItem.data || typeof soldQuantity !== \"number\" || soldQuantity <= 0) {\n return null;\n }\n\n const ingredient = JSON.parse(JSON.stringify(recipeItem?.ingredient));\n const ingredientQuantityInRecipe = recipeItem?.data?.quantity || 0;\n const quantity = ingredientQuantityInRecipe * soldQuantity;\n\n return { quantity, ingredient };\n}\n\nfunction computeSoldIngredientTotal(menuItem) {\n const {\n recipe,\n sales: { SINGLE },\n } = menuItem;\n\n if (!Array.isArray(recipe)) {\n return [];\n }\n\n if (typeof SINGLE?.data?.quantity !== \"number\" || SINGLE.data.quantity <= 0) {\n return [];\n }\n\n const soldQuantity = SINGLE?.data?.quantity || 0;\n\n return recipe\n .map((recipeItem) => computeSoldIngredient(recipeItem, soldQuantity))\n .filter((x) => !!x);\n}\n\nfunction aggregateIngredientSoldTotals(ingredientsById, { quantity, ingredient }) {\n ingredientsById[ingredient.data.id] = ingredientsById[ingredient.data.id] || ingredient;\n ingredientsById[ingredient.data.id].sold = ingredientsById[ingredient.data.id].sold || 0;\n ingredientsById[ingredient.data.id].sold += quantity;\n return ingredientsById;\n}\n\nfunction ingredientsWithSoldTotalReducer(menu) {\n return (\n menu\n // compose an array with each occurrence of an ingredient in a recipe and the total quantity\n .map(computeSoldIngredientTotal)\n .flat()\n // cluster the occurrences of the same ingredient by ingredient Id\n .reduce(aggregateIngredientSoldTotals, {})\n );\n}\n\nfunction computeIngredientDeliveryDisplay(ingredient) {\n const { soldDisplay } = ingredient;\n\n return `${soldDisplay} ${computeIngredientPacksDeliveryDisplay(ingredient)}`;\n\n /* ------- IMPL ------- */\n function isMissing(value) {\n return value === null || value === undefined;\n }\n\n function isInvalidSize(value) {\n return isMissing(value) || typeof value !== \"number\" || value <= 0;\n }\n\n function isMissingSubSubPack(ingredient) {\n const {\n subSubDpsPack,\n data: { subDpsPackSize },\n } = ingredient;\n return isMissing(subSubDpsPack) && isInvalidSize(subDpsPackSize);\n }\n\n function computeIngredientPacksDeliveryDisplay(ingredient) {\n if (isMissingSubSubPack(ingredient)) {\n return computeWithoutSubSubPack(ingredient);\n }\n return computeWithSubSubPack(ingredient);\n\n /* ------- IMPL ------- */\n function computeWithoutSubSubPack(ingredient) {\n const {\n sold,\n dpsPack,\n data: { dpsPackSize, useSubPack, ratio },\n } = ingredient;\n\n // since 3rd package doesn't exist and the 2nd one should be used, nothing should be displayed\n if (useSubPack) {\n return \"\";\n }\n\n const packTotal = roundOffSeason((sold * (ratio || 1)) / dpsPackSize);\n return `(${packTotal} ${plural(packTotal, dpsPack.data.name)})`;\n }\n\n function computeWithSubSubPack(ingredient) {\n const {\n sold,\n dpsPack,\n subDpsPack,\n data: { dpsPackSize, subDpsPackSize, useSubPack, ratio },\n } = ingredient;\n\n // ignore the main pack and divide by the secondary one only\n const packSize = dpsPackSize * subDpsPackSize;\n let packsSold = Math.floor((sold * (ratio || 1)) / packSize);\n const packsSoldRemainder = sold - packsSold * packSize;\n let subPacksSold = roundOffSeason(packsSoldRemainder / dpsPackSize);\n\n if (useSubPack) {\n subPacksSold += packsSold * dpsPackSize;\n packsSold = 0;\n }\n\n if (packsSold === 0) {\n // display only subPacks\n return `(${subPacksSold} ${plural(subPacksSold, subDpsPack.data.name)})`;\n }\n\n if (subPacksSold === 0) {\n // display only packs\n return `(${packsSold} ${plural(packsSold, dpsPack.data.name)})`;\n }\n\n // display both packs and subPacks\n return (\n `(${packsSold} ${plural(packsSold, dpsPack.data.name)}` +\n \" and \" +\n `${subPacksSold} ${plural(subPacksSold, subDpsPack.data.name)})`\n );\n }\n }\n}\n\n// gets the smallest pack type and the total quantity sold as a string for display\nfunction extractIngredientsDelivery(menu, packsById) {\n const ingredientsWithSoldTotal = ingredientsWithSoldTotalReducer(menu);\n\n // attach packs\n Object.keys(ingredientsWithSoldTotal).forEach((ingredientId) => {\n let ingredient = ingredientsWithSoldTotal[ingredientId];\n ingredient.dpsPack = packsById[ingredient.data.dpsPackId];\n ingredient.subDpsPack = packsById[ingredient.data.subDpsPackId];\n ingredient.subSubDpsPack = packsById[ingredient.data.subSubDpsPackId];\n ingredient.soldPack =\n ingredient.subSubDpsPack ?? ingredient.subDpsPack ?? ingredient.dpsPack;\n const ratioDisplay = ingredient.data.ratio ? `${ingredient.data.ratio} * ` : \"\";\n ingredient.soldDisplay = `${ratioDisplay}${roundOffSeason(ingredient.sold)} ${\n ingredient?.soldPack?.data?.name || \"Unknown\"\n }`;\n ingredient.deliveryDisplay = computeIngredientDeliveryDisplay(ingredient);\n ingredientsWithSoldTotal[ingredientId] = ingredient;\n });\n\n return Object.values(ingredientsWithSoldTotal);\n}\n\nfunction getRestaurantRecipients(restaurant, recipients) {\n return recipients[restaurant.data.id];\n}\n\nconst DeliveryDpsUtils = {\n extractIngredientsDelivery,\n loadData,\n isValidState,\n getRestaurantRecipients,\n};\n\nexport default DeliveryDpsUtils;\n","import React, { useContext, useEffect } from \"react\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport AppUtilsService from \"../../../services/AppUtilsService\";\nimport { AppContext } from \"../../../context/AppContext\";\n\nconst DeliveryDpsRestaurantSelector = ({ state, setState }) => {\n const { appState } = useContext(AppContext);\n\n useEffect(() => {}, [appState.section.name]);\n\n if (!appState?.section?.name) {\n return
;\n }\n\n const onSelectRestaurant = (event) => {\n const restaurant = event.target.value;\n AppUtilsService.setRestaurant(\n appState.section.name,\n \"pull\",\n restaurant,\n state.config.router\n );\n setState((prevState) => {\n return { ...prevState, restaurant };\n });\n };\n\n return (\n \n \n {Object.values(state.restaurants).map((restaurant, index) => (\n \n {restaurant.data.name}\n \n ))}\n \n \n );\n};\n\nexport default DeliveryDpsRestaurantSelector;\n","function DeliveryDpsEmailDataPreview(notesToKitchenManager, ingredients) {\n const rowStyle = \"\";\n const cellStyle = \"padding: 4px 8px\";\n\n const buildRow = (name, deliveryDisplay) => {\n const buildCell = (data) => {\n return `\n ${data}\n `;\n };\n\n return `\n \n ${buildCell(name)}\n ${buildCell(deliveryDisplay)}\n \n `;\n };\n\n const body = ingredients\n .map(({ data: { name }, sold, deliveryDisplay }) =>\n sold ? buildRow(name, deliveryDisplay) : \"\"\n )\n .reduce((a, c) => (a += c), \"\");\n\n return `\n \n \n
\n

\n Notes to Kitchen Manager\n

\n

${notesToKitchenManager || \"\"}

\n
\n
\n \n \n \n \n \n ${body}\n

Item

Total Pulled

\n

\n REPLY TO THIS EMAIL WITH ANY\n
    \n
  • FOOD QUALITY ISSUES
  • \n
  • STAFFING CONCERNS
  • \n
  • EQUIPMENT/MAINTENANCE NEEDS
  • \n
  • etc.
  • \n
\n FOR COMMISSARY\n
\n

\n

\n \n \n `;\n}\n\nexport default DeliveryDpsEmailDataPreview;\n","import React, { useContext, useState } from \"react\";\nimport deliveryDpsStyles from \"./DeliveryDps.module.css\";\nimport Button from \"@material-ui/core/Button\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\nimport DeliveryDpsRestaurantSelector from \"./DeliveryDpsRestaurantSelector\";\nimport { Dialog, DialogActions, DialogContent, DialogTitle, TextField } from \"@material-ui/core\";\nimport DeliveryDpsEmailDataPreview from \"./email/DeliveryDpsEmailDataPreview\";\nimport DeliveryDpsUtils from \"./DeliveryDpsUtils\";\nimport { useGlobalSpinnerActionsContext } from \"../../../components/global-spinner/GlobalSpinnerContext\";\nimport { AppContext } from \"../../../context/AppContext\";\nimport AppDayModel from \"../../../components/day/AppDayModel\";\nimport AppEmailService from \"../../../services/AppEmailService\";\n\nfunction DeliveryDpsHeader({ state, setState, ingredients }) {\n const { appState } = useContext(AppContext);\n const [notesToKitchenManager, setNotesToKitchenManager] = useState(null);\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n\n let recipients = DeliveryDpsUtils.getRestaurantRecipients(state.restaurant, state.recipients);\n const date = AppDayModel.getTimeDisplay(appState.day.data.time, \"ddd, MMM Do\");\n\n const email = {\n to: [],\n cc: [],\n bcc: [\"dps@ocmdapp.com\"],\n replyTo: [\"dps@ocmdapp.com\", \"commissary@oceancityoffice.com\"],\n sentAt: undefined,\n sentBy: appState.user.name,\n subject: `[${state.restaurant.data.name}] Daily Pull Sheet for ${date}`,\n bodyHTML: DeliveryDpsEmailDataPreview(notesToKitchenManager, ingredients),\n };\n\n const handleEmail = async () => {\n const filterSelectedRecipients = ({ isSelected }) => isSelected;\n const splitValidEmails = ({ data: { email } }) =>\n email.split(/,| /).filter(AppEmailService.validateEmail);\n\n // TODO: insert input validation in Data Editor\n const selectedRecipients = recipients\n .filter(filterSelectedRecipients)\n .map(splitValidEmails)\n .flat();\n email.to = email.to.concat(selectedRecipients).flat();\n email.sentAt = new Date().getTime();\n email.sender = \"dps@ocmdapp.com\";\n\n let response;\n try {\n setGlobalSpinner(true);\n response = await AppEmailService.sendEmail(email);\n response = JSON.parse(response);\n if (response.code !== 200) {\n throw Error(response.body);\n }\n closeSendEmailDialog();\n } catch (e) {\n console.log(\"Error from sending email: \", JSON.stringify(e, null, 2));\n alert(\"Email failed! Please try again!\");\n }\n\n setGlobalSpinner(false);\n\n return response;\n };\n\n const sendEmailDialog = () => setIsDialogOpen(true);\n\n const closeSendEmailDialog = () => setIsDialogOpen(false);\n\n const updateNotesToKitchenManager = (event) => setNotesToKitchenManager(event.target.value);\n\n const onRecipientsChange = (event, value) => {\n // only those recipients that are in \"value\" are \"isSelected\"\n recipients = recipients.map((recipient) => {\n recipient.isSelected = !!value.find(\n (element) => element?.data?.name === recipient?.data?.name\n );\n return recipient;\n });\n return value;\n };\n\n return (\n
\n
\n \n
\n
\n \n
\n {}}\n aria-labelledby=\"customized-dialog-title\"\n open={isDialogOpen}\n >\n {}}>\n \n {`${email.subject}`}\n \n
\n \n \n option.data.name}\n defaultValue={recipients.filter((r) => r?.data.isSubscribed)}\n filterSelectedOptions\n onChange={onRecipientsChange}\n renderInput={(params) => (\n \n )}\n />\n \n
\n \n \n \n \n \n
\n );\n}\n\nexport default DeliveryDpsHeader;\n","import React from \"react\";\nimport deliveryDpsStyles from \"./DeliveryDps.module.css\";\n\nfunction DeliveryDpsContent({ ingredients }) {\n return (\n
\n
\n ITEM\n PROJECTED\n PULL\n
\n {ingredients\n .filter(({ sold }) => !!sold)\n .map(({ data: { name }, soldDisplay, deliveryDisplay }) => (\n
\n {name}\n {soldDisplay}\n {deliveryDisplay}\n
\n ))}\n
\n );\n}\n\nexport default DeliveryDpsContent;\n","import React, { useContext, useEffect, useState } from \"react\";\nimport deliveryDpsStyles from \"./DeliveryDps.module.css\";\nimport { AppContext } from \"../../../context/AppContext\";\nimport { useGlobalSpinnerActionsContext } from \"../../../components/global-spinner/GlobalSpinnerContext\";\nimport DeliveryDpsUtils from \"./DeliveryDpsUtils\";\nimport DeliveryDpsHeader from \"./DeliveryDpsHeader\";\nimport DeliveryDpsContent from \"./DeliveryDpsContent\";\nimport AppDayModel from \"../../../components/day/AppDayModel\";\n\nfunction DeliveryDps({ history, location }) {\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n const { appState } = useContext(AppContext);\n const [state, setState] = useState({\n restaurants: null,\n restaurant: null,\n packsById: {},\n config: {\n router: {\n history,\n location,\n },\n },\n });\n\n useEffect(() => {\n DeliveryDpsUtils.loadData(\n setGlobalSpinner,\n setState,\n appState.user.groups,\n appState.day,\n appState.user.name,\n appState.section.name,\n state.config.router\n );\n }, [appState.day]);\n\n if (!DeliveryDpsUtils.isValidState(state)) {\n return
;\n }\n\n const ingredients = DeliveryDpsUtils.extractIngredientsDelivery(\n state.restaurant?.menu || [],\n state.packsById || {}\n );\n\n return (\n
\n \n \n
\n );\n}\n\nexport default DeliveryDps;\n","import React from \"react\";\nimport { BiFridge } from \"react-icons/bi\";\n\nconst DeliveryDpsMenuItem = (name: string) => {\n return [\n ,\n
\n {name}\n
,\n ];\n};\n\nexport default DeliveryDpsMenuItem;\n","import React, { useContext } from \"react\";\nimport { DataEditorProvider } from \"../../data-editor/context/DataEditorContext\";\nimport DataEditor from \"../../data-editor/DataEditor\";\nimport { AppRestaurant } from \"../../admin/AdminResources\";\nimport {\n AppDpsIngredient,\n AppDpsMenuItem,\n AppDpsMenuItemSale,\n AppDpsRecipeItem,\n AppDpsMenuItemSaleMeta,\n AppDpsPack,\n AppDpsEmail,\n AppDpsEmailRecipient,\n} from \"../DpsResources\";\nimport { DataEditorResource } from \"../../data-editor/types/DataEditorTypes\";\nimport { AppContext } from \"../../../context/AppContext\";\nimport AppUserGroups from \"../../../services/AppUserGroups\";\n\nconst DataEditorDps = (props: any) => {\n const { appState } = useContext(AppContext);\n const { history, location } = props;\n\n let resources = [];\n\n const adminResources = [\n new DataEditorResource(AppDpsIngredient, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppDpsMenuItem, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppDpsRecipeItem, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppDpsPack, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppDpsEmail, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppDpsEmailRecipient, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppDpsMenuItemSale, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppDpsMenuItemSaleMeta, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppRestaurant, { isVisibleInDataEditor: false }),\n ];\n\n const nonAdminResources: DataEditorResource[] = [\n new DataEditorResource(AppDpsIngredient, { isVisibleInDataEditor: true }),\n new DataEditorResource(AppDpsPack, { isVisibleInDataEditor: false }),\n new DataEditorResource(AppRestaurant, { isVisibleInDataEditor: false }),\n ];\n\n if (AppUserGroups.hasAdminAccess(appState.user.groups)) {\n resources = adminResources;\n } else {\n resources = nonAdminResources;\n }\n\n return (\n \n \n \n );\n};\n\nexport default DataEditorDps;\n","import React from \"react\";\nimport { FiEdit } from \"react-icons/fi\";\n\nconst DataEditorDpsMenuItem = (name: string) => {\n return [\n ,\n
\n {name}\n
,\n ];\n};\n\nexport default DataEditorDpsMenuItem;\n","import { ContainerConfigSection } from \"./../ContainerConfigSection\";\nimport ContainerConfigBuilder from \"../ContainerConfigBuilder\";\nimport { ContainerPaths } from \"../ContainerPaths\";\nimport {\n ADMINS,\n DATA_EDITOR_USERS,\n KITCHEN_DELIVERY_USERS,\n ORDERS_DELIVERY_USERS,\n} from \"../../services/AppUserGroupsData\";\nimport DeliveryDps from \"./delivery/DeliveryDps\";\nimport DeliveryDpsMenuItem from \"./delivery/DeliveryDpsMenuItem\";\nimport DataEditorDps from \"./data-editor/DataEditorDps\";\nimport DataEditorDpsMenuItem from \"./data-editor/DataEditorDpsMenuItem\";\n\nexport const DpsContainerConfig: ContainerConfigSection = {\n Delivery: new ContainerConfigBuilder(\"Pull\")\n .setPath(ContainerPaths.PULL)\n .setUserAccess([ORDERS_DELIVERY_USERS, KITCHEN_DELIVERY_USERS, ADMINS])\n .setComponent(DeliveryDps)\n .setMenuItem(DeliveryDpsMenuItem)\n .build(),\n DataEditor: new ContainerConfigBuilder(\"Editor\")\n .setPath(ContainerPaths.EDITOR)\n .setUserAccess([DATA_EDITOR_USERS, ADMINS])\n .setComponent(DataEditorDps)\n .setMenuItem(DataEditorDpsMenuItem)\n .build(),\n};\n","import { ADMINS, DEVS, KITCHEN_USERS, MANAGERS } from \"../../services/AppUserGroupsData\";\nimport { MenusContainerConfig } from \"../menus-sales/MenusContainerConfig\";\nimport { SectionNames } from \"../sections/SectionNames\";\nimport { UserGroupType } from \"./../../services/AppUserGroupsData\";\nimport { ContainerConfig } from \"./../ContainerConfig\";\nimport { DpsContainerConfig } from \"./DpsContainerConfig\";\nimport { DpsSection } from \"./DpsSection\";\n\nconst dpsSectionPages: ContainerConfig[] = [\n DpsContainerConfig.Delivery,\n MenusContainerConfig,\n DpsContainerConfig.DataEditor,\n];\n\nconst dpsSectionAllowedUserGroups: UserGroupType[] = [MANAGERS, KITCHEN_USERS, ADMINS, DEVS];\n\nconst isDpsSectionDisabled = false;\n\nexport const DpsSectionConfig = new DpsSection(\n dpsSectionPages,\n SectionNames.DPS,\n dpsSectionAllowedUserGroups,\n isDpsSectionDisabled\n);\n","import React from \"react\";\nimport { BiFridge } from \"react-icons/bi\";\nimport {\n ADMINS,\n DEVS,\n KITCHEN_USERS,\n MANAGERS,\n UserGroupType,\n} from \"../../services/AppUserGroupsData\";\nimport ContainerBasePaths from \"../ContainerBasePaths\";\nimport { ContainerConfig } from \"../ContainerConfig\";\nimport { AppHomeContainerConfig } from \"../home/AppHomeContainerConfig\";\nimport { MenusContainerConfig } from \"../menus-sales/MenusContainerConfig\";\nimport { Section } from \"../sections/Section\";\nimport { DpsContainerConfig } from \"./DpsContainerConfig\";\n\nexport class DpsSection extends Section {\n renderIcon(disabled: boolean) {\n return ;\n }\n\n renderHeaderIcon() {\n return ;\n }\n\n renderHomeIcon() {\n return ;\n }\n\n getDefaultPath(userGroups: UserGroupType[]) {\n if (userGroups.includes(DEVS)) {\n return DpsContainerConfig.DataEditor.url;\n }\n\n if (userGroups.includes(ADMINS) || userGroups.includes(MANAGERS)) {\n return MenusContainerConfig.url;\n }\n\n if (userGroups.includes(KITCHEN_USERS)) {\n return AppHomeContainerConfig.url;\n }\n\n console.error(\"Couldn't match the user to any known section pages\", userGroups);\n return super.getDefaultPath(userGroups);\n }\n\n constructor(\n pages: ContainerConfig[],\n name: string,\n allowedGroups: UserGroupType[],\n disabled: boolean\n ) {\n super(pages, name, allowedGroups, disabled, ContainerBasePaths.DPS);\n }\n}\n","import onHandStatusStyles from \"./OnHandStatus.module.css\";\n\nfunction getDisplay(status, isTransactionalOnHand = false) {\n if (isTransactionalOnHand) {\n return \"\";\n }\n switch (status) {\n case 0:\n return \"Not Started\";\n case 1:\n return \"In Progress...\";\n case 2:\n return \"Completed!\";\n default:\n return \"Invalid\";\n }\n}\n\nfunction getClassName(status) {\n switch (status) {\n case 0:\n return onHandStatusStyles.Invalid;\n case 1:\n return onHandStatusStyles.InProgress;\n case 2:\n return onHandStatusStyles.Done;\n default:\n return \"Invalid\";\n }\n}\n\nfunction isCompleted({ status }) {\n return Math.floor(status / 2);\n}\n\nfunction compute(restaurants) {\n Object.values(restaurants).forEach((restaurant) => {\n restaurant.groups.forEach((group) => {\n group.items.forEach((item) => item.updateStatus());\n group.updateStatus(getItemsStatus(group.items));\n });\n restaurant.updateStatus(getItemsStatus(restaurant.groups));\n });\n\n return getItemsStatus(Object.values(restaurants));\n\n /* ---------- IMPL ---------- */\n function getItemsStatus(items) {\n if (!items || items.constructor !== Array || items.length === 0) {\n return -1;\n }\n if (items.length === 0) {\n return 2;\n }\n if (items.length === 1) {\n return items[0].status;\n }\n return (\n items.map(isCompleted).reduce(andReducer, true) +\n items.map(isCompleted).reduce(orReducer, false)\n );\n }\n\n function andReducer(acc, status) {\n acc = acc && !!status;\n return acc;\n }\n\n function orReducer(acc, status) {\n acc = acc || !!status;\n return acc;\n }\n}\n\nconst OnHandStatus = {\n getDisplay,\n getClassName,\n compute,\n isCompleted,\n};\n\nexport default OnHandStatus;\n","const TRANSACTIONAL = \"TRANSACTIONAL\";\nconst INVENTORY = \"INVENTORY\";\n\nexport { TRANSACTIONAL, INVENTORY };\n","import { TRANSACTIONAL } from \"../models/OnHandTypes\";\n\nexport default async function OnHandResolver(\n day,\n userName,\n sectionName,\n userGroups,\n context,\n useMocks = false\n) {\n if (context.type === TRANSACTIONAL) {\n await context.loadDataTransactional(userGroups);\n } else {\n await context.loadDataInventory(\n day,\n userName,\n sectionName,\n userGroups,\n context.inventoryMetaResource,\n useMocks\n );\n }\n\n await context.loadDependencies(day, userName, sectionName, useMocks);\n\n context.buildDataHierarchy(sectionName);\n\n return context.restaurantsById;\n}\n","const OnHandActions = {\n LOAD_DATA: \"LOAD_DATA\",\n LOAD_DATA_TASK: \"LOAD_DATA_TASK\",\n CHANGE_RESTAURANT: \"CHANGE_RESTAURANT\",\n CHANGE_VIEW: \"CHANGE_VIEW\",\n TOGGLE_GROUP_SELECTION: \"TOGGLE_GROUP_SELECTION\",\n CHANGE_ITEM: \"CHANGE_ITEM\",\n GO_TO_PREV_ITEM: \"GO_TO_PREV_ITEM\",\n GO_TO_NEXT_ITEM: \"GO_TO_NEXT_ITEM\",\n GO_TO_PREV_ITEM_TASKS: \"GO_TO_PREV_ITEM_TASKS\",\n GO_TO_NEXT_ITEM_TASKS: \"GO_TO_NEXT_ITEM_TASKS\",\n INVENTORY_ATTACH: \"INVENTORY_ATTACH\",\n INVENTORY_UPDATE: \"INVENTORY_UPDATE\",\n DELIVERY_TRANSACTION_UPDATE: \"DELIVERY_TRANSACTION_UPDATE\",\n STOCKING_TRANSACTION_UPDATE: \"STOCKING_TRANSACTION_UPDATE\",\n DELIVERY_TRANSACTION_RESET: \"DELIVERY_TRANSACTION_RESET\",\n STOCKING_TRANSACTION_RESET: \"STOCKING_TRANSACTION_RESET\",\n LOCK_SUBMISSION: \"LOCK_SUBMISSION\",\n UNLOCK_SUBMISSION: \"UNLOCK_SUBMISSION\",\n SUBMIT_SELECTED_ITEM: \"SUBMIT_SELECTED_ITEM\",\n SUBMIT_SELECTED_DELIVERY_ITEM: \"SUBMIT_SELECTED_DELIVERY_ITEM\",\n SUBMIT_SELECTED_STOCKING_ITEM: \"SUBMIT_SELECTED_STOCKING_ITEM\",\n CONFIRM_CHANGES: \"CONFIRM_CHANGES\",\n REJECT_CHANGES: \"REJECT_CHANGES\",\n TOGGLE_LOCK: \"TOGGLE_LOCK\",\n SYNC: \"SYNC\",\n SELECT_ITEM_FROM_TASK: \"SELECT_ITEM_FROM_TASK\",\n};\n\nexport default OnHandActions;\n","function isValidRestaurant(restaurant) {\n return restaurant && restaurant.data && restaurant.data.id && restaurant.data.name;\n}\n\nfunction hasValidSelectedRestaurant(onHandState) {\n return (\n onHandState &&\n onHandState.restaurants &&\n isValidRestaurant(onHandState.restaurant) &&\n onHandState.restaurants[onHandState.restaurant.data.id]\n );\n}\n\nfunction isValidGroup(group) {\n if (!group) {\n console.info(\"Invalid group!\");\n return false;\n }\n\n const { data, item, status } = group;\n\n if (!data) {\n console.info(\"Invalid group data!\");\n return false;\n }\n\n if (typeof status !== \"number\") {\n console.info(\"Invalid group status!\");\n return false;\n }\n\n const { name } = data;\n\n if (!name) {\n console.info(\"Invalid group name!\");\n return false;\n }\n\n return true;\n}\n\nfunction isEmptyGroup(group) {\n return !isValidGroup(group) || group.items.every((item) => item.inventory.mock);\n}\n\nfunction hasValidGroups(onHandState) {\n const isValidSelectedRestaurant = hasValidSelectedRestaurant(onHandState);\n const isValidGroupsFormat = Array.isArray(onHandState.restaurant.groups);\n const areValidGroups = onHandState.restaurant.groups.every(isValidGroup);\n\n return isValidSelectedRestaurant && isValidGroupsFormat && areValidGroups;\n}\n\nfunction hasValidItemInventory(onHandState) {\n return !!onHandState?.restaurant?.group?.item?.inventory?.data;\n}\n\nconst OnHandContextValidator = {\n hasValidSelectedRestaurant,\n isValidGroup,\n isEmptyGroup,\n hasValidGroups,\n hasValidItemInventory,\n};\n\nexport default OnHandContextValidator;\n","import queryString from \"query-string\";\nimport AppDayModel from \"../../components/day/AppDayModel\";\nimport { retry } from \"../../resources/ResourcesService\";\nimport { TRANSACTIONAL } from \"./models/OnHandTypes\";\n\nfunction isSelectedByName(onHandState, name) {\n return onHandState?.restaurant?.group?.item?.data?.name === name;\n}\n\nfunction isSelectedByAlias(onHandState, name) {\n return onHandState?.restaurant?.group?.item?.data?.onHandAlias === name;\n}\n\nfunction isSelectedItem(onHandState, currItem) {\n if (\n !(\n onHandState.restaurant &&\n onHandState.restaurant.group &&\n onHandState.restaurant.group.item\n )\n ) {\n return false;\n }\n const {\n restaurant: {\n group: {\n item: { data },\n },\n },\n } = onHandState;\n const {\n data: { id },\n } = currItem;\n return data.id === id;\n}\n\nfunction isReadOnly(restaurant, day) {\n if (restaurant.unlocked) {\n return false;\n }\n\n const isNew = AppDayModel.getPrevDayUnixTime() <= day.data.time;\n const isUnlocked = restaurant?.inventoryMeta?.data?.status === \"UNLOCKED\";\n\n return !isNew || !isUnlocked;\n}\n\nfunction getLocalStorageConfig(sectionName, restaurantAlias, dayTime) {\n return {\n key: `${sectionName}OnHand${restaurantAlias}`,\n subKey: dayTime,\n };\n}\n\nfunction getLocalObj(key) {\n return JSON.parse(localStorage.getItem(key));\n}\n\nfunction getDefaultLocalObj(subKey) {\n return {\n [subKey]: { expires: AppDayModel.getCurrentUnixTime() + AppDayModel.WEEK_UNIX, items: [] },\n };\n}\n\nfunction persistOnHandItem({ key, subKey }, item) {\n try {\n const localObj = getLocalObj(key);\n const content = localObj?.[subKey] ? localObj : getDefaultLocalObj(subKey);\n content[subKey].items.push(item);\n\n localStorage.setItem(key, JSON.stringify(content));\n } catch (e) {\n console.error(\"Failed to persist locally!\", JSON.stringify(e, null, 2));\n }\n}\n\nfunction getLocalItems({ key, subKey }) {\n return getLocalObj(key)?.[subKey]?.items || [];\n}\n\nfunction persistInventoryLocally(data, sectionName, restaurantAlias, dayTime) {\n try {\n persistOnHandItem(getLocalStorageConfig(sectionName, restaurantAlias, dayTime), data);\n } catch (e) {\n console.error(\"Failed to persist item locally!\");\n }\n}\n\nfunction persistInventoryLocallyWrp(appState, onHandState, inventory) {\n return persistInventoryLocally(\n inventory.data,\n appState?.section?.name,\n onHandState?.restaurant?.data?.alias,\n appState?.day?.time\n );\n}\n\nfunction prepInventoryForSubmission(inventory, appState) {\n return {\n ...inventory,\n dirty: true,\n mock: undefined,\n data: {\n ...inventory.data,\n quantity: inventory.data.quantity || 0,\n lastUpdatedBy: appState?.user?.name,\n lastUpdatedAt: AppDayModel.getCurrentUnixTime(),\n },\n };\n}\n\nfunction buildInventory(appState, onHandState) {\n // extract required inventory variables\n let inventory = onHandState?.restaurant?.group?.item?.inventory;\n\n // validate required variables\n if (!inventory || !inventory.data) {\n console.error(\n \"Something went wrong! \\nNo inventory or inventory resource object was attached!\"\n );\n return null;\n }\n\n // update inventory metadata\n inventory = prepInventoryForSubmission(inventory, appState);\n\n // persist locally the updated inventory\n persistInventoryLocallyWrp(appState, onHandState, inventory);\n\n return inventory;\n}\n\nasync function handleSubmit(onHandState, submitSelectedItem, inventory) {\n const inventoryResource = onHandState?.config?.context?.inventoryResource;\n\n // validate required variables\n if (!inventoryResource) {\n console.error(\n \"Something went wrong! \\nNo inventory or inventory resource object was attached!\"\n );\n return null;\n }\n\n // persist to dynamo db, with retries\n try {\n await retry(async () => {\n await inventoryResource.getModel().api.create(inventory.data);\n });\n } catch (e) {\n console.error(e.message);\n console.error(\"Failed to persist item!\");\n }\n\n // save the modification for item in the context\n return submitSelectedItem(onHandState, inventory);\n}\n\nasync function handleSubmitTransaction(onHandState, submitSelectedItemTransaction, transaction) {\n const transactionResource = onHandState?.config?.context?.transactionResource;\n\n // validate required variables\n if (!transactionResource) {\n console.error(\n \"Something went wrong! \\nNo transaction or transaction resource object was attached!\"\n );\n return null;\n }\n\n // persist to dynamo db, with retries\n try {\n await retry(async () => {\n await transactionResource.getModel().api.create(transaction.data);\n });\n } catch (e) {\n console.error(e.message);\n console.error(\"Failed to persist item!\");\n }\n\n // save the modification for item in the context\n return submitSelectedItemTransaction(onHandState, transaction);\n}\n\n// TODO: add extra data description - depending on section\nfunction extractCompletedItem(item) {\n return item?.inventory?.data;\n}\n\nfunction extractCompletedInventories(groups) {\n return groups.reduce((acc, group) => {\n const completedInventories = group.items\n .filter(({ inventory: { mock } }) => !mock)\n .map(extractCompletedItem);\n acc = acc.concat(completedInventories);\n return acc;\n }, []);\n}\n\nfunction isOnHandBelowAlert(alertThreshold, inventoryQuantity) {\n return alertThreshold >= inventoryQuantity;\n}\n\nfunction isTransactionalOnHand(config) {\n return config?.context?.type === TRANSACTIONAL;\n}\n\nfunction loadPersistedView(router, views) {\n if (!views) {\n return null;\n }\n // load from URL\n const urlModeAlias = queryString.parse(router.location.search).view;\n const viewFromUrl = views.all.find(({ name }) => name === urlModeAlias);\n\n if (viewFromUrl) {\n return viewFromUrl;\n }\n\n // load from local key\n const localViewAlias = localStorage.getItem(views?.localKey);\n const viewFromLocal = views.all.find(({ name }) => name === localViewAlias);\n\n if (viewFromLocal) {\n return viewFromLocal;\n }\n\n return views.default;\n}\n\nfunction persistView(view, router, views) {\n // add to local storage\n localStorage.setItem(views.localKey, view.name);\n}\n\nconst OnHandUtils = {\n isSelectedByName,\n isSelectedByAlias,\n isSelectedItem,\n isReadOnly,\n getLocalStorageConfig,\n getLocalItems,\n buildInventory,\n handleSubmit,\n handleSubmitTransaction,\n extractCompletedItem,\n extractCompletedInventories,\n isOnHandBelowAlert,\n isTransactionalOnHand,\n loadPersistedView,\n persistView,\n};\n\nexport default OnHandUtils;\n","import { DataEditorState } from \"../data-editor/types/DataEditorTypes\";\nimport {\n OffSiteAlert,\n OffSiteArea,\n OffSiteItem,\n OffSiteTransaction,\n OffSiteUnit,\n} from \"../../graphql/API\";\nimport { Model } from \"../../model/Model\";\nimport { ModelConfig } from \"../../model/ModelConfig\";\nimport { ResourceColumnNumber } from \"../../resources/columns/ResourceColumnNumber\";\nimport { ResourceColumnSelect } from \"../../resources/columns/select/ResourceColumnSelect\";\nimport { ResourceColumnText } from \"../../resources/columns/ResourceColumnText\";\nimport { Resource } from \"../../resources/Resource\";\n\n/* ---------- AppOffSiteTransactionTypes ---------- */\nconst AppOffSiteTransactionTypes = {\n DELIVERY: \"DELIVERY\",\n STOCKING: \"STOCKING\",\n CORRECTION: \"CORRECTION\",\n};\n\n/* ---------- AppOffSiteTransactionStatuses ---------- */\nexport type OffSiteTransactionStatuses = {\n PENDING: \"PENDING\";\n CANCELLED: \"CANCELLED\";\n LOADED: \"LOADED\";\n TRANSIT: \"TRANSIT\";\n COMPLETED: \"COMPLETED\";\n};\n\nconst AppOffSiteTransactionStatuses: { [key: string]: keyof OffSiteTransactionStatuses } = {\n PENDING: \"PENDING\",\n CANCELLED: \"CANCELLED\",\n LOADED: \"LOADED\",\n TRANSIT: \"TRANSIT\",\n COMPLETED: \"COMPLETED\",\n};\n\n/* ---------- AppOffSiteAlertStatuses ---------- */\nconst AppOffSiteAlertStatuses = {\n PENDING: \"PENDING\",\n CANCELLED: \"CANCELLED\",\n COMPLETED: \"COMPLETED\",\n};\n\n/* ---------- AppOffSiteAlertLocalTypes ---------- */\nconst AppOffSiteAlertLocalTypes = {\n OPEN: \"OPEN\",\n SNOOZED: \"SNOOZED\",\n COMPLETED: \"COMPLETED\",\n OTHER: \"OTHER\",\n};\n\n/* ---------- AppOffSiteItem ---------- */\nconst appOffSiteItem = new Model(\n new ModelConfig(\n \"OffSiteItem\",\n 10000,\n 200,\n \"offSiteItem\",\n \"Items\",\n \"OffSiteItem\",\n \"offSiteItemId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnText(\"name\", \"Name\")\n .setVisible()\n .setEditable()\n .setWidth(\"M\")\n .setKey(),\n new ResourceColumnSelect(\"offSiteAreaId\", \"Area\")\n .setKey()\n .setVisible()\n .setSortCallback((a: any, b: any) => parseInt(a) - parseInt(b))\n .setWidth(\"M\"),\n new ResourceColumnSelect(\"offSiteSubUnitId\", \"Sub-Unit\")\n .setVisible()\n .setResourceRefKeyAlias(\"offSiteUnitId\")\n .setEditable()\n .setWidth(\"S\")\n .setOptional(),\n new ResourceColumnNumber(\"conversion\", \"conv.\")\n .setVisible()\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnSelect(\"offSiteUnitId\", \"Unit\")\n .setVisible()\n .setResourceRefKeyAlias(\"offSiteUnitId\")\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"alertThreshold\", \"Alert\")\n .setVisible()\n .setOptional()\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnNumber(\"par\", \"Par\").setVisible().setEditable().setWidth(\"S\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setVisible()\n .setHideOnAdd()\n .setEditable()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a: any, b: any) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"Updated By\").setOptional(),\n new ResourceColumnNumber(\"lastUpdatedAt\", \"Update Time\").setOptional(),\n ]\n )\n);\n\nclass AppOffSiteItem extends Resource {\n static getModel(): Model {\n return appOffSiteItem;\n }\n\n getModel(): Model {\n return appOffSiteItem;\n }\n\n constructor(data: OffSiteItem) {\n super(data, appOffSiteItem);\n }\n}\n\n/* ---------- OffSiteArea ---------- */\nclass AppOffSiteAreaModel extends Model {\n refDisplay(data: any, dataEditorState?: DataEditorState) {\n if (dataEditorState) {\n return super.refChainDisplay(data, dataEditorState, \"restaurantId\");\n }\n return super.refDisplay(data);\n }\n}\n\nconst appOffSiteAreaModel = new AppOffSiteAreaModel(\n new ModelConfig(\n \"OffSiteArea\",\n 1000,\n 200,\n \"offSiteAreas\",\n \"Areas\",\n \"OffSiteArea\",\n \"offSiteAreaId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnSelect(\"restaurantId\", \"Location\")\n .setKey()\n .setSortCallback((a: any, b: any) => parseInt(a) - parseInt(b))\n .setVisible()\n .setWidth(\"S\"),\n new ResourceColumnText(\"name\", \"Name\").setVisible().setEditable().setWidth(\"M\"),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a: any, b: any) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"Updated By\").setOptional(),\n new ResourceColumnNumber(\"lastUpdatedAt\", \"Update Time\").setOptional(),\n ]\n )\n);\n\nclass AppOffSiteArea extends Resource {\n static getModel(): AppOffSiteAreaModel {\n return appOffSiteAreaModel;\n }\n\n getModel(): AppOffSiteAreaModel {\n return appOffSiteAreaModel;\n }\n\n constructor(data: OffSiteArea) {\n super(data, appOffSiteAreaModel);\n }\n}\n\n/* ---------- AppOffSiteUnit ---------- */\nconst appOffSiteUnit = new Model(\n new ModelConfig(\n \"OffSiteUnit\",\n 1000,\n 200,\n \"offSiteUnit\",\n \"Units\",\n \"OffSiteUnit\",\n \"offSiteUnitId\",\n [\n new ResourceColumnText(\"id\", \"Id\").setHideOnAdd().setKey(),\n new ResourceColumnText(\"name\", \"Name\")\n .setVisible()\n .setEditable()\n .setWidth(\"M\")\n .setKey(),\n new ResourceColumnNumber(\"order\", \"#\")\n .setHideOnAdd()\n .setEditable()\n .setVisible()\n .setWidth(\"XS\")\n .setSortDirection(\"ASC\", 0)\n .setSortCallback((a: any, b: any) => parseInt(a) - parseInt(b)),\n new ResourceColumnText(\"lastUpdatedBy\", \"Updated By\").setOptional(),\n new ResourceColumnNumber(\"lastUpdatedAt\", \"Update Time\").setOptional(),\n ]\n )\n);\n\nclass AppOffSiteUnit extends Resource {\n static getModel(): Model {\n return appOffSiteUnit;\n }\n\n getModel(): Model {\n return appOffSiteUnit;\n }\n\n constructor(data: OffSiteUnit) {\n super(data, appOffSiteUnit);\n }\n}\n\n/* ---------- AppOffSiteTransaction ---------- */\nconst appOffSiteTransaction = new Model(\n new ModelConfig(\n \"OffSiteTransaction\",\n 100000,\n 400,\n \"offSiteTransaction\",\n \"Transactions\",\n \"OffSiteTransaction\",\n \"offSiteTransactionId\",\n [\n new ResourceColumnSelect(\n \"status\",\n \"Status\",\n Object.values(AppOffSiteTransactionStatuses)\n )\n .setVisible()\n .setEditable()\n .setWidth(\"S\"),\n new ResourceColumnSelect(\"type\", \"Type\", Object.values(AppOffSiteTransactionTypes))\n .setVisible()\n .setWidth(\"S\")\n .setKey(),\n new ResourceColumnText(\"offSiteItemId\", \"Item\").setVisible().setKey().setWidth(\"M\"),\n new ResourceColumnNumber(\"quantity\", \"Qty\").setVisible().setEditable().setWidth(\"XS\"),\n new ResourceColumnSelect(\"restaurantId\", \"Rest.\").setVisible().setWidth(\"XS\"),\n new ResourceColumnText(\"createdAt\", \"Created\")\n .setVisible()\n .setKey()\n .setWidth(\"M\")\n .setSortDirection(\"DESC\", 0),\n new ResourceColumnText(\"createdBy\", \"By\").setVisible().setWidth(\"XS\"),\n ]\n )\n);\n\nclass AppOffSiteTransaction extends Resource {\n static getModel(): Model {\n return appOffSiteTransaction;\n }\n\n getModel(): Model {\n return appOffSiteTransaction;\n }\n\n constructor(data: OffSiteTransaction) {\n super(data, appOffSiteTransaction);\n }\n}\n\n/* ---------- AppOffSiteAlert ---------- */\nconst appOffSiteAlert = new Model(\n new ModelConfig(\n \"OffSiteAlert\",\n 100000,\n 400,\n \"offSiteAlert\",\n \"Alerts\",\n \"OffSiteAlert\",\n \"offSiteAlertId\",\n [\n new ResourceColumnText(\"offSiteItemId\", \"Item\").setVisible().setKey().setWidth(\"M\"),\n new ResourceColumnSelect(\"status\", \"Status\", Object.values(AppOffSiteAlertStatuses))\n .setVisible()\n .setWidth(\"S\"),\n new ResourceColumnText(\"createdAt\", \"Created At\")\n .setVisible()\n .setKey()\n .setWidth(\"M\")\n .setSortDirection(\"DESC\", 0),\n new ResourceColumnText(\"snoozedUntil\", \"Snoozed Until\").setVisible().setWidth(\"M\"),\n new ResourceColumnText(\"message\", \"Message\").setVisible().setWidth(\"S\"),\n new ResourceColumnText(\"createdBy\", \"Created By\").setVisible().setWidth(\"S\"),\n ]\n )\n);\n\nclass AppOffSiteAlert extends Resource {\n static getModel(): Model {\n return appOffSiteAlert;\n }\n\n getModel(): Model {\n return appOffSiteAlert;\n }\n\n constructor(data: OffSiteAlert) {\n super(data, appOffSiteAlert);\n }\n}\n\nexport {\n AppOffSiteItem,\n AppOffSiteArea,\n AppOffSiteUnit,\n AppOffSiteTransaction,\n AppOffSiteAlert,\n AppOffSiteTransactionTypes,\n AppOffSiteTransactionStatuses,\n AppOffSiteAlertStatuses,\n AppOffSiteAlertLocalTypes,\n};\n","import _ from \"lodash\";\nimport { Resource } from \"../../../resources/Resource\";\nimport { fetchResources } from \"../../../resources/ResourcesService\";\nimport AppUtilsService from \"../../../services/AppUtilsService\";\nimport { AppRestaurant, AppRestaurantTypes } from \"../../admin/AdminResources\";\nimport {\n AppOffSiteArea,\n AppOffSiteItem,\n AppOffSiteTransaction,\n AppOffSiteTransactionStatuses,\n AppOffSiteTransactionTypes,\n} from \"../OffSiteResources\";\nimport { ResourceRequest } from \"./../../../resources/ResourceTypes\";\nimport { OffSiteTransactionStatuses } from \"./../OffSiteResources\";\nimport {\n OffSiteContextStateType,\n OffSiteInitDataType,\n OffSiteTaskType,\n OffSiteTasksByIdAndRestType,\n OffSiteTasksByRestIdType,\n OffSiteTasksByRestType,\n OffSiteTasksByStatusAndIdAndRestType,\n} from \"./../context/OffSiteContextTypes\";\n\nasync function getOffSiteTasks(filter: any): Promise {\n let tasks: AppOffSiteTransaction[] = [];\n\n try {\n const offSiteTransactionRequest: ResourceRequest = [AppOffSiteTransaction, filter];\n const tasksResponse = await fetchResources([offSiteTransactionRequest]);\n tasks = tasksResponse[0];\n } catch (e) {\n console.error(\"Cannot load tasks\");\n }\n\n return tasks;\n}\n\nasync function getOffSiteOpenDeliveryTasks() {\n const offSiteIncompleteTasksFilter = {\n and: [\n { type: { eq: AppOffSiteTransactionTypes.DELIVERY } },\n { status: { ne: AppOffSiteTransactionStatuses.COMPLETED } },\n { status: { ne: AppOffSiteTransactionStatuses.CANCELLED } },\n ],\n };\n\n return await getOffSiteTasks(offSiteIncompleteTasksFilter);\n}\n\nasync function getOffSiteRestaurants(): Promise {\n const [restaurants] = await fetchResources([[AppRestaurant]]);\n return restaurants;\n}\n\nfunction getOffSiteRestaurantsById(restaurants: AppRestaurant[] = []) {\n const restaurantsById = restaurants.reduce(AppUtilsService.groupDataByItem(\"id\"), {});\n return restaurantsById;\n}\n\nasync function getOffSiteAreasById() {\n const [offSiteAreas] = await fetchResources([[AppOffSiteArea]]);\n const offSiteAreasById = offSiteAreas.reduce(AppUtilsService.groupDataByItem(\"id\"), {});\n return offSiteAreasById;\n}\n\nasync function getOffSiteItemsById() {\n const [offSiteItems] = await fetchResources([[AppOffSiteItem]]);\n const offSiteItemsById = offSiteItems.reduce(AppUtilsService.groupDataByItem(\"id\"), {});\n return offSiteItemsById;\n}\n\nasync function getOffSiteOpenDeliveryTasksDecorated(): Promise {\n const result: OffSiteInitDataType = { offSiteTasks: [], destinationRestaurants: [] };\n\n const restaurants: AppRestaurant[] = await getOffSiteRestaurants();\n const restaurantsById = getOffSiteRestaurantsById(restaurants);\n const offSiteAreasById = await getOffSiteAreasById();\n const offSiteItemsById = await getOffSiteItemsById();\n const rawOffSiteTasks = await getOffSiteOpenDeliveryTasks();\n\n // building response\n result.offSiteTasks = rawOffSiteTasks.map((rawOffSiteTask: AppOffSiteTransaction) => {\n const destinationRestaurant = restaurantsById[rawOffSiteTask.data.restaurantId];\n const offSiteItem = offSiteItemsById[rawOffSiteTask.data.offSiteItemId];\n const offSiteArea = offSiteAreasById[offSiteItem?.data?.offSiteAreaId];\n const offSiteRestaurant = restaurantsById[offSiteArea?.data?.restaurantId];\n\n const offSiteTask: OffSiteTaskType = Object.assign(rawOffSiteTask, {\n destinationRestaurant,\n offSiteItem,\n offSiteArea,\n offSiteRestaurant,\n });\n\n return offSiteTask;\n });\n\n result.destinationRestaurants = restaurants.filter((restaurant: AppRestaurant) => {\n return (\n restaurant.data.type === AppRestaurantTypes.COMMISSARY ||\n restaurant.data.type === AppRestaurantTypes.RESTAURANT\n );\n });\n\n return result;\n}\n\nfunction getStatusTasksCount(offSiteStatusTasksByIdAndRest: OffSiteTasksByIdAndRestType) {\n if (!offSiteStatusTasksByIdAndRest) {\n return 0;\n }\n\n return Object.values(offSiteStatusTasksByIdAndRest)\n .map((tasksByRestaurantId) => Object.values(tasksByRestaurantId))\n .flat()\n .flat().length;\n}\n\nfunction getPendingTasksCount(offSiteTasks: OffSiteTasksByStatusAndIdAndRestType) {\n return getStatusTasksCount(offSiteTasks[AppOffSiteTransactionStatuses.PENDING]);\n}\n\nfunction getLoadedTasksCount(offSiteTasks: OffSiteTasksByStatusAndIdAndRestType) {\n return getStatusTasksCount(offSiteTasks[AppOffSiteTransactionStatuses.LOADED]);\n}\n\nfunction getTransitTasksCount(offSiteTasks: OffSiteTasksByStatusAndIdAndRestType) {\n return getStatusTasksCount(offSiteTasks[AppOffSiteTransactionStatuses.TRANSIT]);\n}\n\nfunction sortTasksByCreatedAt(taskA: OffSiteTaskType, taskB: OffSiteTaskType) {\n return taskB.data.createdAt - taskA.data.createdAt;\n}\n\nfunction getLatestPendingTask(pendingTasks: OffSiteTaskType[]) {\n pendingTasks.sort(sortTasksByCreatedAt);\n const latestTask = pendingTasks[0];\n latestTask.duplicates = pendingTasks.splice(1);\n return latestTask;\n}\n\nfunction deDupePendingTasks(\n offSitePendingTasksByIdAndRest: OffSiteTasksByIdAndRestType\n): OffSiteTasksByIdAndRestType {\n Object.keys(offSitePendingTasksByIdAndRest).forEach((offSiteItemId) => {\n Object.keys(offSitePendingTasksByIdAndRest[offSiteItemId]).forEach((restaurantId) => {\n offSitePendingTasksByIdAndRest[offSiteItemId][restaurantId] = [\n getLatestPendingTask(offSitePendingTasksByIdAndRest[offSiteItemId][restaurantId]),\n ];\n });\n });\n\n return offSitePendingTasksByIdAndRest;\n}\n\nfunction buildOffSiteTasksByStatusAndIdAndRest(): OffSiteTasksByStatusAndIdAndRestType {\n return {\n PENDING: {},\n CANCELLED: {},\n LOADED: {},\n TRANSIT: {},\n COMPLETED: {},\n };\n}\n\nfunction organizeOffSiteTasksByStatusAndId(\n offSiteTasks: OffSiteTaskType[] = []\n): OffSiteTasksByStatusAndIdAndRestType {\n let offSiteTasksByStatusAndIdAndRest = buildOffSiteTasksByStatusAndIdAndRest();\n\n offSiteTasks.forEach((task) => {\n const status = task.data.status as keyof OffSiteTransactionStatuses;\n const offSiteItemId: string | number = task.data.offSiteItemId;\n const restaurantId: string | number = task.data.restaurantId;\n\n // init or keep status\n offSiteTasksByStatusAndIdAndRest[status] = offSiteTasksByStatusAndIdAndRest[status] || {};\n\n // init or keep offSiteItemId\n if (!offSiteTasksByStatusAndIdAndRest[status][offSiteItemId]) {\n offSiteTasksByStatusAndIdAndRest[status][offSiteItemId] = {};\n }\n\n // init or keep restaurantId\n if (!offSiteTasksByStatusAndIdAndRest[status][offSiteItemId][restaurantId]) {\n offSiteTasksByStatusAndIdAndRest[status][offSiteItemId][restaurantId] = [];\n }\n\n // add task\n offSiteTasksByStatusAndIdAndRest[status][offSiteItemId][restaurantId].push(task);\n });\n\n offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING] = deDupePendingTasks(\n offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING]\n );\n\n return offSiteTasksByStatusAndIdAndRest;\n}\n\n// TODO: remove \"any\" after OnHand is typescript-ified\nfunction findLocationOfTaskByKey(restaurants: any[], taskSelectedKey: string) {\n let response = {\n restaurant: null,\n group: null,\n item: null,\n };\n\n if (!restaurants || !taskSelectedKey) {\n return response;\n }\n\n Object.values(restaurants).forEach((restaurant) => {\n restaurant.groups.forEach((group: any) => {\n group.items.forEach((item: any) => {\n if (item.data.id === taskSelectedKey) {\n response = { ...response, restaurant, group, item };\n }\n });\n });\n });\n\n return response;\n}\n\nasync function loadOffSiteItemById(offSiteItemId: string | number) {\n const [offSiteItem] = await fetchResources([[AppOffSiteItem, { id: { eq: offSiteItemId } }]]);\n return offSiteItem ? offSiteItem[0] : null;\n}\n\nfunction extractSelectedOffSiteItem(offSiteState: OffSiteContextStateType): OffSiteTaskType | null {\n if (!offSiteState.taskSelectedKey) {\n return null;\n }\n\n if (!offSiteState.offSiteTasksByStatusAndIdAndRest) {\n return null;\n }\n\n const pendingSelectedKeyItem =\n offSiteState.offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING][\n offSiteState.taskSelectedKey\n ];\n\n if (!Array.isArray(pendingSelectedKeyItem)) {\n return null;\n }\n\n return pendingSelectedKeyItem[0].offSiteItem;\n}\n\nfunction getTasksFromOffSiteTasks(offSiteTasks: any) {\n if (!offSiteTasks) {\n return [];\n }\n return Object.values(offSiteTasks)\n .map((itemTasksByRestaurant: any) => Object.values(itemTasksByRestaurant))\n .flat();\n}\n\nfunction getTasksByDestinationRestaurantId(\n offSiteTasksByStatusAndIdAndRest: OffSiteTasksByStatusAndIdAndRestType\n): OffSiteTasksByRestIdType {\n const tasksByDestinationRestaurantId: OffSiteTasksByRestIdType = {};\n\n Object.values(offSiteTasksByStatusAndIdAndRest).forEach(\n (offSiteStatusTasksByIdAndRest: OffSiteTasksByIdAndRestType) => {\n Object.values(offSiteStatusTasksByIdAndRest).forEach(\n (offSiteStatusAndIdTasksByRest) => {\n Object.keys(offSiteStatusAndIdTasksByRest).forEach((restaurantId) => {\n if (!tasksByDestinationRestaurantId[restaurantId]) {\n tasksByDestinationRestaurantId[restaurantId] = [];\n }\n tasksByDestinationRestaurantId[restaurantId] =\n tasksByDestinationRestaurantId[restaurantId].concat(\n offSiteStatusAndIdTasksByRest[restaurantId]\n );\n });\n }\n );\n }\n );\n\n return tasksByDestinationRestaurantId;\n}\n\nfunction extractDestinationRestaurants(tasks: any) {\n const destinationRestaurants: AppRestaurant[] = tasks.reduce(\n (destinationRestaurants: any, task: any) => {\n destinationRestaurants[task?.destinationRestaurant?.data?.id] =\n task?.destinationRestaurant;\n return destinationRestaurants;\n },\n {}\n );\n\n return Object.values(destinationRestaurants).sort((a: any, b: any) => a.data.id - b.data.id);\n}\n\n// Consider the \"local\" (on hand context item.deliveryQuantity) value first\nfunction getDefaultPendingAmountForSelectedItem(\n offSiteTasksByStatusAndIdAndRest: OffSiteTasksByStatusAndIdAndRestType,\n item: any\n) {\n const selectedItemTasksByRest: OffSiteTasksByRestIdType =\n offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING][item.data.id];\n\n if (!selectedItemTasksByRest) {\n return 0;\n }\n\n const tasks = Object.values(selectedItemTasksByRest).flat();\n\n return (\n tasks.reduce((sum: number, offSiteTask: OffSiteTaskType) => {\n return sum + (offSiteTask.data.quantity || 0);\n }, 0) || 0\n );\n}\n\nfunction hasExactRequiredValue(\n offSiteTasksByStatusAndIdAndRest: OffSiteTasksByStatusAndIdAndRestType,\n item: any\n) {\n if (typeof item.deliveryQuantity !== \"number\") {\n return false;\n }\n return (\n item.deliveryQuantity > 0 &&\n item.deliveryQuantity ===\n getDefaultPendingAmountForSelectedItem(offSiteTasksByStatusAndIdAndRest, item)\n );\n}\n\nfunction hasValidValue(item: any) {\n return typeof item?.deliveryQuantity === \"number\" && item.deliveryQuantity !== 0;\n}\n\nfunction getUnitDisplay(item: any) {\n return item?.offSiteUnit?.data?.name || \"Each\";\n}\n\nasync function fetchItemTransactions(offSiteItemId: string | number) {\n const [itemTransactions] = await fetchResources([\n [AppOffSiteTransaction, { offSiteItemId: { eq: offSiteItemId } }],\n ]);\n return itemTransactions;\n}\n\nasync function loadReceptionData() {\n let [transitTasks, offSiteItems, destinationRestaurants] = await fetchResources([\n [\n AppOffSiteTransaction,\n {\n and: [\n { type: { eq: AppOffSiteTransactionTypes.DELIVERY } },\n { status: { eq: AppOffSiteTransactionStatuses.TRANSIT } },\n ],\n },\n ],\n [AppOffSiteItem],\n [\n AppRestaurant,\n {\n or: [\n { type: { eq: AppRestaurantTypes.RESTAURANT } },\n { type: { eq: AppRestaurantTypes.COMMISSARY } },\n ],\n },\n ],\n ]);\n\n const offSiteItemsById = offSiteItems.reduce(AppUtilsService.groupDataByItem(\"id\"), {});\n transitTasks = transitTasks.map((task: OffSiteTaskType) => {\n task.offSiteItem = offSiteItemsById[task.data.offSiteItemId];\n return task;\n });\n\n const transitTasksByRestaurantId = transitTasks.reduce(\n AppUtilsService.groupDataByList(\"restaurantId\"),\n {}\n );\n Object.keys(transitTasksByRestaurantId).forEach((restaurantId) => {\n transitTasksByRestaurantId[restaurantId] = transitTasksByRestaurantId[restaurantId].reduce(\n AppUtilsService.groupDataByItem(\"offSiteItemId\"),\n {}\n );\n });\n\n return { transitTasksByRestaurantId, destinationRestaurants };\n}\n\nfunction sumUpItemStock(completedTransactions: AppOffSiteTransaction[] = []) {\n return completedTransactions.reduce((sum, transaction) => {\n if (transaction.data.type === AppOffSiteTransactionTypes.DELIVERY) {\n sum -= transaction.data.quantity || 0;\n }\n if (transaction.data.type === AppOffSiteTransactionTypes.STOCKING) {\n sum += transaction.data.quantity || 0;\n }\n return sum;\n }, 0);\n}\n\nasync function getOffSiteItemInStockAmount(offSiteItemId: string | number | undefined) {\n if (!offSiteItemId) {\n return 0;\n }\n const [completedTransactionsForItem] = await fetchResources([\n [\n AppOffSiteTransaction,\n {\n and: [\n { offSiteItemId: { eq: offSiteItemId } },\n { status: { eq: AppOffSiteTransactionStatuses.COMPLETED } },\n ],\n },\n ],\n ]);\n\n if (!Array.isArray(completedTransactionsForItem) || completedTransactionsForItem.length === 0) {\n return \"?\";\n }\n\n const inStockAmount = sumUpItemStock(completedTransactionsForItem);\n\n return inStockAmount;\n}\n\nfunction getTaskKeyStep(\n offSiteStatusTasks: OffSiteTasksByIdAndRestType,\n taskSelectedKey: string | number,\n step = 0\n): string {\n // build an object with the same keys as the offSiteStatusTasks object\n // but only attach areaOrder and itemOrder to each key\n // return the list of keys sorted by areaOrder and itemOrder\n const tasksKeysObj = Object.keys(offSiteStatusTasks).reduce(\n (tasksByAreaAndItemOrder, taskKey) => {\n const task = Object.values(offSiteStatusTasks[taskKey])[0][0];\n if (!task) {\n return tasksByAreaAndItemOrder;\n }\n\n const areaOrder = task.offSiteArea.data.order;\n const itemOrder = task.offSiteItem.data.order;\n\n tasksByAreaAndItemOrder[taskKey] = {\n areaOrder,\n itemOrder,\n taskKey,\n };\n\n return tasksByAreaAndItemOrder;\n },\n {} as {\n [key: string]: {\n areaOrder: number;\n itemOrder: number;\n taskKey: string;\n };\n }\n );\n\n const tasksKeys = Object.values(tasksKeysObj)\n .sort((taskA, taskB) => {\n if (taskA.areaOrder === taskB.areaOrder) {\n return taskA.itemOrder - taskB.itemOrder;\n }\n return taskA.areaOrder - taskB.areaOrder;\n })\n .map((task) => task.taskKey);\n\n const firstTaskKey = tasksKeys[0];\n\n if (!taskSelectedKey) {\n return firstTaskKey;\n }\n\n const taskSelectedKeyIndex = tasksKeys.findIndex((taskKey) => taskKey === taskSelectedKey);\n\n if (taskSelectedKeyIndex === -1) {\n return firstTaskKey;\n }\n\n const stepTasksKeysIndex = (taskSelectedKeyIndex + step) % tasksKeys.length;\n const stepTasksKey = tasksKeys[stepTasksKeysIndex];\n\n return stepTasksKey;\n}\n\nfunction getPrevPendingTaskKey(\n offSiteTasksByStatusAndIdAndRest: OffSiteTasksByStatusAndIdAndRestType,\n taskSelectedKey?: string\n): string | null {\n taskSelectedKey =\n taskSelectedKey ||\n _.last(\n Object.keys(offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING])\n );\n\n if (!taskSelectedKey) {\n return null;\n }\n\n return getTaskKeyStep(\n offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING],\n taskSelectedKey,\n -1\n );\n}\n\nfunction getNextPendingTaskKey(\n offSiteTasksByStatusAndIdAndRest: OffSiteTasksByStatusAndIdAndRestType,\n taskSelectedKey?: string\n): string | null {\n taskSelectedKey =\n taskSelectedKey ||\n _.first(\n Object.keys(offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING])\n );\n\n if (!taskSelectedKey) {\n return null;\n }\n\n return getTaskKeyStep(\n offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING],\n taskSelectedKey,\n 1\n );\n}\n\nfunction getOffSitePendingItemForSelectedTask(\n offSiteTasksByStatusAndIdAndRest: OffSiteTasksByStatusAndIdAndRestType,\n taskSelectedKey: string | number\n): Resource | undefined {\n let result: Resource | undefined;\n\n const pendingTasksForItem: OffSiteTasksByRestType =\n offSiteTasksByStatusAndIdAndRest[AppOffSiteTransactionStatuses.PENDING][taskSelectedKey];\n\n const pendingTasksForItemList = Object.values(pendingTasksForItem || {}).flat();\n result = pendingTasksForItemList[0]?.offSiteItem;\n\n return result;\n}\n\nfunction sortOffSiteTasksByStatus(\n transactionTaskA: AppOffSiteTransaction,\n transactionTaskB: AppOffSiteTransaction\n) {\n const statusesSorted = [\n AppOffSiteTransactionStatuses.TRANSIT,\n AppOffSiteTransactionStatuses.LOADED,\n AppOffSiteTransactionStatuses.PENDING,\n ];\n const statusAIndex = statusesSorted.findIndex(\n (status) => status === transactionTaskA.data.status\n );\n const statusBIndex = statusesSorted.findIndex(\n (status) => status === transactionTaskB.data.status\n );\n\n return statusAIndex - statusBIndex;\n}\n\nconst OffSiteTasksUtils = {\n getOffSiteOpenDeliveryTasksDecorated,\n getPendingTasksCount,\n getLoadedTasksCount,\n getTransitTasksCount,\n organizeOffSiteTasksByStatusAndId,\n findLocationOfTaskByKey,\n loadOffSiteItemById,\n extractSelectedOffSiteItem,\n getTasksFromOffSiteTasks,\n getTasksByDestinationRestaurantId,\n extractDestinationRestaurants,\n getDefaultPendingAmountForSelectedItem,\n hasExactRequiredValue,\n hasValidValue,\n getUnitDisplay,\n fetchItemTransactions,\n getOffSiteOpenDeliveryTasks,\n loadReceptionData,\n getOffSiteItemInStockAmount,\n sumUpItemStock,\n getPrevPendingTaskKey,\n getNextPendingTaskKey,\n getOffSitePendingItemForSelectedTask,\n sortOffSiteTasksByStatus,\n};\n\nexport default OffSiteTasksUtils;\n","import AppDayModel from \"../../../components/day/AppDayModel\";\nimport AppUtilsService from \"../../../services/AppUtilsService\";\nimport OnHandStatus from \"../components/status/OnHandStatus\";\nimport OnHandActions from \"./OnHandActions\";\nimport OnHandContextValidator from \"./OnHandContextValidator\";\nimport OnHandUtils from \"../OnHandUtils\";\nimport OffSiteTasksUtils from \"../../off-site/tasks/OffSiteTasksUtils\";\n\nfunction updateState(state, action) {\n console.info(`CONTEXT: ON_HAND: ${action.type}`);\n return { ...state };\n}\n\nexport default function OnHandReducer(state, action) {\n if (action.type === OnHandActions.CHANGE_RESTAURANT) {\n const restaurant = state.restaurants[action.payload.restaurantId];\n const pageUrl = state?.config?.context?.utils?.pageUrl || \"on-hand\";\n AppUtilsService.setRestaurant(state.sectionName, pageUrl, restaurant, state.config.router);\n state.restaurant = restaurant;\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.CHANGE_VIEW) {\n OnHandUtils.persistView(\n action.payload.view,\n state.config.router,\n state.config.display?.views\n );\n state.view = action.payload.view;\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.CHANGE_ITEM) {\n const group = state.restaurant.group.selectItemByIndex(action.payload.index);\n state.restaurant.selectGroup(group);\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.GO_TO_PREV_ITEM_TASKS) {\n if (action.payload?.taskSelectedKey) {\n action.payload.goToPrevTask();\n delete action.payload;\n return updateState(state, action);\n } else {\n action.type = OnHandActions.GO_TO_PREV_ITEM;\n }\n }\n\n if (\n action.type === OnHandActions.GO_TO_NEXT_ITEM_TASKS ||\n action.type === OnHandActions.SUBMIT_SELECTED_DELIVERY_ITEM\n ) {\n if (action.payload?.taskSelectedKey) {\n action.payload.goToNextTask();\n delete action.payload;\n return updateState(state, action);\n } else {\n action.type = OnHandActions.GO_TO_NEXT_ITEM;\n }\n }\n\n if (action.type === OnHandActions.GO_TO_PREV_ITEM) {\n state.restaurant.goToPrevItem();\n // TODO: test if change is performed; test if the newly created state is required\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.GO_TO_NEXT_ITEM) {\n state.restaurant.goToNextItem();\n // TODO: test if change is performed; test if the newly created state is required\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.INVENTORY_ATTACH) {\n state.restaurant.group.item = Object.assign(state.restaurant.group.item, {\n inventory: action.payload.inventory,\n });\n state.reload = !state.reload;\n return updateState(state, action);\n }\n\n if (\n action.type === OnHandActions.INVENTORY_UPDATE &&\n OnHandContextValidator.hasValidItemInventory(state)\n ) {\n const inventory = state.restaurant.group.item.inventory;\n if (inventory && inventory.data) {\n if (typeof action.payload.quantity !== \"number\") {\n return;\n }\n inventory.data.quantity = parseFloat(action.payload.quantity);\n inventory.data.lastUpdatedBy = action.payload.userName;\n inventory.data.lastUpdatedAt = AppDayModel.getCurrentUnixTime();\n return updateState(state, action);\n }\n }\n\n // TODO: is there really a difference between a delivery and an inventory transaction here?\n if (action.type === OnHandActions.DELIVERY_TRANSACTION_UPDATE) {\n // must have a valid quantity\n if (typeof action.payload.addedQuantity !== \"number\") {\n return updateState(state, action);\n }\n\n state.restaurant.group.item.deliveryQuantity =\n (state.restaurant.group.item.deliveryQuantity || 0) + action.payload.addedQuantity;\n state.restaurant.group.item.deliveryQuantity = Math.max(\n 0,\n state.restaurant.group.item.deliveryQuantity\n );\n\n delete action.payload.addedQuantity;\n\n return updateState(state, action);\n }\n\n // TODO: is there really a difference between a delivery and an inventory transaction here?\n if (action.type === OnHandActions.STOCKING_TRANSACTION_UPDATE) {\n // must have a valid quantity\n if (typeof action.payload.addedQuantity !== \"number\") {\n return updateState(state, action);\n }\n\n if (!state.restaurant.group.item) {\n return updateState(state, action);\n }\n\n if (!state.restaurant.group.item.stockingQuantity) {\n state.restaurant.group.item.stockingQuantity = 0;\n }\n\n state.restaurant.group.item.stockingQuantity =\n state.restaurant.group.item.stockingQuantity + action.payload.addedQuantity;\n\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.DELIVERY_TRANSACTION_RESET) {\n state.restaurant.group.item.deliveryQuantity = 0;\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.STOCKING_TRANSACTION_RESET) {\n state.restaurant.group.item.stockingQuantity = 0;\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.LOCK_SUBMISSION) {\n state.lockedSubmit = true;\n }\n\n if (action.type === OnHandActions.UNLOCK_SUBMISSION) {\n state.lockedSubmit = false;\n }\n\n if (action.type === OnHandActions.SUBMIT_SELECTED_ITEM) {\n const restaurants = action.payload.restaurants;\n const restaurant = action.payload.restaurant;\n const status = action.payload.status;\n state.restaurants = restaurants;\n state.restaurant = restaurant;\n state.status = status;\n state.lockedSubmit = false;\n // TODO: go to next task\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.SUBMIT_SELECTED_ITEM_TRANSACTION) {\n state.status = OnHandStatus.compute(state.restaurants);\n delete state.restaurant.group.item.transaction;\n state.lockedSubmit = false;\n state.restaurant.goToNextItem();\n // TODO: go to next task\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.CONFIRM_CHANGES) {\n state.restaurant = action.payload.restaurant;\n state.restaurant.goToNextItem();\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.REJECT_CHANGES) {\n state.restaurant = state.restaurant.rejectGroupItems();\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.TOGGLE_LOCK) {\n state.restaurant = action.payload.restaurant;\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.SYNC) {\n state.restaurant = action.payload.restaurant;\n return updateState(state, action);\n }\n\n if (\n action.type === OnHandActions.SELECT_ITEM_FROM_TASK ||\n action.type === OnHandActions.LOAD_DATA_TASK\n ) {\n const { restaurant, group, item } = OffSiteTasksUtils.findLocationOfTaskByKey(\n state.restaurants || action.payload.restaurants,\n action.payload.taskSelectedKey\n );\n\n if (restaurant && group && item) {\n group.item = item;\n restaurant.group = group;\n action.payload.restaurant = restaurant;\n }\n\n delete action.payload.taskSelectedKey;\n\n state = { ...state, ...action.payload };\n\n return updateState(state, action);\n }\n\n if (action.type === OnHandActions.SUBMIT_SELECTED_STOCKING_ITEM) {\n state.restaurant.goToNextItem();\n return updateState(state, action);\n }\n\n console.info(\"CONTEXT: ON_HAND: OTHER\");\n return { ...state, ...action.payload };\n}\n","import { seriesPromises } from \"../../resources/ResourcesService\";\nimport {\n OffSiteTasksByIdAndRestType,\n OffSiteTasksByRestType,\n OffSiteTasksByStatusAndIdAndRestType,\n} from \"./context/OffSiteContextTypes\";\nimport {\n AppOffSiteTransaction,\n AppOffSiteTransactionStatuses,\n AppOffSiteTransactionTypes,\n OffSiteTransactionStatuses,\n} from \"./OffSiteResources\";\n\nfunction decorateOffSiteItem(transactionsByItem: any, item: any) {\n item.transactions = transactionsByItem[item?.data?.id] || [];\n item.transactionsTotal = item.transactions.reduce((a: any, c: any) => {\n a += c?.data?.quantity;\n return a;\n }, 0);\n return item;\n}\n\nfunction decorateOffSiteRestaurants(\n restaurants: any[],\n itemsByRestaurant: any,\n transactionsByItem: any\n) {\n return restaurants.map((restaurant: any) => {\n const restaurantItems = itemsByRestaurant[restaurant?.data?.id] || [];\n restaurant.items = restaurantItems.map(decorateOffSiteItem.bind(null, transactionsByItem));\n restaurant.selectedItem = restaurant?.items[0] || null;\n return restaurant;\n });\n}\n\nfunction updateTransactionPromise(data: any) {\n return AppOffSiteTransaction.getModel().api.update(data, true);\n}\n\nfunction makePendingTaskLoaded(\n offSiteTasks: OffSiteTasksByStatusAndIdAndRestType,\n pendingItemTask: OffSiteTasksByRestType,\n offSiteItemId: string | number\n) {\n // update status\n Object.keys(pendingItemTask).forEach((restaurantId) => {\n pendingItemTask[restaurantId].forEach((item) => {\n item.data.status = AppOffSiteTransactionStatuses.LOADED;\n });\n });\n // move item task\n offSiteTasks[AppOffSiteTransactionStatuses.LOADED][offSiteItemId] = pendingItemTask;\n // delete it from p.ending\n delete offSiteTasks[AppOffSiteTransactionStatuses.PENDING][offSiteItemId];\n}\n\nasync function submitPendingDeliveryTask(\n offSiteTasks: OffSiteTasksByStatusAndIdAndRestType,\n item: any\n) {\n if (!offSiteTasks[AppOffSiteTransactionStatuses.PENDING]?.[item?.data?.id]) {\n // TODO: if there are no items pending, create a new one, loaded directly\n // TODO: create a transaction\n return null;\n }\n\n // TODO: extract tasks to be updated\n const itemTask: OffSiteTasksByRestType =\n offSiteTasks[AppOffSiteTransactionStatuses.PENDING][item.data.id];\n const tasks = Object.values(itemTask);\n const taskDuplicates = tasks\n .flat()\n .map(({ duplicates }) => duplicates)\n .flat();\n\n try {\n const tasksToBeUpdatedAsLoaded = tasks.flat().map(({ data }) => ({\n ...data,\n status: AppOffSiteTransactionStatuses.LOADED,\n }));\n\n await seriesPromises(tasksToBeUpdatedAsLoaded.map(updateTransactionPromise));\n } catch (e) {\n throw new Error(\"Could not update loaded!\");\n }\n\n makePendingTaskLoaded(offSiteTasks, itemTask, item.data.id);\n\n try {\n const tasksToBeUpdatedAsCancelled = taskDuplicates.map(({ data }) => ({\n ...data,\n status: AppOffSiteTransactionStatuses.CANCELLED,\n }));\n\n await seriesPromises(tasksToBeUpdatedAsCancelled.map(updateTransactionPromise));\n } catch (e) {\n throw new Error(\"Could not update cancelled!\");\n }\n\n return offSiteTasks;\n}\n\n// return Array of tasks from [id][restaurantId]?[] structure\nfunction extractTasksFromTasksByStatus(statusTasks: OffSiteTasksByIdAndRestType) {\n return Object.values(statusTasks)\n .map((restaurantsTasks) => Object.values(restaurantsTasks))\n .flat();\n}\n\nasync function sendLoadedTasksToTransit(loadedTasks: OffSiteTasksByIdAndRestType) {\n try {\n const extractedTasks = extractTasksFromTasksByStatus(loadedTasks);\n const updatedTasksData = extractedTasks.flat().map(({ data }) => ({\n ...data,\n status: AppOffSiteTransactionStatuses.TRANSIT,\n }));\n const updatePromises = updatedTasksData.map(updateTransactionPromise);\n\n await seriesPromises(updatePromises);\n } catch (e) {\n throw new Error(\"Could not update loaded!\");\n }\n}\n\nfunction updateTasksStatus(\n tasks: OffSiteTasksByIdAndRestType,\n newStatus: keyof OffSiteTransactionStatuses\n) {\n Object.keys(tasks).forEach((offSiteItemId) => {\n Object.keys(tasks[offSiteItemId]).forEach((restaurantId) => {\n tasks[offSiteItemId][restaurantId].forEach((task) => {\n task.data.status = newStatus;\n });\n });\n });\n return tasks;\n}\n\nasync function submitCompletedStockingTransaction(\n userName: string | number,\n item: any,\n restaurantId: string | number\n) {\n try {\n await AppOffSiteTransaction.getModel().api.create({\n offSiteItemId: item?.data?.id,\n type: AppOffSiteTransactionTypes.STOCKING,\n status: AppOffSiteTransactionStatuses.COMPLETED,\n restaurantId,\n quantity: item.stockingQuantity,\n createdBy: userName,\n });\n } catch (e) {\n throw new Error(\"Cannot submit Stock transaction!\");\n }\n}\n\n// TODO: Merge this and OffSiteTasksUtils\nexport {\n decorateOffSiteRestaurants,\n submitPendingDeliveryTask,\n sendLoadedTasksToTransit,\n updateTasksStatus,\n submitCompletedStockingTransaction,\n};\n","import React, { createContext, useCallback, useContext, useEffect, useReducer } from \"react\";\nimport { AppContext } from \"../../../context/AppContext\";\nimport { retry, updateDailyData } from \"../../../resources/ResourcesService\";\nimport AppUtilsService from \"../../../services/AppUtilsService\";\nimport OnHandStatus from \"../components/status/OnHandStatus\";\nimport OnHandResolver from \"../services/OnHandResover\";\nimport OnHandActions from \"./OnHandActions\";\nimport OnHandReducer from \"./OnHandReducer\";\nimport OnHandUtils from \"../OnHandUtils\";\nimport {\n submitCompletedStockingTransaction,\n submitPendingDeliveryTask,\n} from \"../../off-site/OffSiteUtils\";\n\nconst OnHandContext = createContext({});\n\nconst OnHandProvider = ({ children }) => {\n const { appState } = useContext(AppContext);\n const [onHandState, dispatch] = useReducer(OnHandReducer, {\n config: null,\n restaurants: null,\n restaurant: null,\n status: null,\n day: null,\n lockedSubmit: null,\n view: null,\n });\n\n useEffect(() => {}, [appState.taskByItemId]);\n\n async function loadOnHandData(\n config,\n day,\n userGroups,\n userName,\n sectionName,\n setGlobalSpinner\n ) {\n setGlobalSpinner(true);\n const restaurants = await OnHandResolver(\n day,\n userName,\n sectionName,\n userGroups,\n config.context\n );\n const pageUrl = config?.context?.utils?.pageUrl || \"on-hand\";\n const restaurant = AppUtilsService.loadRestaurant(\n sectionName,\n pageUrl, // TODO: make this a default property value\n restaurants,\n config.router\n );\n OnHandStatus.compute(restaurants);\n\n let view;\n if (OnHandUtils.isTransactionalOnHand(config)) {\n // TODO: choose default based on user roles\n view = OnHandUtils.loadPersistedView(config.router, config.display?.views);\n OnHandUtils.persistView(view, config.router, config.display?.views);\n }\n\n setGlobalSpinner(false);\n\n return dispatch({\n type: OnHandActions.LOAD_DATA,\n payload: { day, config, restaurants, restaurant, sectionName, view },\n });\n }\n\n async function loadOnHandDataTask(\n config,\n day,\n userGroups,\n userName,\n sectionName,\n setGlobalSpinner,\n taskSelectedKey\n ) {\n setGlobalSpinner(true);\n const restaurants = await OnHandResolver(\n day,\n userName,\n sectionName,\n userGroups,\n config.context\n );\n const pageUrl = config?.context?.utils?.pageUrl || \"on-hand\";\n const restaurant = AppUtilsService.loadRestaurant(\n sectionName,\n pageUrl, // TODO: make this a default property value\n restaurants,\n config.router\n );\n OnHandStatus.compute(restaurants);\n\n let view;\n if (OnHandUtils.isTransactionalOnHand(config)) {\n // TODO: choose default based on user roles\n view = OnHandUtils.loadPersistedView(config.router, config.display?.views);\n OnHandUtils.persistView(view, config.router, config.display?.views);\n }\n\n setGlobalSpinner(false);\n return dispatch({\n type: OnHandActions.LOAD_DATA_TASK,\n payload: { day, config, restaurants, restaurant, sectionName, view, taskSelectedKey },\n });\n }\n\n function changeRestaurant(restaurantId) {\n return dispatch({ type: OnHandActions.CHANGE_RESTAURANT, payload: { restaurantId } });\n }\n\n function changeView(view) {\n return dispatch({ type: OnHandActions.CHANGE_VIEW, payload: { view } });\n }\n\n function updateRestaurant(restaurant) {\n return dispatch({ type: OnHandActions.TOGGLE_GROUP_SELECTION, payload: { restaurant } });\n }\n\n function changeItem(index) {\n return dispatch({ type: OnHandActions.CHANGE_ITEM, payload: { index } });\n }\n\n function goToPrevItem() {\n return dispatch({ type: OnHandActions.GO_TO_PREV_ITEM, payload: {} });\n }\n\n function goToNextItem() {\n return dispatch({ type: OnHandActions.GO_TO_NEXT_ITEM, payload: {} });\n }\n\n function goToPrevItemTasks(goToPrevTask, taskSelectedKey) {\n return dispatch({\n type: OnHandActions.GO_TO_PREV_ITEM_TASKS,\n payload: {\n goToPrevTask,\n taskSelectedKey,\n },\n });\n }\n\n function goToNextItemTasks(goToNextTask, taskSelectedKey) {\n return dispatch({\n type: OnHandActions.GO_TO_NEXT_ITEM_TASKS,\n payload: {\n goToNextTask,\n taskSelectedKey,\n },\n });\n }\n\n function inventoryAttach(inventory) {\n return dispatch({ type: OnHandActions.INVENTORY_ATTACH, payload: { inventory } });\n }\n\n function onSelectedItemQuantityUpdate(quantity) {\n const userName = appState.user.name;\n return dispatch({ type: OnHandActions.INVENTORY_UPDATE, payload: { quantity, userName } });\n }\n\n function onSelectedPendingDeliveryItemQuantityUpdate(addedQuantity, userName) {\n return dispatch({\n type: OnHandActions.DELIVERY_TRANSACTION_UPDATE,\n payload: { addedQuantity, userName },\n });\n }\n\n function onSelectedItemStockingTransactionUpdate(addedQuantity, userName) {\n return dispatch({\n type: OnHandActions.STOCKING_TRANSACTION_UPDATE,\n payload: { addedQuantity, userName },\n });\n }\n\n function onSelectedItemDeliveryTransactionReset() {\n return dispatch({ type: OnHandActions.DELIVERY_TRANSACTION_RESET, payload: {} });\n }\n\n function onSelectedItemStockingTransactionReset() {\n return dispatch({ type: OnHandActions.STOCKING_TRANSACTION_RESET, payload: {} });\n }\n\n function lockSubmission() {\n return dispatch({ type: OnHandActions.LOCK_SUBMISSION, payload: {} });\n }\n\n function unlockSubmission() {\n return dispatch({ type: OnHandActions.UNLOCK_SUBMISSION, payload: {} });\n }\n\n function submitSelectedItem(onHandState, inventory) {\n const { restaurants, restaurant } = onHandState;\n\n restaurant.group.item.inventory = inventory;\n\n const status = OnHandStatus.compute(restaurants);\n restaurant.goToNextItem();\n\n return dispatch({\n type: OnHandActions.SUBMIT_SELECTED_ITEM,\n payload: { restaurants, restaurant, status },\n });\n }\n\n async function submitSelectedDeliveryItem(offSiteTasks, item, goToNextTask, taskSelectedKey) {\n try {\n await submitPendingDeliveryTask(offSiteTasks, item);\n } catch (e) {\n throw Error(\"Failed to submit Pending Delivery Task\");\n }\n\n return dispatch({\n type: OnHandActions.SUBMIT_SELECTED_DELIVERY_ITEM,\n payload: { goToNextTask, taskSelectedKey },\n });\n }\n\n async function submitSelectedStockingItem(userName, item, restaurantId) {\n await submitCompletedStockingTransaction(userName, item, restaurantId);\n // update the tasks in the AppContext too\n\n return dispatch({\n type: OnHandActions.SUBMIT_SELECTED_STOCKING_ITEM,\n payload: {},\n });\n }\n\n function confirmChanges(restaurant) {\n return dispatch({ type: OnHandActions.CONFIRM_CHANGES, payload: { restaurant } });\n }\n\n function rejectChanges() {\n return dispatch({ type: OnHandActions.REJECT_CHANGES, payload: {} });\n }\n\n function unlockRestaurantOnHand(restaurant) {\n // TODO: update restaurant inventoryMeta\n // restaurant.inventoryMeta.data.status = \"UNLOCKED\";\n // await restaurant.inventoryMeta.model.api.update(restaurant.inventoryMeta.data);\n restaurant.unlocked = true;\n return dispatch({ type: OnHandActions.TOGGLE_LOCK, payload: { restaurant } });\n }\n\n async function finishRestaurantOnHand(restaurant) {\n // TODO: update restaurant inventoryMeta\n restaurant.inventoryMeta.data.status = \"LOCKED\";\n await restaurant.inventoryMeta.model.api.update(restaurant.inventoryMeta.data);\n delete restaurant.unlocked;\n return dispatch({ type: OnHandActions.TOGGLE_LOCK, payload: { restaurant } });\n }\n\n async function syncRestaurantOnHand(restaurant) {\n // submit to S3 all inventory items, from all groups, that are not mocks\n const completedInventories = OnHandUtils.extractCompletedInventories(restaurant.groups);\n\n try {\n await retry(async () => {\n await updateDailyData(\n completedInventories,\n restaurant.inventoryMeta.data.storageKey\n );\n }, 1);\n } catch (e) {\n console.error(e.message);\n alert(\"An error occurred!\\nPlease check your internet connection!\");\n }\n\n return dispatch({ type: OnHandActions.SYNC, payload: { restaurant } });\n }\n\n function selectItemFromTask(taskSelectedKey) {\n return dispatch({\n type: OnHandActions.SELECT_ITEM_FROM_TASK,\n payload: { taskSelectedKey },\n });\n }\n\n const value = {\n onHandState,\n loadOnHandData: useCallback(loadOnHandData, [dispatch]),\n loadOnHandDataTask: useCallback(loadOnHandDataTask, [dispatch]),\n changeRestaurant: useCallback(changeRestaurant, [dispatch]),\n changeView: useCallback(changeView, [dispatch]),\n updateRestaurant: useCallback(updateRestaurant, [dispatch]),\n changeItem: useCallback(changeItem, [dispatch]),\n goToPrevItem: useCallback(goToPrevItem, [dispatch]),\n goToNextItem: useCallback(goToNextItem, [dispatch]),\n goToPrevItemTasks: useCallback(goToPrevItemTasks, [dispatch]),\n goToNextItemTasks: useCallback(goToNextItemTasks, [dispatch]),\n inventoryAttach: useCallback(inventoryAttach, [dispatch]),\n onSelectedItemQuantityUpdate: useCallback(onSelectedItemQuantityUpdate, [dispatch]),\n onSelectedPendingDeliveryItemQuantityUpdate: useCallback(\n onSelectedPendingDeliveryItemQuantityUpdate,\n [dispatch]\n ),\n onSelectedItemStockingTransactionUpdate: useCallback(\n onSelectedItemStockingTransactionUpdate,\n [dispatch]\n ),\n onSelectedItemDeliveryTransactionReset: useCallback(\n onSelectedItemDeliveryTransactionReset,\n [dispatch]\n ),\n onSelectedItemStockingTransactionReset: useCallback(\n onSelectedItemStockingTransactionReset,\n [dispatch]\n ),\n lockSubmission: useCallback(lockSubmission, [dispatch]),\n unlockSubmission: useCallback(unlockSubmission, [dispatch]),\n submitSelectedItem: useCallback(submitSelectedItem, [dispatch]),\n submitSelectedDeliveryItem: useCallback(submitSelectedDeliveryItem, [dispatch]),\n submitSelectedStockingItem: useCallback(submitSelectedStockingItem, [dispatch]),\n confirmChanges: useCallback(confirmChanges, [dispatch]),\n rejectChanges: useCallback(rejectChanges, [dispatch]),\n unlockRestaurantOnHand: useCallback(unlockRestaurantOnHand, [dispatch]),\n finishRestaurantOnHand: useCallback(finishRestaurantOnHand, [dispatch]),\n syncRestaurantOnHand: useCallback(syncRestaurantOnHand, [dispatch]),\n selectItemFromTask: useCallback(selectItemFromTask, [dispatch]),\n };\n\n return (\n \n {children}\n {console.log(\"RENDER: OnHandContext\")}\n \n );\n};\n\nexport { OnHandContext, OnHandProvider };\n","import { AppRestaurant } from \"../../admin/AdminResources\";\nimport {\n AppOffSiteArea,\n AppOffSiteItem,\n AppOffSiteTransaction,\n OffSiteTransactionStatuses,\n} from \"../OffSiteResources\";\n\nexport type OffSiteTaskType = AppOffSiteTransaction & {\n destinationRestaurant: AppRestaurant;\n offSiteItem: AppOffSiteItem;\n offSiteArea: AppOffSiteArea;\n offSiteRestaurant: AppRestaurant;\n duplicates?: any[];\n};\n\nexport type OffSiteTasksByRestIdType = {\n [restaurantId: string | number]: OffSiteTaskType[];\n};\n\nexport type OffSiteTasksByRestType = {\n [restaurantId: string | number]: OffSiteTaskType[];\n};\n\nexport type OffSiteTasksByIdAndRestType = {\n [offSiteItemId: string | number]: OffSiteTasksByRestType;\n};\n\nexport type OffSiteTasksByStatusAndIdAndRestType = {\n [status in keyof OffSiteTransactionStatuses]: OffSiteTasksByIdAndRestType;\n};\n\nexport type OffSiteInitDataType = {\n offSiteTasks: OffSiteTaskType[];\n destinationRestaurants: AppRestaurant[];\n};\n\nexport enum OffSiteContextActionType {\n LOAD_DELIVERY_TASKS = \"LOAD_DELIVERY_TASKS\",\n TOGGLE_DELIVERY_TASKS_DIALOG = \"TOGGLE_DELIVERY_TASKS_DIALOG\",\n GO_TO_PREV_TASK = \"GO_TO_PREV_TASK\",\n GO_TO_NEXT_TASK = \"GO_TO_NEXT_TASK\",\n SEND_LOADED_TASKS = \"SEND_LOADED_TASKS\",\n UPDATE_RESTAURANTS_FILTER = \"UPDATE_RESTAURANTS_FILTER\",\n}\n\nexport type OffSiteContextAction = {\n type: keyof typeof OffSiteContextActionType;\n payload: any;\n};\n\nexport type OffSiteRestaurantFilter = {\n isVisible: boolean;\n data: { id: string | number; alias: string };\n};\n\nexport type OffSiteRestaurantsFilter = {\n [key: string | number]: OffSiteRestaurantFilter;\n};\n\nexport type OffSiteContextStateType = {\n offSiteTasksByStatusAndIdAndRest: OffSiteTasksByStatusAndIdAndRestType | null;\n destinationRestaurants: AppRestaurant[];\n restaurantsFilter: OffSiteRestaurantsFilter;\n taskSelectedKey?: string;\n showDeliveryTasksDialog: boolean;\n};\n\nexport type OffSiteContextType = {\n offSiteState: OffSiteContextStateType;\n loadDeliveryTasks: Function;\n goToPrevTask: Function;\n goToNextTask: Function;\n toggleDeliveryTasksDialog: Function;\n updateRestaurantsFilter: Function;\n sendLoadedTasks: Function;\n};\n","import React, { useContext } from \"react\";\nimport { useGlobalSpinnerActionsContext } from \"../../../../components/global-spinner/GlobalSpinnerContext\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport onHandGroupStyles from \"./OnHandGroup.module.css\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Button from \"@material-ui/core/Button\";\nimport { OnHandContext } from \"../../context/OnHandContext\";\n\nconst OnHandGroupConfirmChanges = ({ group }) => {\n const { onHandState, confirmChanges, rejectChanges } = useContext(OnHandContext);\n const setGlobalSpinner = useGlobalSpinnerActionsContext();\n\n if (!(group.needsConfirmation() && group.showConfirmation)) {\n return null;\n }\n\n const handleConfirm = async () => {\n const restaurant = await onHandState.restaurant.confirmGroupItems(setGlobalSpinner);\n\n return confirmChanges(restaurant);\n };\n\n const handleReject = () => {\n return rejectChanges();\n };\n\n const itemConfirmDisplay = (item, itemIndex) => {\n // TODO: take these from page item context\n const name = item.ingredient?.data.name || item.data.name;\n const unitName = item.data.bulk || item.onHandUnit?.data.name;\n return (\n
\n {name}\n {item.inventory.data.quantity}\n {unitName}\n
\n );\n };\n\n return (\n {}}\n aria-labelledby=\"customized-dialog-title\"\n open={true}\n >\n {}}\n >\n {group.data.name}\n \n \n
\n {group.items\n .filter(({ inventory: { dirty } }) => dirty)\n .map(onHandState.config.display.itemConfirm || itemConfirmDisplay)}\n
\n
\n \n \n \n \n \n );\n};\n\nexport default OnHandGroupConfirmChanges;\n","import React, { useContext } from \"react\";\nimport onHandGroupReadOnlyStyles from \"./OnHandGroupReadOnly.module.css\";\nimport { OnHandContext } from \"../../context/OnHandContext\";\nimport AppDayModel from \"../../../../components/day/AppDayModel\";\nimport OnHandContextValidator from \"../../context/OnHandContextValidator\";\nimport OnHandUtils from \"../../OnHandUtils\";\n\nconst OnHandGroupReadOnly = ({ group }) => {\n const { onHandState } = useContext(OnHandContext);\n\n if (\n !OnHandUtils.isTransactionalOnHand(onHandState?.config) &&\n OnHandContextValidator.isEmptyGroup(group)\n ) {\n return
;\n }\n\n const OnHandGroupReadOnlyHeader = () => {\n return (\n \n Item\n Qty\n By\n At\n
\n );\n };\n\n const OnHandGroupReadOnlyItem = (item) => {\n return (\n
\n \n {onHandState.config.context.utils.extractItemName(item)}\n \n {item.inventory.data.quantity}\n {item.inventory.data.lastUpdatedBy}\n \n {AppDayModel.getTimeDisplay(item.inventory.data.lastUpdatedAt)}\n \n
\n );\n };\n\n // TODO: move this further up the stack\n if (OnHandUtils.isTransactionalOnHand(onHandState.config)) {\n return null;\n }\n\n return (\n
\n
{group.data.name}
\n \n
\n {group.items\n .filter((item) => item.inventory?.mock !== true)\n .map(OnHandGroupReadOnlyItem)}\n
\n
\n );\n};\n\nexport default OnHandGroupReadOnly;\n","import React, { useContext } from \"react\";\nimport ExpansionPanel from \"@material-ui/core/ExpansionPanel\";\nimport { OnHandContext } from \"../../context/OnHandContext\";\nimport onHandGroupStyles from \"./OnHandGroup.module.css\";\nimport OnHandStatus from \"../status/OnHandStatus\";\nimport { MdExpandMore } from \"react-icons/md\";\nimport ExpansionPanelSummary from \"@material-ui/core/ExpansionPanelSummary\";\nimport OnHandContextValidator from \"../../context/OnHandContextValidator\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Tabs from \"@material-ui/core/Tabs\";\nimport ExpansionPanelDetails from \"@material-ui/core/ExpansionPanelDetails\";\nimport onHandItemStyles from \"../item/OnHandItem.module.css\";\nimport PropTypes from \"prop-types\";\nimport Box from \"@material-ui/core/Box\";\nimport OnHandGroupConfirmChanges from \"./OnHandGroupConfirmChanges\";\nimport OnHandGroupReadOnly from \"./OnHandGroupReadOnly\";\nimport OnHandUtils from \"../../OnHandUtils\";\n\nconst OnHandTabPanelWrp = (onHandState, group, item, itemIndex) => {\n if (!onHandState.restaurant) {\n return
;\n }\n\n if (!onHandState.restaurant.group) {\n return
;\n }\n\n function OnHandTabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n