{"version":3,"file":"scripts/shared.2d4b36f7c4ebc66d6d8b.min.js","mappings":"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CT,QAAS,YACT,QAAS,cACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,aAAc,aACd,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,QAAS,WACT,aAAc,aACd,QAAS,aACT,QAAS,WACT,QAAS,WACT,QAAS,aACT,QAAS,WACT,QAAS,WACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,QAAS,WACT,SAAU,aACV,SAAU,aACV,QAAS,WACT,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,CAAC,aAAc,WAAY,SAAU,YAC9C,QAAS,aACT,QAAS,YACT,QAAS,aACT,QAAS,YACT,QAAS,aACT,QAAS,aACT,aAAc,WACd,QAAS,WACT,aAAc,aACd,QAAS,aACT,aAAc,aACd,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,YACT,QAAS,aACT,QAAS,aACT,aAAc,WACd,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,YACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,SAAU,aACV,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,cAAe,aACf,aAAc,YACd,SAAU,aACV,aAAc,WACd,QAAS,aACT,QAAS,WACT,SAAU,WACV,QAAS,WACT,QAAS,aACT,QAAS,WACT,SAAU,aACV,SAAU,aACV,SAAU,aACV,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,a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","sources":["webpack://@tm/portal/./core/components/src/components/LicensePlate/icons/ch.svg","webpack://@tm/portal/./core/components/src/components/LicensePlate/icons/eu.svg","webpack://@tm/portal/./core/components/src/components/LicensePlate/icons/n.svg","webpack://@tm/portal/./core/components/src/components/LicensePlate/icons/uk.svg","webpack://@tm/portal/./core/components/src/ThemeProvider.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/ActionMenuItem.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/ActionsTmaHelper.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/AdditionalInformation.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/ButtonAction.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/ErpAreaActions.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/FoundBy.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/IconAction.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/ImageAreaActions.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/InformationAreaActions.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/MemoTooltip/MemoTooltipContent.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/MemoTooltip/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/MoreMenuButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Actions/Selection.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/AdditionalInformations/CompactAdditionalInformations.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/AdditionalInformations/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ArticleImageViewer.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ArticleNumberCopyButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ArticleNumbers.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Attributes/AttributeItem.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Attributes/AttributeValue.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Attributes/CompactAttributes.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Attributes/CompactAttributesBlock.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Attributes/OeInfoAttributes.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Attributes/TooltipWrapper.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Attributes/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/BonusSystem/BonusSystemImage.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/BonusSystem/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ContextProviderStates/DefaultArticleItemState.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ContextProviderStates/OeArticleItemState.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ContextProviderStates/OeInformationItemState.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ContextProviderStates/TyresItemState.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ContextProviderStates/WholesalerArticleItemState.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ContextProviderStates/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/CustomersAlsoBoughtButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Descriptions.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Dms/DmsArticleInformation.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Dms/components/AvailabilityIcon.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Dms/components/InfoItem.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Dms/components/InfoList.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/Availabilities.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/Costs.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/ExtendedDelivery.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/HTMLInformation.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/OtherPrices.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/PriceAddition.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/PriceGrid.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/PriceUnit.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/PriceValue.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/Prices.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ErpContainer/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/GraduatedPrices.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/IconButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Image.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ImageContainer.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/ImsIcon.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Notes/NoteItem.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Notes/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Notes/useNotes.ts","webpack://@tm/portal/./core/components/src/components/ArticleItem/Notifications/CompactNotification.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Notifications/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/OeInfoDescription.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/RecommendedArticle.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/References/Reference.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/References/ReferenceGroup.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/References/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/StyledBasketButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/SubArticleContainer.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Supplier.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/TraderSelection/TraderActionsColumn.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/TraderSelection/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/AddOeToBasket.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/AddToBasket/AmountInfo.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/AddToBasket/BasketAmountField.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/AddToBasket/BasketButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/AddToBasket/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/CostEstimationButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/OeTransactions.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/PartsListButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/ReplaceButton.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/ReplaceButtonWithQuantity/ReplaceButtonWithQuantity.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Transactions/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Vouchers/AlreadyOrderedArticle.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/Watchlist.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/constants.ts","webpack://@tm/portal/./core/components/src/components/ArticleItem/index.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Default/ArticleItemComponents.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Default/CompactArticleContent.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Default/DefaultArticleItem.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Default/ExpandedArticleContent.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/OeArticleItem.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/OeInformationItem.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Tyres/components/SeasonIconWithTyreEfficiency.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Tyres/components/TileSeasonIconWithTyreEfficiency.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Tyres/components/TyresIcons.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Tyres/components/TyresIconsV2.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Tyres/components/TyresTile.tsx","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Tyres/helpers/getFuelEfficiencyLabelColor.ts","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Tyres/helpers/getOldTyreLabelColor.ts","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/Tyres/helpers/getWetGripClassLabelColor.ts","webpack://@tm/portal/./core/components/src/components/ArticleItem/variants/WholesalerArticleItem.tsx","webpack://@tm/portal/./core/components/src/components/ArticleThumbnailImage/index.tsx","webpack://@tm/portal/./core/components/src/components/AutocompleteField/index.tsx","webpack://@tm/portal/./core/components/src/components/BonusPoints/BonusPointsTypes.ts","webpack://@tm/portal/./core/components/src/components/BonusPoints/index.tsx","webpack://@tm/portal/./core/components/src/components/BreadCrumbs/BreadCrumbs.tsx","webpack://@tm/portal/./core/components/src/components/DraggableList/DraggableListItem.tsx","webpack://@tm/portal/./core/components/src/components/DraggableList/index.tsx","webpack://@tm/portal/./core/components/src/components/ErpPriceAdditionalInfo/components/TooltipPrice.tsx","webpack://@tm/portal/./core/components/src/components/ErpPriceAdditionalInfo/index.tsx","webpack://@tm/portal/./core/components/src/components/GlobalNavigation/GlobalNavigationItem.tsx","webpack://@tm/portal/./core/components/src/components/HTMLBox/index.tsx","webpack://@tm/portal/./core/components/src/components/Hotline/index.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/ImageViewerContainer.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Actions/ActionsWrapper.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Actions/ZoomContainer.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Actions/ZoomIcon.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Actions/ZoomSlider.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Actions/index.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/DraggableImageContainer.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Thumbnails/ImageViewerThumbnail.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Thumbnails/ThumbnailContainer.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Thumbnails/ThumbnailImage.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/Thumbnails/index.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/components/ViewerImage.tsx","webpack://@tm/portal/./core/components/src/components/ImageViewer/constants.ts","webpack://@tm/portal/./core/components/src/components/ImageViewer/index.tsx","webpack://@tm/portal/./core/components/src/components/LicensePlate/index.tsx","webpack://@tm/portal/./core/components/src/components/ModuleHeaderSlot/index.tsx","webpack://@tm/portal/./core/components/src/components/NotesButton/NotesTooltip.tsx","webpack://@tm/portal/./core/components/src/components/NotesButton/index.tsx","webpack://@tm/portal/./core/components/src/components/OAuthButton/index.tsx","webpack://@tm/portal/./core/components/src/components/PartnerSearchField/InlineSelect.tsx","webpack://@tm/portal/./core/components/src/components/PartnerSearchField/PartnerSearchField.tsx","webpack://@tm/portal/./core/components/src/components/PopoverMenu/index.tsx","webpack://@tm/portal/./core/components/src/components/ResizablePopover/Resizable/RezisablePopoverBox.tsx","webpack://@tm/portal/./core/components/src/components/ResizablePopover/Resizable/index.tsx","webpack://@tm/portal/./core/components/src/components/ResizablePopover/index.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/Bestseller.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/FastClickBadge/FastClickBadge.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/ListView.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/Overview.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/OverviewFlex.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/Searchtree.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/SearchtreeButton/SearchtreeIcon.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/SearchtreeTip/SearchtreeTip.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/TreeCategory.tsx","webpack://@tm/portal/./core/components/src/components/Searchtree/TreeNode.tsx","webpack://@tm/portal/./core/components/src/components/SelectedTypography/index.tsx","webpack://@tm/portal/./core/components/src/components/SharePopover/elements/AdditionalPopoverContent.tsx","webpack://@tm/portal/./core/components/src/components/SharePopover/elements/DownloadButton.tsx","webpack://@tm/portal/./core/components/src/components/SharePopover/elements/EmailButton.tsx","webpack://@tm/portal/./core/components/src/components/SharePopover/elements/ShareButton.tsx","webpack://@tm/portal/./core/components/src/components/SharePopover/elements/ShareButtonWrapper.tsx","webpack://@tm/portal/./core/components/src/components/SharePopover/elements/SharingLink.tsx","webpack://@tm/portal/./core/components/src/components/SharePopover/elements/WhatsAppButton.tsx","webpack://@tm/portal/./core/components/src/components/SharePopover/index.tsx","webpack://@tm/portal/./core/components/src/components/Share/components/EmailEntry.tsx","webpack://@tm/portal/./core/components/src/components/Share/components/EmailList.tsx","webpack://@tm/portal/./core/components/src/components/Share/components/Share.tsx","webpack://@tm/portal/./core/components/src/components/Share/components/ShareOptions.tsx","webpack://@tm/portal/./core/components/src/components/Share/components/SharingLink.tsx","webpack://@tm/portal/./core/components/src/components/Share/helpers/index.ts","webpack://@tm/portal/./core/components/src/components/Share/helpers/share.ts","webpack://@tm/portal/./core/components/src/components/Share/hooks/useCopy.ts","webpack://@tm/portal/./core/components/src/components/Share/hooks/useDebounce.ts","webpack://@tm/portal/./core/components/src/components/Share/hooks/useDebounceFormSubmit.ts","webpack://@tm/portal/./core/components/src/components/Share/hooks/useEmailState.ts","webpack://@tm/portal/./core/components/src/components/Share/index.tsx","webpack://@tm/portal/./core/components/src/components/Share/models/index.ts","webpack://@tm/portal/./core/components/src/components/Table/Table.tsx","webpack://@tm/portal/./core/components/src/components/Table/TableCell.tsx","webpack://@tm/portal/./core/components/src/components/Table/TableColumnHeader.tsx","webpack://@tm/portal/./core/components/src/components/Table/TableComponent.tsx","webpack://@tm/portal/./core/components/src/components/Table/TableGrid.tsx","webpack://@tm/portal/./core/components/src/components/Table/TableRow.tsx","webpack://@tm/portal/./core/components/src/components/Table/configs.ts","webpack://@tm/portal/./core/components/src/components/Table/elements/base.tsx","webpack://@tm/portal/./core/components/src/components/Table/elements/custom-row.tsx","webpack://@tm/portal/./core/components/src/components/Table/elements/extended.tsx","webpack://@tm/portal/./core/components/src/components/Table/elements/shadow.tsx","webpack://@tm/portal/./core/components/src/components/Table/elements/wrapper.tsx","webpack://@tm/portal/./core/components/src/components/Table/interfaces.ts","webpack://@tm/portal/./core/components/src/components/Tabs/LinkTab.tsx","webpack://@tm/portal/./core/components/src/components/Tabs/Tab.tsx","webpack://@tm/portal/./core/components/src/components/Tabs/TabPanel.tsx","webpack://@tm/portal/./core/components/src/components/Tabs/Tabs.tsx","webpack://@tm/portal/./core/components/src/components/Tip/index.tsx","webpack://@tm/portal/./core/components/src/components/VehicleHistory/HistoryItem.tsx","webpack://@tm/portal/./core/components/src/components/VehicleHistory/index.tsx","webpack://@tm/portal/./core/components/src/components/VehicleImage/helper.ts","webpack://@tm/portal/./core/components/src/components/VehicleImage/index.tsx","webpack://@tm/portal/./core/components/src/components/VehicleSearch/CountrySelection.tsx","webpack://@tm/portal/./core/components/src/components/VehicleSearch/ManufacturerCard.tsx","webpack://@tm/portal/./core/components/src/components/VehicleSearch/TopManufacturerCards.tsx","webpack://@tm/portal/./core/components/src/components/VehicleSearch/VehicleSearch.tsx","webpack://@tm/portal/./core/components/src/components/VehicleSearch/VehicleSelection.tsx","webpack://@tm/portal/./core/components/src/components/VehicleSelected/index.tsx","webpack://@tm/portal/./core/components/src/components/VinField/index.tsx","webpack://@tm/portal/./core/components/src/components/alert/alert.tsx","webpack://@tm/portal/./core/components/src/components/articleNumber/index.tsx","webpack://@tm/portal/./core/components/src/components/availability/AvailabilitySymbol.tsx","webpack://@tm/portal/./core/components/src/components/availability/DefaultAvailability.tsx","webpack://@tm/portal/./core/components/src/components/availability/color-mapping.tsx","webpack://@tm/portal/./core/components/src/components/chat/chatCard.tsx","webpack://@tm/portal/./core/components/src/components/chat/chatList.tsx","webpack://@tm/portal/./core/components/src/components/chat/chatMessageAppointment.tsx","webpack://@tm/portal/./core/components/src/components/chat/chatMessageBubble.tsx","webpack://@tm/portal/./core/components/src/components/chat/chatMessageContainer.tsx","webpack://@tm/portal/./core/components/src/components/chat/chatMessageFileAttachment.tsx","webpack://@tm/portal/./core/components/src/components/chat/chatMessageMetaData.tsx","webpack://@tm/portal/./core/components/src/components/chat/chatMessageOffer.tsx","webpack://@tm/portal/./core/components/src/components/confirmationDialog/index.tsx","webpack://@tm/portal/./core/components/src/components/dialog/index.tsx","webpack://@tm/portal/./core/components/src/components/dropzone/helper.ts","webpack://@tm/portal/./core/components/src/components/dropzone/index.tsx","webpack://@tm/portal/./core/components/src/components/modal/index.tsx","webpack://@tm/portal/./core/components/src/components/searchfield/index.tsx","webpack://@tm/portal/./core/components/src/components/worktaskTab/VehicleThumbnail.tsx","webpack://@tm/portal/./core/components/src/components/worktaskTab/tabWithImage.tsx","webpack://@tm/portal/./core/components/src/generics/Badge/Badge.tsx","webpack://@tm/portal/./core/components/src/generics/Checkbox/Checkbox.tsx","webpack://@tm/portal/./core/components/src/generics/FormControlLabel/FormControlLabel.tsx","webpack://@tm/portal/./core/components/src/generics/Icons/default-svg.tsx","webpack://@tm/portal/./core/components/src/generics/Icons/index.tsx","webpack://@tm/portal/./core/components/src/generics/ListItemPaper/index.tsx","webpack://@tm/portal/./core/components/src/generics/LoadingContainer/LoadingContainer.tsx","webpack://@tm/portal/./core/components/src/generics/MuiCustomModal/MuiCustomModal.tsx","webpack://@tm/portal/./core/components/src/generics/SimpleCard/SimpleCard.tsx","webpack://@tm/portal/./core/components/src/generics/accordion/AccordionSummary.tsx","webpack://@tm/portal/./core/components/src/generics/buttonGroup/buttonGroup.tsx","webpack://@tm/portal/./core/components/src/generics/button/ButtonVariations.tsx","webpack://@tm/portal/./core/components/src/generics/button/attachmentButton.tsx","webpack://@tm/portal/./core/components/src/generics/button/button.tsx","webpack://@tm/portal/./core/components/src/generics/button/iconButton.tsx","webpack://@tm/portal/./core/components/src/generics/button/linkButton.tsx","webpack://@tm/portal/./core/components/src/generics/datepicker/dateRange/dateRange.tsx","webpack://@tm/portal/./core/components/src/generics/datepicker/dateTime/dateTimePicker.tsx","webpack://@tm/portal/./core/components/src/generics/datepicker/date/datePicker.tsx","webpack://@tm/portal/./core/components/src/generics/divider/index.tsx","webpack://@tm/portal/./core/components/src/generics/easyPopover/EasyPopover.tsx","webpack://@tm/portal/./core/components/src/generics/easyPopover/PopoverActionButton.tsx","webpack://@tm/portal/./core/components/src/generics/easyPopover/PopoverContent.tsx","webpack://@tm/portal/./core/components/src/generics/easyPopover/context.ts","webpack://@tm/portal/./core/components/src/generics/easyPopover/useResizeRef.ts","webpack://@tm/portal/./core/components/src/generics/image/fallbacks/Flag.tsx","webpack://@tm/portal/./core/components/src/generics/image/fallbacks/article-fallback.tsx","webpack://@tm/portal/./core/components/src/generics/image/fallbacks/bike-fallback.tsx","webpack://@tm/portal/./core/components/src/generics/image/fallbacks/car-fallback.tsx","webpack://@tm/portal/./core/components/src/generics/image/fallbacks/manufacturer-fallback.tsx","webpack://@tm/portal/./core/components/src/generics/image/fallbacks/svg-fallback.tsx","webpack://@tm/portal/./core/components/src/generics/image/index.tsx","webpack://@tm/portal/./core/components/src/generics/link/routerLink.tsx","webpack://@tm/portal/./core/components/src/generics/loader/Loader.tsx","webpack://@tm/portal/./core/components/src/generics/loader/ProgressBar.tsx","webpack://@tm/portal/./core/components/src/generics/loader/Spinner.tsx","webpack://@tm/portal/./core/components/src/generics/paper/paper.tsx","webpack://@tm/portal/./core/components/src/generics/paper/selectorPaper.tsx","webpack://@tm/portal/./core/components/src/generics/radioButton/index.tsx","webpack://@tm/portal/./core/components/src/generics/scrollContainer/index.tsx","webpack://@tm/portal/./core/components/src/generics/select/NumberSelect.tsx","webpack://@tm/portal/./core/components/src/generics/select/NumberSelectList.tsx","webpack://@tm/portal/./core/components/src/generics/select/Select.tsx","webpack://@tm/portal/./core/components/src/generics/select/SelectItem.tsx","webpack://@tm/portal/./core/components/src/generics/select/SelectTextField.tsx","webpack://@tm/portal/./core/components/src/generics/separator/index.tsx","webpack://@tm/portal/./core/components/src/generics/statePill/index.tsx","webpack://@tm/portal/./core/components/src/generics/switch/ToggleSwitch.tsx","webpack://@tm/portal/./core/components/src/generics/switch/switch.tsx","webpack://@tm/portal/./core/components/src/generics/textfield/Arrows.tsx","webpack://@tm/portal/./core/components/src/generics/textfield/index.tsx","webpack://@tm/portal/./core/components/src/generics/tooltip/component.tsx","webpack://@tm/portal/./core/components/src/generics/tooltip/index.tsx","webpack://@tm/portal/./core/components/src/generics/typographie/index.tsx","webpack://@tm/portal/./core/components/src/hooks/useDebounce.ts","webpack://@tm/portal/./core/components/src/theme/defaultTheme.ts","webpack://@tm/portal/./core/components/src/theme/theme.ts","webpack://@tm/portal/./core/components/src/utils/debounce.ts","webpack://@tm/portal/./core/components/src/utils/fillArray.ts","webpack://@tm/portal/./core/context-distribution/src/components/alert-notifications/component.tsx","webpack://@tm/portal/./core/context-distribution/src/helper/index.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/basket/useAddToBasketModuleParameters.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/basket/useCostEstimationModuleParameters.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/basket/useWorkTaskOrderModuleParameters.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/catalog/useAvailabilityStatus.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/catalog/useHidePriceTypes.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/cis/useCisCustomer.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/cis/useCisReturnItemsTotalNumbers.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/cis/useHasCis.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/cis/useShowCisOptions.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/tyres/useNewTyreSearch.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/tyres/useTyresMatchCodeSearchType.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/tyres/useTyresV2.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/useDatCredentials.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/useDisplayListV2.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/useErpCredentials.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/useHotline.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/useShowNewArticleList.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/useTelesalesCustomerNumber.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/vehicle/useCountryCodeToLicensePlate.ts","webpack://@tm/portal/./core/context-distribution/src/hooks/vehicle/useSelectedVehicleLookup.ts","webpack://@tm/portal/./core/context-distribution/src/moduleNavigation/index.ts","webpack://@tm/portal/./core/context-distribution/src/moduleNavigation/state.ts","webpack://@tm/portal/./core/context-distribution/src/moduleNavigation/useInitModuleNavigation.ts","webpack://@tm/portal/./core/context-distribution/src/moduleNavigation/useModuleNavigation.ts","webpack://@tm/portal/./core/context-distribution/src/pureArticleLists/usePureArticleLists.ts","webpack://@tm/portal/./core/context-distribution/src/size/context.ts","webpack://@tm/portal/./core/context-distribution/src/size/helper.ts","webpack://@tm/portal/./core/context-distribution/src/size/provider.tsx","webpack://@tm/portal/./core/context-distribution/src/size/useSize.ts","webpack://@tm/portal/./core/context-distribution/src/size/withSize.tsx","webpack://@tm/portal/./core/context-distribution/src/style/helper.ts","webpack://@tm/portal/./core/context-distribution/src/style/useStyle.ts","webpack://@tm/portal/./core/context-distribution/src/style/withStyle.ts","webpack://@tm/portal/./core/context-distribution/src/theme/ThemeProvider.tsx","webpack://@tm/portal/./core/context-distribution/src/theme/ThemeProviderContext.ts","webpack://@tm/portal/./core/context-distribution/src/theme/index.ts","webpack://@tm/portal/./core/context-distribution/src/theme/withTheme.tsx","webpack://@tm/portal/./core/context-distribution/src/url/index.ts","webpack://@tm/portal/./core/context-distribution/src/user/consumer/useUser.tsx","webpack://@tm/portal/./core/context-distribution/src/user/consumer/withChangeUserSetting.tsx","webpack://@tm/portal/./core/context-distribution/src/user/consumer/withUserContext.tsx","webpack://@tm/portal/./core/context-distribution/src/user/consumer/withUserSettings.tsx","webpack://@tm/portal/./core/context-distribution/src/user/data/index.ts","webpack://@tm/portal/./core/context-distribution/src/user/data/mapper.ts","webpack://@tm/portal/./core/context-distribution/src/user/data/repairshop.ts","webpack://@tm/portal/./core/context-distribution/src/user/model/RepairTimeOptions.ts","webpack://@tm/portal/./core/context-distribution/src/user/model/UserProviderContext.ts","webpack://@tm/portal/./core/context-distribution/src/user/provider/createUserProvider.tsx","webpack://@tm/portal/./core/context-distribution/src/worktask/consumer/getWorkTaskId.tsx","webpack://@tm/portal/./core/context-distribution/src/worktask/consumer/useWorkTask.tsx","webpack://@tm/portal/./core/context-distribution/src/worktask/consumer/useWorkTaskId.tsx","webpack://@tm/portal/./core/context-distribution/src/worktask/consumer/withWorkTask.tsx","webpack://@tm/portal/./core/context-distribution/src/worktask/consumer/withWorkTaskConflict.tsx","webpack://@tm/portal/./core/context-distribution/src/worktask/data/index.ts","webpack://@tm/portal/./core/context-distribution/src/worktask/model/context.ts","webpack://@tm/portal/./core/context-distribution/src/worktask/provider/WorkTaskProvider.tsx","webpack://@tm/portal/./core/context-distribution/src/worktask/provider/attachToWorkTask.ts","webpack://@tm/portal/./core/context-distribution/src/worktask/provider/createWorkTask.ts","webpack://@tm/portal/./core/context-distribution/src/worktask/provider/helpers.ts","webpack://@tm/portal/./core/context-distribution/src/worktask/provider/loadVehicleDataAvailabilities.ts","webpack://@tm/portal/./core/context-distribution/src/worktask/provider/loadWorkTaskInfo.ts","webpack://@tm/portal/./core/context-distribution/src/worktask/provider/openWorkTask.ts","webpack://@tm/portal/./core/controls/src/components/BonusSystemImage.tsx","webpack://@tm/portal/./core/controls/src/components/ReplaceButton.tsx","webpack://@tm/portal/./core/controls/src/components/alert/index.tsx","webpack://@tm/portal/./core/controls/src/components/amount-field/components/amountfield-input.tsx","webpack://@tm/portal/./core/controls/src/components/amount-field/components/amountfield-item.tsx","webpack://@tm/portal/./core/controls/src/components/amount-field/decimal/decimal-amount-field.tsx","webpack://@tm/portal/./core/controls/src/components/amount-field/decimal/decimal-amountfield-input.tsx","webpack://@tm/portal/./core/controls/src/components/amount-field/decimal/decimal-amountfield-item.tsx","webpack://@tm/portal/./core/controls/src/components/amount-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/amount-field/useDecimalItems.ts","webpack://@tm/portal/./core/controls/src/components/amount-field/useItems.ts","webpack://@tm/portal/./core/controls/src/components/availability/default/components/availability-description.tsx","webpack://@tm/portal/./core/controls/src/components/availability/default/index.tsx","webpack://@tm/portal/./core/controls/src/components/availability/icon-with-description/components/availability-description.tsx","webpack://@tm/portal/./core/controls/src/components/availability/icon-with-description/index.tsx","webpack://@tm/portal/./core/controls/src/components/availability/icon-with-tour/index.tsx","webpack://@tm/portal/./core/controls/src/components/availability/multi-quantity/index.tsx","webpack://@tm/portal/./core/controls/src/components/badge/index.tsx","webpack://@tm/portal/./core/controls/src/components/button/index.tsx","webpack://@tm/portal/./core/controls/src/components/card/index.tsx","webpack://@tm/portal/./core/controls/src/components/checkbox/index.tsx","webpack://@tm/portal/./core/controls/src/components/collapsible/index.tsx","webpack://@tm/portal/./core/controls/src/components/date-field/custom-input.tsx","webpack://@tm/portal/./core/controls/src/components/date-field/helper.ts","webpack://@tm/portal/./core/controls/src/components/date-field/index.any.tsx","webpack://@tm/portal/./core/controls/src/components/date-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/demo/index.tsx","webpack://@tm/portal/./core/controls/src/components/dialog/index.tsx","webpack://@tm/portal/./core/controls/src/components/dialog/question-prompt.tsx","webpack://@tm/portal/./core/controls/src/components/dialog/warning-prompt.tsx","webpack://@tm/portal/./core/controls/src/components/dropdown-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/dropdown-menu/components/dropdown-item.tsx","webpack://@tm/portal/./core/controls/src/components/dropdown-menu/index.tsx","webpack://@tm/portal/./core/controls/src/components/file-drop-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/file-select-button/index.tsx","webpack://@tm/portal/./core/controls/src/components/fitting-position-control/index.tsx","webpack://@tm/portal/./core/controls/src/components/grid/index.tsx","webpack://@tm/portal/./core/controls/src/components/headline/index.tsx","webpack://@tm/portal/./core/controls/src/components/icon/index.tsx","webpack://@tm/portal/./core/controls/src/components/iframe/index.tsx","webpack://@tm/portal/./core/controls/src/components/image/index.tsx","webpack://@tm/portal/./core/controls/src/components/inputgroup/index.tsx","webpack://@tm/portal/./core/controls/src/components/license-plate-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/list/index.tsx","webpack://@tm/portal/./core/controls/src/components/loader/index.tsx","webpack://@tm/portal/./core/controls/src/components/message/message-inline.tsx","webpack://@tm/portal/./core/controls/src/components/message/message-system.tsx","webpack://@tm/portal/./core/controls/src/components/message/message-toast.tsx","webpack://@tm/portal/./core/controls/src/components/message/message-update-check.tsx","webpack://@tm/portal/./core/controls/src/components/modal/index.tsx","webpack://@tm/portal/./core/controls/src/components/more-menu/index.item.tsx","webpack://@tm/portal/./core/controls/src/components/more-menu/index.tsx","webpack://@tm/portal/./core/controls/src/components/number-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/panel-section/index.tsx","webpack://@tm/portal/./core/controls/src/components/password-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/popover/index.tsx","webpack://@tm/portal/./core/controls/src/components/radio/index.tsx","webpack://@tm/portal/./core/controls/src/components/range-slider/index.tsx","webpack://@tm/portal/./core/controls/src/components/real-table/index.tsx","webpack://@tm/portal/./core/controls/src/components/scroll-menu/index.tsx","webpack://@tm/portal/./core/controls/src/components/scrollbar/index.tsx","webpack://@tm/portal/./core/controls/src/components/search-field/external-hint.tsx","webpack://@tm/portal/./core/controls/src/components/search-field/index.default.tsx","webpack://@tm/portal/./core/controls/src/components/search-field/index.external-hint.tsx","webpack://@tm/portal/./core/controls/src/components/search-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/selection-list/components/selection-list-group.tsx","webpack://@tm/portal/./core/controls/src/components/selection-list/components/selection-list-item.tsx","webpack://@tm/portal/./core/controls/src/components/selection-list/index.tsx","webpack://@tm/portal/./core/controls/src/components/separator-list/index.tsx","webpack://@tm/portal/./core/controls/src/components/skeleton/index.tsx","webpack://@tm/portal/./core/controls/src/components/step/index.tsx","webpack://@tm/portal/./core/controls/src/components/subtitle/index.tsx","webpack://@tm/portal/./core/controls/src/components/suggestion-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/suggestion-field/suggestionfield-button-group.tsx","webpack://@tm/portal/./core/controls/src/components/suggestion-search-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/suggestion-text-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/switch/index.status.tsx","webpack://@tm/portal/./core/controls/src/components/switch/index.tsx","webpack://@tm/portal/./core/controls/src/components/switch/variations/double-label.tsx","webpack://@tm/portal/./core/controls/src/components/switch/variations/xor.tsx","webpack://@tm/portal/./core/controls/src/components/tab-control/index.tsx","webpack://@tm/portal/./core/controls/src/components/table/index.tsx","webpack://@tm/portal/./core/controls/src/components/tag/index.tsx","webpack://@tm/portal/./core/controls/src/components/text-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/text/index.tsx","webpack://@tm/portal/./core/controls/src/components/toolbar/components/toolbar-content.tsx","webpack://@tm/portal/./core/controls/src/components/toolbar/components/toolbar-title.tsx","webpack://@tm/portal/./core/controls/src/components/toolbar/index.tsx","webpack://@tm/portal/./core/controls/src/components/tooltip/index.tsx","webpack://@tm/portal/./core/controls/src/components/vin-field/index.tsx","webpack://@tm/portal/./core/controls/src/components/widget/components.tsx","webpack://@tm/portal/./core/controls/src/components/widget/index.tsx","webpack://@tm/portal/./core/controls/src/components/widget/sidebar.tsx","webpack://@tm/portal/./core/controls/src/configuration.ts","webpack://@tm/portal/./core/controls/src/helper/bindObjectContext.ts","webpack://@tm/portal/./core/controls/src/helper/date.ts","webpack://@tm/portal/./core/controls/src/helper/elementId.ts","webpack://@tm/portal/./core/controls/src/helper/fileTypes.ts","webpack://@tm/portal/./core/controls/src/models.ts","webpack://@tm/portal/./core/hermes/src/channel.ts","webpack://@tm/portal/./core/hermes/src/messageBus.ts","webpack://@tm/portal/./core/localization/src/LocalizationContext.ts","webpack://@tm/portal/./core/localization/src/createLocalizationProvider.tsx","webpack://@tm/portal/./core/localization/src/getLocalization.ts","webpack://@tm/portal/./core/localization/src/libs/formatCurrency.ts","webpack://@tm/portal/./core/localization/src/libs/formatNumber.ts","webpack://@tm/portal/./core/localization/src/libs/helper.ts","webpack://@tm/portal/./core/localization/src/libs/translate.ts","webpack://@tm/portal/./core/localization/src/useLocalization.ts","webpack://@tm/portal/./core/localization/src/withChangeLocalization.tsx","webpack://@tm/portal/./core/localization/src/withLocalization.tsx","webpack://@tm/portal/./core/models/src/appconfig/index.ts","webpack://@tm/portal/./core/models/src/articleItem/index.ts","webpack://@tm/portal/./core/models/src/article/article.ts","webpack://@tm/portal/./core/models/src/article/oe.ts","webpack://@tm/portal/./core/models/src/cis/index.ts","webpack://@tm/portal/./core/models/src/damage/dat/enumerations.ts","webpack://@tm/portal/./core/models/src/dms/customers.ts","webpack://@tm/portal/./core/models/src/dms/parts.ts","webpack://@tm/portal/./core/models/src/dms/repair-times.ts","webpack://@tm/portal/./core/models/src/dms/shared.ts","webpack://@tm/portal/./core/models/src/dms/stocks.ts","webpack://@tm/portal/./core/models/src/dms/vehicles.ts","webpack://@tm/portal/./core/models/src/enumerations.ts","webpack://@tm/portal/./core/models/src/erp/erp-connect.ts","webpack://@tm/portal/./core/models/src/erp/order-options/index.ts","webpack://@tm/portal/./core/models/src/erp/order-status.ts","webpack://@tm/portal/./core/models/src/fast-calculator/calc-origin.ts","webpack://@tm/portal/./core/models/src/hermes/helper/moduleMode.ts","webpack://@tm/portal/./core/models/src/hermes/helper/user.ts","webpack://@tm/portal/./core/models/src/hermes/helper/worktask.ts","webpack://@tm/portal/./core/models/src/hermes/index.ts","webpack://@tm/portal/./core/models/src/memo-tool.ts","webpack://@tm/portal/./core/models/src/module-group.ts","webpack://@tm/portal/./core/models/src/module.ts","webpack://@tm/portal/./core/models/src/nexus/index.ts","webpack://@tm/portal/./core/models/src/notes.ts","webpack://@tm/portal/./core/models/src/order.ts","webpack://@tm/portal/./core/models/src/parts/replaceButton.ts","webpack://@tm/portal/./core/models/src/react-query-keys.ts","webpack://@tm/portal/./core/models/src/session-storage-keys.ts","webpack://@tm/portal/./core/models/src/tma/eCountType.ts","webpack://@tm/portal/./core/models/src/tma/emodule.ts","webpack://@tm/portal/./core/models/src/tyres/index.ts","webpack://@tm/portal/./core/models/src/user-context.ts","webpack://@tm/portal/./core/models/src/vehicle-records/compare.ts","webpack://@tm/portal/./core/models/src/vehicle-records/show.ts","webpack://@tm/portal/./core/models/src/vehicle/gsi.ts","webpack://@tm/portal/./core/models/src/vehicle/lookup-config.ts","webpack://@tm/portal/./core/models/src/vehicle/tecdoc/cars.ts","webpack://@tm/portal/./core/models/src/vehicle/tecdoc/index.ts","webpack://@tm/portal/./core/models/src/vouchers.ts","webpack://@tm/portal/./core/models/src/works.ts","webpack://@tm/portal/./core/morpheus/src/DefaultError.tsx","webpack://@tm/portal/./core/morpheus/src/connectComponent.ts","webpack://@tm/portal/./core/morpheus/src/error-boundary.tsx","webpack://@tm/portal/./core/morpheus/src/errorListener.ts","webpack://@tm/portal/./core/morpheus/src/helpers/index.ts","webpack://@tm/portal/./core/morpheus/src/helpers/useActions.ts","webpack://@tm/portal/./core/morpheus/src/helpers/useMicro.ts","webpack://@tm/portal/./core/morpheus/src/helpers/validation.ts","webpack://@tm/portal/./core/morpheus/src/helpers/withMicro.tsx","webpack://@tm/portal/./core/morpheus/src/index.tsx","webpack://@tm/portal/./core/morpheus/src/layout.ts","webpack://@tm/portal/./core/morpheus/src/lib/BundleMicroContext.ts","webpack://@tm/portal/./core/morpheus/src/lib/createAbsoluteRoute.ts","webpack://@tm/portal/./core/morpheus/src/lib/createComponent.ts","webpack://@tm/portal/./core/morpheus/src/lib/createMicros.ts","webpack://@tm/portal/./core/morpheus/src/lib/createModule.tsx","webpack://@tm/portal/./core/morpheus/src/lib/createSwitch.ts","webpack://@tm/portal/./core/morpheus/src/lib/executePlugin.ts","webpack://@tm/portal/./core/morpheus/src/lib/loadAssets.ts","webpack://@tm/portal/./core/morpheus/src/lib/renderTemplate.ts","webpack://@tm/portal/./core/morpheus/src/lib/withTemplate.ts","webpack://@tm/portal/./core/morpheus/src/module.tsx","webpack://@tm/portal/./core/nexus/src/data/actions/RegisteredActionsContainer.ts","webpack://@tm/portal/./core/nexus/src/data/container/container.ts","webpack://@tm/portal/./core/nexus/src/data/factories/BundleContainerFactory.ts","webpack://@tm/portal/./core/nexus/src/data/factories/ModelSubscriptionFactory.ts","webpack://@tm/portal/./core/nexus/src/data/proxy/container-bundle.ts","webpack://@tm/portal/./core/nexus/src/data/proxy/container-internal-entity.ts","webpack://@tm/portal/./core/nexus/src/data/proxy/unregistered-container.ts","webpack://@tm/portal/./core/nexus/src/data/subscriptions/model-subscription.ts","webpack://@tm/portal/./core/nexus/src/data/subscriptions/subscription-holder.ts","webpack://@tm/portal/./core/nexus/src/tools/CreateKey.ts","webpack://@tm/portal/./core/nexus/src/tools/base64.ts","webpack://@tm/portal/./core/nexus/src/tools/equals.ts","webpack://@tm/portal/./core/transitions/src/basket/transitions.ts","webpack://@tm/portal/./core/transitions/src/index.ts","webpack://@tm/portal/./core/transitions/src/parts/transitions.ts","webpack://@tm/portal/./core/transitions/src/vehicle/transitions.ts","webpack://@tm/portal/./core/transitions/src/workTask/transitions.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/ArticleList.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/Button.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/Costestimation.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/Searchtree.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/SearchtreeV2.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/SectionList.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/Settings.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/Tabs.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/components/Worktask.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/index.ts","webpack://@tm/portal/./core/utils/src/UiAutomation/types.ts","webpack://@tm/portal/./core/utils/src/appState/dashboard/multiWidget/index.ts","webpack://@tm/portal/./core/utils/src/appState/parts/barcodeToast/index.ts","webpack://@tm/portal/./core/utils/src/appState/parts/partDetails/index.ts","webpack://@tm/portal/./core/utils/src/channel/communicationChannel.ts","webpack://@tm/portal/./core/utils/src/constants/keycodes.ts","webpack://@tm/portal/./core/utils/src/extensions/array.ts","webpack://@tm/portal/./core/utils/src/extensions/date.ts","webpack://@tm/portal/./core/utils/src/extensions/number.ts","webpack://@tm/portal/./core/utils/src/extensions/string.ts","webpack://@tm/portal/./core/utils/src/helpers/ajax/caching/caching-counter.ts","webpack://@tm/portal/./core/utils/src/helpers/ajax/caching/garbage-collection.ts","webpack://@tm/portal/./core/utils/src/helpers/ajax/caching/index.ts","webpack://@tm/portal/./core/utils/src/helpers/ajax/caching/request-cache.ts","webpack://@tm/portal/./core/utils/src/helpers/ajax/caching/response-cache.ts","webpack://@tm/portal/./core/utils/src/helpers/ajax/index.ts","webpack://@tm/portal/./core/utils/src/helpers/article.ts","webpack://@tm/portal/./core/utils/src/helpers/auth.ts","webpack://@tm/portal/./core/utils/src/helpers/availability.ts","webpack://@tm/portal/./core/utils/src/helpers/base64.ts","webpack://@tm/portal/./core/utils/src/helpers/basket.ts","webpack://@tm/portal/./core/utils/src/helpers/bind-special-react-methods.ts","webpack://@tm/portal/./core/utils/src/helpers/bonussystems.ts","webpack://@tm/portal/./core/utils/src/helpers/buffered-request.ts","webpack://@tm/portal/./core/utils/src/helpers/carMunValidation.ts","webpack://@tm/portal/./core/utils/src/helpers/clipboard.ts","webpack://@tm/portal/./core/utils/src/helpers/closeModalOrDrawer.ts","webpack://@tm/portal/./core/utils/src/helpers/combiners.ts","webpack://@tm/portal/./core/utils/src/helpers/convertStringToReactNodes.tsx","webpack://@tm/portal/./core/utils/src/helpers/country-code.ts","webpack://@tm/portal/./core/utils/src/helpers/customer.ts","webpack://@tm/portal/./core/utils/src/helpers/date.ts","webpack://@tm/portal/./core/utils/src/helpers/debounce.ts","webpack://@tm/portal/./core/utils/src/helpers/demo.ts","webpack://@tm/portal/./core/utils/src/helpers/devtool.ts","webpack://@tm/portal/./core/utils/src/helpers/dictionary.ts","webpack://@tm/portal/./core/utils/src/helpers/enum.ts","webpack://@tm/portal/./core/utils/src/helpers/erp.ts","webpack://@tm/portal/./core/utils/src/helpers/event-listener/event-listener-manager.ts","webpack://@tm/portal/./core/utils/src/helpers/event-listener/event-rules/index.ts","webpack://@tm/portal/./core/utils/src/helpers/event-listener/event-rules/outside-click.ts","webpack://@tm/portal/./core/utils/src/helpers/event-listener/interruption-handler/index.ts","webpack://@tm/portal/./core/utils/src/helpers/event-listener/interruption-handler/is-modal-the-currently-shown-modal.ts","webpack://@tm/portal/./core/utils/src/helpers/event-listener/interruption-handler/outside-click.ts","webpack://@tm/portal/./core/utils/src/helpers/event-listener/models.ts","webpack://@tm/portal/./core/utils/src/helpers/file-reader.ts","webpack://@tm/portal/./core/utils/src/helpers/formatters.ts","webpack://@tm/portal/./core/utils/src/helpers/getRepairTimeProviders.ts","webpack://@tm/portal/./core/utils/src/helpers/hash.ts","webpack://@tm/portal/./core/utils/src/helpers/heightAdjustment.ts","webpack://@tm/portal/./core/utils/src/helpers/html.ts","webpack://@tm/portal/./core/utils/src/helpers/i18n.ts","webpack://@tm/portal/./core/utils/src/helpers/id.ts","webpack://@tm/portal/./core/utils/src/helpers/image.ts","webpack://@tm/portal/./core/utils/src/helpers/isBundleWithReplaceButtonMicro.ts","webpack://@tm/portal/./core/utils/src/helpers/isSameArticle.ts","webpack://@tm/portal/./core/utils/src/helpers/json.ts","webpack://@tm/portal/./core/utils/src/helpers/load-module.ts","webpack://@tm/portal/./core/utils/src/helpers/location-change-event-dispatcher.ts","webpack://@tm/portal/./core/utils/src/helpers/media-size.ts","webpack://@tm/portal/./core/utils/src/helpers/message.ts","webpack://@tm/portal/./core/utils/src/helpers/model-state.ts","webpack://@tm/portal/./core/utils/src/helpers/mvc.ts","webpack://@tm/portal/./core/utils/src/helpers/object.ts","webpack://@tm/portal/./core/utils/src/helpers/pdf.ts","webpack://@tm/portal/./core/utils/src/helpers/prices.ts","webpack://@tm/portal/./core/utils/src/helpers/promise.ts","webpack://@tm/portal/./core/utils/src/helpers/register-outside-click.ts","webpack://@tm/portal/./core/utils/src/helpers/registration-number.ts","webpack://@tm/portal/./core/utils/src/helpers/repair-times.ts","webpack://@tm/portal/./core/utils/src/helpers/scroll.ts","webpack://@tm/portal/./core/utils/src/helpers/storage/index.ts","webpack://@tm/portal/./core/utils/src/helpers/storage/memory.ts","webpack://@tm/portal/./core/utils/src/helpers/string.ts","webpack://@tm/portal/./core/utils/src/helpers/typescript.ts","webpack://@tm/portal/./core/utils/src/helpers/typestyle.ts","webpack://@tm/portal/./core/utils/src/helpers/tyres.ts","webpack://@tm/portal/./core/utils/src/helpers/url.ts","webpack://@tm/portal/./core/utils/src/helpers/user-context-methods.ts","webpack://@tm/portal/./core/utils/src/helpers/validation.ts","webpack://@tm/portal/./core/utils/src/helpers/vin.ts","webpack://@tm/portal/./core/utils/src/helpers/withRouter.tsx","webpack://@tm/portal/./core/utils/src/hooks/articleDetails/useOpenArticleDetails.ts","webpack://@tm/portal/./core/utils/src/hooks/articleDetails/useOpenArticleDetailsClickHandle.ts","webpack://@tm/portal/./core/utils/src/hooks/articleNotes/useArticleNotes.ts","webpack://@tm/portal/./core/utils/src/hooks/authority/useExternalCatalogUrl.ts","webpack://@tm/portal/./core/utils/src/hooks/channel/useUnsubscribe.ts","webpack://@tm/portal/./core/utils/src/hooks/dashboard/multiWidget/useMultiWidgetState.tsx","webpack://@tm/portal/./core/utils/src/hooks/erp/useDefaultOrderWarehouse.ts","webpack://@tm/portal/./core/utils/src/hooks/erp/useDetailedErpInfoStore.ts","webpack://@tm/portal/./core/utils/src/hooks/erp/useErpConfig.ts","webpack://@tm/portal/./core/utils/src/hooks/erp/useErpDefaultExternalSystem.ts","webpack://@tm/portal/./core/utils/src/hooks/erp/useGetDetailedErpInfo.ts","webpack://@tm/portal/./core/utils/src/hooks/index.ts","webpack://@tm/portal/./core/utils/src/hooks/memoTool/useCheckHasMemo.ts","webpack://@tm/portal/./core/utils/src/hooks/memoTool/useGetMemoImportantNote.ts","webpack://@tm/portal/./core/utils/src/hooks/memoTool/useVehicleModelMemoInfo.ts","webpack://@tm/portal/./core/utils/src/hooks/parts/useArticleByArticleNumberWithOptionalVehicle.ts","webpack://@tm/portal/./core/utils/src/hooks/parts/useArticlesBySupplierArticleNumber.ts","webpack://@tm/portal/./core/utils/src/hooks/parts/useArticlesByWholesalerArticleNumber.ts","webpack://@tm/portal/./core/utils/src/hooks/parts/useArticlesByWholesalerArticleNumbers.ts","webpack://@tm/portal/./core/utils/src/hooks/postMessages/useMessage.ts","webpack://@tm/portal/./core/utils/src/hooks/resize/useWindowSize.ts","webpack://@tm/portal/./core/utils/src/hooks/statemanagement/useKeyValue.ts","webpack://@tm/portal/./core/utils/src/hooks/useLocalStorage.ts","webpack://@tm/portal/./core/utils/src/hooks/useMainHistory.ts","webpack://@tm/portal/./core/utils/src/hooks/useOnScreen.ts","webpack://@tm/portal/./core/utils/src/hooks/useResizeObserver.tsx","webpack://@tm/portal/./core/utils/src/hooks/useSelection.ts","webpack://@tm/portal/./core/utils/src/hooks/useSessionStorage.ts","webpack://@tm/portal/./core/utils/src/hooks/vatRate/useVatRateText.ts","webpack://@tm/portal/./core/utils/src/hooks/vehicle/useActiveVehicleDataProviders.ts","webpack://@tm/portal/./core/utils/src/hooks/vehicle/useIsUrlAvailable.ts","webpack://@tm/portal/./core/utils/src/hooks/vehicle/useModelDetails.ts","webpack://@tm/portal/./core/utils/src/hooks/vehicle/useShowOptions.ts","webpack://@tm/portal/./core/utils/src/hooks/worktask/useWorkTaskNotes.ts","webpack://@tm/portal/./core/utils/src/hooks/worktask/useWorkTaskTruckData.ts","webpack://@tm/portal/./core/utils/src/mappers/crm.ts","webpack://@tm/portal/./core/utils/src/mappers/dispatch-type.ts","webpack://@tm/portal/./core/utils/src/mappers/erp.ts","webpack://@tm/portal/./core/utils/src/mappers/mapOePartToOeOePart.ts","webpack://@tm/portal/./core/utils/src/mappers/oe-part.ts","webpack://@tm/portal/./core/utils/src/mappers/plate.ts","webpack://@tm/portal/./core/utils/src/mappers/quantity.ts","webpack://@tm/portal/./core/utils/src/mappers/tour.ts","webpack://@tm/portal/./core/utils/src/mappers/tyres.ts","webpack://@tm/portal/./core/utils/src/mappers/voucher-type.ts","webpack://@tm/portal/./core/utils/src/mono/getComponent.tsx","webpack://@tm/portal/./core/utils/src/mono/getComponentFromBundle.tsx","webpack://@tm/portal/./core/utils/src/tracking/event-tracker.ts","webpack://@tm/portal/./core/utils/src/tracking/events.ts","webpack://@tm/portal/./core/utils/src/tracking/events/add-repairtime-list/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/add-to-basket/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/add-to-basket/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/add-to-basket/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-erp-info-shown/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-erp-info-shown/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-filtered/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-filtered/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-filtered/event-submit-delay.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-filtered/helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-filtered/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-filtered/models.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article-list-filtered/originDetection.ts","webpack://@tm/portal/./core/utils/src/tracking/events/articleComparison/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/articleComparison/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/articleComparison/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/articlePDFClick/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/articlePDFClick/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/articlePDFClick/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/article/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/detailsFormCall/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/detailsFormCall/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/detailsFormCall/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/event-storage.ts","webpack://@tm/portal/./core/utils/src/tracking/events/generalCount/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/generalCount/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/generalCount/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/logged-in/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/logged-in/helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/logged-in/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/logged-in/models.ts","webpack://@tm/portal/./core/utils/src/tracking/events/models.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/alldata-techdata/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/alldata-techdata/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/damage-calculation-dat/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/damage-calculation-dat/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/damage-calculation-eurotax/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/damage-calculation-eurotax/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/gpi/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/gpi/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/models.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/repairtimes-autodata/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/repairtimes-autodata/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/repairtimes-awdoc/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/module-called/repairtimes-awdoc/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/premium-uni-parts-search/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/premium-uni-parts-search/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/premium-uni-parts-search/index.ts","webpack://@tm/portal/./core/utils/src/tracking/events/tma-sender.ts","webpack://@tm/portal/./core/utils/src/tracking/events/vehicle-selection/event-handle.ts","webpack://@tm/portal/./core/utils/src/tracking/events/vehicle-selection/event-helper.ts","webpack://@tm/portal/./core/utils/src/tracking/events/vehicle-selection/index.ts","webpack://@tm/portal/./core/utils/src/tracking/helper/category.ts","webpack://@tm/portal/./core/utils/src/tracking/helper/context.ts","webpack://@tm/portal/./core/utils/src/tracking/helper/mapper.ts","webpack://@tm/portal/./core/utils/src/tracking/helper/origin.ts","webpack://@tm/portal/./core/utils/src/tracking/helper/postMessage.ts","webpack://@tm/portal/./core/utils/src/tracking/helper/shared.ts","webpack://@tm/portal/./core/utils/src/tracking/helper/tma.ts","webpack://@tm/portal/./core/utils/src/tracking/index.ts","webpack://@tm/portal/./core/utils/src/tracking/models/models.ts","webpack://@tm/portal/./core/utils/src/tracking/models/originTypes.ts","webpack://@tm/portal/./core/utils/src/tracking/models/requests.ts","webpack://@tm/portal/./core/utils/src/tracking/publishing-service/models.ts"],"sourcesContent":["var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCh = function SvgCh(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"15mm\",\n height: \"22mm\",\n viewBox: \"0 0 15 22\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"#787878\",\n strokeOpacity: 0.5,\n strokeWidth: 0.2\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EC2A2B\",\n d: \"M7.044 21.259Q1.537 19.119.04 12.807a1.5 1.5 0 0 1-.04-.346V1.5a1 1 0 0 1 1-1h12.764a1 1 0 0 1 1 1v11.02a1 1 0 0 1-.027.227q-1.53 6.553-7.355 8.638z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F0EEEE\",\n d: \"M8.725 3.093a.5.5 0 0 1 .5.5V7.33h3.738a.5.5 0 0 1 .5.5v2.686a.5.5 0 0 1-.5.5H9.225v3.738a.5.5 0 0 1-.5.5H6.039a.5.5 0 0 1-.5-.5v-3.738H1.8a.5.5 0 0 1-.5-.5V7.83a.5.5 0 0 1 .5-.5h3.738V3.593a.5.5 0 0 1 .5-.5z\"\n }))));\n};\nexport default SvgCh;","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEu = function SvgEu(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"300mm\",\n height: \"300mm\",\n viewBox: \"0 0 300 300\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 107.224 121.15)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 -10.394 3.533)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 48.36 19.418)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 91.447 62.342)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 91.393 179.905)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 48.415 222.992)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 -69.203 222.774)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 -112.18 179.905)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 -128.012 121.15)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 -112.18 62.233)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 -69.203 19.255)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m600.397 165.33-39.466-27.435-39.439 27.472 13.896-46.012-38.314-29.019 48.053-1.002 15.76-45.407 15.802 45.392 48.055.956-38.288 29.056z\",\n style: {\n opacity: 1,\n fill: \"#fc0\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 1.13392639,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(.28592 0 0 .28465 -7.402 238.442)\"\n }));\n};\nexport default SvgEu;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgN = function SvgN(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1100mm\",\n height: \"800mm\",\n viewBox: \"0 0 1100 800\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ef2b2d\",\n d: \"M0 0h1100v800H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M300 0h200v800H300z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 300h1100v200H0z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002868\",\n d: \"M350 0h100v800H350z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002868\",\n d: \"M0 350h1100v100H0z\"\n })));\n};\nexport default SvgN;","var _clipPath, _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUk = function SvgUk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 1000,\n height: 600,\n viewBox: \"0 0 50 30\"\n }, props), _clipPath || (_clipPath = /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"uk_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25 15h25v15zv15H0zH0V0zV0h25z\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#012169\",\n d: \"M0 0v30h50V0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 6,\n d: \"m0 0 50 30m0-30L0 30\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#C8102E\",\n strokeWidth: 4,\n d: \"m0 0 50 30m0-30L0 30\",\n clipPath: \"url(#uk_svg__a)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8102E\",\n stroke: \"#FFF\",\n strokeWidth: 2,\n d: \"M-1 11h22V-1h8v12h22v8H29v12h-8V19H-1z\"\n })));\n};\nexport default SvgUk;","import { CacheProvider } from \"@emotion/react\"\r\nimport createCache from \"@emotion/cache\"\r\nimport { ThemeProvider as MuiThemeProvider } from \"@mui/material\"\r\nimport { ThemeProviderProps } from \"@mui/material/styles/ThemeProvider\"\r\n\r\nexport function ThemeProvider(props: ThemeProviderProps) {\r\n const stylesCache = createCache({ key: \"nx\", speedy: true })\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n","import { MenuItem, Stack } from \"@mui/material\"\r\nimport { ArticleActionButton, ErpIconType } from \"@tm/models\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\n\r\nexport function ActionMenuItem(props: { action: ArticleActionButton; handleCloseMore: () => void }) {\r\n const { iconType, text, icon, handler, isHighlight } = props.action\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction mergeHandler(...handler: (() => void)[]) {\r\n return () => handler.forEach((handle) => handle())\r\n}\r\n","import { ECounterType } from \"@tm/models\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\n\r\nexport function sendTmaEvent(id: string): void {\r\n switch (id) {\r\n case \"erpAlternatives\":\r\n TmaHelper.GeneralCountEvent.Call(ECounterType.ArticleListArticleDetailsViaAlternativeArticle)\r\n break\r\n case \"details\":\r\n TmaHelper.GeneralCountEvent.Call(ECounterType.ArticleListArticleDetailsViaDetailsButton)\r\n break\r\n case \"accessories\":\r\n TmaHelper.GeneralCountEvent.Call(ECounterType.ArticleListArticleDetailsViaAccessoryList)\r\n break\r\n /// more will be added later\r\n default:\r\n break\r\n }\r\n}\r\n","import { Box, ClickAwayListener, Fade, Paper, Popper, Stack } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Article, ArticleActionButton, ArticleInfoGroup, EMediaType, ErpIconType } from \"@tm/models\"\r\nimport { useCallback, useRef, useState } from \"react\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { ButtonAction } from \"./ButtonAction\"\r\n\r\ntype Props = {\r\n article: Article\r\n}\r\n\r\nexport function AdditionalInformation({ article }: Props) {\r\n const { translateText } = useLocalization()\r\n const [showPopper, setShowPopper] = useState(false)\r\n const buttonRef = useRef(null)\r\n\r\n const handleClick = useCallback(() => {\r\n setShowPopper((state) => !state)\r\n }, [])\r\n\r\n const articleAction: ArticleActionButton = {\r\n handler: handleClick,\r\n icon: \"trader-icon\",\r\n text: translateText(526),\r\n iconType: ErpIconType.AdditionalInformations,\r\n displayType: \"BUTTON\",\r\n sort: -1,\r\n }\r\n\r\n function getDocumentButton(articleInfoGroup: ArticleInfoGroup) {\r\n if (!articleInfoGroup.member) {\r\n return null\r\n }\r\n\r\n return articleInfoGroup.member.map((link) => (\r\n }\r\n href={link.content}\r\n target=\"_blank\"\r\n />\r\n ))\r\n }\r\n\r\n function getDocumentTypeIcon(mediaType: EMediaType) {\r\n switch (mediaType) {\r\n case EMediaType.Video:\r\n case EMediaType.Audio:\r\n return \"arrow-right\"\r\n case EMediaType.Pdf:\r\n return \"file-pdf\"\r\n case EMediaType.Website:\r\n case EMediaType.YoutubeChannel:\r\n return \"partslink24\"\r\n default:\r\n break\r\n }\r\n }\r\n\r\n return (\r\n setShowPopper(false)}>\r\n \r\n \r\n \r\n \r\n\r\n \r\n {({ TransitionProps }: any) => (\r\n \r\n \r\n {article.additionalReferenceArticleInformation.links.map((link) => getDocumentButton(link))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { ArticleActionButton, ErpIconType } from \"@tm/models\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\nimport { IconAction } from \"./IconAction\"\r\nimport { sendTmaEvent } from \"./ActionsTmaHelper\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\n\r\ntype ButtonActionProps = {\r\n action: ArticleActionButton\r\n hideText?: boolean\r\n}\r\n\r\nexport function ButtonAction({ action, hideText }: ButtonActionProps) {\r\n const { tooltip, text, handler, icon, isHighlight, iconType } = action\r\n const isExpanded = useDefaultArticleItemState((x) => x.expanded)\r\n const handleClickEventWithTma = (event: React.MouseEvent) => {\r\n handler(event)\r\n sendTmaEvent(ErpIconType[iconType])\r\n }\r\n\r\n const isButton = !hideText && isExpanded\r\n\r\n let content = isButton ? (\r\n }\r\n size=\"small\"\r\n variant=\"outlined\"\r\n color={isHighlight ? \"primary\" : undefined}\r\n >\r\n {text}\r\n \r\n ) : (\r\n \r\n )\r\n\r\n if (tooltip) {\r\n content = {content}\r\n }\r\n\r\n return content\r\n}\r\n","import { Stack } from \"@mui/material\"\r\nimport { ErpIconType } from \"@tm/models\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { GraduatedPrices } from \"../GraduatedPrices\"\r\nimport { IconAction } from \"./IconAction\"\r\n\r\nexport function ErpAreaActions() {\r\n const articleActions = useDefaultArticleItemState((x) => x.articleActions)\r\n const isExpanded = useDefaultArticleItemState((x) => x.expanded)\r\n const articleErpInfos = useDefaultArticleItemState((x) => x.articleErpInfos)\r\n const hasGraduatedPrices = articleErpInfos?.default?.state === \"success\" && articleErpInfos.default.response.graduatedPrices\r\n\r\n if (!hasGraduatedPrices && !articleActions?.erpArea.length) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n {articleActions?.erpArea.map((action) => )}\r\n \r\n )\r\n}\r\n","import { Box, ClickAwayListener, Fade, LinearProgress, Popper, Stack } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { FoundByParams } from \"@tm/models\"\r\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Paper } from \"../../../generics/paper\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { IconButton as ArticleIconButton } from \"../IconButton\"\r\n\r\ntype Props = {\r\n articleFoundBy: FoundByParams\r\n}\r\n\r\nexport function FoundBy({ articleFoundBy }: Props) {\r\n const { translateText } = useLocalization()\r\n const [showPopper, setShowPopper] = useState(false)\r\n\r\n const anchorRef = useRef(null)\r\n const unsubRef = useRef<() => void>()\r\n\r\n const foundByTexts = useMemo(\r\n () =>\r\n articleFoundBy?.hitInfos?.map(({ searchFilter, referenceNo, manufacturerName }) =>\r\n [searchFilter, referenceNo, manufacturerName].join(\" \")\r\n ) ?? [],\r\n [articleFoundBy?.hitInfos]\r\n )\r\n\r\n const hidePopper = useCallback(() => {\r\n setShowPopper(false)\r\n }, [])\r\n\r\n useEffect(() => {\r\n unsubRef.current?.()\r\n if (showPopper) {\r\n window.addEventListener(\"wheel\", hidePopper)\r\n unsubRef.current = () => window.removeEventListener(\"wheel\", hidePopper)\r\n }\r\n return unsubRef.current\r\n }, [showPopper])\r\n\r\n const handleClick = useCallback(() => {\r\n if (!articleFoundBy) {\r\n return\r\n }\r\n setShowPopper((state) => !state)\r\n if (!articleFoundBy.hitInfos) {\r\n articleFoundBy.load()\r\n }\r\n }, [articleFoundBy])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n {translateText(1388)}\r\n {articleFoundBy.isLoading && }\r\n \r\n {foundByTexts.map((text) => (\r\n {text}\r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { ArticleActionIcon, ErpIconType } from \"@tm/models\"\r\nimport { styled } from \"@mui/material\"\r\nimport { useMemo } from \"react\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { ImsIcon } from \"../ImsIcon\"\r\nimport { sendTmaEvent } from \"./ActionsTmaHelper\"\r\nimport { IconButton } from \"../IconButton\"\r\nimport { Image } from \"../../../generics/image\"\r\n\r\ntype IconActionProps = {\r\n action: ArticleActionIcon\r\n}\r\n\r\nconst StyledIconButton = styled(IconButton)({\r\n objectFit: \"contain\",\r\n height: 20,\r\n padding: \"0\",\r\n margin: \"0\",\r\n\r\n svg: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n})\r\n\r\nconst StyledImage = styled(Image)({\r\n objectFit: \"contain\",\r\n height: 20,\r\n})\r\n\r\nexport function IconAction({ action: { tooltip, handler, icon, isHighlight, iconType, useIconFromUrl } }: IconActionProps) {\r\n const imsIcon = useDefaultArticleItemState((x) => x.imsIcon)\r\n\r\n const handleClickEventWithTma = useMemo(() => {\r\n if (handler) {\r\n return (event: React.MouseEvent) => {\r\n handler(event)\r\n sendTmaEvent(ErpIconType[iconType])\r\n }\r\n }\r\n }, [handler, iconType])\r\n\r\n const content = useMemo(() => {\r\n if (useIconFromUrl) {\r\n return \r\n }\r\n if (icon === \"trader-icon\" && imsIcon) {\r\n return \r\n }\r\n return \r\n }, [useIconFromUrl, icon, imsIcon, isHighlight])\r\n\r\n const wrappedContent = useMemo(() => {\r\n if (handleClickEventWithTma) {\r\n return (\r\n \r\n {content}\r\n \r\n )\r\n }\r\n return content\r\n }, [handleClickEventWithTma, content])\r\n\r\n return {wrappedContent}\r\n}\r\n","import { Stack, styled } from \"@mui/material\"\r\nimport { ImgHTMLAttributes } from \"react\"\r\nimport { ErpIconType } from \"@tm/models\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { IconAction } from \"./IconAction\"\r\nimport { Image } from \"../../../generics/image\"\r\n\r\ntype ImageAreasIconImageProps = ImgHTMLAttributes & {\r\n isExpanded?: boolean\r\n}\r\nconst ImageAreaImageIcon = styled(Image, { shouldForwardProp: (prop: string) => prop !== \"isExpanded\" })(\r\n ({ isExpanded }) => ({\r\n maxWidth: isExpanded ? 80 : 40,\r\n objectFit: \"contain\",\r\n display: \"block\",\r\n })\r\n)\r\n\r\nexport function ImageAreaActions() {\r\n const articleActions = useDefaultArticleItemState((x) => x.articleActions)\r\n const isExpanded = useDefaultArticleItemState((x) => x.expanded)\r\n\r\n return (\r\n \r\n {articleActions?.imageArea.map((action) =>\r\n action.useIconFromUrl ? (\r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n )\r\n}\r\n","import { ReactNode, useMemo } from \"react\"\r\nimport { Box, Stack, useMediaQuery, useTheme } from \"@mui/material\"\r\nimport { ErpIconType } from \"@tm/models\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { MemoTooltip } from \"./MemoTooltip\"\r\nimport { FoundBy } from \"./FoundBy\"\r\nimport { AdditionalInformation } from \"./AdditionalInformation\"\r\nimport { Selection } from \"./Selection\"\r\nimport { ButtonAction } from \"./ButtonAction\"\r\nimport { IconAction } from \"./IconAction\"\r\nimport { Watchlist } from \"../Watchlist\"\r\nimport { MoreMenuButton } from \"./MoreMenuButton\"\r\n\r\nexport function InformationAreaActions() {\r\n const articleActions = useDefaultArticleItemState((x) => x.articleActions)\r\n const { hasWatchList, highlightWatchlistButton } = useDefaultArticleItemState((x) => x.options)\r\n const articleFoundBy = useDefaultArticleItemState((x) => x.foundBy)\r\n const article = useDefaultArticleItemState((x) => x.article)\r\n const memoTooltipIcon = useDefaultArticleItemState((x) => x.memoTooltipIcon)\r\n const defaultArticleErpInfos = useDefaultArticleItemState((x) => x.articleErpInfos?.default)\r\n const erpInfos = defaultArticleErpInfos?.state === \"success\" ? defaultArticleErpInfos.response : undefined\r\n const hasAdditionalInfo = !!article.additionalReferenceArticleInformation?.links.length\r\n\r\n const { breakpoints } = useTheme()\r\n const isHighResolution = useMediaQuery(breakpoints.up(\"xl\"))\r\n\r\n const actionList = useMemo(() => {\r\n const elements: ReactNode[] = []\r\n articleActions?.informationArea.forEach((action) => {\r\n // Actions coming from article item state\r\n if (action.displayType === \"BUTTON\") {\r\n elements.unshift()\r\n } else {\r\n elements.unshift()\r\n }\r\n\r\n // Additional actions, which cannot be defined in the state because of additional components like a menu\r\n if (action.iconType === ErpIconType.Details && hasWatchList && !highlightWatchlistButton) {\r\n elements.unshift()\r\n }\r\n })\r\n return elements\r\n }, [articleActions?.informationArea, hasWatchList, highlightWatchlistButton, isHighResolution])\r\n\r\n return (\r\n \r\n \r\n {erpInfos?.memos && memoTooltipIcon && }\r\n {articleFoundBy && }\r\n {hasAdditionalInfo && }\r\n {actionList}\r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { Memo } from \"@tm/models\"\r\nimport { Stack, styled, Typography } from \"@mui/material\"\r\n\r\ntype Props = {\r\n memos: Memo[]\r\n}\r\n\r\nconst StyledTable = styled(\"table\")(({ theme }) => ({\r\n flex: 1,\r\n \"&:first-child\": {\r\n marginRight: \"16px\",\r\n },\r\n tr: {\r\n td: {\r\n padding: \"8px\",\r\n },\r\n\r\n \"&:nth-child(odd)\": {\r\n backgroundColor: theme.palette.grey[100],\r\n },\r\n },\r\n}))\r\n\r\nconst StyledWrapper = styled(Stack)({\r\n marginTop: \"8px\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n})\r\n\r\nexport function MemoTooltipContent({ memos }: Props) {\r\n const left = memos.filter((_, index) => index % 2 === 0)\r\n const right = memos.filter((_, index) => index % 2 !== 0)\r\n\r\n function getRow(memo: Memo) {\r\n let text = {memo.text}\r\n\r\n if (memo.linkUrl) {\r\n text = (\r\n \r\n {text}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {memo.label}\r\n \r\n {text}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {left.map((memo) => getRow(memo))}\r\n \r\n \r\n {right.map((memo) => getRow(memo))}\r\n \r\n \r\n )\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { Memo, MemoType } from \"@tm/models\"\r\nimport { MemoTooltipContent } from \"./MemoTooltipContent\"\r\nimport { Icon } from \"../../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../../generics/tooltip\"\r\nimport { Typography } from \"../../../../generics/typographie\"\r\n\r\ntype Props = {\r\n memos: Memo[]\r\n iconName: string\r\n}\r\n\r\nexport function MemoTooltip({ memos, iconName }: Props) {\r\n const { translateText } = useLocalization()\r\n\r\n if (!iconName) {\r\n return null\r\n }\r\n\r\n const memosFiltered = memos?.filter((m) => m.type === MemoType.Hyperlink || m.type === MemoType.AdditionalDescription)\r\n if (!memosFiltered?.length) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n {translateText(180)}\r\n \r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n","import { MenuList, Popover, Stack } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ECounterType, ErpIconType } from \"@tm/models\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\nimport { useCallback, useState } from \"react\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { IconButton } from \"../IconButton\"\r\nimport { ActionMenuItem } from \"./ActionMenuItem\"\r\n\r\nexport function MoreMenuButton() {\r\n const [moreMenuEl, setMoreMenuEl] = useState(null)\r\n const { translateText } = useLocalization()\r\n\r\n const moreList = useDefaultArticleItemState((x) => x.articleActions?.menuArea)\r\n\r\n const handleClickMore = useCallback((e: React.MouseEvent) => {\r\n setMoreMenuEl(e.currentTarget)\r\n TmaHelper.GeneralCountEvent.Call(ECounterType.ArticleListArticleFurtherOptions)\r\n }, [])\r\n\r\n const handleCloseMore = useCallback(() => {\r\n setMoreMenuEl(null)\r\n }, [])\r\n\r\n return moreList?.length ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {moreList.map((action) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n ) : null\r\n}\r\n","import { Checkbox } from \"@mui/material\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\nimport { ECounterType } from \"@tm/models\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\n\r\nexport function Selection() {\r\n const article = useDefaultArticleItemState((x) => x.article)\r\n const quantity = useDefaultArticleItemState((x) => x.quantity)\r\n const selection = useDefaultArticleItemState((x) => x.selection)\r\n const largeCheckbox = useDefaultArticleItemState((x) => x?.largeCheckbox)\r\n\r\n if (!selection) {\r\n return null\r\n }\r\n\r\n const { isArticleSelected, toggleSelectedArticle, maximumPartsToCompare, selectedArticles } = selection\r\n\r\n const handleArticleCheckBoxEvent = () => {\r\n const maxParts = maximumPartsToCompare || 25\r\n const isSelected = isArticleSelected(article)\r\n\r\n if (selectedArticles?.length >= maxParts && !isSelected) {\r\n return\r\n }\r\n\r\n toggleSelectedArticle({\r\n ...article,\r\n quantity,\r\n })\r\n\r\n TmaHelper.GeneralCountEvent.Call(ECounterType.ArticleListArticleCheckbox, !isSelected)\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import { memo } from \"react\"\r\nimport { Box, Stack } from \"@mui/material\"\r\nimport { DMS } from \"@tm/models\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { Divider } from \"../../../generics/divider\"\r\nimport { TooltipContentText, TooltipWrapper } from \"../Attributes/TooltipWrapper\"\r\nimport { DmsArticleInformation } from \"../Dms/DmsArticleInformation\"\r\nimport { CompactNotification } from \"../Notifications/CompactNotification\"\r\nimport AlreadyOrderedArticle from \"../Vouchers/AlreadyOrderedArticle\"\r\n\r\nexport const CompactAdditionalInformations = memo(() => {\r\n const generalInformations = useDefaultArticleItemState((x) => x.displayArticle.additionalInformation?.generalInformation)\r\n const notifications = useDefaultArticleItemState((x) => x.notifications)\r\n const dmsInfo = useDefaultArticleItemState((x) => x.dmsArticleInfo)\r\n const expandedArticleList = useDefaultArticleItemState((x) => x.expanded)\r\n const alreadyOrdered = useDefaultArticleItemState((x) => x.alreadyOrdered)\r\n\r\n function showDmsInformation() {\r\n return (\r\n dmsInfo.stockItem &&\r\n (dmsInfo.stockItem.invoiced ||\r\n (dmsInfo.stockItem.availability !== undefined && dmsInfo.stockItem.availability !== DMS.Availability.Undefined))\r\n )\r\n }\r\n\r\n if (!generalInformations?.length && !notifications?.length && !showDmsInformation()) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n <>\r\n {alreadyOrdered && }\r\n {generalInformations?.map(([title, contents]) => (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n {!!contents?.length && (\r\n \r\n {contents.map((content) => (\r\n \r\n {content}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n ))}\r\n {notifications?.map((note) => (\r\n 1}\r\n />\r\n ))}\r\n {showDmsInformation() && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n})\r\n","import { useMemo } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ArticleReferenceType, EArticleModificationState } from \"@tm/models\"\r\nimport { Box, Stack, styled } from \"@mui/material\"\r\nimport { ReferenceGroup } from \"../References/ReferenceGroup\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { Divider } from \"../../../generics/divider\"\r\nimport { ImsIcon } from \"../ImsIcon\"\r\n\r\nconst ContentText = styled(Typography)(({ theme }) => ({\r\n fontFamily: theme.font?.fontFamily?.secondary,\r\n fontSize: theme.typography.body2.fontSize,\r\n}))\r\n\r\nconst SpacedDivider = styled(Divider)({\r\n margin: \"0 10px\",\r\n})\r\n\r\nexport function AdditionalInformations() {\r\n const { translateText } = useLocalization()\r\n\r\n const modificationState = useDefaultArticleItemState((x) => x.displayArticle.modificationState)\r\n const additionalInformation = useDefaultArticleItemState((x) => x.displayArticle.additionalInformation)\r\n\r\n const { references, textInformation, generalInformation } = useMemo(() => additionalInformation ?? {}, [additionalInformation])\r\n\r\n const refsReplacement = useMemo(() => references?.filter((x) => x.referenceType === ArticleReferenceType.ReplacementArticleNo), [references])\r\n const refsReplaced = useMemo(() => references?.filter((x) => x.referenceType === ArticleReferenceType.ReplacedByArticleNo), [references])\r\n const refsUtilityNo = useMemo(() => references?.filter((x) => x.referenceType === ArticleReferenceType.UtilityNo), [references])\r\n const refsOeNo = useMemo(() => references?.filter((x) => x.referenceType === ArticleReferenceType.OeReferenceNo), [references])\r\n\r\n const modificationStateText = useMemo(() => {\r\n switch (modificationState) {\r\n case EArticleModificationState.ArticleAdded:\r\n return translateText(888)\r\n case EArticleModificationState.VehicleLinkageAdded:\r\n return translateText(889)\r\n default:\r\n }\r\n }, [modificationState])\r\n\r\n return (\r\n <>\r\n {generalInformation?.map(([title, contents]) => {\r\n if (!title || !contents.length) {\r\n return null\r\n }\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {contents.map((content, index) => (\r\n <>\r\n \r\n {content}\r\n \r\n {index < contents.length - 1 && }\r\n \r\n ))}\r\n \r\n \r\n )\r\n })}\r\n {(!!textInformation?.length ||\r\n !!refsReplacement?.length ||\r\n !!refsReplaced?.length ||\r\n !!refsUtilityNo?.length ||\r\n !!refsOeNo?.length ||\r\n !!modificationStateText?.length) && (\r\n \r\n \r\n \r\n \r\n {translateText(526)}\r\n \r\n \r\n \r\n \r\n \r\n {(!!refsReplacement?.length || !!refsReplaced?.length || !!refsUtilityNo?.length || !!refsOeNo?.length) && (\r\n \r\n {!!refsReplacement?.length && }\r\n {!!refsReplaced?.length && }\r\n {!!refsUtilityNo?.length && }\r\n {!!refsOeNo?.length && }\r\n \r\n )}\r\n {!!textInformation?.length && (\r\n \r\n {!!textInformation?.length && (\r\n \r\n {textInformation?.map(([title, values]) => (\r\n \r\n \r\n {title}\r\n \r\n {values.map((value) => (\r\n {value}\r\n ))}\r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n )}\r\n {!!modificationStateText?.length && (\r\n \r\n \r\n {modificationStateText}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { Button, PopoverActions, styled } from \"@mui/material\"\r\nimport { useEffect, useRef } from \"react\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { ResizablePopover } from \"../ResizablePopover\"\r\nimport { ImageViewer, ImageViewerRefActions } from \"../ImageViewer\"\r\n\r\nconst CloseButton = styled(Button)({\r\n position: \"absolute\",\r\n right: 2,\r\n top: 2,\r\n})\r\nCloseButton.defaultProps = {\r\n variant: \"text\",\r\n startIcon: ,\r\n}\r\n\r\ntype ImageViewerProps = {\r\n anchorEl?: Element | null\r\n title?: string\r\n onClose(): void\r\n}\r\n\r\nexport function ArticleImageViewer(props: ImageViewerProps) {\r\n const { title, anchorEl, onClose } = props\r\n const { isLoading, data, setEnabled } = useDefaultArticleItemState((x) => x.articleImages)\r\n\r\n useEffect(() => {\r\n setEnabled(true)\r\n }, [])\r\n\r\n const imageViewerActionsRef = useRef(null)\r\n const popoverRef = useRef(null)\r\n\r\n const onResize = () => {\r\n imageViewerActionsRef?.current?.fitImageToContent()\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { SyntheticEvent } from \"react\"\r\nimport { IconButton } from \"./IconButton\"\r\nimport { Icon } from \"../../generics/Icons\"\r\n\r\ntype Props = {\r\n copyToClipboard: () => void\r\n}\r\n\r\nexport function ArticleNumberCopyButton(props: Props) {\r\n return (\r\n {\r\n e.stopPropagation()\r\n props.copyToClipboard()\r\n }}\r\n >\r\n \r\n \r\n )\r\n}\r\n","import { useCallback } from \"react\"\r\nimport { Box, Stack } from \"@mui/material\"\r\nimport { ECounterType } from \"@tm/models\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\nimport { ArticleNumberCopyButton } from \"./ArticleNumberCopyButton\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { Divider } from \"../../generics/divider\"\r\nimport { ArticleNumber } from \"../articleNumber\"\r\n\r\ntype ArticleNumbersProps = {\r\n uniteNumbers?: boolean\r\n}\r\n\r\nexport function ArticleNumbers({ uniteNumbers }: ArticleNumbersProps) {\r\n const { traderArticleNo, hideDealerPartNumber, copyButtonSupplier, supplierArticleNo, copyButtonTrader, oeArticleNo } =\r\n useDefaultArticleItemState((x) => x.displayArticle.numbers)\r\n\r\n const handleClickDetailsIntern = useDefaultArticleItemState((x) => x.handleClickDetails)\r\n const handleCopyArticleNumber = useDefaultArticleItemState((x) => x.handleCopyArticleNumber)\r\n\r\n const positionChangeEArtNrHArtNr = useDefaultArticleItemState((x) => x.positionChangeEArtNrHArtNr)\r\n\r\n const handleClickDetails = useCallback(() => {\r\n handleClickDetailsIntern()\r\n TmaHelper.GeneralCountEvent.Call(ECounterType.ArticleListArticleDetailsViaTraderArticleNumber)\r\n }, [handleClickDetailsIntern])\r\n\r\n const handleCopyToClipboard = useCallback(\r\n (number: string) => {\r\n handleCopyArticleNumber?.(number)\r\n },\r\n [handleCopyArticleNumber]\r\n )\r\n\r\n return (\r\n }\r\n >\r\n {oeArticleNo && }\r\n {!oeArticleNo && traderArticleNo && !hideDealerPartNumber && (\r\n \r\n \r\n \r\n {copyButtonTrader && handleCopyToClipboard(traderArticleNo)} />}\r\n \r\n \r\n )}\r\n {supplierArticleNo && (\r\n \r\n \r\n {copyButtonSupplier && handleCopyToClipboard(supplierArticleNo)} />}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { Stack, styled } from \"@mui/material\"\r\nimport { ArticleAttributeParams } from \"@tm/models\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { Divider } from \"../../../generics/divider\"\r\nimport { AttributeValue } from \"./AttributeValue\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\n\r\nconst AttributeLabel = styled(Typography, { shouldForwardProp: (prop: string) => ![\"isHighlighted\", \"isCompact\"].includes(prop) })<{\r\n isCompact?: boolean\r\n isHighlighted?: boolean\r\n}>(({ theme, isHighlighted, isCompact }) => ({\r\n fontFamily: theme.font.fontFamily.condensed ?? theme.font.fontFamily.secondary,\r\n whiteSpace: \"nowrap\",\r\n padding: isCompact ? \"3px 0\" : 0,\r\n height: \"100%\",\r\n border: \"1px solid transparent\",\r\n borderRadius: theme.radius?.default ?? 3,\r\n flex: isCompact ? \"0 1 auto\" : \"0 0 auto\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n marginRight: 3,\r\n ...(isHighlighted && {\r\n paddingLeft: 4,\r\n paddingRight: 4,\r\n borderColor: theme.palette.highlight.main,\r\n backgroundColor: theme.palette.highlight.light,\r\n fontWeight: 600,\r\n }),\r\n}))\r\nAttributeLabel.defaultProps = { variant: \"label\" }\r\n\r\ntype AttributeItemElementProps = {\r\n hasBackground?: boolean\r\n isHighlighted?: boolean\r\n isCompact?: boolean\r\n}\r\n\r\nconst AttributeItemElement = styled(Stack, {\r\n shouldForwardProp: (prop: string) => ![\"hasBackground\", \"isHighlighted\", \"isCompact\"].includes(prop),\r\n})(({ theme, hasBackground, isHighlighted, isCompact }) => ({\r\n padding: \"0 4px\",\r\n flexWrap: isCompact ? \"nowrap\" : \"wrap\",\r\n maxWidth: \"100%\",\r\n alignItems: \"baseline\",\r\n alignContent: \"center\",\r\n whiteSpace: \"nowrap\",\r\n flex: isCompact ? \"none\" : \"0 0 auto\",\r\n minWidth: 0,\r\n flexDirection: \"row\",\r\n\r\n ...(isHighlighted && {\r\n \"> div\": {\r\n backgroundColor: theme.palette.highlight.light,\r\n },\r\n }),\r\n ...(hasBackground && {\r\n backgroundColor: \"#f0f0f0\",\r\n }),\r\n}))\r\n\r\nAttributeItemElement.defaultProps = {\r\n direction: \"row\",\r\n spacing: \"6px\",\r\n}\r\n\r\nexport type AttributeItemProps = {\r\n hasBackground?: boolean\r\n hideDivider?: boolean\r\n hide?: boolean\r\n attribute: ArticleAttributeParams\r\n onClickAttributeValue?(id: number, value?: string): void\r\n dividerInFront?: boolean\r\n}\r\n\r\nexport function AttributeItem({\r\n hasBackground,\r\n hideDivider,\r\n attribute: { values, label },\r\n onClickAttributeValue,\r\n hide,\r\n dividerInFront,\r\n}: AttributeItemProps) {\r\n const isHighlighted = values?.length === 1 && values.some((x) => !x.value && x.isHighlighted)\r\n const isCompactView = useDefaultArticleItemState((x) => !x.expanded)\r\n\r\n if (hide) {\r\n return null\r\n }\r\n\r\n return (\r\n <>\r\n {!hideDivider && dividerInFront && }\r\n \r\n {label && (\r\n \r\n {label}\r\n \r\n )}\r\n {values\r\n ?.filter((x) => !!x.value)\r\n .map((value) => )}\r\n {!hideDivider && !dividerInFront && }\r\n \r\n \r\n )\r\n}\r\n","import { Box, StackProps, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { AttributeValueParams, ModificationState } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\n\r\ntype AttributeValueElementProps = StackProps & {\r\n isClickable?: boolean\r\n isSelected?: boolean\r\n isRemoved?: boolean\r\n isHighlighted?: boolean\r\n}\r\n\r\nconst AttributeValueElement = styled(Box, {\r\n shouldForwardProp: (prop: string) => ![\"isClickable\", \"isSelected\", \"isRemoved\", \"isHighlighted\"].includes(prop),\r\n})(({ theme, isClickable, isSelected, isRemoved, isHighlighted }) => ({\r\n fontWeight: 600,\r\n opacity: 1,\r\n padding: 0,\r\n border: \"1px solid transparent\",\r\n borderRadius: theme.radius?.default,\r\n fontFamily: theme.font.fontFamily.condensed ?? theme.font.fontFamily.secondary,\r\n fontSize: theme.font.label?.fontSize,\r\n whiteSpace: \"nowrap\",\r\n flexWrap: \"nowrap\",\r\n flex: \"inherit\", // make sure to use the flex-settings from parent\r\n minWidth: 0,\r\n overflow: \"hidden\",\r\n margin: \"0 !important\", // make sure spacing from parent is not applied here, we have to use the SpacingWrapper instead\r\n\r\n svg: {\r\n marginRight: 4,\r\n },\r\n\r\n ...(isRemoved && {\r\n textDecoration: \"line-through\",\r\n }),\r\n ...(isClickable && {\r\n cursor: \"pointer\",\r\n ...(!isSelected && {\r\n \"&:hover *\": {\r\n color: theme.palette.primary.main,\r\n },\r\n }),\r\n }),\r\n ...(isHighlighted && {\r\n backgroundColor: theme.palette.highlight.light,\r\n borderColor: theme.palette.highlight.main,\r\n }),\r\n ...(isSelected && {\r\n backgroundColor: theme.palette.primary.main,\r\n borderColor: \"transparent\",\r\n \"*\": {\r\n color: theme.palette.primary.contrastText,\r\n },\r\n }),\r\n}))\r\nAttributeValueElement.defaultProps = { direction: \"row\" }\r\n\r\n// use separate SpacingWrapper to make sure parent can shrink to 0px\r\nconst SpacingWrapper = styled(Box)({\r\n padding: \"1px 3px\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n minWidth: 0,\r\n // make sure to not set \"display: flex\" for this box else the ellipsis will not work\r\n})\r\n\r\ntype AttributeValueProps = {\r\n valueData: AttributeValueParams\r\n onClick?(id: number, val: string): void\r\n}\r\n\r\nexport function AttributeValue({ valueData, onClick }: AttributeValueProps) {\r\n const { translateText } = useLocalization()\r\n\r\n const isRemoved = valueData.modificationState === ModificationState.Removed\r\n\r\n const handleClick = useMemo(\r\n () => (!!onClick && !!valueData.value && !isRemoved && valueData.isSelectable ? () => onClick(valueData.id, valueData.value!) : undefined),\r\n [onClick, valueData.value, valueData.isSelectable, valueData.id, isRemoved]\r\n )\r\n\r\n let content = (\r\n \r\n {valueData.displayValue}\r\n \r\n )\r\n\r\n if (valueData.tooltip) {\r\n content = (\r\n \r\n {content}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {(() => {\r\n switch (valueData.modificationState) {\r\n case ModificationState.Added:\r\n return (\r\n \r\n \r\n \r\n )\r\n case ModificationState.Removed:\r\n return (\r\n \r\n \r\n \r\n )\r\n default:\r\n }\r\n })()}\r\n {content}\r\n \r\n \r\n )\r\n}\r\n","import { memo, useMemo } from \"react\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\nimport { Badge, Box, Stack, styled } from \"@mui/material\"\r\nimport { AttributeItem } from \"./AttributeItem\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { AttributesBlock } from \"./index\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { TooltipWrapper } from \"./TooltipWrapper\"\r\nimport { Divider } from \"../../../generics/divider\"\r\nimport { CompactAttributesBlock } from \"./CompactAttributesBlock\"\r\n\r\nconst AttributesContainer = styled(Stack)({\r\n backgroundColor: \"#f0f0f0\",\r\n flexDirection: \"row\",\r\n gap: \"5px\",\r\n})\r\n\r\ntype CompactAttributesContainerProps = {\r\n showCarAttributes: boolean\r\n}\r\n\r\nconst CompactAttributesContainer = styled(AttributesBlock, {\r\n shouldForwardProp: (prop) => prop !== \"showCarAttributes\",\r\n})(({ theme, showCarAttributes }) => ({\r\n borderLeft: `2px solid ${theme.palette.highlight.main}`,\r\n justifyContent: \"space-between\",\r\n minWidth: 0,\r\n ...(showCarAttributes && {\r\n \"&:first-of-type\": {\r\n marginTop: \"4px\",\r\n },\r\n }),\r\n}))\r\n\r\nconst VehicleBadge = styled(Badge)({\r\n \".MuiBadge-badge\": {\r\n height: \"18px\",\r\n width: \"18px\",\r\n minWidth: \"18px\",\r\n fontSize: \"12px\",\r\n lineHeight: 1,\r\n padding: \"2px\",\r\n transform: \"translate(8px, -40%)\",\r\n color: \"white\",\r\n backgroundColor: \"black\",\r\n },\r\n})\r\n\r\nexport const CompactAttributes = memo(() => {\r\n const attributes = useDefaultArticleItemState((x) => x.displayArticle.attributes)\r\n const sharedAttributes = useDefaultArticleItemState((x) => x.displayArticle.sharedAttributes)\r\n const handleClickAttribute = useDefaultArticleItemState((x) => x.handleClickAttribute)\r\n\r\n const handleClick = useMemo(\r\n () =>\r\n handleClickAttribute\r\n ? (id, openInModal, value) => {\r\n TmaHelper.Shared.ByArticleAndUniParts.IncreaseStepNumber()\r\n return handleClickAttribute(id, openInModal, value)\r\n }\r\n : undefined,\r\n [handleClickAttribute]\r\n )\r\n\r\n const vehicleAttributes = useMemo(() => {\r\n if (attributes && attributes?.length > 1) {\r\n return attributes?.map((val) => {\r\n return {\r\n topArticleAttributes: val.topArticleAttributes?.filter((topAttribute) => !topAttribute.isSharedAttribute),\r\n additionalAttributes: val.additionalAttributes,\r\n }\r\n })\r\n }\r\n return undefined\r\n }, [attributes])\r\n\r\n const filteredSharedAttributes = useMemo(() => {\r\n if (sharedAttributes?.length) {\r\n return sharedAttributes.filter((attribute) => !attribute.isArticleAttribute)\r\n }\r\n\r\n return undefined\r\n }, [sharedAttributes])\r\n\r\n if (!attributes?.length) {\r\n return null\r\n }\r\n\r\n const showCarAttributes = attributes.length > 1\r\n\r\n const visibleAttributes = showCarAttributes ? (filteredSharedAttributes ?? []) : attributes[0]?.topArticleAttributes\r\n\r\n return (\r\n \r\n {\r\n handleClick?.(id, false, value)\r\n }}\r\n />\r\n {showCarAttributes && !!attributes?.length && (\r\n \r\n \r\n \r\n \r\n \r\n {vehicleAttributes?.map(({ topArticleAttributes }, blockIndex) => (\r\n \r\n {attributes?.length > 1 && (\r\n \r\n \r\n {blockIndex + 1}.\r\n \r\n  \r\n \r\n \r\n )}\r\n {!!topArticleAttributes?.length && (\r\n \r\n {topArticleAttributes?.map((attr, index) => (\r\n {\r\n handleClick?.(id, false, value)\r\n }}\r\n hideDivider={index + 1 === topArticleAttributes?.length}\r\n />\r\n ))}\r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n})\r\n","import { Stack, styled } from \"@mui/material\"\r\nimport { ArticleAttributeParams } from \"@tm/models\"\r\nimport { memo, useEffect, useLayoutEffect, useMemo, useRef } from \"react\"\r\nimport { debounce } from \"lodash\"\r\nimport { AttributeItem } from \"./AttributeItem\"\r\n\r\nconst CollapsedAttributesBlock = styled(Stack)({\r\n flexWrap: \"nowrap\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n maxWidth: \"100%\",\r\n flex: 1,\r\n lineHeight: 1,\r\n minWidth: \"0\",\r\n\r\n \".flex-shrink\": {\r\n paddingRight: 0,\r\n flexShrink: 1,\r\n flexGrow: 1,\r\n flexBasis: \"0px\",\r\n },\r\n\r\n \".hidden\": {\r\n display: \"none\",\r\n },\r\n})\r\n\r\ntype Props = {\r\n visibleArticleAttributes?: ArticleAttributeParams[]\r\n handleClick?: (is: number, value?: string | undefined) => void\r\n}\r\n\r\nexport const CompactAttributesBlock = memo(({ visibleArticleAttributes, handleClick }: Props) => {\r\n const compactAttributesBlockRef = useRef(null)\r\n\r\n const observer = useMemo(() => new ResizeObserver(debounce(shrinkContent, 100)), [])\r\n\r\n useEffect(() => {\r\n return () => observer.disconnect()\r\n }, [observer])\r\n\r\n useLayoutEffect(() => {\r\n if (compactAttributesBlockRef?.current) {\r\n observer.observe(compactAttributesBlockRef.current)\r\n }\r\n }, [observer])\r\n\r\n function shrinkContent(entries: ResizeObserverEntry[]) {\r\n if (!compactAttributesBlockRef?.current?.children?.length || !entries?.length) {\r\n return\r\n }\r\n const entry = entries[0]\r\n const parentReferenceValue = entry.contentRect.width + entry.target.getBoundingClientRect().left\r\n const children = Array.from(compactAttributesBlockRef.current.children)\r\n let shrinkedItemFound = false\r\n\r\n const lastChildRightOffset = children[children.length - 1].getBoundingClientRect().right\r\n\r\n // break when lastChild is visible (rightOffset > 0) and lastChild does not extent the parent\r\n if (lastChildRightOffset > 0 && lastChildRightOffset < entry.target.getBoundingClientRect().right) {\r\n return\r\n }\r\n\r\n children.forEach((item, index) => {\r\n // make sure to delete the classes (for expanding)\r\n item.classList.remove(\"flex-shrink\")\r\n // only delete this class when no item was found yet, to avoid the case that we set this value with a previous item\r\n if (!shrinkedItemFound) {\r\n item.classList.remove(\"hidden\")\r\n }\r\n\r\n // add 1 px for the divider between the attributes\r\n if (item.getBoundingClientRect().left + item.clientWidth + 1 >= parentReferenceValue) {\r\n item.classList.add(\"flex-shrink\")\r\n shrinkedItemFound = true\r\n\r\n // all attributes after this one have to be hidden due to the shrinking priority of the children (label and value)\r\n // else every label of following will overlap the value of the last one that should be visible\r\n for (let i = index + 1; i < children.length; i++) {\r\n children[i].classList.add(\"hidden\")\r\n }\r\n }\r\n })\r\n }\r\n\r\n if (!visibleArticleAttributes?.length) {\r\n return - \r\n }\r\n\r\n return (\r\n \r\n {visibleArticleAttributes?.map((attr, index) => (\r\n \r\n ))}\r\n \r\n )\r\n})\r\n","import { Box, Stack, styled } from \"@mui/material\"\r\nimport { AttributeItem } from \"./AttributeItem\"\r\nimport { AttributesBlock } from \"./index\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { useOeArticleItemState } from \"../ContextProviderStates/OeArticleItemState\"\r\n\r\nconst AttributesIcon = styled(Box)(() => ({\r\n alignItems: \"center\",\r\n marginRight: \"10px\",\r\n marginLeft: \"5px\",\r\n whiteSpace: \"nowrap\",\r\n}))\r\n\r\nexport function OeInfoAttributes() {\r\n const attributes = useOeArticleItemState((x) => x.attributes)\r\n\r\n if (!attributes?.length) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n {attributes?.map(({ topArticleAttributes, additionalAttributes }, blockIndex) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n {topArticleAttributes && topArticleAttributes?.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n {topArticleAttributes?.map((attr, attrIndex) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n\r\n {additionalAttributes && additionalAttributes?.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n {additionalAttributes.map((attr, attrIndex) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import { ReactNode } from \"react\"\r\nimport { Button, styled } from \"@mui/material\"\r\nimport { ECounterType } from \"@tm/models\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\n\r\ntype PopoverWrapperProps = {\r\n children: ReactNode\r\n icon: string\r\n color: \"primary\" | \"warning\"\r\n}\r\n\r\nexport const TooltipContentText = styled(Typography)(({ theme }) => ({\r\n fontFamily: theme.font?.fontFamily?.secondary,\r\n fontSize: theme.typography.body2.fontSize,\r\n})) as typeof Typography\r\n\r\nconst StyledButton = styled(Button)({\r\n minWidth: \"auto\",\r\n margin: \"0 4px\",\r\n padding: \"0\",\r\n})\r\n\r\nexport function TooltipWrapper(props: PopoverWrapperProps) {\r\n const { children, icon, color } = props\r\n const toggleExpand = useDefaultArticleItemState((x) => x.toggleExpand)\r\n\r\n const handleButtonClick = () => {\r\n TmaHelper.GeneralCountEvent.Call(ECounterType.ArticleListExpandArticle, false)\r\n toggleExpand()\r\n }\r\n\r\n return (\r\n {children}} color={color} variant=\"light\" contentPadding=\"0 12px\">\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { ComponentType, memo, useMemo } from \"react\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\nimport { Box, Stack, StackProps, styled } from \"@mui/material\"\r\nimport { AttributeItem } from \"./AttributeItem\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\n\r\nexport const AttributesBlock = styled(Stack)(({ theme }) => ({\r\n backgroundColor: \"#f0f0f0\",\r\n borderLeft: `2px solid ${theme.palette.highlight.main}`,\r\n marginTop: 2,\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\",\r\n flex: 1,\r\n alignItems: \"center\",\r\n padding: \"4px\",\r\n width: \"100%\",\r\n rowGap: 2,\r\n\r\n \"&:first-of-type\": {\r\n marginTop: 0,\r\n },\r\n})) as ComponentType\r\n\r\nexport const Attributes = memo(() => {\r\n const attributes = useDefaultArticleItemState((x) => x.displayArticle.attributes)\r\n const handleClickAttribute = useDefaultArticleItemState((x) => x.handleClickAttribute)\r\n const sharedAttributes = useDefaultArticleItemState((x) => x.displayArticle.sharedAttributes)\r\n\r\n const viewedAttributes = useMemo(() => {\r\n if (attributes && attributes?.length > 1) {\r\n return attributes?.map((val) => {\r\n return {\r\n topArticleAttributes: val.topArticleAttributes?.filter((topAttribute) => !topAttribute.isSharedAttribute),\r\n additionalAttributes: val.additionalAttributes?.filter((topAttribute) => !topAttribute.isSharedAttribute),\r\n }\r\n })\r\n }\r\n return attributes\r\n }, [attributes])\r\n\r\n const handleClickAttributeValue = useMemo(\r\n () => (openInModal: boolean) =>\r\n handleClickAttribute\r\n ? (id: number, value?: string) => {\r\n TmaHelper.Shared.ByArticleAndUniParts.IncreaseStepNumber()\r\n return handleClickAttribute(id, openInModal, value)\r\n }\r\n : undefined,\r\n [handleClickAttribute]\r\n )\r\n\r\n return (\r\n \r\n {!!sharedAttributes?.length && (\r\n \r\n {sharedAttributes?.map((attr, attrIndex) => (\r\n \r\n ))}\r\n \r\n )}\r\n\r\n {viewedAttributes?.map(({ topArticleAttributes, additionalAttributes }, blockIndex) => (\r\n \r\n {viewedAttributes?.length > 1 && (\r\n \r\n {blockIndex + 1}. \r\n \r\n \r\n )}\r\n \r\n {topArticleAttributes?.map((attr, attrIndex) => (\r\n \r\n ))}\r\n\r\n {additionalAttributes?.map((attr, attrIndex) => (\r\n \r\n ))}\r\n \r\n \r\n ))}\r\n \r\n )\r\n})\r\n","import { useCallback, useMemo, useState } from \"react\"\r\nimport { Box } from \"@mui/material\"\r\nimport { BonusSystem } from \"@tm/models\"\r\nimport { Image } from \"../../../generics/image\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\n\r\ntype BonusSystemImageProps = {\r\n bonus: BonusSystem\r\n}\r\n\r\nexport function BonusSystemImage({ bonus }: BonusSystemImageProps) {\r\n const [useDefaultTheme, setUseDefaultTheme] = useState(false)\r\n const [trySvgImage, setTrySvgImage] = useState(true)\r\n const [imageError, setImageError] = useState(false)\r\n const isCompact = useDefaultArticleItemState((x) => !x.expanded)\r\n\r\n const imageUrl = useMemo(() => {\r\n let url = bonus.imageUrl\r\n\r\n if (url) {\r\n if (useDefaultTheme) {\r\n url = url.replace(/(\\/)\\d+(\\/)/, \"$1-1$2\")\r\n }\r\n\r\n if (trySvgImage) {\r\n url = `${url.substring(0, url.lastIndexOf(\".\"))}.svg`\r\n }\r\n }\r\n\r\n return url\r\n }, [useDefaultTheme, trySvgImage, bonus.imageUrl])\r\n\r\n const handleImageLoadError = useCallback(() => {\r\n if (trySvgImage) {\r\n setTrySvgImage(false)\r\n } else if (!useDefaultTheme) {\r\n setTrySvgImage(true)\r\n setUseDefaultTheme(true)\r\n } else {\r\n setImageError(true)\r\n }\r\n }, [useDefaultTheme, trySvgImage])\r\n\r\n if (imageError || !imageUrl) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { BonusSystemImage } from \"./BonusSystemImage\"\r\nimport { BonusPoints } from \"../../BonusPoints\"\r\n\r\nexport function BonusSystem() {\r\n const bonus = useDefaultArticleItemState((x) => x.displayArticle.bonus)\r\n const isCompact = useDefaultArticleItemState((x) => !x.expanded)\r\n const { translateText } = useLocalization()\r\n\r\n if (!bonus) {\r\n return null\r\n }\r\n\r\n if (bonus.value) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return \r\n}\r\n","import { DefaultArticleItemState } from \"@tm/models\"\r\nimport { useArticleItemState } from \".\"\r\n\r\nexport function useDefaultArticleItemState(): DefaultArticleItemState\r\nexport function useDefaultArticleItemState(selector: (value: DefaultArticleItemState) => TReturnType): TReturnType\r\nexport function useDefaultArticleItemState(\r\n selector?: (value: DefaultArticleItemState) => TReturnType\r\n): DefaultArticleItemState | TReturnType {\r\n return useArticleItemState((context) => {\r\n if (!selector) {\r\n return context as unknown as TReturnType\r\n }\r\n\r\n return selector(context) as unknown as TReturnType\r\n })\r\n}\r\n","import { OE, OeArticleItemState } from \"@tm/models\"\r\nimport { useArticleItemState } from \".\"\r\n\r\nexport function useOeArticleItemState(): OeArticleItemState\r\nexport function useOeArticleItemState(selector: (value: OeArticleItemState) => TReturnType): TReturnType\r\nexport function useOeArticleItemState(selector?: (value: OeArticleItemState) => TReturnType): OeArticleItemState | TReturnType {\r\n return useArticleItemState((context) => {\r\n if (!selector) {\r\n return context as unknown as TReturnType\r\n }\r\n\r\n return selector(context) as unknown as TReturnType\r\n })\r\n}\r\n","import { OeInformationItemState } from \"@tm/models\"\r\nimport { useArticleItemState } from \".\"\r\n\r\nexport function useOeInformationItemState(): OeInformationItemState\r\nexport function useOeInformationItemState(selector: (value: OeInformationItemState) => TReturnType): TReturnType\r\nexport function useOeInformationItemState(\r\n selector?: (value: OeInformationItemState) => TReturnType\r\n): OeInformationItemState | TReturnType {\r\n return useArticleItemState((context) => {\r\n if (!selector) {\r\n return context as unknown as TReturnType\r\n }\r\n\r\n return selector(context) as unknown as TReturnType\r\n })\r\n}\r\n","import { TyreArticleItemState } from \"@tm/models\"\r\nimport { useArticleItemState } from \".\"\r\n\r\nexport function useTyresItemState(): TyreArticleItemState\r\nexport function useTyresItemState(selector: (value: TyreArticleItemState) => TReturnType): TReturnType\r\nexport function useTyresItemState(selector?: (value: TyreArticleItemState) => TReturnType): TyreArticleItemState | TReturnType {\r\n return useArticleItemState((context) => {\r\n if (!selector) {\r\n return context as unknown as TReturnType\r\n }\r\n\r\n return selector(context) as unknown as TReturnType\r\n })\r\n}\r\n","import { DefaultArticleItemState, WholesalerArticleItemState } from \"@tm/models\"\r\nimport { useArticleItemState } from \".\"\r\n\r\nexport function useWholesalerArticleItemState(): WholesalerArticleItemState\r\nexport function useWholesalerArticleItemState(selector: (value: WholesalerArticleItemState) => TReturnType): TReturnType\r\nexport function useWholesalerArticleItemState(\r\n selector?: (value: WholesalerArticleItemState) => TReturnType\r\n): DefaultArticleItemState | TReturnType {\r\n return useArticleItemState((context) => {\r\n if (!selector) {\r\n return context as unknown as TReturnType\r\n }\r\n\r\n return selector(context) as unknown as TReturnType\r\n })\r\n}\r\n","import { ArticleItemState } from \"@tm/models\"\r\nimport { useContextSelector, createContext } from \"use-context-selector\"\r\n\r\n/**\r\n * This this the generic /general provider hook !!!\r\n */\r\n\r\n/**\r\n * Shall not be used directly outside of this file.\r\n * Use export `useArticleItemState` instead.\r\n */\r\n\r\nconst ArticleItemContext = createContext({} as unknown as ArticleItemState)\r\n\r\nexport const ArticleItemStateProvider = ArticleItemContext.Provider\r\n\r\nexport function useArticleItemState(): TContext\r\nexport function useArticleItemState(selector: (value: TContext) => TReturnType): TReturnType\r\nexport function useArticleItemState(\r\n selector?: (value: TContext) => TReturnType\r\n): TContext | TReturnType {\r\n return useContextSelector(ArticleItemContext, (context) => {\r\n const validatedContext = getValidatedContext(context)\r\n\r\n if (!selector) {\r\n return validatedContext\r\n }\r\n\r\n return selector(validatedContext as TContext)\r\n }) as TContext | TReturnType\r\n}\r\n\r\nfunction getValidatedContext(context: TContext | undefined): TContext {\r\n if (!context) {\r\n throw new Error(`Used ${useArticleItemState.name} outside of ${ArticleItemStateProvider.name}`)\r\n }\r\n\r\n return context\r\n}\r\n","import { Button } from \"@tm/components\"\r\n\r\ntype Props = {\r\n productGroup?: string\r\n onProductGroupClick?: () => void\r\n}\r\n\r\nexport function CustomersAlsoBoughtButton({ productGroup, onProductGroupClick }: Props) {\r\n return (\r\n \r\n )\r\n}\r\n","import { Box, Stack, styled } from \"@mui/material\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { Typography } from \"../../generics/typographie\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Tooltip } from \"../../generics/tooltip\"\r\n\r\ntype DescriptionsProps = {\r\n oneLine?: boolean\r\n}\r\n\r\nconst SingleLineTypography = styled(Typography, {\r\n shouldForwardProp: (prop) => prop !== \"oneLine\",\r\n})(({ oneLine }) => ({\r\n ...(oneLine && {\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n color: \"black\",\r\n }),\r\n}))\r\n\r\nexport function Descriptions({ oneLine }: DescriptionsProps) {\r\n const { description, missingVehicleConnectionTitle, additionalDescriptions } = useDefaultArticleItemState((x) => x.displayArticle.description)\r\n\r\n return (\r\n \r\n {additionalDescriptions?.map((additionalDescription) => (\r\n \r\n \r\n {additionalDescription}\r\n \r\n ))}\r\n {!!description && !oneLine && (\r\n \r\n {description}\r\n \r\n )}\r\n {!!description && oneLine && (\r\n \r\n \r\n {description}\r\n \r\n \r\n )}\r\n {missingVehicleConnectionTitle && (\r\n \r\n {missingVehicleConnectionTitle}\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { Box, Stack, Tooltip, styled, StackProps } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { DMS, DmsArticleInfo } from \"@tm/models\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { AvailabilityIcon, InfoList } from \"./components\"\r\n\r\ntype Props = {\r\n dmsArticleInfo: DmsArticleInfo\r\n hideBorder?: boolean\r\n}\r\n\r\ntype StyledStackProps = StackProps & {\r\n hideBorder?: boolean\r\n}\r\n\r\nconst StyledStack = styled(Stack, { shouldForwardProp: (prop) => prop !== \"hideBorder\" })(({ theme, hideBorder }) => ({\r\n padding: \"0.25em 0.75em\",\r\n alignItems: \"center\",\r\n border: `solid ${theme.palette.primary.main}`,\r\n borderWidth: `${hideBorder ? 0 : 1}px`,\r\n borderRadius: theme.radius?.default || \"3px\",\r\n}))\r\n\r\nconst StyledTooltip = styled(Tooltip)({\r\n textAlign: \"center\",\r\n whiteSpace: \"pre-wrap\",\r\n})\r\n\r\nconst StyledIcon = styled(Icon)({\r\n marginLeft: \"0.5em\",\r\n marginRight: \"0.5em\",\r\n height: \"22px\",\r\n width: \"22px\",\r\n})\r\n\r\nexport function DmsArticleInformation({ dmsArticleInfo, hideBorder }: Props) {\r\n const { stockItem, voucherInfoItems, stockInfoItems, permittedOperations, handleVoucherClick } = dmsArticleInfo\r\n const { translateText } = useLocalization()\r\n\r\n if (!stockItem || (!stockItem.invoiced && (stockItem.availability === undefined || stockItem.availability === DMS.Availability.Undefined))) {\r\n return null\r\n }\r\n\r\n const renderStatus = () => {\r\n const tooltip = []\r\n\r\n if (stockItem.invoiced) {\r\n tooltip.push(translateText(1985))\r\n }\r\n\r\n if (stockItem.availability === DMS.Availability.Available) {\r\n tooltip.push(translateText(1986))\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const renderVoucherInfo = () => {\r\n if (!stockItem.invoiced) {\r\n return\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const renderStockInfo = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const renderVoucherButton = () => {\r\n const voucher = stockItem.vouchers?.[0]\r\n\r\n if (!stockItem.invoiced || !voucher || !permittedOperations?.includes(\"showVoucher\")) {\r\n return\r\n }\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {renderStatus()}\r\n {renderVoucherInfo()}\r\n {renderStockInfo()}\r\n {renderVoucherButton()}\r\n \r\n )\r\n}\r\n","import { DMS } from \"@tm/models\"\r\nimport { FC } from \"react\"\r\n\r\ntype Props = {\r\n className?: string\r\n availability: DMS.Availability\r\n invoiced: boolean\r\n}\r\n\r\nexport const AvailabilityIcon: FC = (props) => {\r\n const renderBubble = () => {\r\n if (props.availability === DMS.Availability.Available) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n const renderWrench = () => {\r\n if (!props.invoiced) {\r\n return\r\n }\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {renderBubble()}\r\n {renderWrench()}\r\n \r\n \r\n )\r\n}\r\n","import { Box } from \"@mui/material\"\r\nimport { Typography } from \"../../../../generics/typographie\"\r\n\r\ntype InfoItemProps = {\r\n item: { label?: string; value?: string }\r\n}\r\n\r\nexport default function InfoItem({ item }: InfoItemProps) {\r\n const { label, value } = item\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {value}\r\n \r\n \r\n )\r\n}\r\n","import { Box } from \"@mui/material\"\r\nimport { Divider } from \"../../../../generics/divider\"\r\nimport InfoItem from \"./InfoItem\"\r\n\r\ntype InfoListProps = {\r\n items: { label?: string; value?: string }[]\r\n}\r\n\r\nexport default function InfoList({ items }: InfoListProps) {\r\n const { length } = items\r\n\r\n return (\r\n
\r\n {items.map((item, index) => {\r\n return (\r\n \r\n \r\n {index < length - 1 && }\r\n \r\n )\r\n })}\r\n
\r\n )\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { AvailabilityStatus, ErpInformation, ErpSystemConfig, SuccessArticleErpInfo } from \"@tm/models\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Stack, styled } from \"@mui/material\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { useArticleItemState } from \"../ContextProviderStates\"\r\n\r\nconst DEFAULTGAP = 0.5\r\n\r\ntype AvailabilitiesProps = {\r\n defaultArticleErpInfo?: SuccessArticleErpInfo\r\n alternativeArticleErpInfo?: SuccessArticleErpInfo\r\n isCompact?: boolean\r\n}\r\n\r\nexport function Availabilities({ defaultArticleErpInfo, alternativeArticleErpInfo, isCompact }: AvailabilitiesProps) {\r\n const { translateText } = useLocalization()\r\n const AvailabilityComponent = useArticleItemState((x) => x.AvailabilityComponent)\r\n const handleClickAvailability = useDefaultArticleItemState((x) => x.handleClickAvailability)\r\n\r\n const Availability = useMemo(() => styled(AvailabilityComponent)({ \"> div\": { display: \"block\" } }), [AvailabilityComponent])\r\n const info = useDefaultArticleItemState((x) => x.extendedDeliveryInfo?.info)\r\n\r\n const erpInfos = useMemo(() => {\r\n const list: {\r\n availability: ErpInformation[\"availability\"]\r\n requestedQuantity?: number\r\n warehouses?: ErpInformation[\"warehouses\"]\r\n tour?: ErpInformation[\"tour\"]\r\n erpSystem?: ErpSystemConfig\r\n itemId?: string\r\n }[] = []\r\n if (defaultArticleErpInfo) {\r\n // teccom request are always from the \"default ERP system, useArticleExtendedDeliveryInfo\r\n if (info) {\r\n list.push({ ...info, erpSystem: defaultArticleErpInfo.erpSystem })\r\n } else {\r\n list.push({ ...defaultArticleErpInfo.response, erpSystem: defaultArticleErpInfo.erpSystem })\r\n }\r\n } else {\r\n list.push({ availability: { type: AvailabilityStatus.Unknown, shortDescription: translateText(12684) } })\r\n }\r\n if (alternativeArticleErpInfo) {\r\n list.push({ ...alternativeArticleErpInfo.response, erpSystem: alternativeArticleErpInfo.erpSystem })\r\n }\r\n return list\r\n }, [defaultArticleErpInfo, alternativeArticleErpInfo, translateText, info])\r\n\r\n return (\r\n \r\n {erpInfos.map((info, index) => (\r\n handleClickAvailability(info.erpSystem, useSpecialProcurement)}\r\n key={`availability_${index}`}\r\n {...info}\r\n isCompact={isCompact}\r\n />\r\n ))}\r\n \r\n )\r\n}\r\n","import { Box } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Cost, CostsType } from \"@tm/models\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { PriceGrid } from \"./PriceGrid\"\r\n\r\ntype Props = {\r\n costs: Cost[]\r\n}\r\n\r\nexport function Costs({ costs }: Props) {\r\n const { translateText, currency } = useLocalization()\r\n\r\n function getCostDescription(costType: CostsType) {\r\n switch (costType) {\r\n case CostsType.Unknown:\r\n return translateText(1391)\r\n case CostsType.DefaultDispatch:\r\n return translateText(1292)\r\n case CostsType.Express:\r\n return translateText(13726)\r\n case CostsType.Enviromental:\r\n return translateText(13727)\r\n case CostsType.Packaging:\r\n return translateText(13728)\r\n case CostsType.Pledge:\r\n return translateText(13724)\r\n case CostsType.Procurement:\r\n return translateText(13725)\r\n case CostsType.OldPartDiscount:\r\n return translateText(1614)\r\n default:\r\n return translateText(1391)\r\n }\r\n }\r\n\r\n function renderCost(cost: Cost) {\r\n return (\r\n <>\r\n \r\n {getCostDescription(cost.type)}:\r\n \r\n \r\n {currency(cost.value, cost.currencySymbol)}\r\n \r\n {/* Fill empty space to fit with prices */}\r\n \r\n \r\n )\r\n }\r\n\r\n return {costs.map((cost) => renderCost(cost))}\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { concat } from \"@tm/utils\"\r\nimport { useMemo } from \"react\"\r\nimport { Box, CircularProgress, styled } from \"@mui/material\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\n\r\nconst Loader = styled(CircularProgress)({\r\n svg: { margin: 0 },\r\n})\r\n\r\n// Extended delivery also known as TecCom or Special Order\r\nexport function ExtendedDelivery() {\r\n const { translateText } = useLocalization()\r\n\r\n const { info, isLoading, load, showExtendedDeliveryInfo } = useDefaultArticleItemState((x) => x.extendedDeliveryInfo) ?? {}\r\n\r\n const hasData = !!info\r\n\r\n const tooltipText = useMemo(() => concat(\" \", translateText(1080), hasData && `(${translateText(276)})`), [hasData, translateText])\r\n\r\n if (!showExtendedDeliveryInfo) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n onClick={load}\r\n disabled={isLoading}\r\n >\r\n {translateText(13645)}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { Box, styled, tooltipClasses } from \"@mui/material\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\nimport { HTMLBox } from \"../../HTMLBox\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\n\r\ntype Props = {\r\n additionalInformationExtended?: string\r\n}\r\n\r\nconst StyledTooltip = styled(Tooltip)({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n maxWidth: \"400px\",\r\n },\r\n})\r\n\r\nexport function HTMLInformation({ additionalInformationExtended }: Props) {\r\n return (\r\n }>\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { ErpPrice } from \"@tm/models\"\r\nimport { Fragment } from \"react\"\r\nimport { Box } from \"@mui/material\"\r\nimport { PriceValue } from \"./PriceValue\"\r\nimport { PriceGrid } from \"./PriceGrid\"\r\nimport { PriceAddition } from \"./PriceAddition\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { ADDITIONAL_INFO_ICON_SIZE } from \"../constants\"\r\n\r\ntype OtherPricesProps = {\r\n prices: ErpPrice[]\r\n}\r\n\r\nexport function OtherPrices({ prices }: OtherPricesProps) {\r\n return (\r\n \r\n {prices.map((price) => (\r\n \r\n \r\n {/** @todo Clarify if \"description\" should only be displayed in the tooltip and \"shortDescription\" should be introduced. */}\r\n {price.description}\r\n \r\n \r\n \r\n {price.memos?.filter((memo) => memo.text).map((memo) => )}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import { Box, TypographyProps } from \"@mui/material\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\n\r\ntype PriceAdditionProps = {\r\n content: string\r\n isCompact?: boolean\r\n mb?: TypographyProps[\"mb\"]\r\n}\r\n\r\nexport function PriceAddition({ content, isCompact, mb }: PriceAdditionProps) {\r\n if (isCompact) {\r\n return (\r\n \r\n {content}\r\n \r\n )\r\n }\r\n return (\r\n <>\r\n \r\n {content}\r\n \r\n {/* The typography will span two columns, so we need to render an empty box to fill the last column */}\r\n \r\n )\r\n}\r\n","import { PropsWithChildren } from \"react\"\r\nimport { Grid, GridProps } from \"@mui/material\"\r\nimport { ADDITIONAL_INFO_ICON_SIZE } from \"../constants\"\r\n\r\nexport function PriceGrid({ children, ...rest }: PropsWithChildren) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { Box } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ErpInformation } from \"@tm/models\"\r\nimport { concat } from \"@tm/utils\"\r\nimport { useMemo } from \"react\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { ErpPriceWithAdditionalInfo } from \"./Prices\"\r\n\r\ntype PriceUnitProps = {\r\n purchasePrice: ErpPriceWithAdditionalInfo\r\n}\r\n\r\nexport function PriceUnit({ purchasePrice }: PriceUnitProps) {\r\n const { translateText } = useLocalization()\r\n\r\n if (!purchasePrice?.priceUnit || purchasePrice.priceUnit === 1) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n {concat(\" \", translateText(1312), purchasePrice.priceUnit)}\r\n \r\n )\r\n}\r\n","import { styled, Theme, TypographyProps } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ErpPrice, PriceType } from \"@tm/models\"\r\nimport { CSSProperties } from \"react\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\n\r\nexport function mapPriceColor(type: PriceType, theme: Theme): string {\r\n switch (type) {\r\n case PriceType.Strikethrough:\r\n return theme.palette.primary.main\r\n case PriceType.Purchase:\r\n return theme.palette.primary.main\r\n default:\r\n return \"\"\r\n }\r\n}\r\n\r\nexport function mapPriceFontWeight(type: PriceType): string | number {\r\n switch (type) {\r\n case PriceType.Purchase:\r\n return \"bold\"\r\n default:\r\n return 600\r\n }\r\n}\r\n\r\nexport function mapPriceVariant(type: PriceType): TypographyProps[\"variant\"] {\r\n switch (type) {\r\n case PriceType.Strikethrough:\r\n return \"label\"\r\n default:\r\n return \"body2\"\r\n }\r\n}\r\n\r\ntype StyledPriceProps = {\r\n priceCustomization?: CSSProperties\r\n priceType: PriceType\r\n}\r\n\r\nconst StyledPriceTypography = styled(Typography, {\r\n shouldForwardProp: (prop: string) => ![\"priceCustomization\", \"priceType\"].includes(prop),\r\n})(({ theme, priceCustomization, priceType }) => ({\r\n textAlign: \"right\",\r\n whiteSpace: \"nowrap\",\r\n lineHeight: 1.2,\r\n color:\r\n priceCustomization?.color ??\r\n ((priceType === PriceType.Purchase && theme.overwrites?.components?.partListV2?.articleItem?.erpContainer?.purchasePriceColor) ||\r\n mapPriceColor(priceType, theme)),\r\n fontWeight: priceCustomization?.fontWeight ?? mapPriceFontWeight(priceType),\r\n textDecoration: priceCustomization?.textDecoration,\r\n ...(priceType === PriceType.Strikethrough &&\r\n !priceCustomization?.textDecoration && {\r\n textDecoration: \"line-through\",\r\n }),\r\n fontSize: priceCustomization?.fontSize,\r\n fontStyle: priceCustomization?.fontStyle,\r\n}))\r\n\r\ntype PriceValueProps = {\r\n price: ErpPrice\r\n variant?: TypographyProps[\"variant\"]\r\n}\r\n\r\nexport function PriceValue({ price, variant }: PriceValueProps) {\r\n const { currency } = useLocalization()\r\n\r\n const prices = useDefaultArticleItemState((x) => x.options.erpDataCustomization?.prices)\r\n const priceCustomization = prices?.[price.type]\r\n\r\n return (\r\n \r\n {currency(price.value, price.currencySymbol)}\r\n \r\n )\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { ErpPrice, MemoType, PriceType } from \"@tm/models\"\r\nimport { Fragment } from \"react\"\r\nimport { Box } from \"@mui/material\"\r\nimport { PriceValue, mapPriceVariant } from \"./PriceValue\"\r\nimport { PriceAddition } from \"./PriceAddition\"\r\nimport { PriceGrid } from \"./PriceGrid\"\r\nimport { ErpPriceAdditionalInfo } from \"../../ErpPriceAdditionalInfo\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { ADDITIONAL_INFO_ICON_SIZE } from \"../constants\"\r\n\r\nexport type ErpPriceWithAdditionalInfo = ErpPrice & {\r\n onlyShowInfo?: boolean\r\n}\r\n\r\ntype PricesProps = {\r\n prices: ErpPriceWithAdditionalInfo[]\r\n isCompact?: boolean\r\n}\r\n\r\nexport function Prices({ prices, isCompact }: PricesProps) {\r\n const { translateText } = useLocalization()\r\n\r\n function renderRebateRow({ rebatePercent, type }: ErpPrice) {\r\n // don't render rebate for strikethrough prices\r\n if (!rebatePercent || type === PriceType.Strikethrough) {\r\n return\r\n }\r\n\r\n return \r\n }\r\n\r\n function renderNotes({ memos }: ErpPrice) {\r\n const notes = memos?.filter((x) => x.type === MemoType.Note)\r\n if (!notes?.length) {\r\n return\r\n }\r\n return notes.map((memo, idx) => (\r\n \r\n ))\r\n }\r\n\r\n function renderPrice(price: ErpPriceWithAdditionalInfo) {\r\n if (price.onlyShowInfo) {\r\n return (\r\n <>\r\n {/* Empty box added to fill row */}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n return (\r\n <>\r\n \r\n {price.shortDescription}\r\n \r\n \r\n \r\n \r\n \r\n {renderRebateRow(price)}\r\n {renderNotes(price)}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {prices.map((price) => (\r\n {renderPrice(price)}\r\n ))}\r\n \r\n )\r\n}\r\n","import { Box, Skeleton, Stack, styled } from \"@mui/material\"\r\nimport { ArticleListV2DisplayBehavior, PriceType, SuccessArticleErpInfo } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\r\nimport { classes } from \"@tm/utils\"\r\nimport { useArticleItemState } from \"../ContextProviderStates\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Availabilities } from \"./Availabilities\"\r\nimport { Costs } from \"./Costs\"\r\nimport { ExtendedDelivery } from \"./ExtendedDelivery\"\r\nimport { HTMLInformation } from \"./HTMLInformation\"\r\nimport { OtherPrices } from \"./OtherPrices\"\r\nimport { PriceUnit } from \"./PriceUnit\"\r\nimport { ErpPriceWithAdditionalInfo, Prices } from \"./Prices\"\r\nimport { ErpAreaActions } from \"../Actions/ErpAreaActions\"\r\n\r\nconst COMPACTMODE_ALIGN_BOTTOM = \"end\"\r\n\r\nexport const ErpIconsWrapper = styled(Stack)({\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"flex-end\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n \"&:empty\": {\r\n display: \"none\",\r\n },\r\n})\r\n\r\nexport function DefaultArticleErpContainer() {\r\n const { requestErpInfo } = useDefaultArticleItemState((x) => x.article)\r\n\r\n if (!requestErpInfo) {\r\n return null\r\n }\r\n\r\n return \r\n}\r\n\r\nexport function OePartErpContainer() {\r\n return \r\n}\r\n\r\nexport function WholesalerErpContainer() {\r\n return \r\n}\r\n\r\ntype ErpContainerProps = {\r\n hideExtendedDelivery?: boolean\r\n}\r\n\r\nfunction ErpContainer(props: ErpContainerProps) {\r\n const articleErpInfos = useArticleItemState((x) => x.articleErpInfos)\r\n const isExpanded = useDefaultArticleItemState((x) => x.expanded)\r\n const defaultArticleErpInfo = articleErpInfos?.default\r\n const alternativeArticleErpInfo = articleErpInfos?.alternative\r\n\r\n const className = useMemo(() => {\r\n return `defaultErp-${defaultArticleErpInfo?.state ?? \"no\"} altErp-${alternativeArticleErpInfo?.state ?? \"no\"}`\r\n }, [defaultArticleErpInfo?.state, alternativeArticleErpInfo?.state])\r\n\r\n if (!defaultArticleErpInfo && !alternativeArticleErpInfo) {\r\n return \r\n }\r\n\r\n if (\r\n (defaultArticleErpInfo?.state && [\"queued\", \"loading\"].includes(defaultArticleErpInfo?.state)) ||\r\n (!defaultArticleErpInfo && alternativeArticleErpInfo && [\"queued\", \"loading\"].includes(alternativeArticleErpInfo?.state))\r\n ) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n // in case of oeArticles, the isExpanded flag is set to undefined, i can't find out where it set to undefined...\r\n // and if it is set to undefined, the extraCost are not displayed!\r\n return (\r\n \r\n )\r\n}\r\n\r\ntype ErpContainerComponentProps = ErpContainerProps & {\r\n isExpanded?: boolean\r\n defaultArticleErpInfo?: SuccessArticleErpInfo\r\n alternativeArticleErpInfo?: SuccessArticleErpInfo\r\n className?: string\r\n}\r\n\r\nfunction ErpContainerComponent({\r\n hideExtendedDelivery,\r\n defaultArticleErpInfo,\r\n alternativeArticleErpInfo,\r\n isExpanded,\r\n className,\r\n}: ErpContainerComponentProps) {\r\n const isPriceTypeHidden = useDefaultArticleItemState((x) => x.options.isPriceTypeHidden)\r\n const displayTile = useDefaultArticleItemState((x) => x.displayBehavior) === ArticleListV2DisplayBehavior.Tile\r\n\r\n const defaultErpInfo = defaultArticleErpInfo?.response\r\n\r\n const mainPricesWithAdditionalInfo = useMemo(() => {\r\n const prices =\r\n defaultErpInfo?.prices\r\n ?.filter((x) => x.type)\r\n .map((x) => ({\r\n ...x,\r\n onlyShowInfo: isPriceTypeHidden(x.type),\r\n })) ?? []\r\n if (prices.length > 2 && !isExpanded) {\r\n // only show first 2 prices in compact view\r\n return prices.slice(0, 2)\r\n }\r\n return prices\r\n }, [defaultErpInfo?.prices, isPriceTypeHidden, isExpanded])\r\n\r\n const purchasePrice = useMemo(() => defaultErpInfo?.prices?.filter((price) => price.type === PriceType.Purchase)[0], [defaultErpInfo?.prices])\r\n\r\n const otherPrices = useMemo(() => defaultErpInfo?.prices?.filter((price) => !price.type && !!price.description) ?? [], [defaultErpInfo?.prices])\r\n\r\n const alignItems = isExpanded ? undefined : COMPACTMODE_ALIGN_BOTTOM\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isExpanded && }\r\n {!!mainPricesWithAdditionalInfo.length && (\r\n \r\n \r\n {purchasePrice && }\r\n \r\n )}\r\n \r\n \r\n {isExpanded && (\r\n <>\r\n {!!otherPrices.length && (\r\n \r\n \r\n \r\n )}\r\n {!!defaultErpInfo?.costs?.length && }\r\n {!hideExtendedDelivery && defaultErpInfo?.isTeccomRequestAvailable && }\r\n\r\n \r\n \r\n \r\n\r\n {defaultErpInfo?.additionalInformationExtended && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { useCallback, useMemo } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Box, Grid, Stack, styled } from \"@mui/material\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { Typography } from \"../../generics/typographie\"\r\nimport { Tooltip } from \"../../generics/tooltip\"\r\nimport { Icon } from \"../../generics/Icons\"\r\n\r\nconst ClickItem = styled(Box)(({ theme }) => ({\r\n display: \"contents\",\r\n cursor: \"pointer\",\r\n \"> *\": {\r\n padding: \"2px 4px\",\r\n \":first-child /* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */\": {\r\n paddingLeft: 8,\r\n marginLeft: -8,\r\n },\r\n \":last-child\": {\r\n paddingRight: 8,\r\n marginRight: -8,\r\n },\r\n },\r\n \"&:hover > *\": {\r\n background: theme.palette.grey[200],\r\n },\r\n \".unit\": {\r\n color: theme.palette.highlight.main,\r\n },\r\n}))\r\n\r\nexport function GraduatedPrices({ isExpanded }: { isExpanded?: boolean }) {\r\n const { translateText, translate, currency } = useLocalization()\r\n\r\n const articleErpInfos = useDefaultArticleItemState((x) => x.articleErpInfos)\r\n const handleAddToBasket = useDefaultArticleItemState((x) => x.handleAddToBasket)\r\n\r\n const graduatedPrices = useMemo(() => {\r\n const erpInfo = articleErpInfos?.default?.state === \"success\" ? articleErpInfos.default.response : undefined\r\n if (!erpInfo?.graduatedPrices?.length) {\r\n return undefined\r\n }\r\n return erpInfo.graduatedPrices.filter((x) => !!x.priceUnit)\r\n }, [articleErpInfos?.default])\r\n\r\n const handleClick = useCallback(\r\n (amount?: number) => {\r\n if (!amount) {\r\n return\r\n }\r\n handleAddToBasket(amount)\r\n },\r\n [handleAddToBasket]\r\n )\r\n\r\n const title = useMemo(\r\n () => (\r\n \r\n {translateText(705)}\r\n \r\n {graduatedPrices\r\n ?.filter((x) => !!x.value)\r\n .map(({ currencySymbol, priceUnit, value }) => (\r\n handleClick(priceUnit)}>\r\n \r\n {translateText(707)} {priceUnit} {translateText(708)}:\r\n \r\n \r\n {currency(value, currencySymbol)}\r\n \r\n \r\n ))}\r\n \r\n \r\n ),\r\n [currency, graduatedPrices, handleClick, translateText]\r\n )\r\n\r\n if (!graduatedPrices) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {isExpanded && translate(705)}\r\n \r\n \r\n )\r\n}\r\n","import { styled, IconButtonProps } from \"@mui/material\"\r\nimport { StyledComponent } from \"@emotion/styled\"\r\nimport { IconButton as GenericIconButton } from \"../../generics/button\"\r\n\r\n// export const IconButton = styled(MuiIconButton)({ padding: 0 }) as ComponentType\r\n\r\nexport type CustomIconButtonProps = IconButtonProps & {\r\n hoverEffect?: boolean\r\n}\r\n\r\nexport const IconButton = styled(GenericIconButton, { shouldForwardProp: (prop: string) => prop !== \"hoverEffect\" })(\r\n ({ theme, hoverEffect }) => ({\r\n padding: 0,\r\n \"&:hover\": hoverEffect\r\n ? {\r\n color: theme.palette.primary.main,\r\n }\r\n : undefined,\r\n })\r\n) as StyledComponent\r\n","import { useMemo, useRef, useState } from \"react\"\r\nimport { ArticleImageViewer } from \"./ArticleImageViewer\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { Image as ComponentsImage } from \"../../generics/image\"\r\nimport { ImageContainer } from \"./ImageContainer\"\r\n\r\nexport type ImageStylings = {\r\n size: number\r\n marginTop: number\r\n boxShadow?: string\r\n}\r\n\r\ntype ImageProps = {\r\n size?: number\r\n marginTop?: number\r\n boxShadow?: string\r\n}\r\n\r\nconst IMAGE_SIZE_EXPANDED_LIST = 62\r\nconst IMAGE_SIZE_COMPACT_LIST = 38\r\nconst IMAGE_MARGIN_TOP_EXPANDED_LIST = -11\r\nconst IMAGE_MARGIN_TOP_COMPACT_LIST = -9\r\n\r\nexport function Image({ size, marginTop, boxShadow }: ImageProps) {\r\n const handleClickImage = useDefaultArticleItemState((x) => x.handleClickImage)\r\n const handleCloseImage = useDefaultArticleItemState((x) => x.handleCloseImage)\r\n const showImageViewer = useDefaultArticleItemState((x) => x.showImageViewer)\r\n const expandedList = useDefaultArticleItemState((x) => x.expanded)\r\n const article = useDefaultArticleItemState((x) => x.article)\r\n const { thumbnailUrl, thumbnailDescription, thumbnailFallbackUrl, customThumbnailComponent } = useDefaultArticleItemState(\r\n (x) => x.displayArticle.image\r\n )\r\n\r\n const [useFallbackThumbnail, setUseFallbackThumbnail] = useState(false)\r\n const [imageStylings, setImageStylings] = useState({ size: IMAGE_SIZE_EXPANDED_LIST, marginTop: IMAGE_MARGIN_TOP_COMPACT_LIST })\r\n const showArticleImages = useDefaultArticleItemState((x) => x.options.showArticleImages)\r\n\r\n const imageContainerRef = useRef(null)\r\n\r\n useMemo(() => {\r\n if (size && marginTop) {\r\n return setImageStylings({\r\n size,\r\n marginTop,\r\n boxShadow,\r\n })\r\n }\r\n setImageStylings({\r\n size: expandedList ? IMAGE_SIZE_EXPANDED_LIST : IMAGE_SIZE_COMPACT_LIST,\r\n marginTop: expandedList ? IMAGE_MARGIN_TOP_EXPANDED_LIST : IMAGE_MARGIN_TOP_COMPACT_LIST,\r\n })\r\n }, [expandedList])\r\n\r\n if (!showArticleImages) {\r\n return null\r\n }\r\n\r\n const handleThumbnailLoadError = () => {\r\n if (thumbnailFallbackUrl) {\r\n setUseFallbackThumbnail(true)\r\n }\r\n }\r\n\r\n const popoverTitle = `${article.supplier.name}${article.supplierArticleNo ? ` | ${article.supplierArticleNo}` : \"\"}`\r\n\r\n return (\r\n
\r\n \r\n \r\n {customThumbnailComponent}\r\n \r\n {showImageViewer && }\r\n
\r\n )\r\n}\r\n","import { Box, BoxProps, styled } from \"@mui/material\"\r\nimport { ComponentType } from \"react\"\r\nimport { ImageStylings } from \"./Image\"\r\n\r\ntype ImageContainerProps = BoxProps & {\r\n imageStylings?: ImageStylings\r\n}\r\nexport const ImageContainer = styled(Box, { shouldForwardProp: (prop: string) => ![\"imageStylings\"].includes(prop) })(\r\n ({ theme, imageStylings }) => ({\r\n boxSizing: \"border-box\",\r\n border: `1px solid transparent`,\r\n backgroundColor: theme.palette.background.default,\r\n boxShadow: imageStylings?.boxShadow || \"0 1px 5px rgb(0 0 0 / 20%);\",\r\n width: imageStylings ? imageStylings.size : undefined,\r\n height: imageStylings ? imageStylings.size : undefined,\r\n zIndex: 2,\r\n marginTop: imageStylings ? `${imageStylings.marginTop}px` : undefined,\r\n \"&[data-clickable]:hover\": {\r\n borderColor: `${theme.palette.primary.main}`,\r\n cursor: \"pointer\",\r\n },\r\n img: {\r\n objectFit: \"contain\",\r\n },\r\n })\r\n) as ComponentType\r\n","import { Icon } from \"../../generics/Icons\"\r\nimport { Image } from \"../../generics/image\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\n\r\nexport function ImsIcon({ small }: { small?: boolean }) {\r\n const imsIcon = useDefaultArticleItemState((x) => x.imsIcon)\r\n\r\n const sizeVal = small ? 16 : 20\r\n\r\n if (imsIcon) {\r\n return \r\n }\r\n\r\n return \r\n}\r\n","import { ChangeEvent, useCallback, useEffect, useMemo, useState } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Note, NoteTypes } from \"@tm/models\"\r\nimport { FormControl, FormHelperText, Stack, styled } from \"@mui/material\"\r\nimport { TextField } from \"../../../generics/textfield\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\nimport { Button } from \"../../../generics/button\"\r\n\r\nconst MAXINPUTCHARS = 500\r\n\r\ntype NoteItemProps = {\r\n note: Note\r\n isLoading: boolean\r\n onDelete(noteId: string): unknown\r\n onSave(note: Note): unknown\r\n}\r\n\r\nconst FormControlFullWidth = styled(FormControl)(() => ({\r\n width: \"100%\",\r\n}))\r\n\r\nconst FormHelperTextInline = styled(FormHelperText)(() => ({\r\n position: \"absolute\",\r\n right: \"0\",\r\n top: \"50%\",\r\n marginTop: \"-0.6em\",\r\n fontSize: 14,\r\n}))\r\n\r\nconst TextFieldWithInlineCounter = styled(TextField)(() => ({\r\n marginTop: 0,\r\n \".MuiInputBase-multiline\": {\r\n paddingTop: 8,\r\n paddingRight: \"5em\",\r\n },\r\n}))\r\n\r\nexport function NoteItem(props: NoteItemProps) {\r\n const {\r\n note: { noteId, text, type, version },\r\n onDelete,\r\n onSave,\r\n isLoading,\r\n } = props\r\n\r\n const { translateText } = useLocalization()\r\n const [value, setValue] = useState(text ?? \"\")\r\n\r\n useEffect(\r\n function setLoadedText() {\r\n setValue(text ?? \"\")\r\n },\r\n [text]\r\n )\r\n\r\n const handleOnInputChange = (event: ChangeEvent) => {\r\n setValue(event.target.value)\r\n }\r\n\r\n const handleSave = useCallback(() => onSave({ noteId, text: value, type, version }), [noteId, onSave, type, value, version])\r\n const handleDelete = useCallback(() => onDelete(noteId), [noteId, onDelete])\r\n\r\n const iconName = useMemo(() => (type === NoteTypes.VEHICLE_ARTICLE ? \"vehicle-note\" : \"notes\"), [type])\r\n const label = useMemo(() => translateText(type === NoteTypes.VEHICLE_ARTICLE ? 12875 : 12874), [translateText, type])\r\n\r\n return (\r\n <>\r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n \r\n {`${(value || \"\").length} / ${MAXINPUTCHARS}`}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ArticleReferenceType } from \"@tm/models\"\r\nimport { Stack } from \"@mui/material\"\r\nimport { ReferenceGroup } from \"./ReferenceGroup\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\n\r\nexport function References() {\r\n const { translateText } = useLocalization()\r\n\r\n const articleReferences = useDefaultArticleItemState((x) => x.displayArticle.references)\r\n const references = useMemo(() => articleReferences ?? [], [articleReferences])\r\n\r\n const refsAlternativeArticleNo = useMemo(\r\n () => references.filter((x) => x.referenceType === ArticleReferenceType.AlternativeArticleNo),\r\n [references]\r\n )\r\n const refsEurocode = useMemo(() => references.filter((x) => x.referenceType === ArticleReferenceType.Eurocode), [references])\r\n const refsUtility = useMemo(() => references.filter((x) => x.referenceType === ArticleReferenceType.UtilityNo), [references])\r\n const refsReplacement = useMemo(() => references.filter((x) => x.referenceType === ArticleReferenceType.ReplacementArticleNo), [references])\r\n const refsReplaced = useMemo(() => references.filter((x) => x.referenceType === ArticleReferenceType.ReplacedByArticleNo), [references])\r\n\r\n if (!refsAlternativeArticleNo.length && !refsEurocode.length && !refsUtility.length && !refsReplacement.length && !refsReplaced.length) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { ButtonProps, styled } from \"@mui/material\"\r\nimport { ComponentType } from \"react\"\r\nimport { Button } from \"../../generics/button\"\r\nimport { Icon } from \"../../generics/Icons\"\r\n\r\nexport const StyledBasketButton = styled(Button, {\r\n name: \"BasketButton\",\r\n slot: \"root\",\r\n overridesResolver: (_, styles) => styles.root,\r\n})({\r\n width: 90,\r\n \"&.MuiButton-bordered\": {\r\n borderTopLeftRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n },\r\n}) as ComponentType\r\n\r\nStyledBasketButton.defaultProps = { // can be moved to mui theme as soon as the defaultProps are obsolete\r\n color: \"highlight\",\r\n variant: \"bordered\",\r\n startIcon: ,\r\n}\r\n","import { Box, LinearProgress, Stack, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { PropsWithChildren, forwardRef } from \"react\"\r\nimport { IconButton } from \"../../generics/button\"\r\nimport { Typography } from \"../../generics/typographie\"\r\nimport { Tooltip } from \"../../generics/tooltip\"\r\nimport { Icon } from \"../../generics/Icons\"\r\n\r\nconst Container = styled(Box)({\r\n backgroundColor: \"#fafafa\",\r\n boxShadow: \"0 1px 5px rgb(0 0 0 / 20%);\",\r\n padding: 16,\r\n marginLeft: 16,\r\n})\r\n\r\ntype SubArticleContainerProps = PropsWithChildren<{\r\n title: string\r\n isLoading?: boolean\r\n onClose: () => void\r\n}>\r\n\r\nexport const SubArticleContainer = forwardRef((props, ref) => {\r\n const { title, isLoading, onClose, children } = props\r\n const { translateText } = useLocalization()\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading && }\r\n\r\n {children}\r\n \r\n )\r\n})\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { useCallback, useState } from \"react\"\r\nimport { Box, styled } from \"@mui/material\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { Image } from \"../../generics/image\"\r\nimport { Tooltip } from \"../../generics/tooltip\"\r\n\r\nconst SupplierBox = styled(Box, {\r\n shouldForwardProp: (prop: string) => ![\"selected\", \"showLogo\", \"compactView\", \"marginTop\", \"fitContent\"].includes(prop),\r\n})<{\r\n selected?: boolean\r\n showLogo?: boolean\r\n compactView?: boolean\r\n marginTop?: number\r\n fitContent?: boolean\r\n}>(({ theme, selected, onClick, showLogo, compactView, marginTop, fitContent }) => ({\r\n marginTop: marginTop ?? \"8px\",\r\n ...(!showLogo && {\r\n maxHeight: 40,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n display: \"-webkit-box\",\r\n WebkitBoxOrient: \"vertical\",\r\n WebkitLineClamp: 2,\r\n borderRadius: theme.radius?.default,\r\n fontFamily: theme.font.fontFamily.condensed ?? theme.font.fontFamily.secondary,\r\n textAlign: \"center\",\r\n padding: 2,\r\n ...(selected && {\r\n padding: \"2px 4px\",\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n \"&:hover\": {\r\n color: theme.palette.primary.contrastText,\r\n },\r\n }),\r\n ...(compactView && {\r\n whiteSpace: \"nowrap\",\r\n display: \"block\",\r\n textAlign: \"left\",\r\n marginTop: undefined,\r\n }),\r\n }),\r\n ...(showLogo && {\r\n ...(selected && {\r\n border: `5px solid ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n }),\r\n ...(!!onClick && {\r\n cursor: \"pointer\",\r\n }),\r\n }),\r\n ...(fitContent && {\r\n width: \"fit-content\",\r\n }),\r\n}))\r\n\r\nconst SupplierImage = styled(Image)({\r\n maxWidth: 80,\r\n maxHeight: 32,\r\n display: \"block\",\r\n})\r\n\r\ntype Props = {\r\n compactView?: boolean\r\n marginTop?: number\r\n // fixes tooltip position\r\n fitContent?: boolean\r\n}\r\n\r\nexport function Supplier({ compactView, marginTop, fitContent }: Props) {\r\n const { translateText } = useLocalization()\r\n\r\n const { supplier, supplierLogo, selected } = useDefaultArticleItemState((x) => x.displayArticle.supplier)\r\n const toggleSupplierFilter = useDefaultArticleItemState((x) => x.toggleSupplierFilter)\r\n const expanded = useDefaultArticleItemState((x) => x.expanded)\r\n const [error, setError] = useState(false)\r\n\r\n const handleImageError = useCallback(() => {\r\n setError(true)\r\n }, [])\r\n\r\n const handleClick = useCallback(() => {\r\n toggleSupplierFilter?.(true)\r\n }, [toggleSupplierFilter])\r\n\r\n const showLogo = !error && !!supplierLogo && expanded\r\n\r\n return (\r\n \r\n \r\n {showLogo ? : supplier.name}\r\n \r\n \r\n )\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { ErpInformation, ErpSystemConfig, PriceType } from \"@tm/models\"\r\nimport { useMemo, useState } from \"react\"\r\n\r\nimport { Skeleton, Stack } from \"@mui/material\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { PriceValue } from \"../ErpContainer/PriceValue\"\r\nimport { AddToBasket } from \"../Transactions/AddToBasket\"\r\nimport { CostEstimationButton } from \"../Transactions/CostEstimationButton\"\r\n\r\ntype TraderActionsColumnProps = {\r\n erpSystem: ErpSystemConfig\r\n erpInformation?: ErpInformation\r\n}\r\n\r\nexport function TraderActionsColumn({ erpInformation, erpSystem }: TraderActionsColumnProps) {\r\n const { translateText } = useLocalization()\r\n const article = useDefaultArticleItemState((x) => x.article)\r\n const Availability = useDefaultArticleItemState((x) => x.AvailabilityComponent)\r\n const [quantity, setQuantity] = useState(article.quantity)\r\n const addToBasket = useDefaultArticleItemState((x) => x.handleAddToBasket)\r\n const addToCostEstimation = useDefaultArticleItemState((x) => x.handleAddToCostEstimation)\r\n const removeFromBasket = useDefaultArticleItemState((x) => x.handleRemoveFromBasket)\r\n const { hideCostEstimationButton, hasSuggestedQuantity, hideAddToBasketButton } = useDefaultArticleItemState((x) => x.options)\r\n\r\n const addToBasketButtonDisabled = useDefaultArticleItemState((x) => x.addToBasketButtonDisabled)\r\n const addToCostEstimationButtonDisabled = useDefaultArticleItemState((x) => x.addToCostEstimationButtonDisabled)\r\n const articleErpInfo = useDefaultArticleItemState((x) => x.articleErpInfos)?.default\r\n const basketQuantities = useDefaultArticleItemState((x) => x.basketQuantity)\r\n const traderErpInfos = useDefaultArticleItemState((x) => x.traderErpInfos)\r\n const purchasePrice = erpInformation?.prices?.find((x) => x.type === PriceType.Purchase)\r\n const retailPrice = erpInformation?.prices?.find((x) => x.type === PriceType.Retail || x.type === PriceType.RecommendedRetail)\r\n\r\n const division = useMemo(() => (articleErpInfo?.state === \"success\" ? articleErpInfo.response.quantity?.division : 1) || 1, [articleErpInfo])\r\n const basketQuantity = useMemo(\r\n () => basketQuantities?.articleQuantities?.orderQuantityGroups.find((x) => x.distributorId === erpSystem.id),\r\n [basketQuantities, erpSystem.id]\r\n )\r\n\r\n const handleAddToBasket = () => {\r\n addToBasket(quantity, erpInformation, erpSystem.id)\r\n setQuantity(1)\r\n }\r\n\r\n const handleAddToCostEstimation = () => {\r\n addToCostEstimation(quantity, erpInformation, erpSystem.id)\r\n setQuantity(1)\r\n }\r\n\r\n return (\r\n \r\n {traderErpInfos?.isLoading && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!traderErpInfos?.isLoading && erpInformation && (\r\n \r\n {purchasePrice && (\r\n \r\n \r\n {translateText(55)}\r\n \r\n \r\n \r\n )}\r\n {retailPrice && (\r\n \r\n \r\n {translateText(1620)}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {!traderErpInfos?.isLoading && (\r\n \r\n )}\r\n \r\n {!hideAddToBasketButton && (\r\n basketQuantity?.partItemIds && removeFromBasket(basketQuantity.partItemIds)}\r\n basketQuantity={basketQuantity?.quantityValue}\r\n hasSuggestedQuantity={hasSuggestedQuantity}\r\n disableButton={addToBasketButtonDisabled}\r\n />\r\n )}\r\n {!hideCostEstimationButton && (\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { memo, useCallback, useLayoutEffect, useMemo } from \"react\"\r\n\r\nimport { Collapse } from \"@mui/material\"\r\nimport { SubArticleContainer } from \"../SubArticleContainer\"\r\nimport { TraderActionsColumn } from \"./TraderActionsColumn\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { CellContentPosition, Table, TableColumnData, TableRowData } from \"../../Table\"\r\n\r\nexport const TraderSelection = memo(() => {\r\n const { translateText } = useLocalization()\r\n const traderErpInfos = useDefaultArticleItemState((x) => x.traderErpInfos)\r\n const showTraderSelection = useDefaultArticleItemState((x) => x.traderSelection)\r\n const toggleTraderSelection = useDefaultArticleItemState((x) => x.toggleTraderSelection)\r\n\r\n const columns = useMemo(() => {\r\n return [\r\n { header: translateText(13467) } /* Bezeichnung */,\r\n { header: translateText(87) } /* Artikelnummer */,\r\n { header: \"%\" },\r\n { header: translateText(13389) } /* Preis per */,\r\n { header: translateText(13388) } /* VPE */,\r\n { alignContent: CellContentPosition.right },\r\n ]\r\n }, [])\r\n\r\n useLayoutEffect(() => {\r\n if (showTraderSelection) {\r\n traderErpInfos?.loadTraderErpInfos()\r\n }\r\n }, [showTraderSelection, traderErpInfos])\r\n\r\n const rows = useMemo(() => {\r\n return (traderErpInfos?.traderErpInfos ?? []).map((item) => {\r\n const { erpInformation } = item\r\n const rebate = erpInformation?.prices?.find((x) => x.rebate)?.rebate\r\n\r\n return {\r\n cells: [\r\n { displayValue: item.erpSystem.description },\r\n { displayValue: item.traderArticleNumber },\r\n { displayValue: rebate },\r\n { displayValue: erpInformation?.quantity?.quantityPackingUnit },\r\n { displayValue: erpInformation?.quantity?.packagingUnit },\r\n { displayValue: },\r\n ],\r\n } as TableRowData\r\n })\r\n }, [traderErpInfos?.traderErpInfos])\r\n\r\n const handleTransitionEnd = useCallback((node: HTMLElement) => {\r\n // 400ms is a magic try'n'error number. it was not possible to use the \"correct\" way with a transistionend event handler. no clue why.\r\n setTimeout(() => {\r\n const parent = getScrollableParent(node)\r\n const bottomEdge = node.offsetTop + node.offsetHeight\r\n const parentBottom = parent.clientHeight + parent.scrollTop\r\n\r\n if (parentBottom < bottomEdge) {\r\n parent.scrollBy({ top: bottomEdge - parentBottom })\r\n }\r\n }, 400)\r\n }, [])\r\n\r\n if (!toggleTraderSelection) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n})\r\n\r\nfunction isScrollable(ele: HTMLElement) {\r\n const hasScrollableContent = ele.scrollHeight > ele.clientHeight\r\n\r\n const overflowYStyle = window.getComputedStyle(ele).overflowY\r\n const isOverflowHidden = overflowYStyle.indexOf(\"hidden\") !== -1\r\n\r\n return hasScrollableContent && !isOverflowHidden\r\n}\r\n\r\nfunction getScrollableParent(ele: HTMLElement | null): HTMLElement {\r\n return !ele || ele === document.body ? document.body : isScrollable(ele) ? ele : getScrollableParent(ele.parentNode as HTMLElement)\r\n}\r\n","import { memo, useMemo } from \"react\"\r\nimport { AddToBasket } from \"./AddToBasket\"\r\nimport { useArticleItemState } from \"../ContextProviderStates\"\r\n\r\nexport const AddOeToBasket = memo(() => {\r\n const addToBasketButtonDisabled = useArticleItemState((x) => x.addToBasketButtonDisabled)\r\n const quantity = useArticleItemState((x) => x.quantity)\r\n const articleErpInfo = useArticleItemState((x) => x.articleErpInfos?.default)\r\n const division = useMemo(() => (articleErpInfo?.state === \"success\" ? articleErpInfo.response.quantity?.division : 1) || 1, [articleErpInfo])\r\n const basketQuantity = useArticleItemState((x) => x.basketQuantity?.articleQuantities?.totalQuantity)\r\n const handleChangeQuantity = useArticleItemState((x) => x.handleChangeQuantity)\r\n const handleRemoveFromBasket = useArticleItemState((x) => x.handleRemoveFromBasket)\r\n const handleAddToBasket = useArticleItemState((x) => x.handleAddToBasket)\r\n\r\n return (\r\n \r\n )\r\n})\r\n","import { Icon } from \"../../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../../generics/tooltip\"\r\n\r\ntype Props = {\r\n text: string\r\n}\r\n\r\nexport default function AmountInfo({ text }: Props) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { ChangeEvent, useCallback, useRef, useState, useMemo, useEffect } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { styled } from \"@mui/material\"\r\nimport AmountInfo from \"./AmountInfo\"\r\nimport { TextField } from \"../../../../generics/textfield\"\r\n\r\nconst MAX_AMOUNT = 9999\r\n\r\ntype BasketAmountFieldProps = {\r\n originalQuantity: number\r\n division: number\r\n handleChangeQuantity: (value: number, loadErpInfo: boolean) => void\r\n hasSuggestedQuantity?: boolean\r\n disabled?: boolean\r\n loadErpInfos?: boolean\r\n showQuantityWithDecimals?: boolean\r\n}\r\n\r\nconst AmountField = styled(TextField)({\r\n marginTop: 0,\r\n borderTopRightRadius: 0,\r\n borderBottomRightRadius: 0,\r\n \".MuiInputBase-formControl\": {\r\n paddingRight: 0,\r\n },\r\n \".MuiInputAdornment-positionEnd\": {\r\n marginLeft: 0,\r\n },\r\n\r\n \".MuiInputBase-input\": {\r\n boxSizing: \"border-box\",\r\n height: 30,\r\n padding: 8,\r\n paddingRight: 4,\r\n width: 64,\r\n },\r\n \"&[data-has-amountinfo] .MuiInputBase-input\": {\r\n paddingRight: 0,\r\n width: 40,\r\n },\r\n})\r\n\r\nexport function BasketAmountField(props: BasketAmountFieldProps) {\r\n const { division, originalQuantity, handleChangeQuantity, hasSuggestedQuantity, disabled, loadErpInfos, showQuantityWithDecimals } = props\r\n\r\n const { translateText } = useLocalization()\r\n\r\n const [quantity, setQuantity] = useState(\r\n showQuantityWithDecimals ? originalQuantity : division ? originalQuantity.ceil(division) : originalQuantity\r\n )\r\n\r\n const inputRef = useRef()\r\n const keyPressed = useRef()\r\n\r\n useEffect(() => {\r\n const updatedQuantity = showQuantityWithDecimals ? originalQuantity : division ? originalQuantity.ceil(division) : originalQuantity\r\n setQuantity(updatedQuantity)\r\n\r\n if (updatedQuantity !== originalQuantity) {\r\n const shouldLoadErpInfo = !!loadErpInfos && (division ? updatedQuantity !== originalQuantity.ceil(division) : true)\r\n handleChangeQuantity(updatedQuantity, shouldLoadErpInfo)\r\n }\r\n }, [loadErpInfos, originalQuantity, division])\r\n\r\n const handleChange = useCallback(\r\n (e: ChangeEvent) => {\r\n const quantityValue = parseInt(e.target.value)\r\n if (Number.isNaN(quantityValue)) {\r\n setTimeout(() => {\r\n e.target.value = originalQuantity.toString()\r\n e.target.select()\r\n }, 0)\r\n }\r\n setQuantity(quantityValue)\r\n },\r\n [division, originalQuantity]\r\n )\r\n\r\n const handleBlur = useCallback(() => {\r\n if (keyPressed.current === \"Escape\") {\r\n setQuantity(originalQuantity.ceil(division))\r\n return\r\n }\r\n\r\n let noZeroQuantity = quantity || 1\r\n\r\n if (division > 1) {\r\n noZeroQuantity = noZeroQuantity.ceil(division)\r\n }\r\n\r\n if (originalQuantity !== noZeroQuantity || quantity < originalQuantity) {\r\n setQuantity(noZeroQuantity)\r\n handleChangeQuantity(noZeroQuantity, true)\r\n }\r\n }, [handleChangeQuantity, originalQuantity, division, quantity])\r\n\r\n const handleFocus = useCallback((e: React.FocusEvent) => {\r\n e.target.select()\r\n }, [])\r\n\r\n const handleKeyUp = useCallback((e: React.KeyboardEvent) => {\r\n keyPressed.current = e.code\r\n switch (e.code) {\r\n case \"Escape\":\r\n case \"NumpadEnter\":\r\n case \"Enter\": {\r\n ;(e.target as HTMLInputElement).blur()\r\n break\r\n }\r\n default:\r\n }\r\n }, [])\r\n\r\n const maxAmountValue = useMemo(() => {\r\n return MAX_AMOUNT - (MAX_AMOUNT % division)\r\n }, [division])\r\n\r\n const amountInfo = useMemo(() => {\r\n if (division > 1) {\r\n return translateText(13627)\r\n }\r\n\r\n if (hasSuggestedQuantity) {\r\n return translateText(13670)\r\n }\r\n }, [division, hasSuggestedQuantity, translateText])\r\n\r\n return (\r\n e.stopPropagation(),\r\n }}\r\n // eslint-disable-next-line react/jsx-no-duplicate-props\r\n InputProps={{\r\n endAdornment: !!amountInfo && ,\r\n }}\r\n value={quantity}\r\n disabled={disabled || false}\r\n onChange={handleChange}\r\n onKeyUp={handleKeyUp}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n onClick={() => inputRef?.current?.focus()} // fix firefox not running into onBlur - NEXT-28029\r\n />\r\n )\r\n}\r\n","import { MouseEvent } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Box, styled } from \"@mui/material\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\nimport { ECounterType } from \"@tm/models\"\r\nimport { StyledBasketButton } from \"../../StyledBasketButton\"\r\nimport { Badge } from \"../../../../generics/Badge\"\r\nimport { Icon } from \"../../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../../generics/tooltip\"\r\n\r\ntype AddToBasketButtonProps = {\r\n onAddToBasket(): void\r\n onRemoveFromBasket(): void\r\n basketQuantity?: number\r\n hideBasketQuantity?: boolean\r\n disabled: boolean\r\n size?: \"small\" | \"medium\"\r\n className?: string\r\n}\r\n\r\nconst QuantityBadge = styled(Badge)({\r\n cursor: \"pointer\",\r\n \".MuiBadge-badge\": {\r\n height: \"auto\",\r\n lineHeight: 1,\r\n padding: \"2px 2px 2px 6px\",\r\n transform: \"translate(-4px, -40%)\",\r\n margin: 0,\r\n },\r\n})\r\nconst RemoveIcon = styled(Box)(({ theme }) => ({\r\n borderRadius: 14,\r\n border: \"1px solid white\",\r\n marginLeft: 4,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: 14,\r\n height: 14,\r\n \":hover\": {\r\n background: theme.palette.grey[400],\r\n color: \"black\",\r\n },\r\n}))\r\nRemoveIcon.defaultProps = {\r\n children: ,\r\n}\r\n\r\nexport function BasketButton(props: AddToBasketButtonProps) {\r\n const { onAddToBasket, onRemoveFromBasket, basketQuantity, hideBasketQuantity, disabled, size, className } = props\r\n const { translateText } = useLocalization()\r\n\r\n const handleRemoveFromBasket = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n onRemoveFromBasket()\r\n }\r\n\r\n const handleAddToBasket = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n TmaHelper.GeneralCountEvent.Call(ECounterType.ArticleListAddToBasket)\r\n onAddToBasket()\r\n }\r\n\r\n return (\r\n
\r\n \r\n {basketQuantity}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { Stack } from \"@mui/material\"\r\nimport { BasketAmountField } from \"./BasketAmountField\"\r\nimport { BasketButton } from \"./BasketButton\"\r\n\r\nexport type AddToBasketProps = {\r\n onAddToBasket(): void\r\n onRemoveFromBasket(): void\r\n handleChangeQuantity: (value: number, loadErpInfo?: boolean) => void\r\n originalQuantity: number\r\n division: number\r\n basketQuantity?: number\r\n hideBasketQuantity?: boolean\r\n hasSuggestedQuantity?: boolean\r\n disableButton: boolean\r\n compactView?: boolean\r\n}\r\n\r\nexport function AddToBasket(props: AddToBasketProps) {\r\n const {\r\n onAddToBasket,\r\n onRemoveFromBasket,\r\n handleChangeQuantity,\r\n originalQuantity,\r\n division,\r\n basketQuantity,\r\n hideBasketQuantity,\r\n hasSuggestedQuantity,\r\n disableButton,\r\n compactView,\r\n } = props\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { styled, useTheme } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { forwardRef, useCallback, useMemo } from \"react\"\r\nimport { Button, ButtonProps } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\n\r\ntype CostEstimationProps = ButtonProps & {\r\n disabled?: boolean\r\n size?: \"small\" | \"medium\"\r\n onAddToCostEstimation(): void\r\n}\r\n\r\nconst CostEstimationButtonComponent = styled(Button)(({ theme }) => ({\r\n \".MuiButton-startIcon>svg.icon-add-repair-times\": {\r\n width: 30,\r\n },\r\n \".MuiButton-startIcon>svg.icon-add-repair-times-international\": {\r\n width: 30,\r\n },\r\n ...(theme.name === \"create-business\" && {\r\n \".MuiButton-startIcon>svg.icon-add-repair-times\": {\r\n width: 36,\r\n },\r\n \".MuiButton-startIcon>svg.icon-add-repair-times-international\": {\r\n width: 36,\r\n },\r\n }),\r\n}))\r\n\r\nexport const CostEstimationButton = forwardRef((props, ref) => {\r\n const { color, disabled, size, title, onAddToCostEstimation } = props\r\n const theme = useTheme()\r\n const { translateText } = useLocalization()\r\n\r\n const handleAddToCostEstimation = useCallback(() => onAddToCostEstimation(), [onAddToCostEstimation])\r\n\r\n const sizeProps = useMemo>(\r\n () => ({\r\n ...(size === \"medium\" && {\r\n sx: { width: 60 },\r\n }),\r\n }),\r\n [size]\r\n )\r\n\r\n return (\r\n \r\n }\r\n {...sizeProps}\r\n size={size}\r\n title={title}\r\n />\r\n \r\n )\r\n})\r\n","import { Stack } from \"@mui/material\"\r\nimport { useMemo } from \"react\"\r\nimport { CostEstimationButton } from \"./CostEstimationButton\"\r\nimport { AddOeToBasket } from \"./AddOeToBasket\"\r\nimport { useOeArticleItemState } from \"../ContextProviderStates/OeArticleItemState\"\r\nimport { ReplaceButton } from \"./ReplaceButton\"\r\nimport { ReplaceButtonWithQuantity } from \"./ReplaceButtonWithQuantity\"\r\nimport { useArticleItemState } from \"../ContextProviderStates\"\r\n\r\nexport default function OeTransactions() {\r\n const { hideCostEstimationButton, hideAddToBasketButton, hideReplaceButtonWithQuantity } = useOeArticleItemState((x) => x.options)\r\n const showReplaceButton = useOeArticleItemState((x) => x.showReplaceButton)\r\n const handleReplaceArticle = useOeArticleItemState((x) => x.handleReplaceArticle)\r\n const article = useOeArticleItemState((x) => x.article)\r\n const handleChangeQuantity = useOeArticleItemState((x) => x.handleChangeQuantity)\r\n const articleErpInfo = useArticleItemState((x) => x.articleErpInfos?.default)\r\n const division = useMemo(() => (articleErpInfo?.state === \"success\" ? articleErpInfo.response.quantity?.division : 1) || 1, [articleErpInfo])\r\n\r\n return (\r\n \r\n {!showReplaceButton ? !hideAddToBasketButton && : }\r\n {!hideReplaceButtonWithQuantity && !showReplaceButton && hideCostEstimationButton && hideAddToBasketButton && (\r\n \r\n )}\r\n {!hideCostEstimationButton && (\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n {}} disabled />\r\n )}\r\n \r\n )\r\n}\r\n","import { useCallback } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { styled } from \"@mui/material\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\n\r\nconst PartsListButtonComponent = styled(Button)({\r\n width: 90,\r\n \"&.MuiButton-bordered\": {\r\n borderTopLeftRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n },\r\n})\r\n\r\nPartsListButtonComponent.defaultProps = {\r\n color: \"highlight\",\r\n variant: \"bordered\",\r\n startIcon: ,\r\n}\r\n\r\nexport function PartsListButton() {\r\n const { translateText } = useLocalization()\r\n const handleClickDetails = useDefaultArticleItemState((x) => x.handleClickDetails)\r\n\r\n const handleClick = useCallback(() => handleClickDetails(\"partslist\"), [handleClickDetails])\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { styled } from \"@mui/material\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\n\r\ntype Props = {\r\n onClick(): void\r\n disabled?: boolean\r\n disableMargin?: boolean\r\n}\r\n\r\nconst StyledButton = styled(Button, {\r\n shouldForwardProp: (prop) => prop !== \"disableMargin\",\r\n})(({ disableMargin }) => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minWidth: \"6em\",\r\n marginLeft: disableMargin ? \"initial\" : \"auto\",\r\n}))\r\n\r\nexport function ReplaceButton({ onClick, disabled, disableMargin }: Props) {\r\n return } color=\"highlight\" onClick={onClick} disabled={disabled} disableMargin={disableMargin} />\r\n}\r\n","import { Stack } from \"@mui/material\"\r\nimport { BasketAmountField } from \"../AddToBasket/BasketAmountField\"\r\nimport { ReplaceButton } from \"../ReplaceButton\"\r\n\r\ntype ReplaceButtonWithQuantityProps = {\r\n originalQuantity: number\r\n handleChangeQuantity: (value: number, loadErpInfo?: boolean) => void\r\n handleReplaceArticle: () => void\r\n hasSuggestedQuantity?: boolean\r\n division?: number\r\n}\r\n\r\nexport function ReplaceButtonWithQuantity(props: ReplaceButtonWithQuantityProps) {\r\n const { handleChangeQuantity, originalQuantity, hasSuggestedQuantity, handleReplaceArticle, division } = props\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { Box, Stack } from \"@mui/material\"\r\nimport { AddToBasket } from \"./AddToBasket\"\r\nimport { PartsListButton } from \"./PartsListButton\"\r\nimport { CostEstimationButton } from \"./CostEstimationButton\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { ReplaceButtonWithQuantity } from \"./ReplaceButtonWithQuantity\"\r\nimport { MoreMenuButton } from \"../Actions/MoreMenuButton\"\r\nimport { BasketAmountField } from \"./AddToBasket/BasketAmountField\"\r\n\r\ntype TransactionsProps = {\r\n displayMoreMenuButton?: boolean\r\n}\r\n\r\nexport function Transactions({ displayMoreMenuButton }: TransactionsProps) {\r\n const { hideCostEstimationButton, hideAddToBasketButton, hideReplaceButtonWithQuantity, displayOnlyQuantity } = useDefaultArticleItemState(\r\n (x) => x.options\r\n )\r\n const showAddToBasket = useDefaultArticleItemState((x) => x.article.showAddToBasket)\r\n const addToCostEstimationButtonDisabled = useDefaultArticleItemState((x) => x.addToCostEstimationButtonDisabled)\r\n const addToBasketButtonDisabled = useDefaultArticleItemState((x) => x.addToBasketButtonDisabled)\r\n const isPartsListAvailable = useDefaultArticleItemState((x) => x.article.isPartsListAvailable)\r\n const originalQuantity = useDefaultArticleItemState((x) => x.originalQuantity)\r\n const hasSuggestedQuantity = useDefaultArticleItemState((x) => x.options.hasSuggestedQuantity)\r\n const handleChangeQuantity = useDefaultArticleItemState((x) => x.handleChangeQuantity)\r\n const handleAddToBasket = useDefaultArticleItemState((x) => x.handleAddToBasket)\r\n const handleReplaceArticle = useDefaultArticleItemState((x) => x.handleReplaceArticle)\r\n const handleRemoveFromBasket = useDefaultArticleItemState((x) => x.handleRemoveFromBasket)\r\n const basketQuantity = useDefaultArticleItemState((x) => x.basketQuantity?.articleQuantities?.totalQuantity)\r\n const handleAddToCostEstimation = useDefaultArticleItemState((x) => x.handleAddToCostEstimation)\r\n const defaultArticleErpInfo = useDefaultArticleItemState((x) => x.articleErpInfos?.default)\r\n const showReplaceButton = useDefaultArticleItemState((x) => x.showReplaceButton)\r\n const expandedArticleList = useDefaultArticleItemState((x) => x.expanded)\r\n\r\n const division = useMemo(\r\n () => (defaultArticleErpInfo?.state === \"success\" ? defaultArticleErpInfo.response.quantity?.division : 1) || 1,\r\n [defaultArticleErpInfo]\r\n )\r\n\r\n return (\r\n \r\n {displayOnlyQuantity && hideAddToBasketButton && hideCostEstimationButton && (\r\n \r\n )}\r\n {showAddToBasket && !hideAddToBasketButton && !showReplaceButton ? (\r\n \r\n ) : (\r\n isPartsListAvailable && !displayOnlyQuantity && \r\n )}\r\n {handleReplaceArticle &&\r\n (showReplaceButton ||\r\n (!hideReplaceButtonWithQuantity && !showReplaceButton && hideCostEstimationButton && hideAddToBasketButton)) && (\r\n \r\n )}\r\n {!hideCostEstimationButton && (\r\n \r\n )}\r\n {displayMoreMenuButton && (\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { Stack, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\n\r\nconst backgroundColor = \"#e2e2e2\"\r\n\r\nconst StyledStack = styled(Stack)(({ theme }) => ({\r\n padding: \"0.5em 0.75em\",\r\n alignItems: \"center\",\r\n borderRadius: theme.radius?.default || \"3px\",\r\n backgroundColor,\r\n}))\r\n\r\nexport default function AlreadyOrderedArticle() {\r\n const { translateText } = useLocalization()\r\n\r\n return (\r\n \r\n \r\n theme.palette.getContrastText(backgroundColor)}>\r\n {translateText(80)}\r\n \r\n \r\n )\r\n}\r\n","import { Box, Menu, MenuItem, Stack, styled, Tooltip } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ArticleActionButton, ArticleActionIcon, ErpIconType, type WatchList as WatchListType } from \"@tm/models\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { Checkbox } from \"../../generics/Checkbox\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { LoadingContainer } from \"../../generics/LoadingContainer\"\r\nimport { Button } from \"../../generics/button\"\r\nimport { Divider } from \"../../generics/divider\"\r\nimport { TextField } from \"../../generics/textfield\"\r\nimport { Typography } from \"../../generics/typographie\"\r\nimport { ButtonAction } from \"./Actions/ButtonAction\"\r\nimport { IconAction } from \"./Actions/IconAction\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\n\r\nconst CustomMenuEntry = styled(MenuItem)({\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n paddingLeft: \"6px\",\r\n})\r\n\r\nconst SINGLEWATCHLISTNAME = \"Watchlist\"\r\n\r\ntype WatchlistProps = {\r\n hideText?: boolean\r\n}\r\n\r\nexport function Watchlist(props: WatchlistProps) {\r\n const watchList = useDefaultArticleItemState((x) => x.watchList)\r\n if (!watchList) {\r\n return null\r\n }\r\n return \r\n}\r\n\r\nfunction WatchlistComponent({ watchList, hideText }: WatchlistProps & { watchList: WatchListType }) {\r\n const {\r\n isInWatchList,\r\n watchLists: initialWatchList,\r\n toggleWatchList,\r\n createWatchList,\r\n isToggling,\r\n isLoading,\r\n isCreating,\r\n createOrAddWatchlist,\r\n singleWatchlist,\r\n } = watchList\r\n const { translateText } = useLocalization()\r\n const [creationMode, setCreationMode] = useState(false)\r\n const [newListName, setNewListName] = useState(\"\")\r\n const [watchLists, setWatchLists] = useState(initialWatchList ?? [])\r\n const { highlightWatchlistButton } = useDefaultArticleItemState((x) => x.options)\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n const open = Boolean(anchorEl)\r\n const handleClick = (event?: React.MouseEvent) => {\r\n if (singleWatchlist) {\r\n createOrAddWatchlist(SINGLEWATCHLISTNAME)\r\n } else {\r\n event && setAnchorEl(event.currentTarget)\r\n }\r\n }\r\n const handleClose = () => {\r\n setCreationMode(false)\r\n setAnchorEl(null)\r\n }\r\n\r\n const createWatchlist = () => {\r\n createWatchList(newListName)\r\n setNewListName(\"\")\r\n setCreationMode(false)\r\n }\r\n\r\n useEffect(() => {\r\n // Only set the watchlist when we have the new watchlist available\r\n if (initialWatchList && initialWatchList?.length > 0) {\r\n setWatchLists(initialWatchList)\r\n }\r\n }, [initialWatchList])\r\n\r\n const action = {\r\n iconType: ErpIconType.Watchlist,\r\n displayType: hideText ? \"ICON\" : \"BUTTON\",\r\n icon: isInWatchList ? \"filled-star\" : \"vote-star\",\r\n sort: -1,\r\n tooltip: translateText(1330),\r\n text: translateText(13789),\r\n isHighlight: highlightWatchlistButton,\r\n handler: handleClick,\r\n }\r\n\r\n return (\r\n <>\r\n {hideText ? : }\r\n \r\n \r\n {watchLists.map((listEntry) => {\r\n return (\r\n toggleWatchList(listEntry.id)} disabled={listEntry.disabled}>\r\n {listEntry.hasErrors ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n {listEntry.name}\r\n \r\n )\r\n })}\r\n \r\n \r\n {creationMode ? (\r\n e.stopPropagation()}>\r\n \r\n setNewListName(e.currentTarget.value)}\r\n value={newListName}\r\n />\r\n \r\n ({ zIndex: theme.zIndex.drawer + 1 })} open={processStarted} onClick={handleBackdropClick} />\r\n \r\n )\r\n}\r\n\r\ntype OAuthMessageEventData = {\r\n type: \"oauth-status\"\r\n status: \"success\" | \"error\" | \"abort\"\r\n}\r\n\r\nfunction isOAuthMessageEventData(data: any): data is OAuthMessageEventData {\r\n return (\r\n !!data &&\r\n typeof data == \"object\" &&\r\n \"type\" in data &&\r\n data.type === \"oauth-status\" &&\r\n \"status\" in data &&\r\n (data.status === \"success\" || data.status === \"error\" || data.status === \"abort\")\r\n )\r\n}\r\n","import { Select, SelectProps, filledInputClasses, lighten, styled } from \"@mui/material\"\r\nimport { ComponentType } from \"react\"\r\n\r\nexport const InlineSelect = styled(Select)(({ theme }) => {\r\n const { button } = theme.overwrites?.components ?? {}\r\n const { getContrastText } = theme.palette\r\n const primaryButton = button?.primary\r\n\r\n const defaultBackgroundColor = primaryButton?.backgroundColor ?? theme.palette.grey[300]\r\n\r\n const backgroundColorHover = primaryButton?.hover?.backgroundColor ?? lighten(theme.palette.primary.main, 0.5)\r\n\r\n const focusedColor = primaryButton?.focus ?? theme.palette.primary.light\r\n\r\n const transition = theme.transitions.create([\"color\", \"background-color\"])\r\n\r\n return {\r\n border: `1px solid ${defaultBackgroundColor} !important`,\r\n borderRadius: `${theme.radius?.default || \"2px\"} !important`,\r\n backgroundColor: `${defaultBackgroundColor}!important`,\r\n borderTopRightRadius: \"0 !important\",\r\n borderBottomRightRadius: \"0 !important\",\r\n opacity: 1,\r\n color: getContrastText(defaultBackgroundColor),\r\n svg: {\r\n fill: getContrastText(defaultBackgroundColor),\r\n },\r\n \"&.Mui-focused\": {\r\n boxShadow: \"unset !important\",\r\n borderRadius: `${theme.radius?.default || \"2px\"} !important`,\r\n border: `1px solid ${focusedColor} !important`,\r\n backgroundColor: `${focusedColor}!important`,\r\n borderTopRightRadius: \"0 !important\",\r\n borderBottomRightRadius: \"0 !important\",\r\n color: getContrastText(focusedColor),\r\n },\r\n \":hover\": {\r\n [`.${filledInputClasses.input}`]: {\r\n transition,\r\n borderRadius: `${theme.radius?.default || \"2px\"} !important`,\r\n borderTopRightRadius: \"0 !important\",\r\n borderBottomRightRadius: \"0 !important\",\r\n backgroundColor: backgroundColorHover,\r\n color: getContrastText(backgroundColorHover),\r\n \"&.Mui-disabled\": {\r\n backgroundColor: defaultBackgroundColor,\r\n },\r\n },\r\n \".MuiSelect-icon\": {\r\n transition,\r\n color: getContrastText(backgroundColorHover),\r\n },\r\n },\r\n\r\n \".MuiSelect-select\": {\r\n minHeight: \"unset !important\",\r\n },\r\n }\r\n}) as ComponentType\r\n","import { forwardRef, PropsWithChildren } from \"react\"\r\n\r\nimport { SearchField, SearchFieldProps } from \"../searchfield\"\r\n\r\ntype Props = PropsWithChildren\r\n\r\nexport const PartnerSearchField = forwardRef((props, ref) => {\r\n const { children, ...rest } = props\r\n\r\n return (\r\n {children && children},\r\n }}\r\n />\r\n )\r\n})\r\n","import { Box, Popover, PopoverOrigin, Stack, styled } from \"@mui/material\"\r\nimport { forwardRef, PropsWithChildren, useState, ReactNode, MouseEvent, useLayoutEffect, CSSProperties } from \"react\"\r\n\r\ntype Props = {\r\n disabled?: boolean\r\n defaultPopoverPosition?: \"top\" | \"bottom\"\r\n popoverVariant?: PopoverVariant\r\n popoverContent?: ReactNode\r\n}\r\n\r\ntype PositionObj = {\r\n bottom: { anchorOrigin: PopoverOrigin; transformOrigin: PopoverOrigin }\r\n top: { anchorOrigin: PopoverOrigin; transformOrigin: PopoverOrigin }\r\n}\r\n\r\ntype DynamicStylesProp = {\r\n itself: CSSProperties\r\n after: CSSProperties\r\n before: CSSProperties\r\n}\r\n\r\nexport enum PopoverVariant {\r\n OUTLINE = \"outline\",\r\n}\r\n\r\nconst OutlineBox = styled(Box, { shouldForwardProp: (prop) => prop !== \"popoverPosition\" })<{ popoverPosition?: \"bottom\" | \"top\" }>(({\r\n theme,\r\n popoverPosition = \"bottom\",\r\n}) => {\r\n const borderWidthInnerArrow = 8\r\n const borderWidthOuterArrow = borderWidthInnerArrow + 1\r\n\r\n // Remove any and replace by a proper type\r\n let dynamicStyles: DynamicStylesProp = {\r\n itself: {\r\n marginTop: \"10px\",\r\n },\r\n after: {\r\n borderColor: `transparent transparent ${theme.palette.background.paper}`,\r\n top: `-${2 * borderWidthInnerArrow}px`,\r\n },\r\n before: {\r\n borderColor: `transparent transparent ${theme.palette.grey[800]}`,\r\n top: `-${2 * borderWidthOuterArrow}px`,\r\n },\r\n }\r\n\r\n if (popoverPosition === \"top\") {\r\n dynamicStyles = {\r\n itself: {\r\n marginBottom: \"18px\", // arrow needs some more spacing\r\n },\r\n after: {\r\n borderColor: `${theme.palette.background.paper} transparent transparent`,\r\n bottom: `-${2 * borderWidthInnerArrow}px`,\r\n },\r\n before: {\r\n borderColor: `${theme.palette.grey[800]} transparent transparent`,\r\n bottom: `-${2 * borderWidthOuterArrow}px`,\r\n },\r\n }\r\n }\r\n\r\n return {\r\n ...dynamicStyles.itself,\r\n position: \"relative\",\r\n border: `1px solid ${theme.palette.grey[800]}`,\r\n padding: \"8px\",\r\n backgroundColor: theme.palette.background.paper,\r\n \"&::after\": {\r\n ...dynamicStyles.after,\r\n content: \"''\",\r\n borderStyle: \"solid\",\r\n borderWidth: `${borderWidthInnerArrow}px`,\r\n width: 0,\r\n height: 0,\r\n position: \"absolute\",\r\n left: `calc(50% - ${borderWidthInnerArrow}px)`,\r\n },\r\n \"&::before\": {\r\n ...dynamicStyles.before,\r\n content: \"''\",\r\n borderStyle: \"solid\",\r\n borderWidth: `${borderWidthOuterArrow}px`,\r\n width: 0,\r\n height: 0,\r\n position: \"absolute\",\r\n left: `calc(50% - ${borderWidthOuterArrow}px)`,\r\n },\r\n }\r\n})\r\n\r\n/*\r\nWe currently use a mui-popover because:\r\npopper:\r\n- does not support border and border arrow\r\n- we have to write our own backdrop click handling\r\n- scroll is enabled when opened\r\n */\r\nexport const PopoverMenu = forwardRef>((props, ref) => {\r\n const { children, disabled, popoverVariant, popoverContent, defaultPopoverPosition = \"bottom\" } = props\r\n const [anchorElement, setAnchorElement] = useState()\r\n const [contentElement, setContentElement] = useState()\r\n const [popoverPosition, setPopoverPosition] = useState(defaultPopoverPosition)\r\n\r\n const openPopover = (e: MouseEvent) => {\r\n if (disabled) {\r\n return\r\n }\r\n setAnchorElement(e.target as HTMLElement)\r\n }\r\n\r\n const handleClosePopover = () => {\r\n setAnchorElement(undefined)\r\n }\r\n\r\n useLayoutEffect(() => {\r\n if (!anchorElement || !contentElement) {\r\n return\r\n }\r\n if (popoverPosition === \"top\" || popoverPosition === \"bottom\") {\r\n if (doesPopoverFit()) {\r\n setPopoverPosition(getInvertedPosition(defaultPopoverPosition))\r\n } else {\r\n // make sure to reset the value to default when there is enough space\r\n setPopoverPosition(defaultPopoverPosition)\r\n }\r\n // add left / right here in future when needed\r\n }\r\n }, [contentElement])\r\n\r\n function getInvertedPosition(prevPosition: \"top\" | \"bottom\") {\r\n if (prevPosition === \"top\") {\r\n return \"bottom\"\r\n }\r\n return \"top\"\r\n }\r\n\r\n function doesPopoverFit() {\r\n if (!anchorElement || !contentElement) {\r\n return\r\n }\r\n if (defaultPopoverPosition === \"bottom\") {\r\n return anchorElement.getBoundingClientRect().y + anchorElement.clientHeight + contentElement.clientHeight >= window.innerHeight\r\n }\r\n if (defaultPopoverPosition === \"top\") {\r\n return anchorElement.getBoundingClientRect().y - contentElement.clientHeight <= 0\r\n }\r\n }\r\n\r\n const positionObj: PositionObj = {\r\n bottom: {\r\n anchorOrigin: { vertical: \"bottom\", horizontal: \"center\" },\r\n transformOrigin: { vertical: \"top\", horizontal: \"center\" },\r\n },\r\n top: {\r\n anchorOrigin: { vertical: \"top\", horizontal: \"center\" },\r\n transformOrigin: { vertical: \"bottom\", horizontal: \"center\" },\r\n },\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {children}\r\n \r\n \r\n \r\n {popoverVariant === PopoverVariant.OUTLINE ? (\r\n {popoverContent}\r\n ) : (\r\n {popoverContent}\r\n )}\r\n \r\n \r\n \r\n )\r\n})\r\n","import { ResizableBox, ResizableBoxProps } from \"react-resizable\"\r\nimport { styled } from \"@mui/material\"\r\nimport { ComponentType } from \"react\"\r\n\r\n// Exported Styles from package because the css file couldnt be correctly interpreted. even when adding a node modules css handler\r\nexport const RezisablePopoverBox = styled(ResizableBox)(() => {\r\n return {\r\n overflow: \"hidden\",\r\n position: \"relative\",\r\n width: 700,\r\n height: 500,\r\n maxHeight: \"95vh\",\r\n\r\n \".react-resizable-handle\": {\r\n position: \"absolute\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundOrigin: \"content-box\",\r\n boxSizing: \"border-box\",\r\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cg%20transform='rotate(-45%2012%2012)'%3E%3Cpath%20d='M10.9%2C16c0.6%2C0.6%2C1.6%2C0.6%2C2.2%2C0l1.4-1.4l5-5c0.5-0.5%2C0.5-1.2%2C0-1.7c-0.5-0.5-1.2-0.5-1.7%2C0l-5%2C5c-0.5%2C0.5-1.2%2C0.5-1.7%2C0l-5-5c-0.5-0.5-1.2-0.5-1.7%2C0c-0.5%2C0.5-0.5%2C1.2%2C0%2C1.7l5%2C5l1.4%2C1.4z'/%3E%3C/g%3E%3C/svg%3E\")`,\r\n backgoundPosition: \"1px 1px\",\r\n backgroundSize: 22,\r\n padding: \"0 3px 3px 0\",\r\n },\r\n\r\n \".react-resizable-handle-sw\": {\r\n bottom: 0,\r\n left: 0,\r\n cursor: \"sw-resize\",\r\n transform: \"rotate(90deg)\",\r\n },\r\n \".react-resizable-handle-se\": {\r\n bottom: 0,\r\n right: 0,\r\n cursor: \"se-resize\",\r\n },\r\n \".react-resizable-handle-nw\": {\r\n top: 0,\r\n left: 0,\r\n cursor: \"nw-resize\",\r\n transform: \"rotate(180deg)\",\r\n },\r\n \".react-resizable-handle-ne\": {\r\n top: 0,\r\n right: 0,\r\n cursor: \"ne-resize\",\r\n transform: \"rotate(270deg)\",\r\n },\r\n \".react-resizable-handle-w\": {\r\n left: 0,\r\n transform: \"rotate(90deg)\",\r\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20style%3D%22enable-background%3Anew%200%200%2024%2024%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Crect%20x%3D%223%22%20y%3D%2211.001%22%20width%3D%2218%22%20height%3D%222%22/%3E%3C/svg%3E\");`,\r\n },\r\n \".react-resizable-handle-e\": {\r\n right: 0,\r\n transform: \"rotate(90deg)\",\r\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20style%3D%22enable-background%3Anew%200%200%2024%2024%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Crect%20x%3D%223%22%20y%3D%2211.001%22%20width%3D%2218%22%20height%3D%222%22/%3E%3C/svg%3E\");`,\r\n },\r\n \".react-resizable-handle-n, .react-resizable-handle-s\": {\r\n left: \"50%\",\r\n marginLeft: \"-10px\",\r\n cursor: \"ns-resize\",\r\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20style%3D%22enable-background%3Anew%200%200%2024%2024%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Crect%20x%3D%223%22%20y%3D%2211.001%22%20width%3D%2218%22%20height%3D%222%22/%3E%3C/svg%3E\");`,\r\n },\r\n \".react-resizable-handle-n\": {\r\n top: 0,\r\n },\r\n \".react-resizable-handle-s\": {\r\n bottom: 0,\r\n },\r\n \".react-resizable-handle-w, .react-resizable-handle-e\": {\r\n top: \"50%\",\r\n marginTop: \"-10px\",\r\n cursor: \"ew-resize\",\r\n },\r\n }\r\n}) as ComponentType\r\n","import { PropsWithChildren, SyntheticEvent, useCallback, useLayoutEffect, useState } from \"react\"\r\nimport { ResizeCallbackData, ResizeHandle } from \"react-resizable\"\r\nimport { useWindowSize } from \"@tm/utils\"\r\nimport { RezisablePopoverBox } from \"./RezisablePopoverBox\"\r\n\r\nexport type Size = { width: number; height: number }\r\n\r\nconst DEFAULT_MIN_CONSTRAINTS: [width: number, height: number] = [500, 400]\r\nconst DEFAULT_MAX_CONSTRAINTS: [width: number, height: number] = [1200, 1000]\r\nconst DEFAULT_SIZES: Size = { width: 700, height: 500 }\r\nconst RESIZEHANDLES: ResizeHandle[] = [\"se\", \"e\"]\r\nconst SCALE_AXIS = \"both\"\r\nconst HANDLESSIZE: [number, number] = [16, 16]\r\nconst WITH_INDEX = 0\r\nconst HEIGHT_INDEX = 1\r\n\r\ntype ResizablePopoverProps = {\r\n fullscreen: boolean\r\n onResize?: () => void\r\n onResizeStop?: (size: Size) => void\r\n}\r\n\r\nexport function ResizableContainer({ children, onResize, onResizeStop, fullscreen }: PropsWithChildren): JSX.Element | null {\r\n const [imageSizes, setImageSizes] = useState(DEFAULT_SIZES)\r\n const [popoverBoxSize, setPopoverBoxSize] = useState({ height: 0, width: 0 })\r\n const handleResize = useCallback(\r\n (_: SyntheticEvent, { size }: ResizeCallbackData) => {\r\n setImageSizes(size)\r\n onResize && onResize()\r\n },\r\n [setImageSizes, onResize]\r\n )\r\n\r\n const handleResizeStop = useCallback(\r\n (_: SyntheticEvent, { size }: ResizeCallbackData) => {\r\n onResizeStop && onResizeStop(size)\r\n },\r\n [onResizeStop]\r\n )\r\n\r\n const windowSize = useWindowSize()\r\n\r\n useLayoutEffect(\r\n function getPopoverSize() {\r\n let updatedSize = {\r\n height: imageSizes.height || DEFAULT_SIZES.height,\r\n width: imageSizes.width || DEFAULT_SIZES.width,\r\n }\r\n if (fullscreen) {\r\n const viewportWidth = (windowSize[WITH_INDEX] || document.documentElement.clientWidth) - 40 // -32px from mui popover maxwidth 100%-32px\r\n const viewportHeight = windowSize[HEIGHT_INDEX] || document.documentElement.clientHeight\r\n updatedSize = {\r\n height: viewportHeight,\r\n width: viewportWidth,\r\n }\r\n }\r\n setPopoverBoxSize(updatedSize)\r\n onResize && onResize()\r\n },\r\n [imageSizes.height, imageSizes.width, onResize, fullscreen, windowSize]\r\n )\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { Box, Popover, PopoverActions, PopoverProps, styled } from \"@mui/material\"\r\nimport { IconButton, Typography } from \"@tm/components\"\r\nimport { PropsWithChildren, useLayoutEffect, useRef, useState } from \"react\"\r\nimport { ResizableContainer, Size } from \"./Resizable\"\r\nimport { ZoomIcon } from \"../ImageViewer/components/Actions/ZoomIcon\"\r\n\r\ntype ResizablePopoverProps = PopoverProps & {\r\n title?: string\r\n onResizeStop?(size: Size): void\r\n onResize?(): void\r\n onClose?(): void\r\n}\r\n\r\nconst PopoverHeaderBar = styled(\"div\")(({ theme }) => ({\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n borderBottom: `1px solid ${theme.palette.grey[\"400\"]}`,\r\n}))\r\n\r\nexport function ResizablePopover({\r\n title,\r\n onResize,\r\n onResizeStop,\r\n onClose,\r\n children,\r\n ...popoverProps\r\n}: PropsWithChildren): JSX.Element | null {\r\n const [fullscreen, setFullscreen] = useState(false)\r\n const popoverActionRef = useRef(null)\r\n\r\n useLayoutEffect(() => {\r\n requestAnimationFrame(() => {\r\n onResize?.()\r\n popoverActionRef?.current?.updatePosition()\r\n })\r\n })\r\n\r\n if (!popoverProps.open) {\r\n return null\r\n }\r\n\r\n function handleFullscreenToggle() {\r\n setFullscreen((value) => !value)\r\n }\r\n\r\n function handleClose() {\r\n setFullscreen(false)\r\n onClose?.()\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {title && (\r\n \r\n {title}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {onClose && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n","import { Box, FormControl, styled, Typography } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { SearchTreeProductGroup, TreeNode as TreeNodeModel } from \"@tm/models\"\r\nimport { ChangeEvent, useState } from \"react\"\r\nimport { getUIA } from \"@tm/utils\"\r\nimport { Button } from \"../../generics/button\"\r\nimport { Checkbox } from \"../../generics/Checkbox\"\r\nimport { FormControlLabel } from \"../../generics/FormControlLabel\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Tooltip } from \"../../generics/tooltip\"\r\n\r\nconst Wrapper = styled(\"div\")(({ theme }) => ({\r\n display: \"grid\",\r\n gridTemplateRows: \"min-content auto min-content\",\r\n overflow: \"hidden\",\r\n width: \"100%\",\r\n padding: \"0 0.5em 0 1em\",\r\n borderLeft: `solid 1px ${theme.palette.highlight.main}`,\r\n}))\r\n\r\ntype Props = {\r\n Bestseller?: SearchTreeProductGroup[]\r\n onNodeClick: (node: TreeNodeModel) => void\r\n applyProductGroups?: (productGroupIds: number[]) => void\r\n fastCalculation?: (productGroupIds: number[]) => void\r\n hideFastCalcButton?: boolean\r\n maxSelectableProductGroups?: number\r\n fastCalculatorDisabled?: boolean\r\n}\r\n\r\nexport function Bestseller(props: Props) {\r\n const { translateText } = useLocalization()\r\n const [state, setState] = useState([])\r\n const [length, setLength] = useState(0)\r\n\r\n const maxItems = props?.maxSelectableProductGroups || 100\r\n const isDisabledBySelectedItems = state.length > maxItems\r\n\r\n const handleChange = (event: ChangeEvent) => {\r\n const tempState = [...state]\r\n const id = parseInt(event.target.value)\r\n if (event.target.checked) {\r\n tempState.push(id)\r\n } else {\r\n tempState.remove((pId) => pId === id)\r\n }\r\n setState(tempState)\r\n setLength(tempState.length)\r\n }\r\n\r\n const applyProductGroupFilter = () => {\r\n if (props.applyProductGroups) {\r\n props.applyProductGroups(state)\r\n }\r\n }\r\n\r\n const onFastclickClick = () => {\r\n if (props.fastCalculation) {\r\n props.fastCalculation(state)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n theme.colors?.highlight }} />\r\n \r\n {translateText(158)}\r\n \r\n \r\n {translateText(1005)}\r\n \r\n \r\n \r\n \r\n {props.Bestseller?.map((node) => {\r\n return (\r\n \r\n }\r\n label={node.name}\r\n {...getUIA(\"SearchtreeV2BestsellerLabel\")}\r\n />\r\n )\r\n })}\r\n \r\n \r\n \r\n }\r\n onClick={applyProductGroupFilter}\r\n {...getUIA(\"SearchtreeV2BestsellerApply\")}\r\n >\r\n {translateText(22)}\r\n \r\n {!props.hideFastCalcButton && (\r\n \r\n {/* Box is used for the tooltip if the button is disabled */}\r\n \r\n }\r\n onClick={onFastclickClick}\r\n {...getUIA(\"SearchtreeV2BestsellerCalculate\")}\r\n >\r\n {translateText(13000)}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import { Box, BoxProps, styled } from \"@mui/system\"\r\nimport { getUIA } from \"@tm/utils\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\n\r\nconst Badge = styled(Box)(({ theme }) => ({\r\n height: \"15px\",\r\n width: \"15px\",\r\n borderRadius: \"50%\",\r\n backgroundColor: theme.palette.highlight.main,\r\n svg: {\r\n fill: theme.palette.highlight.contrastText,\r\n marginBottom: \"3px\",\r\n marginLeft: \"1px\",\r\n },\r\n}))\r\n\r\nexport function FastClickBadge(props: BoxProps) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { Box, Skeleton, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { TreeNode as TreeNodeModel } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\r\nimport { Bestseller } from \"./Bestseller\"\r\nimport { TreeNode } from \"./TreeNode\"\r\n\r\nconst templateColumn2Row = \"repeat(2, minmax(0, 1fr))\"\r\nconst templateColumn3Rows = \"repeat(3, minmax(0, 1fr))\"\r\n\r\nconst NodesGridWrapper = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"gridTemplateColumns\",\r\n})<{ gridTemplateColumns: string }>(({ gridTemplateColumns }) => ({\r\n display: \"grid\",\r\n gridTemplateColumns,\r\n padding: \"0.5em\",\r\n height: \"100%\",\r\n}))\r\n\r\nconst NodesGrid = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"gridTemplateColumns\",\r\n})<{ gridTemplateColumns: string }>(({ gridTemplateColumns }) => ({\r\n display: \"grid\",\r\n gridTemplateColumns,\r\n gridAutoFlow: \"columns\",\r\n columnGap: \"1em\",\r\n alignContent: \"start\",\r\n rowGap: \"0.5em\",\r\n overflow: \"auto\",\r\n paddingTop: \"0.2em\",\r\n paddingBottom: \"0.1em\",\r\n}))\r\ntype Props = {\r\n bestseller?: boolean\r\n selectedNode?: TreeNodeModel\r\n onNodeClick: (node: TreeNodeModel, fastClick?: boolean) => void\r\n isLoading?: boolean\r\n applyProductGroups?: (productGroupIds: number[]) => void\r\n fastCalculation?: (productGroupIds: number[]) => void\r\n hideFastCalcButton?: boolean\r\n maxSelectableProductGroups?: number\r\n variant: \"default\" | \"small\"\r\n nodeVariant?: \"fastClick\" | \"default\" | undefined\r\n fastCalculatorDisabled?: boolean\r\n}\r\n\r\nexport function ListView(props: Props) {\r\n const { bestseller, selectedNode, isLoading, fastCalculatorDisabled } = props\r\n const { translateText } = useLocalization()\r\n const isSmallVariant = props.variant === \"small\"\r\n const maxElements = isSmallVariant ? 12 : 30\r\n\r\n const skeletons = useMemo(() => {\r\n return Array.from(Array(maxElements).keys()).map((_, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }, [maxElements, isSmallVariant])\r\n\r\n const nodesGridTemplateColumns = isSmallVariant ? templateColumn2Row : templateColumn3Rows\r\n\r\n const wrapperGridTemplateColumns = isSmallVariant ? \"1fr\" : \"2fr 1fr\"\r\n\r\n if (isLoading) {\r\n return (\r\n \r\n {skeletons.map((skel) => {\r\n return skel\r\n })}\r\n \r\n )\r\n }\r\n\r\n if (selectedNode?.hasChildNodes) {\r\n return (\r\n // Max height makes it possible to scroll in the best seller list when it has more items than the viewport can show.\r\n \r\n \r\n {props.selectedNode?.childNodes &&\r\n props.selectedNode.childNodes.length > 0 &&\r\n props.selectedNode?.childNodes.map((node) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n {!isSmallVariant && bestseller && props.selectedNode?.topProductGroups && props.selectedNode.hasChildNodes && (\r\n \r\n )}\r\n \r\n )\r\n }\r\n\r\n return {translateText(12775)}\r\n}\r\n","import { styled } from \"@mui/material\"\r\nimport { CategoryType, TreeNode } from \"@tm/models\"\r\nimport { getUIA } from \"@tm/utils\"\r\nimport { OverviewFlex } from \"./OverviewFlex\"\r\nimport { TreeCategory } from \"./TreeCategory\"\r\n\r\nconst OverviewGrid = styled(\"div\", { shouldForwardProp: (prop) => prop !== \"gridTemplateColumns\" })<{ gridTemplateColumns: string }>(\r\n ({ gridTemplateColumns }) => ({\r\n display: \"grid\",\r\n columnGap: \"1em\",\r\n rowGap: \"1em\",\r\n padding: \"1em 1em 0.5em 1em\",\r\n gridTemplateColumns,\r\n })\r\n)\r\n\r\ntype Props = {\r\n initialTree: TreeNode[]\r\n hideSecondLevel?: boolean\r\n variant: \"default\" | \"small\"\r\n nodeVariant?: \"fastClick\" | \"default\"\r\n onNodeClick: (node: TreeNode, fastClick?: boolean) => void\r\n isFlexOverview?: boolean\r\n}\r\n\r\nexport function SearchTreeOverview(props: Props) {\r\n if (props.isFlexOverview) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n const gridTemplateColumns =\r\n props.variant === \"small\" ? \"repeat(2, minmax(0, 1fr))\" : props.nodeVariant === \"fastClick\" ? \"1fr 1fr 1fr 1fr\" : \"repeat(3, minmax(0, 1fr))\"\r\n\r\n return (\r\n \r\n {props.initialTree.map((node) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n","import { Stack, styled } from \"@mui/material\"\r\nimport { TreeNode } from \"@tm/models\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { TreeCategory } from \"./TreeCategory\"\r\n\r\nconst Overview = styled(Stack)(() => ({\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n padding: \"1em 1em 0.5em 1em\",\r\n height: \"394px\",\r\n}))\r\n\r\ntype Props = {\r\n initialTree: TreeNode[]\r\n hideSecondLevel?: boolean\r\n nodeVariant?: \"fastClick\" | \"default\"\r\n variant: \"default\" | \"small\"\r\n onNodeClick: (node: TreeNode) => void\r\n}\r\n\r\nexport function OverviewFlex(props: Props) {\r\n // in the searchtree is vertical space for 12 nodes where parent nodes count double for taking double the space\r\n const [nodeLimit, setNodeLimit] = useState(12)\r\n const PARENT_NODE_WEIGHT = 2\r\n // have always 4 chunks/columns\r\n const CHUNK_LIMIT = 4\r\n const [treeChunks, setTreeChunks] = useState([])\r\n\r\n const isWithinChunkLimit = (nodes?: Array) => {\r\n if (nodes) {\r\n const totalNodesInChunk = nodes.reduce((total, node) => {\r\n return total + PARENT_NODE_WEIGHT + (node.childNodes?.length ?? 0)\r\n }, 0)\r\n return totalNodesInChunk <= nodeLimit\r\n }\r\n return false\r\n }\r\n\r\n const chunkItems = () => {\r\n const tree = props.initialTree\r\n let chunks: Array> = []\r\n\r\n let i = 0\r\n while (i < tree.length) {\r\n // check if there is space left in chunk/column\r\n if (chunks.length > 0 && isWithinChunkLimit([...chunks.last()!, tree[i]])) {\r\n chunks.last()?.push(tree[i])\r\n } else {\r\n chunks.push([tree[i]])\r\n }\r\n i += 1\r\n }\r\n\r\n if (chunks.length > CHUNK_LIMIT) {\r\n setNodeLimit((prev) => prev + 1)\r\n chunks = []\r\n }\r\n\r\n return chunks\r\n }\r\n\r\n useEffect(() => {\r\n setTreeChunks(chunkItems())\r\n }, [props, nodeLimit])\r\n\r\n return (\r\n \r\n {treeChunks.map((chunk) => {\r\n return (\r\n \r\n {chunk.map((node, index) => (\r\n \r\n ))}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n","import { Box, Collapse, styled } from \"@mui/material\"\r\nimport { useEffect, useMemo, useState } from \"react\"\r\nimport { TreeNode } from \"@tm/models\"\r\nimport { Breadcrumbs } from \"../BreadCrumbs\"\r\nimport { ListView } from \"./ListView\"\r\nimport { SearchTreeOverview } from \"./Overview\"\r\nimport { Loader } from \"../../generics/loader\"\r\nimport { SearchtreeTip } from \"./SearchtreeTip/SearchtreeTip\"\r\n\r\nconst Wrapper = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"withBackgroundColor\",\r\n})<{ withBackgroundColor?: boolean }>(({ theme, withBackgroundColor, gridTemplateColumns }) => ({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n transform: \"translateX(-8px)\",\r\n position: \"relative\",\r\n overflowY: \"auto\",\r\n container: \"searchtree / inline-size\",\r\n ...(withBackgroundColor && {\r\n zIndex: 20,\r\n borderRadius: theme.shape.borderRadius,\r\n border: `1px solid ${theme.palette.primary.main}`,\r\n backgroundColor: theme.palette.common.white,\r\n boxShadow: theme.shadows[3],\r\n }),\r\n \"@container searchtree (max-inline-size: 600px)\": {\r\n \".nodes-grid-wrapper\": {\r\n gridTemplateColumns: \"1fr\",\r\n },\r\n \".nodes-grid-wrapper .bestseller-wrapper\": {\r\n display: \"none\",\r\n },\r\n \".nodes-grid-wrapper .nodes-grid\": {\r\n gridTemplateColumns,\r\n },\r\n \".overview-grid\": {\r\n gridTemplateColumns: \"repeat(2, minmax(0, 1fr))\",\r\n },\r\n },\r\n}))\r\n\r\nconst CollapseWrapper = styled(Collapse)({\r\n \".MuiCollapse-wrapper\": { height: \"100%\" },\r\n})\r\n\r\ntype Props = {\r\n loading?: boolean\r\n breadCrumbs: TreeNode[]\r\n tree: TreeNode[]\r\n selectedNode?: TreeNode\r\n showBestseller?: boolean\r\n onNodeClick: (node: TreeNode, fastClick?: boolean) => void\r\n onBreadCrumbClick: (node: TreeNode) => void\r\n variant: \"full\" | \"breadcrumbsOnly\" | \"collapsable\"\r\n layout?: \"small\" | \"default\"\r\n nodeVariant?: \"fastClick\" | \"default\"\r\n isExpanded?: boolean\r\n withBackgroundColor?: boolean\r\n applyProductGroups?: (productGroupIds: number[]) => void\r\n fastCalculation?: (productGroupIds: number[]) => void\r\n hideFastCalcButton?: boolean\r\n maxSelectableProductGroups?: number\r\n className?: string\r\n hideSecondLevel?: boolean\r\n hideTipIcon?: boolean\r\n fastCalculatorDisabled?: boolean\r\n isFlexOverview?: boolean\r\n}\r\n\r\nexport function Searchtree(props: Props) {\r\n const { loading, hideTipIcon, fastCalculatorDisabled } = props\r\n const [isActive, setIsActive] = useState(false)\r\n const [viewLoading, setViewLoading] = useState(true)\r\n\r\n useEffect(() => {\r\n if (props.tree.length) {\r\n setViewLoading(false)\r\n setIsActive(props.breadCrumbs.length > 0)\r\n }\r\n }, [props.tree, props.breadCrumbs])\r\n\r\n const onOverviewNodeSelect = (node: TreeNode, fastClick?: boolean) => {\r\n setViewLoading(true)\r\n setIsActive(true)\r\n props.onNodeClick(node, fastClick)\r\n }\r\n\r\n const isSecondLevel = useMemo(() => {\r\n return props.breadCrumbs.length > 0\r\n }, [props.breadCrumbs])\r\n\r\n const gridTemplateColumns = \"repeat(2, minmax(0, 1fr))\"\r\n\r\n return (\r\n \r\n {(isActive || props.variant === \"collapsable\") && (\r\n \r\n \r\n \r\n \r\n {props.isExpanded && !hideTipIcon && }\r\n \r\n )}\r\n \r\n {(loading || viewLoading) && !isActive ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {isActive ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\n\r\nconst BreadcrumbsBox = styled(Box, {})(({}) => {\r\n return {\r\n paddingBottom: \"5px\",\r\n width: \"100%\"\r\n }\r\n})\r\n","import { Box, lighten, styled } from \"@mui/material\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\n\r\ntype Props = {\r\n iconName?: string\r\n isSecondLevel?: boolean\r\n}\r\n\r\nconst IconWrapper = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isSecondLevel\",\r\n})<{ isSecondLevel?: boolean }>(({ theme, isSecondLevel }) => {\r\n const hoverBackgroundColor = lighten(theme.palette.primary.main, 0.5)\r\n const backGroundColor = theme.palette.grey[300]\r\n\r\n return {\r\n display: \"flex\",\r\n position: \"relative\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: \"28px\",\r\n height: \"28px\",\r\n borderRadius: isSecondLevel ? \"50%\" : \"50% 50% 10% 50%\",\r\n marginTop: \"1px\",\r\n marginBottom: \"1px\",\r\n background: backGroundColor,\r\n \"div > svg\": { background: backGroundColor },\r\n \"&:hover\": {\r\n background: hoverBackgroundColor,\r\n svg: {\r\n fill: theme.palette.getContrastText(hoverBackgroundColor),\r\n },\r\n \"div > svg\": {\r\n background: hoverBackgroundColor,\r\n svg: {\r\n fill: theme.palette.getContrastText(hoverBackgroundColor),\r\n },\r\n },\r\n },\r\n }\r\n})\r\n\r\nexport function SearchtreeIcon(props: Props) {\r\n if (!props.isSecondLevel) {\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import { Box, Typography, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Tip } from \"../../Tip\"\r\n\r\nconst TipIcon = styled(Icon)(({ theme }) => {\r\n const backgroundColor = theme.palette.grey[300]\r\n return {\r\n background: backgroundColor,\r\n opacity: 1,\r\n borderRadius: \"50%\",\r\n fill: theme.palette.getContrastText(backgroundColor),\r\n }\r\n})\r\n\r\nconst ToolTipText = styled(Typography)(({ theme }) => ({\r\n fontFamily: theme.font.fontFamily.condensed ?? theme.font.fontFamily.secondary,\r\n}))\r\nToolTipText.defaultProps = {\r\n variant: \"body2\",\r\n}\r\n\r\nconst SampleProductGroupText = styled(Typography)(({ theme }) => ({\r\n display: \"inline-block\",\r\n backgroundColor: theme.palette.grey[200],\r\n opacity: \"unset\",\r\n padding: \"0 4px\",\r\n borderRadius: theme.radius?.default,\r\n}))\r\nSampleProductGroupText.defaultProps = {\r\n variant: \"h4\",\r\n}\r\n\r\ntype Props = {\r\n isSecondLevel?: boolean\r\n}\r\n\r\nexport function SearchtreeTip(props: Props) {\r\n const { translateText } = useLocalization()\r\n const text = translateText(13628).split(\"{0}\")\r\n\r\n return (\r\n \r\n \r\n {text[0]}\r\n \r\n \r\n {!props.isSecondLevel && (\r\n \r\n )}\r\n \r\n {text[1]?.trimEnd()}\r\n {!props.isSecondLevel && (\r\n <>\r\n {\" \"}\r\n {translateText(13328)}\r\n \r\n )}\r\n {text[2]}\r\n \r\n \r\n }\r\n />\r\n )\r\n}\r\n","import { Box, styled, Typography } from \"@mui/material\"\r\nimport { TreeNode as TreeNodeModel } from \"@tm/models\"\r\nimport { getUIA } from \"@tm/utils\"\r\nimport { TreeNode } from \"./TreeNode\"\r\n\r\nconst Wrapper = styled(Box, { shouldForwardProp: (prop) => prop !== \"isAnonymous\" && prop !== \"isFirstInChunk\" })(\r\n ({ isAnonymous }) => ({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n overflow: \"hidden\",\r\n paddingBottom: !isAnonymous ? 0 : \"16px\",\r\n })\r\n)\r\n\r\nconst ParentNode = styled(Box, { shouldForwardProp: (prop) => prop !== \"isAnonymous\" && prop !== \"isFirstInChunk\" })(\r\n ({ isAnonymous, isFirstInChunk }) => ({\r\n paddingBottom: !isAnonymous ? \"6px\" : \"12px\",\r\n paddingTop: isAnonymous && !isFirstInChunk ? \"18px\" : 0,\r\n })\r\n)\r\n\r\nconst Headline = styled(Typography, { shouldForwardProp: (prop) => prop !== \"isAnonymous\" && prop !== \"isFirstInChunk\" })(\r\n ({ theme, isAnonymous }) => ({\r\n fontSize: \"18px\",\r\n ...(isAnonymous && {\r\n fontWeight: 600,\r\n color: theme.overwrites?.components?.searchTree?.treeCategory?.headerColor,\r\n opacity: 1,\r\n }),\r\n })\r\n)\r\n\r\ntype AnonymousProps = {\r\n isAnonymous?: boolean\r\n isFirstInChunk?: boolean\r\n}\r\n\r\ntype Props = {\r\n category: TreeNodeModel\r\n onNodeClick: (node: TreeNodeModel) => void\r\n hideSecondLevel?: boolean\r\n nodeVariant?: \"fastClick\" | \"default\"\r\n variant: \"default\" | \"small\"\r\n anonymousProps?: AnonymousProps\r\n}\r\n\r\nexport function TreeCategory(props: Props) {\r\n const {\r\n hideSecondLevel,\r\n category,\r\n category: { childNodes = [] },\r\n anonymousProps,\r\n } = props\r\n\r\n const displayHeadlines = !hideSecondLevel && props.nodeVariant !== \"fastClick\"\r\n\r\n return (\r\n \r\n \r\n {displayHeadlines ? (\r\n \r\n {category.name}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {!hideSecondLevel && (\r\n \r\n {childNodes.map((node) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { Box, Typography, styled, Tooltip } from \"@mui/material\"\r\nimport { TreeNode as TreeNodeModel, VehicleType } from \"@tm/models\"\r\nimport { getUIA } from \"@tm/utils\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Stack } from \"@mui/system\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { SearchtreeIcon } from \"./SearchtreeButton/SearchtreeIcon\"\r\n\r\nconst Wrapper = styled(\"div\", { shouldForwardProp: (prop) => prop !== \"isSmall\" })<{ isSmall: boolean }>(({ theme, isSmall }) => ({\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n maxWidth: isSmall ? \"17em\" : \"\",\r\n \"div:nth-child(2)\": {\r\n borderRadius: \"2px\",\r\n \":hover\": {\r\n background: theme.palette.grey[200],\r\n div: { color: theme.palette.primary.main },\r\n },\r\n },\r\n}))\r\n\r\nconst HoverWrapper = styled(Stack)(({ theme }) => ({\r\n alignItems: \"center\",\r\n cursor: \"pointer\",\r\n \":hover\": {\r\n svg: { fill: theme.palette.highlight.light },\r\n },\r\n}))\r\n\r\nconst ItemText = styled(Typography<\"div\">)({\r\n padding: `1px 8px`,\r\n justifyContent: \"flex-start\",\r\n})\r\n\r\nconst ClickIcon = styled(Icon)(({ theme }) => ({\r\n fill: theme.palette.grey[600],\r\n marginLeft: \"8px\",\r\n marginRight: \"8px\",\r\n cursor: \"pointer\",\r\n}))\r\n\r\nconst IconWrapper = styled(Box)(() => ({\r\n display: \"flex\",\r\n flex: 1,\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n cursor: \"pointer\",\r\n}))\r\n\r\ntype Props = {\r\n node: TreeNodeModel\r\n hideIcon?: boolean\r\n onClick: (node: TreeNodeModel, fastClick?: boolean) => void\r\n nodeVariant?: \"fastClick\" | \"default\"\r\n variant: \"default\" | \"small\"\r\n}\r\n\r\nexport function TreeNode(props: Props) {\r\n const { translateText } = useLocalization()\r\n const { node } = props\r\n const isSmall = props.variant === \"small\"\r\n const enterDelay = 500\r\n const iconNameSplits = props.node.thumbnailUrl?.match(\"[0-9]*_[0-9]*\")\r\n let iconName = iconNameSplits?.[0] ?? props?.node.thumbnailUrl\r\n\r\n if (node.vehicleType === VehicleType.Motorcycle) {\r\n switch (node.id) {\r\n case 2099699:\r\n iconName = \"bike-drive-system\"\r\n break\r\n case 2100194:\r\n iconName = \"bike-steering\"\r\n break\r\n case 2102819:\r\n case 2103053:\r\n iconName = \"bike-body-parts\"\r\n break\r\n case 2103673:\r\n iconName = \"bike-accessories\"\r\n break\r\n case 2098259:\r\n iconName = \"bike-shock-absorber\"\r\n break\r\n default:\r\n }\r\n }\r\n\r\n const showSecondLevelIcon =\r\n !props.node.thumbnailUrl ||\r\n props.node.vehicleType === VehicleType.CommercialVehicle ||\r\n props.node.vehicleType === VehicleType.LightCommercialVehicle ||\r\n props.hideIcon\r\n\r\n if (props.nodeVariant === \"fastClick\") {\r\n return (\r\n \r\n props.onClick(props.node, true)}\r\n sx={{ display: \"flex\", justifyContent: \"center\", overflow: \"hidden\" }}\r\n {...getUIA(\"SearchtreeV2TreeNodeName\", props.node.id)}\r\n >\r\n \r\n \r\n \r\n {props.node.name}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n props.onClick(props.node, true)}\r\n sx={{ cursor: \"pointer\", marginRight: \"6px\" }}\r\n {...getUIA(\"SearchtreeV2TreeNodeIcon\")}\r\n >\r\n \r\n \r\n \r\n \r\n props.onClick(props.node)}\r\n sx={{ overflow: \"hidden\" }}\r\n {...getUIA(\"SearchtreeV2TreeNodeName\", props.node.id)}\r\n >\r\n \r\n {props.node.name}\r\n \r\n {props.node.hasChildNodes && }\r\n \r\n \r\n \r\n )\r\n}\r\n","import { styled, Typography, TypographyProps } from \"@mui/material\"\r\n\r\ntype Props = TypographyProps & {\r\n selected: boolean\r\n}\r\n\r\nexport const SelectedTypography = styled(Typography, {\r\n shouldForwardProp: (prop) => prop !== \"selected\",\r\n})(({ theme, selected }) => ({\r\n color: selected ? theme.palette.primary.main : \"currentColor\",\r\n}))\r\n","import { Box, BoxProps } from \"@mui/material\"\r\nimport { forwardRef } from \"react\"\r\n\r\nexport const AdditionalPopoverContent = forwardRef((props, ref) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n})\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { ButtonProps } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { ShareButton } from \"./ShareButton\"\r\n\r\nexport function DownloadButton(props: ButtonProps) {\r\n const { translate } = useLocalization()\r\n\r\n return (\r\n } {...props}>\r\n {translate(13293)}\r\n \r\n )\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { useMemo } from \"react\"\r\nimport { ButtonProps } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { ShareButton } from \"./ShareButton\"\r\n\r\ntype Props = Omit & {\r\n /**\r\n * The email address that should be used as recipient of the email.\r\n */\r\n recipient?: string\r\n\r\n /**\r\n * The subject that should be used for the email.\r\n */\r\n subject?: string\r\n\r\n /**\r\n * The body that should be used for the email (should contain the link).\r\n *\r\n * When set to `undefined` the button is disabled.\r\n */\r\n body: string | undefined\r\n}\r\n\r\nexport function EmailButton({ recipient, subject, body, ...buttonProps }: Props) {\r\n const { translate } = useLocalization()\r\n\r\n const href = useMemo(() => {\r\n if (body) {\r\n let message = `mailto:${recipient ?? \"\"}?body=${encodeURIComponent(body)}`\r\n\r\n if (subject) {\r\n message += `&subject=${subject}`\r\n }\r\n\r\n return message\r\n }\r\n }, [recipient, body, subject])\r\n\r\n return (\r\n } disabled={!href} {...buttonProps} href={href}>\r\n {translate(109)}\r\n \r\n )\r\n}\r\n","import { Box } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Button, ButtonProps } from \"../../../generics/button\"\r\nimport { Tooltip } from \"../../../generics/tooltip\"\r\n\r\nexport function ShareButton({ noDisabledTooltip, ...buttonProps }: ButtonProps & { noDisabledTooltip?: boolean }) {\r\n const { translate } = useLocalization()\r\n\r\n const button = (\r\n \r\n )\r\n\r\n if (buttonProps.disabled && !noDisabledTooltip) {\r\n return (\r\n \r\n {button}\r\n \r\n )\r\n }\r\n\r\n return button\r\n}\r\n","import { Stack, StackProps } from \"@mui/material\"\r\nimport { forwardRef } from \"react\"\r\n\r\nexport const ShareButtonWrapper = forwardRef((props, ref) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n})\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { styled, TypographyProps } from \"@mui/material\"\r\nimport { ElementType } from \"react\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\n\r\ntype SharingLinkProps = TypographyProps & {\r\n link: string | undefined\r\n errorMessage?: string\r\n}\r\n\r\nconst SharingLink = styled(({ link, errorMessage, ref /** extract 'ref' here to not pass it to the typography */, ...rest }: SharingLinkProps) => {\r\n const { translate } = useLocalization()\r\n\r\n return (\r\n <>\r\n {!link && !!errorMessage && }\r\n {link ?? errorMessage ?? translate(13300)}\r\n \r\n )\r\n})(({ theme, link, errorMessage }) => ({\r\n userSelect: link ? \"all\" : undefined,\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n opacity: !link && !errorMessage ? theme.opacity?.disabled : undefined,\r\n})) as ElementType\r\n\r\nexport { SharingLink }\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { useMemo } from \"react\"\r\nimport { ButtonProps } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { ShareButton } from \"./ShareButton\"\r\n\r\ntype Props = Omit & {\r\n /**\r\n * The phone number that should be used as recipient of the email.\r\n */\r\n recipient?: string\r\n\r\n /**\r\n * The message that should be sent (should contain the link).\r\n *\r\n * When set to `undefined` the button is disabled.\r\n */\r\n message: string | undefined\r\n}\r\n\r\nexport function WhatsAppButton({ recipient, message, ...buttonProps }: Props) {\r\n const { translate, language } = useLocalization()\r\n\r\n const href = useMemo(() => {\r\n if (message) {\r\n return `https://api.whatsapp.com/send?${recipient ? `phone=${recipient}&` : \"\"}text=${encodeURIComponent(message)}&lang=${language}`\r\n }\r\n }, [recipient, message, language])\r\n\r\n return (\r\n }\r\n disabled={!href}\r\n {...buttonProps}\r\n href={href}\r\n data-action=\"share/whatsapp/share\"\r\n >\r\n {translate(12784)}\r\n \r\n )\r\n}\r\n","import { Children, memo, NamedExoticComponent, ReactElement, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { copyToClipboard } from \"@tm/utils\"\r\nimport { Box, LinearProgress, PaperProps, PaperTypeMap, Popover, PopoverProps, Stack, styled } from \"@mui/material\"\r\nimport { WhatsAppButton } from \"./elements/WhatsAppButton\"\r\nimport { EmailButton } from \"./elements/EmailButton\"\r\nimport { ShareButton } from \"./elements/ShareButton\"\r\nimport { DownloadButton } from \"./elements/DownloadButton\"\r\nimport { SharingLink } from \"./elements/SharingLink\"\r\nimport { Paper } from \"../../generics/paper\"\r\nimport { Button, ButtonProps } from \"../../generics/button\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Typography } from \"../../generics/typographie\"\r\nimport { ShareButtonWrapper } from \"./elements/ShareButtonWrapper\"\r\nimport { AdditionalPopoverContent } from \"./elements/AdditionalPopoverContent\"\r\n\r\nexport type SharePopoverProps = {\r\n /**\r\n * This will be displayed as title in the popover\r\n */\r\n title?: string\r\n\r\n /**\r\n * The link that will be displayed and made available to share.\r\n */\r\n link: string | undefined\r\n\r\n /**\r\n * When no link is supplied this function will be called when the link is requested.\r\n */\r\n onRequestLink?(): void\r\n\r\n /**\r\n * Should be `true` when the link is currently being generated to show a loading animation.\r\n */\r\n isRequestingLink?: boolean\r\n\r\n /**\r\n * An optional error message that will be displayed when the link was requested but an error occured.\r\n */\r\n errorMessage?: string\r\n\r\n /**\r\n * Children could be either valid share buttons (access them like this for example `SharePopover.DownloadButton`)\r\n * or any other `ReactNode` which will be rendered inside the share popover.\r\n *\r\n * @see {@link ReactNode}\r\n */\r\n children: ReactNode\r\n\r\n /**\r\n * Props passed to the share button that opens the popover.\r\n */\r\n buttonProps?: ButtonProps\r\n\r\n /**\r\n * Props passed to the share popover.\r\n */\r\n popoverProps?: Omit\r\n}\r\n\r\nconst RowStack = styled(Stack)({})\r\nRowStack.defaultProps = {\r\n direction: \"row\",\r\n alignItems: \"center\",\r\n spacing: 2,\r\n}\r\n\r\nconst LinkPaper = styled(Paper, {\r\n shouldForwardProp: (prop) => prop !== \"hasError\",\r\n})(({ theme, hasError }) => ({\r\n width: \"600px\",\r\n minWidth: \"100%\",\r\n position: \"relative\",\r\n border: `solid 1px ${hasError ? theme.palette.error.main : theme.palette.background.paper}`,\r\n}))\r\n\r\nconst LinearLoader = styled(LinearProgress)({\r\n position: \"absolute\",\r\n left: 0,\r\n bottom: 0,\r\n width: \"100%\",\r\n})\r\n\r\nconst SharePopover = memo((props) => {\r\n const { title, link, onRequestLink, isRequestingLink, errorMessage, buttonProps, popoverProps } = props\r\n const { onClick: onPopoverOpen } = buttonProps ?? {}\r\n const { onClose: onPopoverClose } = popoverProps ?? {}\r\n const { translate, translateText } = useLocalization()\r\n\r\n const [isLinkCopied, setIsLinkCopied] = useState(false)\r\n const linkCopiedTimeoutRef = useRef(0)\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (linkCopiedTimeoutRef.current) {\r\n window.clearTimeout(linkCopiedTimeoutRef.current)\r\n }\r\n }\r\n }, [])\r\n\r\n const handleGenerateLink = useCallback(async () => {\r\n if (!onRequestLink || isRequestingLink) {\r\n return\r\n }\r\n\r\n onRequestLink()\r\n }, [onRequestLink, isRequestingLink])\r\n\r\n const handleCopyLink = useCallback(async () => {\r\n if (!link) {\r\n return\r\n }\r\n\r\n try {\r\n await copyToClipboard(link)\r\n\r\n setIsLinkCopied(true)\r\n\r\n if (linkCopiedTimeoutRef.current) {\r\n window.clearTimeout(linkCopiedTimeoutRef.current)\r\n }\r\n\r\n linkCopiedTimeoutRef.current = window.setTimeout(() => setIsLinkCopied(false), 2000)\r\n // eslint-disable-next-line no-empty\r\n } catch {}\r\n }, [link])\r\n\r\n const copyButtonText = useMemo(() => {\r\n if (link) {\r\n if (isLinkCopied) {\r\n return translateText(13296)\r\n }\r\n\r\n return translateText(12785)\r\n }\r\n\r\n if (errorMessage) {\r\n return translateText(13297)\r\n }\r\n\r\n return translateText(13298)\r\n }, [link, isLinkCopied, errorMessage, translateText])\r\n\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n const handleClick = useCallback(\r\n (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget)\r\n onPopoverOpen?.(event)\r\n },\r\n [onPopoverOpen]\r\n )\r\n\r\n const handleClose = useCallback(\r\n (event: any, reason: any) => {\r\n setAnchorEl(null)\r\n onPopoverClose?.(event, reason)\r\n },\r\n [onPopoverClose]\r\n )\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {!!title && (\r\n \r\n {title}\r\n \r\n )}\r\n {validatedRender(props.children, isShareButtonWrapper)}\r\n \r\n \r\n \r\n : undefined}\r\n disabled={isRequestingLink}\r\n >\r\n {copyButtonText}\r\n \r\n \r\n {isRequestingLink && }\r\n \r\n {validatedRender(props.children, isAdditionalPopoverContent)}\r\n \r\n \r\n \r\n )\r\n})\r\n\r\ntype SharePopoverComponent = NamedExoticComponent & {\r\n ShareButtonWrapper: typeof ShareButtonWrapper\r\n AdditionalPopoverContent: typeof AdditionalPopoverContent\r\n WhatsAppButton: typeof WhatsAppButton\r\n EmailButton: typeof EmailButton\r\n DownloadButton: typeof DownloadButton\r\n ShareButton: typeof ShareButton\r\n}\r\n\r\n// Export all share buttons as properties of the SharePopover itself\r\nconst ExternalSharePopover = SharePopover as SharePopoverComponent\r\nExternalSharePopover.ShareButtonWrapper = ShareButtonWrapper\r\nExternalSharePopover.AdditionalPopoverContent = AdditionalPopoverContent\r\nExternalSharePopover.WhatsAppButton = WhatsAppButton\r\nExternalSharePopover.EmailButton = EmailButton\r\nExternalSharePopover.DownloadButton = DownloadButton\r\nExternalSharePopover.ShareButton = ShareButton\r\n\r\nexport { ExternalSharePopover as SharePopover }\r\n\r\nfunction validatedRender(children: ReactNode, check: (node: ReactNode) => node is ReactElement) {\r\n return Children.map(children, (child) => {\r\n // Some validation to only render valid content passed as children of this component\r\n if (check(child)) {\r\n return child\r\n }\r\n })?.[0]\r\n}\r\n\r\nfunction isShareButtonWrapper(node: ReactNode): node is ReactElement {\r\n return !!node && typeof node === \"object\" && \"type\" in node && node.type === ShareButtonWrapper\r\n}\r\n\r\nfunction isAdditionalPopoverContent(node: ReactNode): node is ReactElement {\r\n return !!node && typeof node === \"object\" && \"type\" in node && node.type === AdditionalPopoverContent\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { useEffect, useMemo, useRef, useState } from \"react\"\r\nimport { Box } from \"@mui/material\"\r\nimport { useDebounceFormSubmit } from \"../hooks/useDebounceFormSubmit\"\r\nimport { TextField } from \"../../../generics/textfield\"\r\nimport { isValidEmail } from \"../helpers\"\r\n\r\ntype AddEmailEntryProps = {\r\n id: string\r\n onEmailModified: (id: string, email: string) => void\r\n startingEmail?: string\r\n disabled?: boolean\r\n}\r\n\r\nexport default function EmailEntry({ id, onEmailModified, startingEmail, disabled }: AddEmailEntryProps) {\r\n const { translateText } = useLocalization()\r\n\r\n const inputRef = useRef(null)\r\n const [email, setEmail] = useState(startingEmail ?? \"\")\r\n\r\n const validEmail = useMemo(() => isValidEmail(email), [email])\r\n\r\n useEffect(() => {\r\n if (!disabled && !startingEmail && inputRef.current) {\r\n inputRef.current.focus()\r\n }\r\n }, [disabled, startingEmail, inputRef])\r\n\r\n useDebounceFormSubmit(email, true, false, () => {\r\n onEmailModified(id, email)\r\n })\r\n\r\n const handleSubmit = () => {\r\n onEmailModified(id, email)\r\n }\r\n\r\n return (\r\n
\r\n \r\n setEmail(e.target.value)}\r\n error={!validEmail}\r\n sx={{ width: \"100%\", marginTop: \"0px\" }}\r\n />\r\n \r\n \r\n )\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { Box } from \"@mui/material\"\r\nimport { ChangeEvent } from \"react\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { FormControlLabel } from \"../../../generics/FormControlLabel\"\r\nimport { Checkbox } from \"../../../generics/Checkbox\"\r\nimport EmailEntry from \"./EmailEntry\"\r\nimport { EmailActions, EmailState } from \"../hooks/useEmailState\"\r\n\r\ntype EmailListProps = {\r\n emailState: EmailState\r\n emailActions: EmailActions\r\n}\r\n\r\nexport function EmailList({ emailState, emailActions }: EmailListProps) {\r\n const { toggleBCCSend, emailChanged, handleAddEmail } = emailActions\r\n const { showBCCCheckbox, emails } = emailState\r\n const { translateText } = useLocalization()\r\n\r\n const handleCheckToggle = (event: ChangeEvent, checked: boolean) => {\r\n toggleBCCSend?.(checked)\r\n }\r\n\r\n return (\r\n \r\n \r\n {translateText(13777)}\r\n \r\n \r\n \r\n {emails.map((email) => {\r\n return \r\n })}\r\n \r\n \r\n }\r\n onClick={handleAddEmail}\r\n sx={{ marginLeft: \"0.2em\", marginRight: \"0.2em\", alignSelf: \"end\" }}\r\n />\r\n \r\n \r\n {showBCCCheckbox && } label={translateText(13824)} />}\r\n \r\n )\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { ReactNode, useCallback, useMemo, useState } from \"react\"\r\nimport { Box } from \"@mui/material\"\r\nimport { channel } from \"@tm/models\"\r\nimport { EmailShareOption, ShareOption, ShareType } from \"../models\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { ShareOptions } from \"./ShareOptions\"\r\nimport { SharingLink } from \"./SharingLink\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { EmailList } from \"./EmailList\"\r\nimport { useEmailState } from \"../hooks/useEmailState\"\r\nimport { LoadingContainer } from \"../../../generics/LoadingContainer\"\r\n\r\ntype ShareProps = {\r\n shareOptions: ShareOption[]\r\n url: string | undefined\r\n generateLink: () => void\r\n onShareCompleted?: (success: boolean) => void\r\n isLoading?: boolean\r\n errorMessage?: string\r\n preventAutomaticGeneration?: boolean\r\n additionalContent?: ReactNode\r\n disableSendFromOutside?: boolean\r\n}\r\n\r\nexport function Share({\r\n url,\r\n isLoading,\r\n errorMessage,\r\n onShareCompleted,\r\n shareOptions,\r\n generateLink,\r\n additionalContent,\r\n disableSendFromOutside,\r\n preventAutomaticGeneration,\r\n}: ShareProps) {\r\n const { language, translateText } = useLocalization()\r\n const [selectedShareOption, setSelectedShareOption] = useState()\r\n const [isSharing, setIsSharing] = useState(false)\r\n\r\n const emailShareOption = useMemo(\r\n () => shareOptions.find((shareOption) => shareOption.type === ShareType.Email) as EmailShareOption | undefined,\r\n [shareOptions]\r\n )\r\n\r\n const { emailActions, emailState } = useEmailState(emailShareOption)\r\n\r\n const sendDisabled = useMemo(() => {\r\n if (!url || !selectedShareOption || disableSendFromOutside) {\r\n return true\r\n }\r\n if (selectedShareOption?.type === ShareType.Email && emailState.hasError) {\r\n return true\r\n }\r\n\r\n return false\r\n }, [url, selectedShareOption, emailState.hasError, disableSendFromOutside])\r\n\r\n const handleToastMessages = useCallback((shareOption: ShareOption, shareSuccess: boolean) => {\r\n if (shareSuccess && shareOption.toastMessage?.success) {\r\n const toast = shareOption.toastMessage.success\r\n const message = typeof toast.message === \"number\" ? translateText(toast.message) : toast.message\r\n channel(\"APP\").publish(\"TOAST_MESSAGE/SHOW\", { ...toast, message })\r\n }\r\n\r\n if (!shareSuccess && shareOption.toastMessage?.failure) {\r\n const toast = shareOption.toastMessage.failure\r\n const message = typeof toast.message === \"number\" ? translateText(toast.message) : toast.message\r\n channel(\"APP\").publish(\"TOAST_MESSAGE/SHOW\", { ...toast, message })\r\n }\r\n }, [])\r\n\r\n const send = async () => {\r\n if (!selectedShareOption || !url) {\r\n return\r\n }\r\n\r\n setIsSharing(true)\r\n const content = selectedShareOption.contentOverride !== undefined ? await Promise.resolve(selectedShareOption.contentOverride(url)) : url\r\n\r\n let shareSuccess = false\r\n switch (selectedShareOption.type) {\r\n case ShareType.Email:\r\n shareSuccess = await selectedShareOption.handler(\r\n selectedShareOption.subject,\r\n content,\r\n emailState.emails.map((email) => email.email),\r\n emailState.bccEmails\r\n )\r\n break\r\n\r\n case ShareType.WhatsApp:\r\n shareSuccess = await selectedShareOption.handler(language, content)\r\n break\r\n\r\n case ShareType.Carteligence:\r\n case ShareType.Download:\r\n shareSuccess = await selectedShareOption.handler(content)\r\n break\r\n\r\n default:\r\n break\r\n }\r\n\r\n setIsSharing(false)\r\n handleToastMessages(selectedShareOption, shareSuccess)\r\n onShareCompleted?.(shareSuccess)\r\n }\r\n\r\n const actionLabel = useMemo(() => {\r\n if (!selectedShareOption) {\r\n return translateText(642)\r\n }\r\n\r\n if (typeof selectedShareOption.shareActionButtonLabel === \"number\") {\r\n return translateText(selectedShareOption.shareActionButtonLabel)\r\n }\r\n\r\n return selectedShareOption.shareActionButtonLabel\r\n }, [selectedShareOption, translateText])\r\n\r\n return (\r\n \r\n \r\n {translateText(13776)}\r\n\r\n \r\n\r\n \r\n\r\n {additionalContent && additionalContent}\r\n\r\n {selectedShareOption?.type === ShareType.Email && }\r\n\r\n \r\n }\r\n disabled={sendDisabled}\r\n onClick={() => send()}\r\n >\r\n {actionLabel}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useState } from \"react\"\r\nimport { Box, BoxProps, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ShareOption, ShareType } from \"../models\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\n\r\ntype ShareOptionsProps = {\r\n shareOptions: ShareOption[]\r\n onShareOptionSelected: (option: ShareOption) => void\r\n}\r\n\r\nconst ShareButtonWrapper = styled(Box, { shouldForwardProp: (prop) => prop !== \"isSelected\" })(\r\n ({ isSelected, theme }) => ({\r\n ...(isSelected && {\r\n border: `${theme.colors?.primary} solid 1px`,\r\n borderRadius: theme.radius?.default,\r\n }),\r\n })\r\n)\r\n\r\nexport function ShareOptions({ shareOptions, onShareOptionSelected }: ShareOptionsProps) {\r\n const { translateText } = useLocalization()\r\n const [selectedShareOption, setSelectedShareOption] = useState()\r\n\r\n const selectShareOption = useCallback((shareOption: ShareOption) => {\r\n setSelectedShareOption(shareOption.type)\r\n onShareOptionSelected?.(shareOption)\r\n }, [])\r\n\r\n return (\r\n \r\n {shareOptions.map((shareOption) => {\r\n return (\r\n \r\n }\r\n onClick={() => selectShareOption(shareOption)}\r\n disabled={shareOption.disabled}\r\n >\r\n {typeof shareOption.title === \"number\" ? translateText(shareOption.title) : shareOption.title}\r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n","import { LinearProgress, PaperProps, Stack, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { useCallback, useEffect, useMemo } from \"react\"\r\nimport { Icon } from \"../../../generics/Icons\"\r\nimport { Button } from \"../../../generics/button\"\r\nimport { Typography } from \"../../../generics/typographie\"\r\nimport { useCopy } from \"../hooks/useCopy\"\r\nimport { Paper } from \"../../../generics/paper\"\r\n\r\nconst LinearLoader = styled(LinearProgress)({\r\n position: \"absolute\",\r\n left: 0,\r\n bottom: 0,\r\n width: \"100%\",\r\n})\r\n\r\nconst LinkPaper = styled(Paper, {\r\n shouldForwardProp: (prop) => prop !== \"hasError\",\r\n})(({ theme, hasError }) => ({\r\n width: \"600px\",\r\n minWidth: \"100%\",\r\n position: \"relative\",\r\n border: `solid 1px ${hasError ? theme.palette.error.main : theme.palette.background.paper}`,\r\n}))\r\n\r\nconst RowStack = styled(Stack)({})\r\nRowStack.defaultProps = {\r\n direction: \"row\",\r\n alignItems: \"center\",\r\n spacing: 2,\r\n}\r\n\r\nconst StyledTypography = styled(Typography, {\r\n shouldForwardProp: (prop) => prop !== \"hasError\" && prop !== \"errorMessage\" && prop !== \"link\",\r\n})<{ link?: string; errorMessage?: string }>(({ theme, link, errorMessage }) => ({\r\n userSelect: link ? \"all\" : undefined,\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n opacity: !link && !errorMessage ? theme.opacity?.disabled : undefined,\r\n}))\r\n\r\ntype Props = {\r\n url: string | undefined\r\n isLoading: boolean\r\n generateAction: () => void\r\n preventAutomaticGeneration?: boolean\r\n errorMessage?: string\r\n}\r\n\r\nexport function SharingLink({ url, errorMessage, isLoading, generateAction, preventAutomaticGeneration }: Props) {\r\n const { translateText } = useLocalization()\r\n const { buttonText: copyButtonText, copyToClipboard } = useCopy()\r\n\r\n const buttonText = useMemo(() => {\r\n if (url) {\r\n return copyButtonText\r\n }\r\n\r\n if (errorMessage) {\r\n return translateText(13297)\r\n }\r\n\r\n return translateText(13298)\r\n }, [url, copyButtonText, errorMessage, translateText])\r\n\r\n const handleCopyLink = useCallback(() => {\r\n if (url) {\r\n copyToClipboard(url)\r\n }\r\n }, [url, copyToClipboard])\r\n\r\n useEffect(() => {\r\n if (!url && !preventAutomaticGeneration) {\r\n generateAction()\r\n }\r\n }, [url, generateAction, preventAutomaticGeneration])\r\n\r\n return (\r\n \r\n \r\n {!url && !!errorMessage && }\r\n \r\n {url ?? errorMessage ?? translateText(13300)}\r\n \r\n \r\n \r\n {isLoading && }\r\n \r\n )\r\n}\r\n","export * from \"./share\"\r\n\r\nexport function isValidEmail(email: string | undefined) {\r\n if (!email || email.trim().length === 0) {\r\n return false\r\n }\r\n\r\n const emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\r\n if (!emailPattern.test(email)) {\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n","export function shareWhatsApp(language: string, content: string, recipient?: string): boolean {\r\n if (!content) {\r\n return false\r\n }\r\n\r\n const url = `https://api.whatsapp.com/send?${recipient ? `phone=${recipient}&` : \"\"}text=${encodeURIComponent(content)}&lang=${language}`\r\n\r\n window.open(url, \"_blank\", \"noreferrer\")\r\n\r\n return true\r\n}\r\n\r\nexport function shareEmail(subject: string, content: string, emails: string[], bcc?: string[]): boolean {\r\n if (!content || !emails?.length) {\r\n return false\r\n }\r\n\r\n try {\r\n let mailTo = `mailto:${emails.join(\",\") ?? \"\"}?body=${encodeURIComponent(content)}`\r\n\r\n const params = new URLSearchParams()\r\n params.append(\"subject\", subject)\r\n\r\n if (bcc) {\r\n params.append(\"bcc\", bcc.join(\",\") ?? \"\")\r\n }\r\n\r\n mailTo += params.toString()\r\n window.open(mailTo, \"_blank\", \"noreferrer\")\r\n } catch (error) {\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport function shareCarteligence(content: string): boolean {\r\n // Carteligence has all it's hooks inside the notifications bundle, renderMicro can't be used from components\r\n // Needs to be set from where the share it's used because of this limitations\r\n return false\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport function shareDownload(content: string): boolean {\r\n // Needs to be set from where the share it's used\r\n return false\r\n}\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { copyToClipboard } from \"@tm/utils\"\r\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\r\n\r\nexport function useCopy() {\r\n const { translateText } = useLocalization()\r\n const [isLinkCopied, setIsLinkCopied] = useState(false)\r\n const linkCopiedTimeoutRef = useRef(0)\r\n\r\n const copyButtonText = useMemo(() => {\r\n if (isLinkCopied) {\r\n return translateText(13296)\r\n }\r\n\r\n return translateText(12785)\r\n }, [isLinkCopied, translateText])\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (linkCopiedTimeoutRef.current) {\r\n window.clearTimeout(linkCopiedTimeoutRef.current)\r\n }\r\n }\r\n }, [])\r\n\r\n const handleCopyLink = useCallback(async (msg: string) => {\r\n if (!msg) {\r\n return\r\n }\r\n\r\n try {\r\n await copyToClipboard(msg)\r\n\r\n setIsLinkCopied(true)\r\n\r\n if (linkCopiedTimeoutRef.current) {\r\n window.clearTimeout(linkCopiedTimeoutRef.current)\r\n }\r\n\r\n linkCopiedTimeoutRef.current = window.setTimeout(() => setIsLinkCopied(false), 2000)\r\n // eslint-disable-next-line no-empty\r\n } catch {}\r\n }, [])\r\n\r\n return {\r\n copyToClipboard: handleCopyLink,\r\n isLinkCopied,\r\n buttonText: copyButtonText,\r\n }\r\n}\r\n","import { useEffect, useRef } from \"react\"\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const useDebounce = (callback: () => void, delay: number, dependencies: any[]) => {\r\n const timerRef = useRef(null)\r\n\r\n useEffect(() => {\r\n if (timerRef.current) {\r\n clearTimeout(timerRef.current)\r\n }\r\n\r\n timerRef.current = setTimeout(() => {\r\n callback()\r\n }, delay)\r\n\r\n return () => {\r\n if (timerRef.current) {\r\n clearTimeout(timerRef.current)\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [callback, delay, ...dependencies])\r\n}\r\n","import { useState, useMemo } from \"react\"\r\nimport { useDebounce } from \"./useDebounce\"\r\n\r\nexport function useDebounceFormSubmit(value: string, isValid: boolean, isSubmitting: boolean, callback: () => void, debounceValue = 100) {\r\n const [startValue, setStartValue] = useState(value)\r\n\r\n const hasChanges = useMemo(() => JSON.stringify(value) !== JSON.stringify(startValue), [value, startValue])\r\n\r\n useDebounce(\r\n () => {\r\n if (hasChanges && isValid && !isSubmitting) {\r\n setStartValue(value)\r\n callback()\r\n }\r\n },\r\n debounceValue,\r\n [isValid, isSubmitting, value]\r\n )\r\n}\r\n","import { useCallback, useEffect, useMemo, useState } from \"react\"\r\nimport { uniqueId } from \"@tm/utils\"\r\nimport { EmailShareOption } from \"../models\"\r\nimport { isValidEmail } from \"../helpers\"\r\n\r\nexport type EmailState = {\r\n emails: SingleEmail[]\r\n showBCCCheckbox: boolean\r\n bccEmails: string[] | undefined\r\n hasError: boolean\r\n}\r\n\r\nexport type SingleEmail = {\r\n id: string\r\n email: string\r\n}\r\n\r\nexport type EmailActions = {\r\n handleAddEmail: () => void\r\n emailChanged: (id: string, email: string) => void\r\n toggleBCCSend: (send: boolean) => void\r\n}\r\n\r\nexport function useEmailState(emailShareOption?: EmailShareOption): { emailState: EmailState; emailActions: EmailActions } {\r\n const hasBccEmails = useMemo(() => !!emailShareOption?.bccEmails?.filter((email) => email.trim() !== \"\").length, [emailShareOption])\r\n\r\n const [sendBCCCopy, setSendBCCCopy] = useState(false)\r\n const [hasValidEmail, setHasValidEmail] = useState(false)\r\n const [emails, setEmails] = useState(\r\n emailShareOption?.initialEmails?.map((email) => {\r\n return { id: uniqueId(), email }\r\n }) ?? [{ id: \"0\", email: \"\" }]\r\n )\r\n\r\n useEffect(() => {\r\n setHasValidEmail?.(emails.filter((email) => isValidEmail(email.email))?.length !== 0)\r\n }, [emails])\r\n\r\n const handleAddEmail = useCallback(() => {\r\n setEmails([...emails, { id: uniqueId(), email: \"\" }])\r\n }, [emails])\r\n\r\n const emailChanged = useCallback(\r\n (id: string, email: string) => {\r\n const editedEmails = emails.map((e) => {\r\n if (e.id === id) {\r\n e.email = email\r\n }\r\n\r\n return e\r\n })\r\n\r\n setEmails(editedEmails)\r\n },\r\n [emails]\r\n )\r\n\r\n return {\r\n emailState: {\r\n emails,\r\n showBCCCheckbox: hasBccEmails,\r\n bccEmails: hasBccEmails && sendBCCCopy ? emailShareOption?.bccEmails : undefined,\r\n hasError: !hasValidEmail,\r\n },\r\n emailActions: {\r\n handleAddEmail,\r\n toggleBCCSend: setSendBCCCopy,\r\n emailChanged,\r\n },\r\n }\r\n}\r\n","import { shareCarteligence, shareDownload, shareEmail, shareWhatsApp } from \"./helpers\"\r\nimport { ShareOption, ShareType } from \"./models\"\r\n\r\nexport const DefaultShareOptions: Record = {\r\n [ShareType.Email]: {\r\n type: ShareType.Email,\r\n icon: \"envelope\",\r\n title: 109,\r\n shareActionButtonLabel: 642,\r\n handler: shareEmail,\r\n initialEmails: [\"\"],\r\n subject: \"\",\r\n toastMessage: {\r\n failure: {\r\n message: 13808,\r\n icon: \"error\",\r\n skin: \"warning\",\r\n },\r\n success: {\r\n message: 13807,\r\n icon: \"check\",\r\n skin: \"success\",\r\n },\r\n },\r\n },\r\n [ShareType.WhatsApp]: {\r\n type: ShareType.WhatsApp,\r\n icon: \"whatsapp\",\r\n title: 12784,\r\n shareActionButtonLabel: 642,\r\n handler: shareWhatsApp,\r\n },\r\n [ShareType.Carteligence]: {\r\n type: ShareType.Carteligence,\r\n icon: \"cartelligence-small\",\r\n title: 13358,\r\n shareActionButtonLabel: 642,\r\n disabled: true,\r\n handler: shareCarteligence,\r\n toastMessage: {\r\n failure: {\r\n message: 13810,\r\n icon: \"error\",\r\n skin: \"warning\",\r\n },\r\n success: {\r\n message: 13809,\r\n icon: \"check\",\r\n skin: \"success\",\r\n },\r\n },\r\n },\r\n [ShareType.Download]: {\r\n type: ShareType.Download,\r\n icon: \"download\",\r\n title: 13293,\r\n shareActionButtonLabel: 13293,\r\n handler: shareDownload,\r\n },\r\n}\r\n\r\nexport const DefaultShareOptionList = [\r\n DefaultShareOptions.WhatsApp,\r\n DefaultShareOptions.Email,\r\n DefaultShareOptions.Carteligence,\r\n DefaultShareOptions.Download,\r\n]\r\n\r\nexport { Share } from \"./components/Share\"\r\nexport { ShareType } from \"./models\"\r\nexport type { ShareOption } from \"./models\"\r\n","import { ShowMessageProps } from \"@tm/models\"\r\n\r\nexport enum ShareType {\r\n WhatsApp = \"WhatsApp\",\r\n Email = \"Email\",\r\n Carteligence = \"Carteligence\",\r\n Download = \"Download\",\r\n}\r\n\r\ntype ToastMessage = Omit & {\r\n message: string | number\r\n}\r\n\r\n/**\r\n * @property {ShareType} type - Defined the share type.\r\n * @property {string} icon - Set the icon of the share, for example envelope in case of email.\r\n * @property {string | number} title - If its a number it will be translated, if string it will render it.\r\n * @property {string | number} shareActionButtonLabel - The text on the share action button. If its a number it will be translated, if string it will render it.\r\n * @property {success: ShowMessageProps | undefined, failure: ShowMessageProps | undefined} toastMessage - Show a toast message when complete or fail\r\n * @property {(url: string) => string} [contentOverride] - This function receives the url from the share and needs to return a content. By default only URL will be shared\r\n */\r\nexport type BaseShareOption = {\r\n type: ShareType\r\n icon: string\r\n title: string | number\r\n shareActionButtonLabel: string | number\r\n disabled?: boolean\r\n toastMessage?: {\r\n success?: ToastMessage\r\n failure?: ToastMessage\r\n }\r\n contentOverride?: (url: string) => string | Promise\r\n}\r\n\r\n/**\r\n * @extends BaseShareOption\r\n * @property {(content: string) => void} [handler] - This handler will take care of the share itself\r\n */\r\nexport type WhatsAppShareOption = BaseShareOption & {\r\n type: ShareType.WhatsApp\r\n handler: (language: string, content: string, recipient?: string) => boolean | Promise\r\n}\r\n\r\n/**\r\n * @extends BaseShareOption\r\n * @property {(content: string) => void} [handler] - This handler will take care of the share itself\r\n */\r\nexport type CarteligenceShareOption = BaseShareOption & {\r\n type: ShareType.Carteligence\r\n handler: (content: string) => boolean | Promise\r\n}\r\n\r\n/**\r\n * @extends BaseShareOption\r\n * @property {string[]} initialEmails - Sometimes a default set of emails needs to be set\r\n * @property {string[]} bccEmails - If shadow copy option should be available, this needs to be set\r\n * @property {(subject: string, content: string, emails: string[], bcc?: string[]) => void} [handler] - This handler will take care of the share itself\r\n */\r\nexport type EmailShareOption = BaseShareOption & {\r\n type: ShareType.Email\r\n subject: string\r\n initialEmails: string[]\r\n bccEmails?: string[]\r\n handler: (subject: string, content: string, emails: string[], bcc?: string[]) => boolean | Promise\r\n}\r\n\r\n/**\r\n * @extends BaseShareOption\r\n * @property {(content: string) => void} [handler] - This handler will take care of the download\r\n */\r\nexport type DownloadShareOption = BaseShareOption & {\r\n type: ShareType.Download\r\n handler: (content: string) => boolean | Promise\r\n}\r\n\r\nexport type ShareOption = EmailShareOption | WhatsAppShareOption | CarteligenceShareOption | DownloadShareOption\r\n","import { forwardRef, PropsWithChildren } from \"react\"\r\nimport { ScrollContainer } from \"../../generics/scrollContainer\"\r\nimport { TableProps } from \"./interfaces\"\r\nimport { TableComponent } from \"./TableComponent\"\r\n\r\nexport const Table = forwardRef>((props, ref) => {\r\n const { onScrollBottom, overflowY, scrollbar, className } = props\r\n\r\n return scrollbar === \"no\" ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n )\r\n})\r\n","import { FC, PropsWithChildren } from \"react\"\r\nimport { styled } from \"@mui/material\"\r\nimport { CellContentPosition, TableVariants } from \"./interfaces\"\r\nimport { Element } from \"./elements\"\r\n\r\ntype TableCellProps = PropsWithChildren<{\r\n colCount: number\r\n rowIndicatorColor?: string\r\n rowIndicatorWidth?: number\r\n maxWidth?: number\r\n variant?: TableVariants\r\n alignContent?: CellContentPosition\r\n overflowCell?: boolean\r\n transparent?: boolean\r\n textColor?: string\r\n className?: string\r\n /* The property font size can be used to provide number of pixels */\r\n fontSize?: number\r\n borderOnlyOnTheLeft?: boolean\r\n}>\r\n\r\ntype OverflowWrapperProps = PropsWithChildren<{ variant?: TableVariants; maxWidth?: number; fontSize?: string | number }>\r\n\r\nfunction shouldForwardProp(prop: PropertyKey) {\r\n return ![\"maxWidth\", \"variant\", \"fontSize\"].includes(prop as string)\r\n}\r\n\r\nconst OverflowWrapper = styled(\"span\", { shouldForwardProp })(({ variant, maxWidth, fontSize }) => ({\r\n ...(variant === \"small\" && {\r\n padding: \"5px 4px 3px 4px\",\r\n \"*\": {\r\n fontSize: \"12px\",\r\n \"&.MuiTypography-root\": {\r\n fontSize: \"12px\",\r\n },\r\n },\r\n }),\r\n ...(maxWidth && {\r\n maxWidth: `${maxWidth}px`,\r\n \"*\": {\r\n ...(variant === \"small\" && {\r\n fontSize: \"12px\",\r\n }),\r\n whiteSpace: \"nowrap\",\r\n textOverflow: \"ellipsis\",\r\n },\r\n }),\r\n ...(fontSize && {\r\n \"*\": {\r\n fontSize: `${fontSize}px`,\r\n },\r\n }),\r\n}))\r\n\r\nexport const TableCell: FC = (props) => {\r\n return (\r\n \r\n {!props.overflowCell && (\r\n \r\n {props.children}\r\n \r\n )}\r\n\r\n {props.overflowCell && <>{props.children}}\r\n \r\n )\r\n}\r\n","import { FC, HTMLAttributes, PropsWithChildren, useCallback, useEffect, useState } from \"react\"\r\nimport { SortDirection, Stack, StackProps, styled } from \"@mui/material\"\r\nimport { LEFT_ROW_INDICATOR, ZINDEX_BASE } from \"./configs\"\r\nimport { CellContentPosition, TableVariants } from \"./interfaces\"\r\nimport { Icon } from \"../../generics/Icons\"\r\n\r\ntype TableColumnHeaderProps = {\r\n variant: TableVariants\r\n minWidth?: number | string\r\n fontWeight?: \"bold\" | \"default\"\r\n alignContent?: CellContentPosition\r\n backgroundColor?: \"default\" | \"paper\" | string\r\n textColor?: string\r\n}\r\n\r\ntype TableColumnSortProps = {\r\n sortOrder?: SortDirection\r\n}\r\n\r\ntype TableColumnHeaderType = FC>\r\n\r\nfunction shouldForwardProp(prop: PropertyKey) {\r\n return ![\"variant\", \"minWidth\", \"fontWeight\", \"alignContent\", \"backgroundColor\", \"textColor\"].includes(prop as string)\r\n}\r\n\r\nconst TableColumnHeaderComponent: FC> = (props) => {\r\n const { sortOrder, children, ...rest } = props\r\n\r\n if (sortOrder !== undefined) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n return {children}\r\n}\r\n\r\nexport const TableColumnHeader: TableColumnHeaderType = styled(TableColumnHeaderComponent, { shouldForwardProp })(({\r\n theme,\r\n variant,\r\n minWidth,\r\n fontWeight,\r\n alignContent,\r\n backgroundColor,\r\n sortOrder,\r\n textColor,\r\n}) => {\r\n const elementListOverwrites = theme.overwrites?.components?.elementList ?? {}\r\n const overwritesBorderLeftWidth = elementListOverwrites?.backgroundColor?.borderLeftWidth\r\n const borderLeftWidth = overwritesBorderLeftWidth || LEFT_ROW_INDICATOR\r\n\r\n return {\r\n ...theme.typography.label,\r\n ...(textColor && {\r\n color: textColor,\r\n }),\r\n cursor: sortOrder !== undefined ? \"pointer\" : \"inherit\",\r\n zIndex: ZINDEX_BASE + 1,\r\n opacity: 1,\r\n alignItems: \"center\",\r\n backgroundColor:\r\n backgroundColor === \"default\" || backgroundColor === undefined\r\n ? theme.palette.background.default\r\n : backgroundColor === \"paper\"\r\n ? theme.palette.background.paper\r\n : backgroundColor,\r\n position: \"sticky\",\r\n top: 0,\r\n textAlign: alignContent || \"start\",\r\n padding: variant === \"small\" ? theme.spacing(1, 0.5, 0.5, 0.5) : theme.spacing(1),\r\n ...(minWidth && {\r\n minWidth: typeof minWidth === \"number\" ? `${minWidth}px` : minWidth,\r\n }),\r\n\r\n ...(fontWeight === \"bold\" && {\r\n fontWeight: 800,\r\n }),\r\n\r\n ...(variant === \"small\" && {\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n textOverflow: \"ellipsis\",\r\n fontSize: \"12px\",\r\n }),\r\n\r\n [`&:first-of-type`]: {\r\n paddingLeft: variant === \"small\" ? theme.spacing(0.8) : theme.spacing(2),\r\n borderLeft: `${borderLeftWidth}px solid transparent`,\r\n },\r\n }\r\n})\r\n\r\nexport function TableColumnHeaderSortContent(props: PropsWithChildren<{ sortOrder?: SortDirection } & StackProps>) {\r\n const { children, sortOrder, ...stackProps } = props\r\n return (\r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { PropsWithChildren, forwardRef, useState } from \"react\"\r\nimport { SortDirection } from \"@mui/material\"\r\nimport { TableProps } from \"./interfaces\"\r\nimport { TableColumnHeader } from \"./TableColumnHeader\"\r\nimport { ROWCAP, SMALL_ROWCAP } from \"./configs\"\r\nimport { TableGrid } from \"./TableGrid\"\r\nimport { TableRow } from \"./TableRow\"\r\nimport { CustomRowElement, ExtendedElement } from \"./elements\"\r\nimport { TableCell } from \"./TableCell\"\r\n\r\nexport const TableComponent = forwardRef>((props, ref) => {\r\n const {\r\n columns,\r\n rows,\r\n onRowClick,\r\n onRowDoubleClick,\r\n variant = \"normal\",\r\n headerBackground,\r\n headerStyle = \"bold\",\r\n children,\r\n rowCap = variant === \"small\" ? SMALL_ROWCAP : ROWCAP,\r\n rowStyle = \"stripped\",\r\n textContrast,\r\n transparentHighlight,\r\n fontSize,\r\n rowStyles,\r\n } = props\r\n const colCount = columns.length\r\n\r\n const [sortColumn, setSortColumn] = useState()\r\n const [sortDirection, setSortDirection] = useState(false)\r\n const transparent = rowStyle === \"transparent\"\r\n const textColor = textContrast === \"white\" ? \"#FFF\" : \"#000\"\r\n\r\n return (\r\n \r\n {headerStyle !== \"hidden\" &&\r\n columns.map(({ header, minWidth, alignHeader, alignContent, startSortDirection: startSortOrder = \"asc\", onSort }, columnIndex) => (\r\n {\r\n if (onSort) {\r\n let direction: SortDirection\r\n if (sortColumn !== columnIndex) {\r\n setSortColumn(columnIndex)\r\n direction = startSortOrder\r\n } else if (sortDirection === \"asc\") {\r\n direction = startSortOrder === \"asc\" ? \"desc\" : false\r\n } else if (sortDirection === \"desc\") {\r\n direction = startSortOrder === \"desc\" ? \"asc\" : false\r\n } else {\r\n direction = startSortOrder\r\n }\r\n setSortDirection(direction)\r\n onSort(direction)\r\n }\r\n }}\r\n sortOrder={onSort ? (sortColumn === columnIndex ? sortDirection : false) : undefined}\r\n textColor={textContrast ?? textColor}\r\n >\r\n {header}\r\n \r\n ))}\r\n\r\n {children ||\r\n rows?.map((row, rowIndex) => {\r\n const rowId = row.id ?? rowIndex\r\n if (row.replaceCustomRow) {\r\n return (\r\n onRowClick?.(row)}\r\n onDoubleClick={() => onRowDoubleClick?.(row)}\r\n rowIndicatorColor={row.leftRowIndicatorColor}\r\n rowCap={rowCap}\r\n variant={variant}\r\n singleRow={!!row.extendedContent}\r\n transparent={transparent}\r\n rowStyles={rowStyles}\r\n >\r\n \r\n {row.customRow}\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n onRowClick?.(row)}\r\n onDoubleClick={() => onRowDoubleClick?.(row)}\r\n rowIndicatorColor={row.leftRowIndicatorColor}\r\n rowCap={rowCap}\r\n variant={variant}\r\n singleRow={!!row.extendedContent}\r\n transparent={transparent}\r\n transparentHighlight={transparentHighlight}\r\n rowStyles={rowStyles}\r\n >\r\n {row.cells.slice(0, colCount).map((cell, cellIndex) => {\r\n const cellId = cell.id ?? cellIndex\r\n return (\r\n \r\n {cell.displayValue}\r\n \r\n )\r\n })}\r\n {row.extendedContent && !row.extendedContentHidden && (\r\n \r\n {row.extendedContent}\r\n \r\n )}\r\n \r\n )\r\n })}\r\n \r\n )\r\n})\r\n","import { FC } from \"react\"\r\nimport { Box, BoxProps, styled } from \"@mui/material\"\r\nimport { TableColumnData } from \"./interfaces\"\r\n\r\ntype TableGridProps = BoxProps & {\r\n columns: TableColumnData[]\r\n rowStyle: \"stripped\" | \"uniform\" | \"transparent\"\r\n}\r\n\r\nexport const TableGrid: FC = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"columns\" && prop !== \"rowStyle\",\r\n})(({ theme, columns, rowStyle }) => ({\r\n display: \"grid\",\r\n gridTemplateColumns: columns.map((col) => col.gridSize || \"auto\").join(\" \"),\r\n fontSize: \"14px\",\r\n\r\n ...(rowStyle === \"uniform\" && {\r\n [`& .row > span`]: {\r\n backgroundColor: theme.overwrites?.components?.elementList?.backgroundColor?.secondary || theme.palette.grey[100],\r\n },\r\n [`& .row: > div`]: {\r\n backgroundColor: theme.overwrites?.components?.elementList?.backgroundColor?.secondary || theme.palette.grey[100],\r\n },\r\n }),\r\n ...(rowStyle === \"stripped\" && {\r\n [`& .row:nth-of-type(2n)>span`]: {\r\n backgroundColor: theme.overwrites?.components?.elementList?.backgroundColor?.primary || theme.palette.grey[50],\r\n },\r\n [`& .row:nth-of-type(2n)>div`]: {\r\n backgroundColor: theme.overwrites?.components?.elementList?.backgroundColor?.primary || theme.palette.grey[50],\r\n },\r\n [`& .row:nth-of-type(2n+1)>span`]: {\r\n backgroundColor: theme.overwrites?.components?.elementList?.backgroundColor?.secondary || theme.palette.grey[100],\r\n },\r\n [`& .row:nth-of-type(2n+1)>div`]: {\r\n backgroundColor: theme.overwrites?.components?.elementList?.backgroundColor?.secondary || theme.palette.grey[100],\r\n },\r\n }),\r\n ...(rowStyle === \"transparent\" && {\r\n backgroundColor: \"transparent\",\r\n }),\r\n}))\r\n","import { PropsWithChildren } from \"react\"\r\nimport { Shadow, Wrapper } from \"./elements\"\r\nimport { TableVariants } from \"./interfaces\"\r\n\r\ntype TableRowProps = PropsWithChildren<{\r\n colCount: number\r\n active?: boolean\r\n onClick?: () => void\r\n onDoubleClick?: () => void\r\n rowIndicatorColor?: string\r\n rowCap?: number\r\n variant?: TableVariants\r\n singleRow?: boolean\r\n transparent?: boolean\r\n transparentHighlight?: boolean\r\n rowStyles?: React.CSSProperties\r\n}>\r\n\r\nexport function TableRow(props: TableRowProps) {\r\n return (\r\n props.onClick?.()}\r\n onDoubleClick={() => props.onDoubleClick?.()}\r\n rowIndicatorColor={props.rowIndicatorColor}\r\n singleRow={props.singleRow}\r\n transparent={props.transparent}\r\n transparentHighlight={props.transparentHighlight}\r\n style={props.rowStyles}\r\n >\r\n {props.children}\r\n\r\n \r\n \r\n )\r\n}\r\n","export const ROWCAP = 8\r\nexport const SMALL_ROWCAP = 4\r\nexport const BORDER_RADIUS = \"3px\"\r\nexport const ZINDEX_BASE = 1\r\nexport const LEFT_ROW_INDICATOR = 3\r\n","import { styled } from \"@mui/material\"\r\nimport { ElementType, HTMLAttributes } from \"react\"\r\nimport { BORDER_RADIUS, LEFT_ROW_INDICATOR } from \"../configs\"\r\nimport { CellContentPosition, TableVariants } from \"../interfaces\"\r\n\r\ntype ElementProps = {\r\n variant?: TableVariants\r\n rowIndicatorColor?: string\r\n colCount: number\r\n alignContent?: CellContentPosition\r\n transparent?: boolean\r\n textColor?: string\r\n className?: string\r\n /* The property font size can be used to provide number of pixels */\r\n fontSize?: number\r\n rowIndicatorWidth?: number\r\n borderOnlyOnTheLeft?: boolean\r\n}\r\n\r\nfunction shouldForwardProp(prop: PropertyKey) {\r\n return ![\r\n \"colCount\",\r\n \"alignContent\",\r\n \"variant\",\r\n \"maxWidth\",\r\n \"rowIndicatorColor\",\r\n \"rowIndicatorWidth\",\r\n \"borderOnlyOnTheLeft\",\r\n \"fontSize\",\r\n \"textColor\",\r\n \"transparent\",\r\n ].includes(prop as string)\r\n}\r\n\r\nexport const Element = styled(\"span\", { shouldForwardProp })((props) => {\r\n const {\r\n theme,\r\n colCount,\r\n alignContent,\r\n variant,\r\n rowIndicatorColor,\r\n rowIndicatorWidth,\r\n transparent,\r\n textColor,\r\n className,\r\n fontSize,\r\n borderOnlyOnTheLeft,\r\n } = props\r\n const elementListOverwrites = theme.overwrites?.components?.elementList ?? {}\r\n const overwritesBorderLeftWidth = elementListOverwrites?.backgroundColor?.borderLeftWidth\r\n const borderLeftWidth = rowIndicatorWidth ?? (overwritesBorderLeftWidth || LEFT_ROW_INDICATOR)\r\n\r\n return {\r\n ...theme.typography.label,\r\n ...(textColor && {\r\n color: textColor,\r\n }),\r\n opacity: undefined,\r\n zIndex: 1,\r\n className,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: alignContent || \"start\",\r\n padding: variant === \"small\" ? theme.spacing(\"1px\", \"2px\", \"1px\", \"2px\") : theme.spacing(1),\r\n ...(borderOnlyOnTheLeft\r\n ? {\r\n borderTop: `1px solid ${theme.palette.grey[200]}`,\r\n }\r\n : { borderTop: `1px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.grey[200]}` }),\r\n\r\n ...(variant === \"small\" && {\r\n \"*\": {\r\n fontSize: \"12px\",\r\n lineHeight: \"1.2\",\r\n },\r\n }),\r\n ...(fontSize && {\r\n \"*\": {\r\n fontSize: `${fontSize ?? 14}px`,\r\n },\r\n }),\r\n\r\n [`&:nth-of-type(${colCount}n+1)`]: {\r\n borderLeft: `${borderLeftWidth}px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.grey[300]}`,\r\n borderRadius: `${BORDER_RADIUS} 0 0 0`,\r\n paddingLeft: variant === \"small\" ? theme.spacing(0.8) : theme.spacing(2),\r\n },\r\n [`&:nth-of-type(${colCount})`]: {\r\n borderRadius: `0 ${BORDER_RADIUS} 0 0`,\r\n ...(borderOnlyOnTheLeft\r\n ? { borderRight: `1px solid ${theme.palette.grey[200]}` }\r\n : { borderRight: `1px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.grey[200]}` }),\r\n\r\n paddingRight: variant === \"small\" ? theme.spacing(0.5) : theme.spacing(2),\r\n },\r\n }\r\n}) as ElementType>\r\n","import { styled } from \"@mui/material\"\r\nimport { ExtendedElement } from \"./extended\"\r\n\r\n// TODO: remove any\r\nexport const CustomRowElement = styled(ExtendedElement)(({ theme }) => ({\r\n borderTop: `1px solid ${theme.palette.grey[200]}`,\r\n display: \"block\",\r\n justifyContent: \"left\",\r\n})) as typeof ExtendedElement\r\n","import { styled } from \"@mui/material\"\r\nimport { FC, HTMLAttributes } from \"react\"\r\nimport { LEFT_ROW_INDICATOR, ZINDEX_BASE } from \"../configs\"\r\n\r\ntype ExtendedElementProps = {\r\n active?: boolean\r\n colCount: number\r\n rowIndicatorColor?: string\r\n}\r\n\r\ntype ExtendedElementType = FC>\r\n\r\nfunction shouldForwardProp(prop: PropertyKey) {\r\n return ![\"theme\", \"colCount\", \"active\", \"rowIndicatorColor\"].includes(prop as string)\r\n}\r\n\r\nexport const ExtendedElement: ExtendedElementType = styled(\"span\", { shouldForwardProp })((props) => {\r\n const { theme, colCount, active, rowIndicatorColor } = props\r\n const elementListOverwrites = theme.overwrites?.components?.elementList ?? {}\r\n const overwritesBorderLeftWidth = elementListOverwrites?.backgroundColor?.borderLeftWidth\r\n const borderLeftWidth = overwritesBorderLeftWidth || LEFT_ROW_INDICATOR\r\n\r\n return {\r\n zIndex: ZINDEX_BASE,\r\n gridColumnStart: 1,\r\n gridColumnEnd: `span ${colCount}`,\r\n padding: theme.spacing(1.2, 2, 0, 2),\r\n display: \"flex\",\r\n borderLeft: `${active ? 1 : borderLeftWidth}px solid ${rowIndicatorColor || theme.palette.grey[300]}`,\r\n borderRight: `1px solid ${theme.palette.grey[200]}`,\r\n }\r\n})\r\n","import { styled } from \"@mui/material\"\r\nimport { FC, HTMLAttributes } from \"react\"\r\nimport { TableVariants } from \"../interfaces\"\r\nimport { BORDER_RADIUS, LEFT_ROW_INDICATOR } from \"../configs\"\r\n\r\ntype ShadowProps = {\r\n colCount: number\r\n rowCap?: number\r\n active?: boolean\r\n variant?: TableVariants\r\n rowIndicatorColor?: string\r\n transparent?: boolean\r\n}\r\ntype ShadowType = FC>\r\n\r\nfunction shouldForwardProp(prop: PropertyKey) {\r\n return ![\"colCount\", \"active\", \"rowCap\", \"variant\", \"rowIndicatorColor\", \"transparent\"].includes(prop as string)\r\n}\r\n\r\nexport const Shadow: ShadowType = styled(\"div\", { shouldForwardProp })(({\r\n theme,\r\n colCount,\r\n rowCap,\r\n active,\r\n variant,\r\n rowIndicatorColor,\r\n transparent,\r\n}) => {\r\n const elementListOverwrites = theme.overwrites?.components?.elementList ?? {}\r\n const overwritesBorderLeftWidth = elementListOverwrites?.backgroundColor?.borderLeftWidth\r\n const borderLeftWidth = overwritesBorderLeftWidth || LEFT_ROW_INDICATOR\r\n return {\r\n zIndex: 0,\r\n gridColumnStart: 1,\r\n gridColumnEnd: `span ${colCount}`,\r\n height: variant === \"small\" ? \"1px\" : 1,\r\n marginBottom: `${rowCap}px`,\r\n filter: \"drop-shadow(0 0 2px rgba(0, 0, 0, 0.3))\",\r\n // borderLeft: `${active ? 1 : borderLeftWidth}px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.grey[200]}`,\r\n borderRadius: `0 0 ${BORDER_RADIUS} ${BORDER_RADIUS}`,\r\n backgroundColor: active ? `white !important` : \"inherit\",\r\n borderBottom: `1px solid ${transparent ? \"transparent\" : \"rgba(0,0,0,0.1)\"}`,\r\n }\r\n})\r\n","import { styled } from \"@mui/material\"\r\nimport { FC, HTMLAttributes, PropsWithChildren } from \"react\"\r\n\r\ntype WrapperProps = PropsWithChildren<{\r\n customRow?: boolean\r\n active: boolean\r\n colCount: number\r\n singleRow?: boolean\r\n rowIndicatorColor?: string\r\n transparent?: boolean\r\n transparentHighlight?: boolean\r\n}>\r\n\r\ntype WrapperType = FC>\r\n\r\nfunction shouldForwardProp(prop: PropertyKey) {\r\n return ![\"colCount\", \"customRow\", \"active\", \"singleRow\", \"rowIndicatorColor\", \"transparent\", \"transparentHighlight\"].includes(prop as string)\r\n}\r\n\r\nexport const Wrapper: WrapperType = styled(\"div\", { shouldForwardProp })((props) => {\r\n const { theme, colCount, customRow, active, singleRow, rowIndicatorColor, transparent, transparentHighlight } = props\r\n\r\n const renderIfCellActiveStateIs = (status: boolean, value: string): string => {\r\n return active === status ? value : \"\"\r\n }\r\n\r\n return {\r\n display: \"contents\",\r\n \"> div\": {\r\n borderLeftColor: renderIfCellActiveStateIs(true, transparent ? \"transparent\" : rowIndicatorColor || theme.palette.primary.main),\r\n borderRight: renderIfCellActiveStateIs(\r\n true,\r\n `1px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.primary.main}`\r\n ),\r\n boxShadow: renderIfCellActiveStateIs(true, \"0px 4px 4px rgba(0,0,0,0.05)\"),\r\n\r\n \"&:last-child\": {\r\n borderBottom: renderIfCellActiveStateIs(\r\n true,\r\n `1px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.primary.main}`\r\n ),\r\n },\r\n },\r\n\r\n \"> span\": {\r\n backgroundColor: renderIfCellActiveStateIs(true, `${theme.palette.grey[50]} !important`),\r\n borderTop: renderIfCellActiveStateIs(true, `1px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.primary.main}`),\r\n borderRight:\r\n customRow &&\r\n renderIfCellActiveStateIs(true, `1px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.primary.main}`),\r\n\r\n [`&:nth-of-type(${colCount}n+1)`]: {\r\n borderLeftColor: renderIfCellActiveStateIs(true, transparent ? \"transparent\" : rowIndicatorColor || theme.palette.primary.main),\r\n },\r\n [`&:nth-of-type(${colCount}n)`]: {\r\n borderRight: renderIfCellActiveStateIs(\r\n true,\r\n `1px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.primary.main}`\r\n ),\r\n },\r\n },\r\n\r\n \":hover > span\": {\r\n borderTop: renderIfCellActiveStateIs(\r\n false,\r\n `1px solid ${transparentHighlight ? \"transparent\" : rowIndicatorColor || theme.palette.primary.light}`\r\n ),\r\n\r\n [`&:nth-of-type(${colCount}n+1)`]: {\r\n borderLeftColor: renderIfCellActiveStateIs(\r\n false,\r\n transparentHighlight ? \"transparent\" : rowIndicatorColor || theme.palette.primary.light\r\n ),\r\n },\r\n [`&:nth-of-type(${colCount}n)`]: {\r\n borderRight: renderIfCellActiveStateIs(\r\n false,\r\n `1px solid ${transparentHighlight ? \"transparent\" : rowIndicatorColor || theme.palette.primary.light}`\r\n ),\r\n },\r\n\r\n ...(singleRow && {\r\n [`&:nth-of-type(${colCount + 1}n)`]: {\r\n borderTop: \"none\",\r\n borderRight: renderIfCellActiveStateIs(\r\n false,\r\n `1px solid ${transparentHighlight ? \"transparent\" : rowIndicatorColor || theme.palette.primary.light}`\r\n ),\r\n },\r\n }),\r\n\r\n borderRight: customRow && !active ? `1px solid ${transparent ? \"transparent\" : rowIndicatorColor || theme.palette.primary.light}` : \"\",\r\n },\r\n \":hover > div\": {\r\n borderLeftColor: renderIfCellActiveStateIs(\r\n false,\r\n transparentHighlight ? \"transparent\" : rowIndicatorColor || theme.palette.primary.light\r\n ),\r\n borderRight: renderIfCellActiveStateIs(\r\n false,\r\n `1px solid ${transparentHighlight ? \"transparent\" : rowIndicatorColor || theme.palette.primary.light}`\r\n ),\r\n \"&:last-child\": {\r\n borderBottom: renderIfCellActiveStateIs(\r\n false,\r\n `1px solid ${transparentHighlight ? \"transparent\" : rowIndicatorColor || theme.palette.primary.light}`\r\n ),\r\n },\r\n },\r\n }\r\n})\r\n","import { SortDirection } from \"@mui/material\"\r\nimport { ReactNode } from \"react\"\r\nimport { ScrollContainerProps } from \"../../generics/scrollContainer\"\r\n\r\n// small = widget\r\n// compact = list for master-details view\r\nexport type TableVariants = \"normal\" | \"small\" | \"compact\"\r\n\r\nexport enum CellContentPosition {\r\n left = \"start\",\r\n right = \"end\",\r\n center = \"center\",\r\n}\r\n\r\nexport type TableCellData = {\r\n id: string\r\n displayValue: ReactNode | string | number\r\n alignContent?: CellContentPosition\r\n maxWidth?: number\r\n className?: string\r\n}\r\n\r\nexport type TableRowData = {\r\n id: string\r\n cells: TableCellData[]\r\n extendedContent?: ReactNode | string | number\r\n extendedContentHidden?: boolean\r\n customRow?: ReactNode | string | number\r\n replaceCustomRow?: boolean\r\n active?: boolean\r\n leftRowIndicatorColor?: string\r\n rowIndicatorWidth?: number\r\n borderOnlyOnTheLeft?: boolean\r\n}\r\n\r\nexport type TableColumnData = {\r\n header?: ReactNode\r\n gridSize?: string\r\n minWidth?: number | string\r\n alignHeader?: CellContentPosition\r\n alignContent?: CellContentPosition\r\n onSort?(sortOrder: SortDirection): void\r\n startSortDirection?: SortDirection\r\n overflowCell?: boolean\r\n}\r\n\r\nexport type TableProps = {\r\n columns: TableColumnData[]\r\n rows?: TableRowData[]\r\n onScrollBottom?(): void\r\n onRowClick?: (row: TableRowData) => void\r\n onRowDoubleClick?: (row: TableRowData) => void\r\n rowCap?: number\r\n overflowY?: ScrollContainerProps[\"overflowY\"]\r\n variant?: TableVariants\r\n children?: ReactNode\r\n headerStyle?: \"bold\" | \"default\" | \"hidden\"\r\n rowStyle?: \"stripped\" | \"uniform\" | \"transparent\"\r\n headerBackground?: \"default\" | \"paper\" | string\r\n className?: string\r\n textContrast?: \"black\" | \"white\"\r\n transparentHighlight?: boolean\r\n /* The property font size can be used to provide number of pixels */\r\n fontSize?: number\r\n scrollbar?: \"no\" | \"system\" | \"styled\"\r\n rowStyles?: React.CSSProperties\r\n}\r\n","import { Tab, TabProps } from \"@mui/material\"\r\nimport { ReactNode } from \"react\"\r\n\r\nexport type LinkTabProps = TabProps & {\r\n component?: unknown\r\n href?: string\r\n key?: string\r\n label?: string | ReactNode\r\n to?: string\r\n value: unknown\r\n target?: string\r\n}\r\n\r\nexport function LinkTab(props: LinkTabProps) {\r\n return \r\n}\r\n","import { Tab as MuiTab, TabProps } from \"@mui/material\"\r\n\r\nexport function Tab(props: TabProps) {\r\n return \r\n}\r\n","import { ReactNode } from \"react\"\r\nimport { styled, SxProps } from \"@mui/material\"\r\n\r\ninterface TabPanelProps {\r\n children?: ReactNode\r\n index: number | string\r\n value: number | string\r\n sx?: SxProps\r\n variant?: \"standard\" | \"scrollable\"\r\n}\r\n\r\nconst StyledTabPanel = styled(\"div\", {\r\n shouldForwardProp: (prop) => ![\"index\", \"value\", \"variant\"].includes(prop as string),\r\n})(({ theme, variant }) => ({\r\n paddingLeft: theme.spacing(1),\r\n\r\n ...(variant === \"standard\" && {\r\n paddingRight: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n backgroundColor: \"white\",\r\n borderBottom: \"1px solid lightGray\",\r\n borderLeft: \"1px solid lightGray\",\r\n borderRight: \"1px solid lightGray\",\r\n borderBottomLeftRadius: theme.radius?.default || \"4px\",\r\n borderBottomRightRadius: theme.radius?.default || \"4px\",\r\n }),\r\n}))\r\n\r\nexport function TabPanel(props: TabPanelProps) {\r\n const { children, value, index, ...other } = props\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import { Tabs as MuiTabs, styled, TabsProps as MuiTabsProps } from \"@mui/material\"\r\n\r\ntype TabsProps = MuiTabsProps & {\r\n size?: \"small\" | \"medium\"\r\n}\r\n\r\nconst StyledTabs = styled(MuiTabs)(({ theme, size, variant }) => {\r\n const tabOverwrites = theme.overwrites?.components?.tabs ?? {}\r\n\r\n const generalProperties = {\r\n fontFamily: tabOverwrites?.font?.fontFamily ? tabOverwrites?.font?.fontFamily : theme.typography.fontFamily,\r\n textTransform: theme.overwrites?.components?.tabs?.font?.textTransform ?? \"none\",\r\n fontSize: size === \"small\" ? theme.typography.fontSize - 2 : theme.typography.fontSize,\r\n }\r\n\r\n return {\r\n \"& .MuiTab-root\": {\r\n ...generalProperties,\r\n minWidth: 0,\r\n minHeight: 0,\r\n padding: \"11px 10px 4px 10px\",\r\n borderBottom: \"3px solid lightgray\",\r\n background: \"none\",\r\n position: \"relative\",\r\n margin: \"0 4px 0 8px\",\r\n\r\n \"&:hover\": {\r\n color: \"#2e2e2e\",\r\n },\r\n },\r\n \"& .MuiTabs-indicator\": {\r\n backgroundColor: theme.palette.primary.main,\r\n height: \"3px\",\r\n bottom: \"10px\",\r\n ...(size === \"small\" && {\r\n transform: \"translate(0, -8px)\",\r\n bottom: \"5px\",\r\n }),\r\n },\r\n \"& .MuiTab-root.Mui-selected\": {\r\n color: \"#2e2e2e\",\r\n },\r\n \"& .MuiTabs-scrollButtons.Mui-disabled\": {\r\n opacity: theme.opacity?.disabled,\r\n },\r\n\r\n ...(variant === \"standard\" && {\r\n \"& .MuiTabs-root\": {\r\n backgroundColor: \"#e2e2e2\",\r\n },\r\n \"& .MuiTabs-flexContainer\": {\r\n backgroundColor: \"#e2e2e2\",\r\n border: \"1px solid lightGray\",\r\n borderTopLeftRadius: theme.radius?.default || \"4px\",\r\n borderTopRightRadius: theme.radius?.default || \"4px\",\r\n },\r\n \"& .MuiTab-root\": {\r\n ...generalProperties,\r\n backgroundColor: \"#e2e2e2\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#4d4d4d\",\r\n color: \"white\",\r\n },\r\n },\r\n \"& .Mui-selected\": {\r\n backgroundColor: \"#ffffff\",\r\n borderRight: \"1px solid lightGray\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#4d4d4d\",\r\n color: \"white\",\r\n },\r\n },\r\n \"& .MuiTabs-flexContainer :not(:first-child).Mui-selected\": {\r\n borderLeft: \"1px solid lightGray\",\r\n },\r\n \"& .MuiTabs-indicator\": {\r\n display: \"none\",\r\n },\r\n }),\r\n }\r\n})\r\n\r\nexport function Tabs(props: TabsProps) {\r\n const { children, value } = props\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { ClickAwayListener, Typography } from \"@mui/material\"\r\nimport { Box, styled } from \"@mui/system\"\r\nimport { ReactChild, useState } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Tooltip } from \"../../generics/tooltip\"\r\n\r\ntype Props = {\r\n text: ReactChild\r\n variant?: \"dark\" | \"light\"\r\n width?: number\r\n withoutBorderColor?: boolean\r\n enableTipOnTouchDevice?: boolean\r\n className?: string\r\n}\r\n\r\nconst StyledBox = styled(Box)({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n})\r\n\r\nexport function Tip({ text, variant = \"dark\", width, withoutBorderColor = true, enableTipOnTouchDevice, className }: Props) {\r\n const { translateText } = useLocalization()\r\n const [tooltipOpen, setTooltipOpen] = useState(false)\r\n\r\n const handleTooltipClickOpen = () => {\r\n setTooltipOpen((prevTooltipOpen) => !prevTooltipOpen)\r\n }\r\n\r\n const handleTooltipClickClose = () => {\r\n setTooltipOpen(false)\r\n }\r\n\r\n return (\r\n <>\r\n {enableTipOnTouchDevice ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {translateText(813)}\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {translateText(813)}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { MenuItem, Stack, Typography } from \"@mui/material\"\r\nimport { HistoryVehicle, LicensePlateComponentInitiator, UserContext } from \"@tm/models\"\r\nimport { getShortCountryCodeByUserContext, useRegNoCaption } from \"@tm/utils\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Separator } from \"../../generics/separator\"\r\nimport { LicensePlate } from \"../LicensePlate\"\r\n\r\ntype HistoryItemProps = {\r\n vehicle: HistoryVehicle\r\n onClick(vehicleId: string): void\r\n userContext?: UserContext\r\n}\r\n\r\nexport default function HistoryItem(props: HistoryItemProps) {\r\n const { vehicle, onClick, userContext } = props\r\n const { translateText } = useLocalization()\r\n const regNoCaption = translateText(useRegNoCaption(vehicle.registrationTypeId) || 103)\r\n const countryCode = getShortCountryCodeByUserContext(userContext)\r\n\r\n return (\r\n onClick(vehicle.id)}>\r\n \r\n {vehicle.description}\r\n {vehicle.plateId && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n {vehicle.registrationNumber && vehicle.registrationNumber !== vehicle.plateId && (\r\n <>\r\n \r\n \r\n {`${regNoCaption}:`}\r\n \r\n {vehicle.registrationNumber}\r\n \r\n )}\r\n {vehicle.vin && (\r\n <>\r\n \r\n \r\n {translateText(13557)}\r\n \r\n {vehicle.vin}\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import { buttonClasses, Menu, menuItemClasses, SxProps, useTheme, lighten } from \"@mui/material\"\r\nimport { HistoryVehicle, UserContext } from \"@tm/models\"\r\nimport { useRef, useState } from \"react\"\r\nimport { Button } from \"../../generics/button\"\r\nimport HistoryItem from \"./HistoryItem\"\r\n\r\nexport type VehicleHistoryProps = {\r\n vehicle: HistoryVehicle\r\n vehicleHistory: HistoryVehicle[]\r\n handleSelect(vehicleId: string): void\r\n userContext?: UserContext\r\n displayCurrentVehicle?: boolean\r\n}\r\n\r\nexport function VehicleHistory(props: VehicleHistoryProps) {\r\n const { vehicle, vehicleHistory, handleSelect, userContext, displayCurrentVehicle } = props\r\n if (!vehicle || !vehicleHistory || !vehicleHistory.length) {\r\n return null\r\n }\r\n\r\n const [open, setOpen] = useState(false)\r\n const filteredList = vehicleHistory.filter((x) => x.id !== vehicle.id).orderBy((x) => x.modifiedDate || new Date(0), true)\r\n\r\n if (displayCurrentVehicle) {\r\n filteredList.unshift(vehicle)\r\n }\r\n\r\n const buttonRef = useRef(null)\r\n\r\n const theme = useTheme()\r\n\r\n const sxButton: SxProps = {\r\n padding: \"7px\",\r\n borderRadius: `0 ${theme.radius?.default || \"3px\"} ${theme.radius?.default || \"3px\"} 0`,\r\n lineHeight: 1,\r\n minWidth: \"auto\",\r\n border: `2px solid ${theme.colors?.highlight}`,\r\n color: theme.palette.text.primary,\r\n background: theme.palette.background.default,\r\n [`&.${buttonClasses.outlined}:hover`]: {\r\n boxShadow: \"1px 1px 3px rgb(0 0 0 / 20%)\",\r\n border: `2px solid ${theme.colors?.highlight}`,\r\n background: lighten(theme.colors?.highlight || \"#fff\", 0.92),\r\n },\r\n }\r\n\r\n const sxMenu: SxProps = {\r\n border: `1px solid ${theme.colors?.highlight}`,\r\n [`.${menuItemClasses.root}`]: {\r\n fontSize: \"0.9em\",\r\n },\r\n }\r\n\r\n return (\r\n <>\r\n \r\n setOpen(false)}\r\n anchorEl={buttonRef.current}\r\n transformOrigin={{ horizontal: \"center\", vertical: \"top\" }}\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"center\" }}\r\n >\r\n {filteredList.map((vehicle) => (\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n","import { VehicleType } from \"@tm/models\"\r\n\r\nexport function getImageTypeByVehicleType(vehicleType: VehicleType): \"car\" | \"bike\" | \"manufacturer\" | undefined {\r\n switch (vehicleType) {\r\n case VehicleType.PassengerCar:\r\n return \"car\"\r\n case VehicleType.Motorcycle:\r\n return \"bike\"\r\n case VehicleType.CommercialVehicle:\r\n return \"manufacturer\"\r\n default:\r\n return undefined\r\n }\r\n}\r\n","import { VehicleType } from \"@tm/models\"\r\nimport { ComponentProps, forwardRef, memo, SyntheticEvent, useCallback, useEffect, useState } from \"react\"\r\nimport { Image } from \"../../generics/image\"\r\nimport { getImageTypeByVehicleType } from \"./helper\"\r\n\r\ntype Props = Omit, \"src\" | \"type\"> & {\r\n modelImage: string\r\n modelSeriesImage: string\r\n vehicleType: VehicleType\r\n}\r\n\r\nexport const VehicleImage = memo(\r\n forwardRef(({ modelImage, modelSeriesImage, vehicleType, onError, ...rest }, ref) => {\r\n const [shouldUseModelSeriesImage, setShouldUseModelSeriesImage] = useState(false)\r\n\r\n useEffect(() => {\r\n setShouldUseModelSeriesImage(false)\r\n }, [modelImage])\r\n\r\n const handleError = useCallback(\r\n (e: SyntheticEvent) => {\r\n if (!shouldUseModelSeriesImage && modelImage !== modelSeriesImage && vehicleType === VehicleType.PassengerCar) {\r\n setShouldUseModelSeriesImage(true)\r\n }\r\n onError?.(e)\r\n },\r\n [shouldUseModelSeriesImage, modelImage, modelSeriesImage, vehicleType, onError]\r\n )\r\n\r\n return (\r\n \r\n )\r\n })\r\n)\r\n","import { useLocalization } from \"@tm/localization\"\r\nimport { RegistrationNoType, SelectedLookupType, Vehicle, VehicleLookupConfig, VehicleType } from \"@tm/models\"\r\nimport { forwardRef, useMemo, useState } from \"react\"\r\nimport { Box, SelectChangeEvent, SxProps, Theme, selectClasses, styled } from \"@mui/material\"\r\nimport { Select, SelectItem } from \"../../generics/select\"\r\nimport { Tooltip } from \"../../generics/tooltip\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Image } from \"../../generics/image\"\r\n\r\nconst Unselectable = styled(Box)(() => ({\r\n display: \"inline-flex\",\r\n justifyContent: \"center\",\r\n padding: \"0 16px\",\r\n alignItems: \"center\",\r\n wordBreak: \"break-word\",\r\n cursor: \"default\",\r\n width: \"215px\",\r\n}))\r\n\r\nconst StyledSelect = styled(Select)(({ theme }) => {\r\n const { select, icon } = theme.overwrites?.toolkits?.vehicle?.widget?.countrySelection ?? {}\r\n const { border: themedBorder } = select || {}\r\n const { color: themedHoveredIconColor } = icon?.hover || {}\r\n const { color: themedIconColor } = icon || {}\r\n\r\n return {\r\n [`.${selectClasses.select}`]: {\r\n padding: \"0px 0.5em 0px 2em!important\",\r\n \".MuiSelect-icon\": {\r\n color: themedIconColor || theme.palette.getContrastText(theme.palette.primary.light),\r\n },\r\n },\r\n [`.${selectClasses.iconOpen}`]: {\r\n color: themedIconColor,\r\n },\r\n [`.MuiOutlinedInput-notchedOutline`]: {\r\n border: themedBorder || undefined,\r\n },\r\n \".widget__collapse+.widget__inner &\": {\r\n right: \"3.5em\",\r\n pointerEvents: \"all\",\r\n },\r\n \".multiwidget__content .vehicle-widget &\": {\r\n position: \"absolute\",\r\n top: 0,\r\n right: 0,\r\n },\r\n img: {\r\n width: 32,\r\n height: 32,\r\n },\r\n \"&:hover .MuiSelect-icon\": {\r\n color: themedHoveredIconColor,\r\n },\r\n }\r\n})\r\n\r\nexport const CountrySelection = forwardRef<\r\n HTMLDivElement,\r\n {\r\n vehicleType: VehicleType\r\n selectedSearchConfig?: VehicleLookupConfig\r\n onSelectSearchOption: (config: VehicleLookupConfig) => void\r\n onOpen?: () => void\r\n sx?: SxProps\r\n variant?: \"outlined\" | \"standard\" | \"filled\"\r\n tooltipTitle?: string\r\n className?: string\r\n selectedVehicle?: Vehicle\r\n useSelectedVehicleLookup: (vehicleType: VehicleType) => {\r\n selectedVehicleLookup: SelectedLookupType\r\n setSelectedVehicleLookup(selectedLookupType: SelectedLookupType): void\r\n selectableWithoutDuplicates: Array\r\n }\r\n flagPath: string\r\n }\r\n>((props, ref) => {\r\n const { onSelectSearchOption, className, selectedVehicle, vehicleType, useSelectedVehicleLookup, flagPath } = props\r\n const { selectableWithoutDuplicates, selectedVehicleLookup, setSelectedVehicleLookup } = useSelectedVehicleLookup(\r\n selectedVehicle?.vehicleType ?? vehicleType\r\n )\r\n const [tooltipVisible, setTooltipVisible] = useState(false)\r\n const { translateText } = useLocalization()\r\n\r\n const selectedSearchConfig = useMemo(() => {\r\n if (!!selectedVehicle && !selectedVehicle.countryCode) {\r\n return\r\n }\r\n const selected = selectableWithoutDuplicates.find(\r\n (x) => x.lookupTypeId === selectedVehicleLookup.lookupTypeId && x.countryCode === selectedVehicleLookup.countryCode\r\n )\r\n return selected || props.selectedSearchConfig\r\n }, [props.selectedSearchConfig, selectableWithoutDuplicates, selectedVehicleLookup, selectedVehicle])\r\n\r\n if (hideVehicleLookupSelection(selectableWithoutDuplicates, selectedSearchConfig?.lookupTypeId)) {\r\n return null\r\n }\r\n\r\n function countryCodeChangedHandler(e: SelectChangeEvent) {\r\n if (e.target && (e.target.value as number) >= 0) {\r\n const selectedLookup = selectableWithoutDuplicates.find((value) => value.lookupTypeId === e.target.value)\r\n selectedLookup && onSelectSearchOption(selectedLookup)\r\n selectedLookup &&\r\n setSelectedVehicleLookup({\r\n countryCode: selectedLookup?.countryCode,\r\n lookupTypeId: selectedLookup?.lookupTypeId,\r\n })\r\n }\r\n }\r\n\r\n const defaultSelectValue = selectedSearchConfig && selectedSearchConfig.lookupTypeId >= 0 ? selectedSearchConfig.lookupTypeId : -1\r\n const { tooltipTitle } = props\r\n return selectableWithoutDuplicates.length > 0 ? (\r\n \r\n ) : null\r\n})\r\n\r\nconst lookupToCountryTextIds: { [id: number]: number | string } = {\r\n [RegistrationNoType.Kba]: 3147,\r\n [RegistrationNoType.KennzeichenNiederlande]: 13284,\r\n [RegistrationNoType.KennzeichenNiederlandeCarat]: 1762,\r\n [RegistrationNoType.NationalcodeAustria]: 12705,\r\n [RegistrationNoType.LicensePlateDenmarkDriveRight]: 13285,\r\n 94: 13285,\r\n [RegistrationNoType.NationalcodeFrankreich]: 3115,\r\n [RegistrationNoType.NationalCodeFrankreichCarat]: 3115,\r\n [RegistrationNoType.TypenscheinSchweizEurotax]: 12706,\r\n [RegistrationNoType.TypenscheinSchweizCarat]: 12706,\r\n [RegistrationNoType.TypeApprovalNumberSwitzerlandRhiag]: 12706,\r\n [RegistrationNoType.LicensePlateSwitzerland_RhiagCH]: 12706,\r\n [RegistrationNoType.KennzeichenPortugal]: 13290,\r\n [RegistrationNoType.VLPortugalCreateBusiness]: 13290,\r\n 95: 13285,\r\n [RegistrationNoType.VINFranceInforauto]: 3115,\r\n [RegistrationNoType.VLSpain_CreateBusiness]: 12710,\r\n [RegistrationNoType.VrmVINSpanienInforauto]: 12710,\r\n [RegistrationNoType.VrmKennzeichenSpanienDGT]: 12710,\r\n [RegistrationNoType.ItalienEdidomusWsvc]: 3114,\r\n [RegistrationNoType.KennzeichenEstland]: 13350,\r\n [RegistrationNoType.CarwebVrmWsvc]: 12708,\r\n [RegistrationNoType.CartellIrlandKennzeichenWsvc]: 13428,\r\n [RegistrationNoType.LicensePlateSwedenDriveRight]: 13767,\r\n}\r\n\r\nfunction hideVehicleLookupSelection(selectableVehicleLookups: VehicleLookupConfig[], currentlySelectedLookupId?: number) {\r\n if (selectableVehicleLookups.length <= 1) {\r\n return true\r\n }\r\n if (currentlySelectedLookupId === undefined) {\r\n return false\r\n }\r\n if (selectableVehicleLookups.filter((lookup) => lookup.isSelectable).length === 2) {\r\n const selectedLookup = selectableVehicleLookups.find((lookup) => lookup.lookupTypeId === currentlySelectedLookupId)\r\n if (selectedLookup) {\r\n return !!selectableVehicleLookups.find(\r\n (lookup) =>\r\n lookup.lookupTypeId !== currentlySelectedLookupId &&\r\n selectedLookup.countryCode &&\r\n lookup.countryCode === selectedLookup.countryCode\r\n )\r\n }\r\n }\r\n return false\r\n}\r\n","import { Box, styled } from \"@mui/material\"\r\nimport { ReactNode } from \"react\"\r\n\r\ntype ManufacturerCardProps = {\r\n children: ReactNode\r\n handleClick: () => void\r\n}\r\n\r\nconst OuterBox = styled(Box)(() => ({\r\n margin: \"0 7.5px 0 0\",\r\n padding: 0,\r\n width: \"61.5px\",\r\n height: \"32px\",\r\n alignContent: \"center\",\r\n cursor: \"pointer\",\r\n}))\r\n\r\nconst InnerBox = styled(Box)(({ theme }) => ({\r\n flex: \"1 1 auto\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n fontSize: \".75rem\",\r\n position: \"relative\",\r\n background: \"#fafafa\",\r\n border: `1px solid transparent`,\r\n borderRadius: \"3px\",\r\n boxShadow: `0 1px 3px 0 rgba(0, 0, 0, .27)`,\r\n transition: \"all 0.2s ease\",\r\n \"&:hover\": {\r\n borderColor: theme.colors?.primary,\r\n },\r\n}))\r\n\r\nexport default function ManufacturerCard(props: ManufacturerCardProps) {\r\n const { handleClick } = props\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n","import { styled } from \"@mui/material\"\r\nimport { ManufacturerBase } from \"@tm/models\"\r\nimport { Image } from \"../../generics/image\"\r\nimport ManufacturerCard from \"./ManufacturerCard\"\r\n\r\ntype Props = {\r\n onSelect(manufacturer: ManufacturerBase): void\r\n useTopManufacturers: () => {\r\n topManufacturers: Array\r\n }\r\n hideManufacturerLogos?: boolean\r\n}\r\n\r\nconst StyledImage = styled(Image)(() => ({\r\n display: \"block\",\r\n maxWidth: \"57px\",\r\n maxHeight: \"28px\",\r\n}))\r\n\r\nexport function TopManufacturerCards({ onSelect, useTopManufacturers, hideManufacturerLogos }: Props) {\r\n const { topManufacturers = [] } = useTopManufacturers()\r\n\r\n if (!topManufacturers.length) {\r\n return null\r\n }\r\n\r\n return (\r\n <>\r\n {topManufacturers.map((x) => (\r\n onSelect(x)} key={x.id}>\r\n {hideManufacturerLogos ? (\r\n {x.description}\r\n ) : (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import {\r\n AccordionSummaryProps,\r\n Box,\r\n Accordion as MuiAccordion,\r\n AccordionDetails as MuiAccordionDetails,\r\n AccordionSummary as MuiAccordionSummary,\r\n Stack,\r\n SxProps,\r\n Theme,\r\n Typography,\r\n styled,\r\n} from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ManufacturerBase, SelectedLookupType, Vehicle, VehicleLookupConfig, VehicleType } from \"@tm/models\"\r\nimport { ComponentType, Dispatch, ReactNode, SetStateAction } from \"react\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { LinkButton } from \"../../generics/button\"\r\nimport { CountrySelection } from \"./CountrySelection\"\r\nimport { TopManufacturerCards } from \"./TopManufacturerCards\"\r\nimport { VehicleSelection } from \"./VehicleSelection\"\r\n\r\nconst Accordion = styled(MuiAccordion)(() => ({\r\n borderRadius: \"3px\",\r\n boxShadow: \"0 1px 5px 0 rgba(0, 0, 0, 0.13)\",\r\n backgroundColor: \"#fbfdff\",\r\n}))\r\n\r\nconst AccordionSummary = styled((props) => } {...props} />)(() => ({\r\n \"& .MuiAccordionSummary-content\": {\r\n alignItems: \"center\",\r\n \"&.Mui-expanded\": {\r\n margin: \"12px 0\",\r\n },\r\n },\r\n})) as ComponentType\r\n\r\nconst AccordionDetails = styled(MuiAccordionDetails)(() => ({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n marginTop: \"-30px\",\r\n}))\r\n\r\ntype VehicleSearchProps = {\r\n children: ReactNode\r\n selectedSearchConfig?: VehicleLookupConfig\r\n onSelectSearchOption: (config: VehicleLookupConfig) => void\r\n onOpen?: () => void\r\n sx?: SxProps\r\n variant?: \"outlined\" | \"standard\" | \"filled\"\r\n tooltipTitle?: string\r\n className?: string\r\n selectedVehicle?: Vehicle\r\n useSelectedVehicleLookup: (vehicleType: VehicleType) => {\r\n selectedVehicleLookup: SelectedLookupType\r\n setSelectedVehicleLookup(selectedLookupType: SelectedLookupType): void\r\n selectableWithoutDuplicates: Array\r\n }\r\n flagPath: string\r\n onSelectManufacturer(manufacturer: ManufacturerBase): void\r\n useTopManufacturers: () => {\r\n topManufacturers: Array\r\n }\r\n hideManufacturerLogos?: boolean\r\n to: string\r\n vehicleType: VehicleType\r\n setVehicleType: Dispatch>\r\n}\r\n\r\nexport function VehicleSearch(props: VehicleSearchProps) {\r\n const {\r\n selectedSearchConfig,\r\n onSelectSearchOption,\r\n onOpen,\r\n sx,\r\n variant,\r\n tooltipTitle,\r\n className,\r\n selectedVehicle,\r\n useSelectedVehicleLookup,\r\n flagPath,\r\n onSelectManufacturer,\r\n useTopManufacturers,\r\n hideManufacturerLogos,\r\n to,\r\n vehicleType,\r\n setVehicleType,\r\n } = props\r\n\r\n const { translate, translateText } = useLocalization()\r\n\r\n return (\r\n \r\n \r\n \r\n {translateText(99)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n {translate(869)}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { SelectChangeEvent, Typography, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { VehicleType } from \"@tm/models\"\r\nimport { Dispatch, SetStateAction, forwardRef } from \"react\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Select, SelectItem } from \"../../generics/select\"\r\n\r\nconst vehicles: Array<{ vehicleType: VehicleType; icon: string; translateId: number }> = [\r\n { vehicleType: VehicleType.PassengerCar, icon: \"car-front\", translateId: 1234 },\r\n { vehicleType: VehicleType.Motorcycle, icon: \"bike\", translateId: 730 },\r\n { vehicleType: VehicleType.CommercialVehicle, icon: \"truck-simple\", translateId: 1915 },\r\n]\r\n\r\nconst StyledSelect = styled(Select)(() => ({\r\n width: \"fit-content\",\r\n minWidth: \"93px\",\r\n height: \"32px\",\r\n backgroundColor: \"#e2e2e2\",\r\n \"& .MuiSelect-outlined\": {\r\n alignItems: \"center\",\r\n padding: \"8px 28px 8px 13px !important\",\r\n },\r\n \"& .MuiSelect-icon\": {\r\n left: \"inherit\",\r\n },\r\n}))\r\n\r\nexport const VehicleSelection = forwardRef<\r\n HTMLDivElement,\r\n {\r\n vehicleType: VehicleType\r\n setVehicleType: Dispatch>\r\n }\r\n>((props, ref) => {\r\n const { vehicleType, setVehicleType } = props\r\n const { translateText } = useLocalization()\r\n\r\n function handleVehicleTypeChange(e: SelectChangeEvent) {\r\n if (e.target && (e.target.value as number) >= 0) {\r\n setVehicleType(e.target.value as number)\r\n }\r\n }\r\n\r\n const defaultSelectValue = vehicleType\r\n return (\r\n {\r\n const vehicle = vehicles.find((v) => v.vehicleType === value)\r\n return (\r\n vehicle && (\r\n <>\r\n \r\n \r\n {translateText(vehicle.translateId)}\r\n \r\n \r\n )\r\n )\r\n }}\r\n >\r\n {vehicles.map((vehicle) => {\r\n return (\r\n \r\n {translateText(vehicle.translateId)}\r\n \r\n )\r\n })}\r\n \r\n )\r\n})\r\n","import {\r\n AccordionSummaryProps,\r\n Box,\r\n DividerProps,\r\n Accordion as MuiAccordion,\r\n AccordionDetails as MuiAccordionDetails,\r\n AccordionSummary as MuiAccordionSummary,\r\n Typography as MuiTypography,\r\n SelectChangeEvent,\r\n styled,\r\n TypographyProps,\r\n} from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { CarModelDetails, ConstructionYear, LicensePlateComponentInitiator, RegistrationNoType, Vehicle } from \"@tm/models\"\r\nimport { getVehicleRegistrationNoLabelTextIds } from \"@tm/utils\"\r\nimport { useState } from \"react\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { LinkButton } from \"../../generics/button\"\r\nimport { Divider as GenericDivider } from \"../../generics/divider\"\r\nimport { Select, SelectItem } from \"../../generics/select\"\r\nimport { LicensePlate } from \"../LicensePlate\"\r\nimport { VehicleImage } from \"../VehicleImage\"\r\n\r\nconst Accordion = styled(MuiAccordion)(() => ({\r\n borderRadius: \"3px\",\r\n boxShadow: \"0 1px 5px 0 rgba(0, 0, 0, 0.13)\",\r\n backgroundColor: \"#fbfdff\",\r\n}))\r\n\r\nconst AccordionSummary = styled((props: AccordionSummaryProps) => } {...props} />)(\r\n () => ({\r\n \"& .MuiAccordionSummary-content\": {\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n \"&.Mui-expanded\": {\r\n margin: \"12px 0\",\r\n },\r\n },\r\n })\r\n)\r\n\r\nconst AccordionDetails = styled(MuiAccordionDetails)(() => ({\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"baseline\",\r\n marginTop: \"-15px\",\r\n}))\r\n\r\nconst Typography = styled((props: TypographyProps) => )(() => ({\r\n opacity: 0.87,\r\n}))\r\nconst HeaderText = styled((props: TypographyProps) => )(() => ({\r\n opacity: 0.54,\r\n fontSize: \"10px\",\r\n marginBottom: \"8px\",\r\n}))\r\n\r\nconst Divider = styled((props: DividerProps) => )(() => ({\r\n margin: \"0 5px\",\r\n borderWidth: \"thin\",\r\n}))\r\n\r\nconst StyledSelect = styled(Select)({\r\n \".MuiSelect-select\": {\r\n padding: \"4px 4px 3px 18px !important\",\r\n fontSize: \"14px !important\",\r\n },\r\n \".MuiSelect-icon\": {\r\n top: \"calc(50% - 7px) !important\",\r\n left: 4,\r\n },\r\n})\r\n\r\ntype ButtonProps = {\r\n to: string\r\n handleClick: () => void\r\n}\r\n\r\nexport type VehicleSelectedProps = {\r\n vehicle?: Vehicle\r\n modelDetails: CarModelDetails\r\n useCountryCodeToLicensePlate: (countryCode?: string) => { plateCode: string }\r\n useRegNoAndType: () => { regNoType?: RegistrationNoType; regNo?: string }\r\n replaceButton: ButtonProps\r\n detailsButton?: ButtonProps\r\n handleSelectEngineCode: (e: SelectChangeEvent) => void\r\n}\r\n\r\nexport function VehicleSelected(props: VehicleSelectedProps) {\r\n const { vehicle, modelDetails, useCountryCodeToLicensePlate, useRegNoAndType, replaceButton, detailsButton, handleSelectEngineCode } = props\r\n const [expanded, setExpanded] = useState(false)\r\n const { translate, date, number } = useLocalization()\r\n const { plateCode } = useCountryCodeToLicensePlate(vehicle?.countryCode)\r\n const { regNoType, regNo } = useRegNoAndType()\r\n\r\n if (!vehicle) {\r\n return null\r\n }\r\n\r\n const { enginePowerKw, enginePowerHp, constructionYearFrom, constructionYearTo, engineCapacityCcm } = modelDetails\r\n\r\n const shortenedModelThumbnail = vehicle.modelThumbnail ? vehicle.modelThumbnail.replace(/https?:/, \"\") : \"\"\r\n const shortenedModelSeriesThumbnail = vehicle.modelSeriesThumbnail ? vehicle.modelSeriesThumbnail.replace(/https?:/, \"\") : \"\"\r\n\r\n let regNoLabel\r\n if (vehicle?.registrationNo) {\r\n const itemLabelTextIds = getVehicleRegistrationNoLabelTextIds(regNoType)\r\n regNoLabel = itemLabelTextIds?.labelShort ?? itemLabelTextIds?.label\r\n }\r\n\r\n const handleClickReplace = (e: React.MouseEvent) => {\r\n replaceButton.handleClick()\r\n }\r\n const handleClickDetails = (e: React.MouseEvent) => {\r\n detailsButton?.handleClick()\r\n }\r\n\r\n const renderEngineCodes = () => {\r\n if (!modelDetails || !vehicle) {\r\n return\r\n }\r\n const onClickSelectEngineCode = (e: React.MouseEvent) => {\r\n // do not collapse or expand Accordion\r\n e.stopPropagation()\r\n }\r\n const emptyEngineCode = \"--\"\r\n\r\n const { engineCodes = [] } = modelDetails\r\n const items = [emptyEngineCode, ...engineCodes]\r\n\r\n return engineCodes.length === 0 ? (\r\n {vehicle.engineCode || emptyEngineCode}\r\n ) : (\r\n \r\n {items.map((x) => (\r\n \r\n {x === emptyEngineCode ? <>– : x}\r\n \r\n ))}\r\n \r\n )\r\n }\r\n\r\n return (\r\n setExpanded(exp)}>\r\n \r\n <>\r\n \r\n \r\n \r\n {vehicle.manufacturer || \"-\"} {removeBrackets(vehicle.modelSeries) || \"-\"} {removeBrackets(vehicle.model) || \"-\"}\r\n \r\n {!expanded && (\r\n <>\r\n \r\n {vehicle.plateId && (\r\n \r\n )}\r\n \r\n {translate(329)}/{translate(330)}: {enginePowerKw || \"-\"}/{enginePowerHp || \"-\"}\r\n \r\n \r\n \r\n {translate(331)}: {engineCapacityCcm || \"-\"}\r\n \r\n \r\n \r\n {translate(1489)}:  {renderEngineCodes()}\r\n \r\n \r\n \r\n {translate(1487)}: {constructionYearToString(constructionYearFrom)} -{\" \"}\r\n {constructionYearToString(constructionYearTo)}\r\n \r\n \r\n )}\r\n \r\n \r\n }\r\n onClick={handleClickReplace}\r\n sx={{ marginRight: \"8px\" }}\r\n to={replaceButton.to}\r\n >\r\n {translate(1507)}\r\n \r\n {detailsButton && (\r\n }\r\n onClick={handleClickDetails}\r\n sx={{ marginRight: \"8px\" }}\r\n to={detailsButton.to}\r\n >\r\n {translate(116)}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {vehicle.plateId && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n {vehicle.initialRegistration && (\r\n <>\r\n \r\n \r\n {translate(124)}\r\n {date(vehicle.initialRegistration, \"d\")}\r\n \r\n \r\n )}\r\n {vehicle.mileAge !== undefined && (\r\n <>\r\n \r\n \r\n {translate(125)}\r\n {number(vehicle.mileAge, 0)}\r\n \r\n \r\n )}\r\n {vehicle.vin && (\r\n <>\r\n \r\n \r\n {translate(101)}\r\n {vehicle.vin}\r\n \r\n \r\n )}\r\n \r\n \r\n {translate(127)}\r\n \r\n {constructionYearToString(constructionYearFrom)} - {constructionYearToString(constructionYearTo)}\r\n \r\n \r\n \r\n \r\n \r\n {translate(329)}/{translate(330)}\r\n \r\n \r\n {enginePowerKw || \"-\"}/{enginePowerHp || \"-\"}\r\n \r\n \r\n \r\n \r\n {translate(331)}\r\n {engineCapacityCcm || \"-\"}\r\n \r\n \r\n \r\n {translate(105)}\r\n {renderEngineCodes()}\r\n \r\n \r\n {regNoLabel && regNo && (\r\n \r\n {translate(regNoLabel) || regNo}\r\n {vehicle?.registrationNo || regNo}\r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction removeBrackets(value?: string): string | undefined {\r\n if (!value) {\r\n return\r\n }\r\n\r\n const regex = /^(.*?)(?:\\(.*?\\))?$/\r\n const match = regex.exec(value)\r\n\r\n if (!match) {\r\n return value\r\n }\r\n\r\n return match[1]\r\n}\r\n\r\nfunction constructionYearToString(data?: ConstructionYear) {\r\n if (!data) {\r\n return \"\"\r\n }\r\n return `${data.month}/${data.year}`\r\n}\r\n","import { ChangeEvent, useCallback, useState } from \"react\"\r\nimport { Autocomplete, InputAdornment, AutocompleteRenderInputParams, styled, outlinedInputClasses, formControlClasses } from \"@mui/material\"\r\nimport { TextField } from \"../../generics/textfield\"\r\n\r\nconst StyledAutoComplete = styled(Autocomplete)({\r\n [`.${formControlClasses.root}`]: {\r\n margin: 0,\r\n },\r\n [`.${outlinedInputClasses.root}`]: {\r\n height: 48,\r\n paddingRight: \"16px !important\",\r\n },\r\n [`.${outlinedInputClasses.input}`]: {\r\n padding: \"0 !important\",\r\n },\r\n})\r\n\r\ntype VinFieldProps = {\r\n vin: string\r\n onChange(vin: string): void\r\n loadSuggests(): Promise\r\n className?: string\r\n label?: string\r\n error?: boolean\r\n}\r\n\r\nfunction VinFieldComponent(props: VinFieldProps): JSX.Element {\r\n const { vin, onChange, loadSuggests, className, label, error } = props\r\n const [suggests, setSuggests] = useState(null)\r\n const [suggestsLoading, setSuggestsLoading] = useState(false)\r\n\r\n const handleChange = useCallback(\r\n (event: ChangeEvent) => {\r\n const val = event.target.value.toUpperCase()\r\n const test = /^[A-Z0-9]{1,17}$/.test(val) || !val.length\r\n if (!test) {\r\n return\r\n }\r\n onChange(val)\r\n },\r\n [onChange]\r\n )\r\n\r\n const handleFocus = useCallback(async () => {\r\n if (suggestsLoading || suggests) {\r\n return\r\n }\r\n setSuggestsLoading(true)\r\n const response = await loadSuggests()\r\n setSuggestsLoading(false)\r\n setSuggests(response)\r\n }, [loadSuggests, suggests, suggestsLoading])\r\n\r\n const renderInput = useCallback(\r\n (params: AutocompleteRenderInputParams) => {\r\n return (\r\n \r\n )\r\n },\r\n [error, label, vin]\r\n )\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const VinField = VinFieldComponent\r\n","import { ReactNode, forwardRef } from \"react\"\r\nimport { Alert as MuiAlert, AlertColor, AlertProps, AlertTitle, Box, IconButton, styled, useTheme, rgbToHex, Theme } from \"@mui/material\"\r\nimport { Icon } from \"../../generics/Icons\"\r\n\r\ntype Props = AlertProps & {\r\n title?: string\r\n borderLeft?: boolean | string\r\n onClose?: () => void\r\n iconName?: string\r\n iconColor?: \"primary\" | \"secondary\" | \"success\" | \"error\" | \"info\" | \"warning\" | \"highlight\"\r\n size?: \"extraSmall\" | \"small\" | \"medium\"\r\n fullwidth?: boolean\r\n}\r\n\r\nconst StyledAlert = styled(MuiAlert, {\r\n shouldForwardProp: (prop) => ![\"title\", \"size\", \"borderLeft\", \"iconColor\"].includes(prop as string),\r\n})>(({ theme, borderLeft, size, severity, iconColor, variant }) => {\r\n const themeColor = severity && theme.palette?.[severity]\r\n const iconThemeColor = iconColor && theme.palette?.[iconColor]\r\n\r\n const alertOverwrites = theme.overwrites?.components?.alert ?? {}\r\n const color = alertOverwrites.font?.color ?? (variant === \"filled\" ? themeColor?.contrastText : theme.palette.text.primary)\r\n\r\n return {\r\n opacity: 1,\r\n borderRadius: \"4px\",\r\n backgroundColor: variant === \"outlined\" ? \"#fafafa\" : undefined,\r\n boxShadow: \"0 1px 5px 0 rgba(0, 0, 0, 0.13)\",\r\n \".MuiAlert-icon\": {\r\n paddingTop: \"8px\",\r\n color: iconColor ? iconThemeColor?.main || iconColor : \"#000\",\r\n },\r\n\r\n \".MuiAlert-message\": {\r\n color,\r\n \"& > *\": {\r\n color,\r\n },\r\n },\r\n\r\n ...(size === \"small\" && {\r\n padding: \"1px 16px\",\r\n \".MuiAlert-message\": {\r\n padding: \"5px\",\r\n \"& > *\": {\r\n color,\r\n fontSize: \"14px\",\r\n margin: \"2px 0\",\r\n lineHeight: \"1\",\r\n },\r\n },\r\n \".MuiAlert-icon\": {\r\n color: iconColor ? iconThemeColor?.main || iconColor : \"#000\",\r\n padding: \"2px 0\",\r\n alignItems: \"center\",\r\n },\r\n }),\r\n\r\n ...(size === \"extraSmall\" && {\r\n padding: \"1px 6px\",\r\n \".MuiAlert-message\": {\r\n padding: \"3px\",\r\n \"& > *\": {\r\n color,\r\n fontSize: \"12px\",\r\n margin: \"2px 0\",\r\n lineHeight: \"1\",\r\n },\r\n },\r\n \".MuiAlert-icon\": {\r\n color: iconColor ? iconThemeColor?.main || iconColor : \"#000\",\r\n padding: \"2px 0\",\r\n marginRight: \"4px\",\r\n alignItems: \"center\",\r\n svg: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n minHeight: \"16px\",\r\n minWidth: \"16px\",\r\n },\r\n },\r\n }),\r\n\r\n ...(borderLeft && {\r\n borderWidth: \"0\",\r\n borderLeftWidth: \".5em\",\r\n }),\r\n }\r\n})\r\n\r\nconst getMapping = (variant: \"standard\" | \"filled\" | \"outlined\" | undefined, theme: Theme): Partial> => {\r\n if (variant === \"filled\") {\r\n return {\r\n error: ,\r\n info: ,\r\n success: ,\r\n warning: ,\r\n }\r\n }\r\n\r\n const errorBlack = rgbToHex(theme.palette.error.contrastText).startsWith(\"#000\")\r\n const infoBlack = rgbToHex(theme.palette.info.contrastText).startsWith(\"#000\")\r\n const successBlack = rgbToHex(theme.palette.success.contrastText).startsWith(\"#000\")\r\n const warningBlack = rgbToHex(theme.palette.warning.contrastText).startsWith(\"#000\")\r\n\r\n return {\r\n error: ,\r\n info: ,\r\n success: ,\r\n warning: ,\r\n }\r\n}\r\n\r\nexport const Alert = forwardRef(\r\n ({ fullwidth = true, children, title, iconName, onClose, borderLeft, severity, variant, size, ...rest }, ref) => {\r\n const componentVariant = variant || \"filled\"\r\n const theme = useTheme()\r\n\r\n const component = (\r\n \r\n \r\n \r\n ) : undefined\r\n }\r\n icon={iconName ? : undefined}\r\n severity={severity}\r\n {...rest}\r\n >\r\n {title && {title}}\r\n {children}\r\n \r\n )\r\n\r\n if (fullwidth) {\r\n return component\r\n }\r\n\r\n return {component}\r\n }\r\n)\r\n","import { styled, useTheme } from \"@mui/material\"\r\nimport { ReactElement } from \"react\"\r\nimport { Button } from \"../../generics/button/button\"\r\nimport { Typography } from \"../../generics/typographie\"\r\n\r\nexport type ArticleNumberType = \"custom\" | \"linked\" | \"oe\" | \"supplier\" | \"wholesaler\"\r\n\r\ntype Props = {\r\n articleNumber: string\r\n articleNumberType: ArticleNumberType\r\n size?: \"medium\" | \"large\"\r\n disabled?: boolean\r\n omitDefaultStyles?: boolean\r\n onClick?(): void\r\n}\r\n\r\nconst StyledTypography = styled(Typography)({\r\n userSelect: \"all\",\r\n opacity: \"1\", // NEXT-23860 - to make sure that the value is readable and the opacity is not duplicated\r\n textTransform: \"none\",\r\n lineHeight: \"1\", // make sure everything is aligned in the middle\r\n textAlign: \"left\",\r\n})\r\n\r\nconst StyledButton = styled(Button)({\r\n padding: \"0 !important\",\r\n opacity: \"1 !important\", // NEXT-23860 - to make sure that the selected color remains unchanged and is not displayed attenuated\r\n})\r\n\r\nexport function ArticleNumber({ articleNumber, articleNumberType, omitDefaultStyles, disabled, size, onClick }: Props) {\r\n const articleNumbersStylesOverwrite = useTheme().overwrites?.components?.articleNumbers\r\n\r\n function wrapWithButton(content: ReactElement) {\r\n if (!onClick) {\r\n return content\r\n }\r\n\r\n return (\r\n \r\n {content}\r\n \r\n )\r\n }\r\n\r\n switch (articleNumberType) {\r\n case \"oe\":\r\n return wrapWithButton(\r\n \r\n {articleNumber}\r\n \r\n )\r\n case \"linked\":\r\n return wrapWithButton(\r\n \r\n {articleNumber}\r\n \r\n )\r\n case \"supplier\":\r\n return wrapWithButton(\r\n \r\n {articleNumber}\r\n \r\n )\r\n case \"wholesaler\":\r\n return wrapWithButton(\r\n \r\n {articleNumber}\r\n \r\n )\r\n case \"custom\":\r\n default:\r\n return wrapWithButton(\r\n \r\n {articleNumber}\r\n \r\n )\r\n }\r\n}\r\n","import { styled } from \"@mui/material\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Image } from \"../../generics/image\"\r\n\r\ntype Props = {\r\n iconName?: string\r\n imageUrl?: string\r\n width?: string\r\n height?: string\r\n}\r\n\r\nconst DEFAULT_ICON_SIZE = \"18px\" // Should match of the \"Description\" height\r\n\r\nconst AvailabilityImage = styled(Image)({\r\n display: \"block\",\r\n padding: \"1px\",\r\n objectFit: \"contain\",\r\n})\r\n\r\nconst AvailabilityIcon = Icon\r\n\r\nexport function AvailabilitySymbol({ imageUrl, iconName, width = DEFAULT_ICON_SIZE, height = DEFAULT_ICON_SIZE }: Props) {\r\n const [imageError, setImageError] = useState(false)\r\n\r\n useEffect(() => {\r\n setImageError(false)\r\n }, [imageUrl])\r\n\r\n function handleImageError() {\r\n setImageError(true)\r\n }\r\n\r\n if (imageUrl && !imageError) {\r\n return \r\n }\r\n\r\n if (iconName) {\r\n return \r\n }\r\n\r\n return null\r\n}\r\n","import { Box, Stack, styled, Tooltip } from \"@mui/material\"\r\nimport { AvailabilityStatus } from \"@tm/models\"\r\nimport { Typography } from \"../../generics/typographie\"\r\nimport { AvailabilitySymbol } from \"./AvailabilitySymbol\"\r\nimport * as ColorMapping from \"./color-mapping\"\r\n\r\nexport type DefaultAvailabilityProps = {\r\n variant?: \"IconOnly\" | \"full\"\r\n status: AvailabilityStatus\r\n imageUrl?: string\r\n iconName?: string\r\n description?: string\r\n mapping?: string\r\n tourDate?: string\r\n tourName?: string\r\n onClick?(): void\r\n}\r\n\r\nexport type IndicatorPosition = 1 | 2 | 3 | 4\r\n\r\nconst Description = styled(Typography)({})\r\nDescription.defaultProps = {\r\n variant: \"label\",\r\n maxLines: 1,\r\n lineHeight: \"16px\", // TODO: Currently required because of lineHeight being set to 0 in parent: https://ados.cbwg.local/DVSE/Next%20React%20Ui/_git/Frontend.Monorepo?path=%2Fbundles%2Ferp%2Fsrc%2F_shared%2Favailability-wrapper.tsx&version=GBmaster&line=38&lineStyle=plain&lineEnd=38&lineStartColumn=5&lineEndColumn=19\r\n}\r\n\r\nconst Wrapper = styled(Box)(({ theme, onClick }) => {\r\n return {\r\n width: \"100px\",\r\n borderRadius: theme.shape.borderRadius,\r\n overflow: \"hidden\",\r\n ...(onClick\r\n ? {\r\n cursor: \"pointer\",\r\n [`${AvailabilitySymbol}, ${Description}`]: {\r\n transition: theme.animation?.transition,\r\n },\r\n \"&:hover\": {\r\n [`${AvailabilitySymbol}, ${Description}`]: {\r\n opacity: 1,\r\n color: theme.palette.primary.main,\r\n fill: \"currentColor\",\r\n },\r\n },\r\n }\r\n : {}),\r\n }\r\n})\r\n\r\nconst Indicators = styled(Stack)({\r\n height: \"12px\",\r\n})\r\n\r\nIndicators.defaultProps = {\r\n direction: \"row\",\r\n spacing: 0.25,\r\n}\r\n\r\nconst Indicator = styled(\"span\", {\r\n shouldForwardProp: (prop) => ![\"mapping\", \"position\", \"status\"].includes(prop as string),\r\n})<{ mapping: string; position: IndicatorPosition; status: AvailabilityStatus }>(({ theme, mapping, position, status }) => ({\r\n flex: 1,\r\n boxSizing: \"border-box\",\r\n backgroundColor: ColorMapping.getBackgroundColor(theme, mapping, position, status),\r\n border: `1px solid ${ColorMapping.getBorderColor(theme, mapping, status)}`,\r\n borderBottom: \"none\",\r\n}))\r\n\r\nconst Content = styled(Stack, {\r\n shouldForwardProp: (prop) => ![\"mapping\", \"position\", \"status\"].includes(prop as string),\r\n})<{ mapping: string; status: AvailabilityStatus }>(({ theme, mapping, status }) => ({\r\n border: `1px solid ${ColorMapping.getBorderColor(theme, mapping, status)}`,\r\n padding: theme.spacing(0.25, 0.5),\r\n}))\r\nContent.defaultProps = {\r\n direction: \"row\",\r\n spacing: 0.5,\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n}\r\n\r\nexport function DefaultAvailability(props: DefaultAvailabilityProps) {\r\n const { status, iconName, imageUrl, description, onClick, variant = \"full\", mapping = \"default\", tourDate, tourName } = props\r\n\r\n if (variant === \"IconOnly\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {!!description && {description}}\r\n \r\n\r\n {(tourDate || tourName) && (\r\n
\r\n
\r\n {tourDate}\r\n {tourDate && tourName &&
}\r\n {tourName}\r\n
\r\n
\r\n )}\r\n
\r\n )\r\n}\r\n","import { AvailabilityStatus } from \"@tm/models\"\r\nimport type { Theme } from \"@mui/material\"\r\nimport { IndicatorPosition } from \"./DefaultAvailability\"\r\n\r\nexport function getBackgroundColor(theme: Theme, mapping: string, position: IndicatorPosition, status: AvailabilityStatus) {\r\n const mappingConfig = theme.overwrites?.components?.availability?.[mapping]\r\n const statusConfig = mappingConfig?.[status]\r\n const positionConfig = statusConfig?.indicator?.[position]\r\n\r\n // Try to get the color for the specific position\r\n if (positionConfig?.backgroundColor) {\r\n return positionConfig.backgroundColor\r\n }\r\n\r\n // Try to use the general color\r\n if (statusConfig?.indicatorBackgroundColor) {\r\n return statusConfig.indicatorBackgroundColor\r\n }\r\n\r\n // Use the default colors\r\n switch (status) {\r\n case AvailabilityStatus.Available:\r\n case AvailabilityStatus.AvailableInAlternativeWarehouse:\r\n case AvailabilityStatus.ManufacturerAvailable:\r\n return \"#c2e617\"\r\n case AvailabilityStatus.AvailableInCentralWarehouse:\r\n case AvailabilityStatus.NightExpress:\r\n if (position === 1 || position === 2 || position === 3) {\r\n return \"#48ad4d\"\r\n }\r\n break\r\n case AvailabilityStatus.PartiallyAvailable:\r\n case AvailabilityStatus.PartiallyAvailableInAlternativeWarehouse:\r\n case AvailabilityStatus.PartiallyAvailableInCentralWarehouse:\r\n if (position === 1 || position === 2) {\r\n return \"#f3ae21\"\r\n }\r\n break\r\n case AvailabilityStatus.NotAvailable:\r\n case AvailabilityStatus.ManufacturerUnavailable:\r\n case AvailabilityStatus.NotYetRequested:\r\n case AvailabilityStatus.ManufacturerNotYetRequested:\r\n case AvailabilityStatus.NoLongerAvailable:\r\n case AvailabilityStatus.Undefined:\r\n case AvailabilityStatus.Unknown:\r\n case AvailabilityStatus.NotYetDefined:\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\nexport function getBorderColor(theme: Theme, mapping: string, status: AvailabilityStatus) {\r\n const mappingConfig = theme.overwrites?.components?.availability?.[mapping]\r\n const statusConfig = mappingConfig?.[status]\r\n\r\n // Try to use the border color\r\n if (statusConfig) {\r\n return statusConfig.borderColor\r\n }\r\n\r\n // Use the default colors\r\n switch (status) {\r\n case AvailabilityStatus.Available:\r\n case AvailabilityStatus.AvailableInAlternativeWarehouse:\r\n case AvailabilityStatus.ManufacturerAvailable:\r\n return \"#c2e617\"\r\n case AvailabilityStatus.AvailableInCentralWarehouse:\r\n case AvailabilityStatus.NightExpress:\r\n return \"#48ad4d\"\r\n case AvailabilityStatus.PartiallyAvailable:\r\n case AvailabilityStatus.PartiallyAvailableInAlternativeWarehouse:\r\n case AvailabilityStatus.PartiallyAvailableInCentralWarehouse:\r\n return \"#f3ae21\"\r\n case AvailabilityStatus.NotAvailable:\r\n case AvailabilityStatus.ManufacturerUnavailable:\r\n case AvailabilityStatus.NotYetRequested:\r\n case AvailabilityStatus.ManufacturerNotYetRequested:\r\n return \"#f44336\"\r\n case AvailabilityStatus.NoLongerAvailable:\r\n case AvailabilityStatus.Undefined:\r\n case AvailabilityStatus.Unknown:\r\n case AvailabilityStatus.NotYetDefined:\r\n return \"#e2e2e2\"\r\n default:\r\n return undefined\r\n }\r\n}\r\n","import { alpha, Skeleton, styled } from \"@mui/material\"\r\nimport { ReactNode } from \"react\"\r\n\r\ntype Props = {\r\n id?: string\r\n isNew?: boolean\r\n selected?: boolean\r\n title: string\r\n subline: string\r\n sublinePrefix?: ReactNode\r\n lastUpdate: string\r\n onClick?: (id?: string) => void\r\n}\r\n\r\ntype CardProps = {\r\n selected?: boolean\r\n}\r\nconst Card = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"selected\",\r\n})(({ theme, selected }) => ({\r\n display: \"flex\",\r\n position: \"relative\",\r\n alignItems: \"center\",\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\",\r\n minWidth: \"200px\",\r\n margin: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\r\n filter: `drop-shadow(0px 1px 5px ${alpha(selected ? theme.palette.primary.main : theme.palette.common.black, 0.13)})`,\r\n border: selected ? `1px solid ${theme.palette.primary.main}` : \"1px solid transparent\",\r\n cursor: \"pointer\",\r\n \":hover\": {\r\n backgroundColor: theme.palette.primary.light,\r\n color: theme.palette.getContrastText(theme.palette.primary.contrastText),\r\n },\r\n}))\r\n\r\ntype DotProps = {\r\n full?: boolean\r\n}\r\n\r\nconst Dot = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"full\",\r\n})(({ theme, full }) => ({\r\n position: \"absolute\",\r\n left: 0,\r\n transform: \"translateX(15px)\",\r\n height: \"10px\",\r\n width: \"10px\",\r\n borderRadius: \"50%\",\r\n backgroundColor: \"white\",\r\n border: `${full ? \"5px\" : \"1px\"} solid ${theme.palette.primary.main}`,\r\n}))\r\n\r\nconst Stack = styled(\"div\")({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: \"100%\",\r\n padding: \"10px 10px 10px 40px\",\r\n})\r\n\r\nconst SpaceRow = styled(\"div\")({\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n})\r\n\r\nconst Row = styled(\"div\")({\r\n display: \"flex\",\r\n fontSize: \"12px\",\r\n})\r\n\r\nconst Name = styled(\"div\")(({ theme }) => ({\r\n ...theme.typography.body1,\r\n flex: \"1\",\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n textOverflow: \"ellipsis\",\r\n}))\r\n\r\nconst LastUpdate = styled(\"div\")({\r\n fontSize: \"12px\",\r\n whiteSpace: \"nowrap\",\r\n})\r\n\r\nconst Subline = styled(\"div\")({\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n fontSize: \"12px\",\r\n})\r\n\r\nexport function SkeletonChatCard() {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport function ChatCard({ id, onClick, isNew, selected, title, subline, lastUpdate, sublinePrefix }: Props) {\r\n const onCardClick = () => {\r\n if (onClick) {\r\n onClick(id)\r\n }\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n {title}\r\n {lastUpdate}\r\n \r\n \r\n {sublinePrefix}\r\n {subline}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { styled } from \"@mui/material\"\r\nimport { ReactNode } from \"react\"\r\nimport { SkeletonChatCard } from \"./chatCard\"\r\n\r\nconst ChatStack = styled(\"div\")({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: \"auto\",\r\n height: \"inherit\",\r\n maxHeight: \"inherit\",\r\n overflowY: \"scroll\",\r\n overflowX: \"hidden\",\r\n backgroundColor: \"#fafafa\",\r\n\r\n \"&::-webkit-scrollbar\": {\r\n backgroundColor: \"inherit\",\r\n width: \"10px\",\r\n borderBottomRightRadius: \"5px\",\r\n marginBottom: \"10px\",\r\n },\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"inherit\",\r\n borderBottomRightRadius: \"5px\",\r\n },\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.2)\",\r\n borderRadius: \"16px\",\r\n border: \"2px solid #fff\",\r\n height: \"30px\",\r\n },\r\n})\r\n\r\ntype Props = {\r\n children: ReactNode | ReactNode[]\r\n loading?: boolean\r\n skeletonElements?: number\r\n}\r\n\r\nexport function ChatList({ children, loading, skeletonElements }: Props) {\r\n const skeletonChilds = Array(skeletonElements || 10).fill()\r\n return {loading ? skeletonChilds : children}\r\n}\r\n","import { ReactNode } from \"react\"\r\nimport { styled } from \"@mui/material\"\r\nimport { AttachmentButton } from \"../../generics/button\"\r\nimport { MessageBubble, MessageBubbleProps } from \"./chatMessageBubble\"\r\nimport { StatePill } from \"../../generics/statePill\"\r\n\r\nconst Content = styled(\"div\")(({ theme }) => ({\r\n padding: `${theme.spacing(1.5)} 0`,\r\n}))\r\n\r\nconst Row = styled(\"div\")(({ theme }) => ({\r\n display: \"flex\",\r\n justifyContent: \"flex-start\",\r\n alignItems: \"center\",\r\n flexWrap: \"wrap\",\r\n \"> *\": {\r\n margin: theme.spacing(0.5),\r\n },\r\n}))\r\n\r\nconst List = styled(\"ul\")({\r\n alignSelf: \"flex-start\",\r\n fontSize: \"12px\",\r\n listStyleType: \"disc\",\r\n paddingInlineStart: \"40px\",\r\n marginBlockStart: \"1em\",\r\n})\r\n\r\nconst Stack = styled(\"div\")({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: \"100%\",\r\n})\r\n\r\nconst ActionContainer = styled(\"div\")(({ theme }) => ({\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n marginTop: theme.spacing(1),\r\n \"> *\": {\r\n margin: theme.spacing(0.5),\r\n },\r\n}))\r\n\r\ntype Props = MessageBubbleProps & {\r\n appointmentAccept?: boolean\r\n acceptText: string\r\n declineText: string\r\n listEntrys?: string[]\r\n actionButton?: ReactNode | ReactNode[]\r\n downloadButtonText: string\r\n downloadFileName: string\r\n downloadhref: string\r\n}\r\n\r\nexport function MessageAppointment(props: Props) {\r\n const { appointmentAccept, listEntrys, actionButton, acceptText, declineText, downloadButtonText, downloadhref, downloadFileName, children } =\r\n props\r\n return (\r\n \r\n {children && {children}}\r\n \r\n \r\n \r\n\r\n {appointmentAccept !== undefined && (\r\n \r\n )}\r\n \r\n {listEntrys && (\r\n \r\n {listEntrys.map((e) => {\r\n return
  • {e}
  • \r\n })}\r\n
    \r\n )}\r\n {actionButton && {props.actionButton}}\r\n
    \r\n
    \r\n )\r\n}\r\n","import { ReactNode } from \"react\"\r\nimport { lighten, styled } from \"@mui/material\"\r\n\r\nexport type MessageBubbleProps = {\r\n headline?: string\r\n subline?: string | ReactNode\r\n left?: boolean\r\n children?: ReactNode | ReactNode[]\r\n attachment?: ReactNode | ReactNode[]\r\n dateTime?: string\r\n}\r\n\r\nconst MessageContainer = styled(\"div\", {\r\n shouldForwardProp: (prop) => ![\"headline\", \"subline\", \"left\", \"attachment\", \"dateTime\"].includes(prop as string),\r\n})(({ left, theme }) => ({\r\n margin: `${theme.spacing(2)} 20px`,\r\n alignSelf: left ? \"start\" : \"end\",\r\n minWidth: \"250px\",\r\n maxWidth: \"49%\",\r\n wordBreak: \"break-word\",\r\n flexShrink: 0,\r\n backgroundColor: left ? \"#fafafa\" : lighten(theme.palette.primary.main, 0.8),\r\n position: \"relative\",\r\n borderRadius: left ? \"0 3px 3px 3px\" : \"3px 0 3px 3px\",\r\n padding: 0,\r\n filter: \"drop-shadow(0px 1px 5px rgba(0, 0, 0, 0.13))\",\r\n\r\n \"&:after\": {\r\n left: \"unset\",\r\n right: \"-15px\",\r\n ...(left && {\r\n left: \"-15px\",\r\n right: \"unset\",\r\n }),\r\n content: \"''\",\r\n position: \"absolute\",\r\n display: \"block\",\r\n width: \"0\",\r\n zIndex: 1,\r\n borderStyle: \"solid\",\r\n borderWidth: left ? \"0 15px 17px 0\" : \"15px 15px 0px 0px\",\r\n borderColor: `${left ? \"transparent #fafafa\" : `${lighten(theme.palette.primary.main, 0.8)} transparent`} transparent transparent`,\r\n top: \"0\",\r\n },\r\n}))\r\n\r\nconst Content = styled(\"div\")(({ theme }) => ({\r\n padding: theme.spacing(1, 2),\r\n}))\r\n\r\nconst AttachmentWrapper = styled(\"div\")(({ theme }) => ({\r\n padding: theme.spacing(1, 2),\r\n}))\r\n\r\nconst Headline = styled(\"div\")(({ theme }) => ({\r\n padding: theme.spacing(1, 2, 0, 2),\r\n fontSize: \"18px\",\r\n}))\r\n\r\nconst Subline = styled(\"div\")(({ theme }) => ({\r\n borderTop: \"1px solid #c2c2c2\",\r\n fontSize: \"12px\",\r\n padding: theme.spacing(0.5, 2),\r\n}))\r\n\r\nconst DateTime = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"left\",\r\n})<{ left?: boolean }>(({ left, theme }) => ({\r\n position: \"absolute\",\r\n fontSize: \"9px\",\r\n right: 0,\r\n padding: theme.spacing(0, 1),\r\n transform: \"translateY(5px)\",\r\n ...(left && {\r\n right: \"unset\",\r\n }),\r\n}))\r\n\r\nexport function MessageBubble(props: MessageBubbleProps) {\r\n return (\r\n \r\n {props.headline && {props.headline}}\r\n {props.children}\r\n {props.attachment && {props.attachment}}\r\n {props.subline && {props.subline}}\r\n {props.dateTime}\r\n \r\n )\r\n}\r\n","import { styled } from \"@mui/material\"\r\nimport { forwardRef, ReactNode, useImperativeHandle, useRef } from \"react\"\r\n\r\nexport type ImperativeFunctions = {\r\n scrollDown(smooth?: boolean): void\r\n}\r\n\r\ntype Props = {\r\n children: ReactNode | ReactNode[]\r\n}\r\n\r\nconst MessageStack = styled(\"div\")({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: \"auto\",\r\n height: \"inherit\",\r\n maxHeight: \"inherit\",\r\n overflowY: \"scroll\",\r\n overflowX: \"hidden\",\r\n\r\n \"&::-webkit-scrollbar\": {\r\n backgroundColor: \"inherit\",\r\n width: \"10px\",\r\n borderBottomRightRadius: \"5px\",\r\n marginBottom: \"10px\",\r\n },\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"inherit\",\r\n borderBottomRightRadius: \"5px\",\r\n },\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.2)\",\r\n borderRadius: \"16px\",\r\n border: \"2px solid #fff\",\r\n height: \"30px\",\r\n },\r\n})\r\n\r\nexport const MessageContainer = forwardRef(({ children }, ref) => {\r\n const divRef = useRef(null)\r\n\r\n const scrollToBottom = (smooth?: boolean) => {\r\n divRef.current?.scrollIntoView({\r\n behavior: smooth ? \"smooth\" : \"auto\",\r\n })\r\n }\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n scrollDown: (smooth?: boolean) => {\r\n scrollToBottom(smooth)\r\n },\r\n }),\r\n []\r\n )\r\n\r\n return (\r\n \r\n {children}\r\n
    \r\n \r\n )\r\n})\r\n","import { styled } from \"@mui/material\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { MessageBubble, MessageBubbleProps } from \"./chatMessageBubble\"\r\nimport { AttachmentButton } from \"../../generics/button\"\r\n\r\nconst Stack = styled(\"div\")({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n})\r\n\r\nconst MessageContainer = styled(\"div\")(({ theme }) => ({\r\n flex: 1,\r\n padding: `0 0 ${theme.spacing(1)} 0`,\r\n}))\r\n\r\ntype BorderBoxProps = {\r\n color: \"success\" | \"error\"\r\n}\r\n\r\nconst BorderBox = styled(\"div\", {\r\n shouldForwardProp: (prop) => prop !== \"color\",\r\n})(({ theme, color }) => ({\r\n backgroundColor: theme.palette.common.white,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n borderRadius: theme.shape.borderRadius,\r\n border: `2px solid ${theme.palette[color].main}`,\r\n padding: `${theme.spacing(0.5)} ${theme.spacing(2)}`,\r\n margin: `${theme.spacing(2)} ${theme.spacing(2)}`,\r\n height: \"35px\",\r\n fontSize: \"12px\",\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n textOverflow: \"ellipsis\",\r\n svg: {\r\n marginRight: `${theme.spacing(1)}`,\r\n },\r\n}))\r\n\r\ntype DateStateProps = {\r\n text: string\r\n accept: boolean\r\n}\r\n\r\nexport function DateState({ text, accept }: DateStateProps) {\r\n const color = accept ? \"success\" : \"error\"\r\n return (\r\n \r\n \r\n {text}\r\n \r\n )\r\n}\r\n\r\ntype Props = MessageBubbleProps & {\r\n fileName: string\r\n fileType: \"PICTURE\" | \"PDF\" | \"KVA\"\r\n fileSize: string\r\n iconName: string\r\n}\r\n\r\nexport function MessageFileAttachment(props: Props) {\r\n return (\r\n \r\n \r\n {props.children && {props.children}}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import { FC, ReactNode } from \"react\"\r\nimport { styled, Typography } from \"@mui/material\"\r\nimport { MessageBubble, MessageBubbleProps } from \"./chatMessageBubble\"\r\n\r\nconst Container = styled(\"div\")(({ theme }) => ({\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr\",\r\n width: \"100%\",\r\n padding: \"8px\",\r\n borderRadius: \"2px\",\r\n backgroundColor: theme.palette.common.white,\r\n border: `1px solid ${theme.palette.grey[400]}`,\r\n}))\r\n\r\nconst VehicleContainer = styled(\"table\")(({ theme }) => ({\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr\",\r\n width: \"100%\",\r\n padding: \"8px\",\r\n borderRadius: \"2px\",\r\n backgroundColor: theme.palette.common.white,\r\n border: `1px solid ${theme.palette.grey[400]}`,\r\n}))\r\n\r\nconst NameValueContainer = styled(\"div\")({\r\n margin: \"5px\",\r\n})\r\n\r\nconst Headline = styled(Typography)(({ theme }) => ({\r\n fontSize: 12,\r\n fontWeight: 600,\r\n color: theme.palette.grey[500],\r\n}))\r\n\r\nconst Value = styled(Typography)({\r\n wordBreak: \"break-word\",\r\n})\r\n\r\ntype NameValueProps = {\r\n label: string\r\n value: string | string[] | ReactNode\r\n}\r\nconst NameValue: FC = ({ label, value }) => {\r\n return (\r\n \r\n {label}\r\n {Array.isArray(value) ? value.map((v) => {v}) : {value}}\r\n \r\n )\r\n}\r\n\r\ntype Props = MessageBubbleProps & {\r\n dataType: \"Customer\" | \"Vehicle\"\r\n data: NameValueProps[]\r\n}\r\nexport function MessageMetaData(props: Props) {\r\n return (\r\n <>\r\n {props.dataType === \"Customer\" ? (\r\n \r\n \r\n {props.data.map((data) => {\r\n return \r\n })}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {props.data.map((data) => {\r\n return \r\n })}\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { styled } from \"@mui/material/styles\"\r\nimport { MessageBubble, MessageBubbleProps } from \"./chatMessageBubble\"\r\nimport { AttachmantButtonProps, AttachmentButton } from \"../../generics/button\"\r\nimport { StatePill } from \"../../generics/statePill\"\r\nimport { PropsWithChildren } from \"react\"\r\n\r\nconst ContentWrapper = styled(\"div\")(({ theme }) => ({\r\n display: \"flex\",\r\n justifyContent: \" space-around;\",\r\n alignItems: \"center\",\r\n flexWrap: \"wrap\",\r\n \"> *\": {\r\n margin: theme.spacing(0.5),\r\n },\r\n}))\r\n\r\nconst MessageContainer = styled(\"div\")(({ theme }) => ({\r\n flex: 1,\r\n padding: `0 0 ${theme.spacing(1)} 0`,\r\n}))\r\n\r\ntype Props = PropsWithChildren<\r\n MessageBubbleProps &\r\n AttachmantButtonProps & {\r\n accept?: boolean\r\n acceptText: string\r\n declineText: string\r\n }\r\n>\r\n\r\nexport function MessageOffer(props: Props) {\r\n return (\r\n \r\n {props.children && {props.children}}\r\n \r\n \r\n {props.accept !== undefined && (\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import { Box } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { useLocalStorage } from \"@tm/utils\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { Button } from \"../../generics/button/button\"\r\nimport { Checkbox } from \"../../generics/Checkbox/Checkbox\"\r\nimport { Typography } from \"../../generics/typographie/index\"\r\nimport { Dialog, TmDialogProps } from \"../dialog\"\r\n\r\nexport const ConfirmationDialogKey = \"confirmationDialogKeys\"\r\n\r\ntype Props = TmDialogProps & {\r\n cancelButtonText?: string\r\n confirmationButtonText?: string\r\n /**\r\n * A confirmationKey must be send for showing the Checkbox. The confirmationKeys must be unique and the new ones cand be added into the ConfirmationDialogKeys enum from @tm/models\r\n */\r\n confirmationKey?: string\r\n onCancel?(e: React.MouseEvent | undefined): void\r\n onConfirm?(rememberSelectionId?: string[]): void\r\n}\r\n\r\nexport function ConfirmationDialog({\r\n cancelButtonText,\r\n confirmationButtonText,\r\n children,\r\n confirmationKey,\r\n open,\r\n onConfirm,\r\n onCancel,\r\n ...rest\r\n}: Props) {\r\n const { translateText } = useLocalization()\r\n const [showDialog, setShowDialog] = useState(open ?? false)\r\n const [checked, setChecked] = useState(false)\r\n const { localStorageData, setLocalStorageData } = useLocalStorage>(ConfirmationDialogKey)\r\n const isSavedDecision = (confirmationKey?.length && localStorageData?.[confirmationKey]) || false\r\n\r\n useEffect(() => {\r\n setShowDialog(open ?? false)\r\n if (!open) {\r\n return\r\n }\r\n if (isSavedDecision) {\r\n setShowDialog(false)\r\n onConfirm?.()\r\n }\r\n }, [open])\r\n\r\n const handleConfirmClick = () => {\r\n if (checked && confirmationKey) {\r\n setLocalStorageData({ ...localStorageData, [confirmationKey]: true })\r\n }\r\n setShowDialog(false)\r\n onConfirm?.()\r\n }\r\n\r\n const handleCancelClick = (e: React.MouseEvent | undefined) => {\r\n setShowDialog(false)\r\n onCancel?.(e)\r\n }\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n {cancelButtonText && (\r\n \r\n )}\r\n {confirmationButtonText && (\r\n \r\n )}\r\n \r\n \r\n {confirmationKey && (\r\n \r\n setChecked((prev) => !prev)} />\r\n {translateText(13703)}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { forwardRef, PropsWithChildren, ReactElement } from \"react\"\r\nimport { Box, Dialog as MuiDialog, DialogProps, dialogClasses, styled, useTheme, rgbToHex, Theme } from \"@mui/material\"\r\n\r\nimport { Icon } from \"../../generics/Icons\"\r\n\r\nexport type TmDialogProps = Omit & {\r\n onOutsideClick?(): void\r\n position?: \"top\" | \"middle\"\r\n skin?: \"warning\" | \"error\" | \"info\" | \"success\"\r\n customSkinIcon?: ReactElement\r\n icon?: string\r\n DialogActions?: ReactElement\r\n alignDisplayIconCenter?: boolean\r\n}\r\n\r\nconst StyledDialog = styled(MuiDialog, {\r\n shouldForwardProp: (prop) => prop !== \"position\",\r\n})>(({ position }) => ({\r\n [`.${dialogClasses.scrollPaper}`]: {\r\n height: position === \"top\" ? \"inherit\" : \"100%\",\r\n maxHeight: \"inherit\",\r\n },\r\n [`.${dialogClasses.paper}`]: {\r\n margin: position === \"top\" ? \"0\" : \"32px\",\r\n },\r\n}))\r\n\r\nconst StyledInnerDialogBox = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"skin\",\r\n})>(({ skin, theme }) => {\r\n switch (skin) {\r\n case \"warning\": {\r\n return {\r\n borderLeft: `7px solid ${theme.palette.warning.main}`,\r\n }\r\n }\r\n case \"error\": {\r\n return {\r\n borderLeft: `7px solid ${theme.palette.error.main}`,\r\n }\r\n }\r\n case \"info\": {\r\n return {\r\n borderLeft: `7px solid ${theme.palette.info.main}`,\r\n }\r\n }\r\n case \"success\": {\r\n return {\r\n borderLeft: `7px solid ${theme.palette.success.main}`,\r\n }\r\n }\r\n default: {\r\n return {}\r\n }\r\n }\r\n})\r\n\r\nconst getMapping = (skin: \"warning\" | \"error\" | \"info\" | \"success\" | undefined, theme: Theme) => {\r\n const errorBlack = rgbToHex(theme.palette.error.contrastText).startsWith(\"#000\")\r\n const infoBlack = rgbToHex(theme.palette.info.contrastText).startsWith(\"#000\")\r\n const successBlack = rgbToHex(theme.palette.success.contrastText).startsWith(\"#000\")\r\n const warningBlack = rgbToHex(theme.palette.warning.contrastText).startsWith(\"#000\")\r\n\r\n switch (skin) {\r\n case \"error\": {\r\n return \r\n }\r\n case \"info\": {\r\n return \r\n }\r\n case \"success\": {\r\n return \r\n }\r\n case \"warning\": {\r\n return \r\n }\r\n default: {\r\n return \"\"\r\n }\r\n }\r\n}\r\n\r\nexport const Dialog = forwardRef>(\r\n ({ skin, onOutsideClick, DialogActions, children, customSkinIcon, alignDisplayIconCenter, ...rest }, ref) => {\r\n const theme = useTheme()\r\n const displayIcon = skin ? customSkinIcon || {getMapping(skin, theme)} : \"\"\r\n\r\n return (\r\n \r\n \r\n \r\n {displayIcon ?? {displayIcon}}\r\n {children}\r\n {DialogActions && {DialogActions}}\r\n \r\n \r\n \r\n )\r\n }\r\n)\r\n","export type AllowedFileSelectionTypes = Array\r\n\r\nexport const fileTypeMapping = {\r\n jpg: { accept: [\".jpg\", \".jpeg\"], mime: [\"image/jpeg\"] },\r\n png: { accept: [\".png\"], mime: [\"image/png\"] },\r\n gif: { accept: [\".gif\"], mime: [\"image/gif\"] },\r\n pdf: { accept: [\".pdf\"], mime: [\"application/pdf\"] },\r\n audioMP3: { accept: [\".mp3\"], mime: [\"audio/mpeg\"] },\r\n audioOgg: { accept: [\".ogg\"], mime: [\"audio/ogg\"] },\r\n audioWAV: { accept: [\".wav\"], mime: [\"audio/wav\"] },\r\n videoMP4: { accept: [\".mp4\"], mime: [\"video/mp4\"] },\r\n videoWebM: { accept: [\".webm\"], mime: [\"video/webm\"] },\r\n videoOgg: { accept: [\".ogg\"], mime: [\"video/ogg\"] },\r\n textTxt: { accept: [\".txt\"], mime: [\"text/plain\"] },\r\n textCsv: { accept: [\".csv\"], mime: [\"text/csv\"] },\r\n blobBin: { accept: [\".bin\"], mime: [\"application/octet-stream\"] },\r\n}\r\n\r\nexport const getAcceptedFileTypes = (allowedFileTypes: AllowedFileSelectionTypes) => {\r\n return allowedFileTypes.map((type) => [...fileTypeMapping[type].accept]).join(\", \")\r\n}\r\n","import { memo, ReactElement, ReactNode } from \"react\"\r\nimport { DropzoneOptions, useDropzone } from \"react-dropzone\"\r\nimport { AllowedFileSelectionTypes, getAcceptedFileTypes } from \"./helper\"\r\n\r\ninterface ProvidesHeightInjectedProps {\r\n isDragActive: boolean\r\n}\r\n\r\ntype Props = Omit & {\r\n allowedFileTypes: AllowedFileSelectionTypes\r\n children(props: ProvidesHeightInjectedProps): ReactElement\r\n}\r\n\r\nexport const Dropzone = memo(({ allowedFileTypes, children, ...rest }) => {\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n accept: getAcceptedFileTypes(allowedFileTypes),\r\n ...rest,\r\n })\r\n\r\n return (\r\n
    \r\n \r\n {children({ isDragActive })}\r\n
    \r\n )\r\n})\r\n","import { forwardRef, PropsWithChildren, ReactElement, Ref } from \"react\"\r\nimport { Box, Dialog, DialogProps, dialogClasses, styled, Slide } from \"@mui/material\"\r\nimport { TransitionProps } from \"@mui/material/transitions\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Button } from \"../../generics/button/button\"\r\n\r\ntype Props = Omit & {\r\n onOutsideClick?(): void\r\n percentWidth?: number\r\n hideCloseButton?: boolean\r\n smallCloseButton?: boolean\r\n}\r\n\r\nconst Transition = forwardRef(function Transition(\r\n props: TransitionProps & {\r\n children: ReactElement\r\n },\r\n ref: Ref\r\n) {\r\n return \r\n})\r\n\r\nconst StyledDialog = styled(Dialog, {\r\n shouldForwardProp: (prop) => prop !== \"percentWidth\" && prop !== \"hideCloseButton\" && prop !== \"onOutsideClick\",\r\n})>(({ percentWidth }) => ({\r\n [`.${dialogClasses.scrollPaper}`]: {\r\n height: \"100%\",\r\n width: `${percentWidth || 80}%`,\r\n marginLeft: \"auto\",\r\n position: \"relative\",\r\n },\r\n [`.${dialogClasses.paper}`]: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n maxHeight: \"none\",\r\n maxWidth: \"none\",\r\n margin: 0,\r\n position: \"static\",\r\n },\r\n}))\r\n\r\nexport const Modal = forwardRef>((props, ref) => {\r\n return (\r\n \r\n {!props.hideCloseButton && (\r\n \r\n \r\n \r\n )}\r\n \r\n {props.children}\r\n \r\n \r\n )\r\n})\r\n","import { ChangeEvent, ForwardedRef, forwardRef, useCallback, useRef } from \"react\"\r\nimport { TextField, TextFieldProps, styled, filledInputClasses, colors, useTheme } from \"@mui/material\"\r\nimport { alpha, Stack } from \"@mui/system\"\r\nimport { IconButton, SearchButton } from \"../../generics/button\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { Loader } from \"../../generics/loader\"\r\n\r\nconst SearchTextField = styled(TextField, { shouldForwardProp: (prop: string) => ![\"alwaysColoredBorder\", \"cutEdge\"].includes(prop) })<{\r\n alwaysColoredBorder?: boolean\r\n cutEdge?: boolean\r\n}>(({ theme, alwaysColoredBorder, cutEdge }) => ({\r\n [`.${filledInputClasses.root}`]: {\r\n padding: 0,\r\n border: `1px solid ${\r\n theme.overwrites?.components?.textfield?.border?.color || (alwaysColoredBorder ? theme.palette.highlight.main : \"#e2e2e1\")\r\n }`,\r\n borderRadius: theme.radius?.default || \"3px\",\r\n backgroundColor: theme.overwrites?.components?.textfield?.backgroundColor || colors.grey[100],\r\n transition: theme.transitions.create([\"border-color\", \"background-color\", \"box-shadow\"]),\r\n \"&:before\": {\r\n content: \"none\",\r\n },\r\n \"&:after\": {\r\n content: \"none\",\r\n },\r\n\r\n \"&:hover\": {\r\n backgroundColor: theme.overwrites?.components?.textfield?.backgroundColor || colors.grey[100],\r\n },\r\n [`&.${filledInputClasses.focused}`]: {\r\n backgroundColor: theme.overwrites?.components?.textfield?.backgroundColor || colors.grey[100],\r\n borderColor: theme.overwrites?.components?.textfield?.border?.color ?? theme.palette.primary.main,\r\n boxShadow: cutEdge ? \"none !important\" : `${alpha(theme.palette.primary.main, 0.25)} 0 0 0 2px`,\r\n },\r\n [`&.${filledInputClasses.error}`]: {\r\n borderColor: theme.palette.error.main,\r\n borderBottom: `4px solid ${theme.palette.error.main}`,\r\n marginBottom: \"0px\",\r\n [`&.${filledInputClasses.focused}`]: {\r\n boxShadow: cutEdge ? \"none !important\" : `${alpha(theme.palette.error.main, 0.25)} 0 0 0 2px`,\r\n },\r\n },\r\n },\r\n [`.${filledInputClasses.input}`]: {\r\n padding: 8,\r\n boxSizing: \"content-box\",\r\n fontSize: theme.overwrites?.components?.textfield?.fontSize?.medium || \"14px\",\r\n lineHeight: theme.overwrites?.components?.textfield?.fontSize?.medium || \"14px\",\r\n height: theme.overwrites?.components?.textfield?.fontSize?.medium || \"14px\",\r\n },\r\n}))\r\n\r\nconst InlineSearchButton = styled(SearchButton, { shouldForwardProp: (prop: string) => prop !== \"cutEdge\" })<{ cutEdge?: boolean }>(\r\n ({ cutEdge, theme }) => ({\r\n borderRadius: `${theme.radius?.default || \"2px\"} !important`,\r\n borderTopLeftRadius: `${!cutEdge && \"0 !important\"}`,\r\n borderBottomLeftRadius: `${!cutEdge && \"0 !important\"}`,\r\n })\r\n)\r\n\r\nconst CutEdgeStack = styled(Stack, { shouldForwardProp: (prop: string) => ![\"cutEdge\"].includes(prop) })<{ cutEdge?: boolean }>(\r\n ({ cutEdge, theme }) => ({\r\n ...(cutEdge && {\r\n borderTopRightRadius: 0,\r\n borderBottomRightRadius: 0,\r\n\r\n [`&::after`]: {\r\n content: \"''\",\r\n position: \"absolute\",\r\n width: 0,\r\n height: 0,\r\n border: \"7px solid transparent\",\r\n right: \"-1px\",\r\n bottom: \"-1px\",\r\n borderColor: \"transparent #fff #fff transparent\",\r\n },\r\n [`&::before`]: {\r\n content: \"''\",\r\n position: \"absolute\",\r\n right: 0,\r\n bottom: 0,\r\n width: 0,\r\n height: 0,\r\n borderStyle: \"solid\",\r\n borderWidth: \"7px\",\r\n borderColor: `transparent ${theme.overwrites?.components?.textfield?.border?.color} ${theme.overwrites?.components?.textfield?.border?.color} transparent`,\r\n background: theme.overwrites?.components?.textfield?.backgroundColor,\r\n },\r\n }),\r\n })\r\n)\r\n\r\nexport type SearchFieldProps = Omit & {\r\n value: string\r\n isLoading?: boolean\r\n onChange(value: string): void\r\n onStartSearch(): void\r\n alwaysColoredBorder?: boolean\r\n color?: \"primary\" | \"secondary\" | \"error\" | \"info\" | \"success\" | \"warning\" | \"highlight\"\r\n buttonDisabled?: boolean\r\n}\r\n\r\nfunction SearchFieldComponent(props: SearchFieldProps, ref: ForwardedRef) {\r\n const inputRef = useRef()\r\n const theme = useTheme()\r\n const cutEdge = theme?.overwrites?.components?.textfield?.cutEdge\r\n\r\n const handleClickClear = useCallback(() => {\r\n props.onChange(\"\")\r\n inputRef.current?.focus()\r\n }, [props])\r\n\r\n const handleChange = useCallback(\r\n (e: ChangeEvent) => {\r\n props.onChange(e.currentTarget.value)\r\n },\r\n [props]\r\n )\r\n\r\n const handleKeyStroke = useCallback(\r\n (e: React.KeyboardEvent) => {\r\n if (e.key === \"Enter\") {\r\n props.onStartSearch()\r\n }\r\n props.onKeyUp?.(e)\r\n },\r\n [props]\r\n )\r\n\r\n const handleClickSearch = useCallback(\r\n (e: React.MouseEvent) => {\r\n props.onStartSearch()\r\n e.stopPropagation()\r\n },\r\n [props]\r\n )\r\n\r\n const { onStartSearch, isLoading, color, buttonDisabled, ...rest } = props\r\n\r\n function renderSearchButton() {\r\n return \r\n }\r\n\r\n return (\r\n <>\r\n \r\n {cutEdge && }\r\n {isLoading && }\r\n {!!props.value && (\r\n \r\n \r\n \r\n )}\r\n {!cutEdge && renderSearchButton()}\r\n \r\n ),\r\n }}\r\n />\r\n {cutEdge && renderSearchButton()}\r\n \r\n )\r\n}\r\n\r\nexport const SearchField = forwardRef(SearchFieldComponent)\r\n","import { styled } from \"@mui/material\"\r\nimport { ImgHTMLAttributes } from \"react\"\r\n\r\nconst Thumbnail = styled(\"img\") & { hasDashboardIcon?: boolean }>(({ hasDashboardIcon }) => ({\r\n objectFit: \"contain\",\r\n position: \"absolute\",\r\n width: \"100px\",\r\n height: \"40px\",\r\n ...(hasDashboardIcon ? { left: \"49px\" } : { left: 0 }),\r\n clipPath: \"inset(0 0 0 50%)\",\r\n transform: \"translateX(-50%)\",\r\n}))\r\n\r\nexport function VehicleThumbnail(props: ImgHTMLAttributes & { hasDashboardIcon?: boolean }) {\r\n return \r\n}\r\n","import { Box, BoxProps, styled } from \"@mui/material\"\r\nimport { FC } from \"react\"\r\nimport { IconButton } from \"../../generics/button\"\r\nimport { Icon } from \"../../generics/Icons\"\r\nimport { VehicleThumbnail } from \"./VehicleThumbnail\"\r\nimport { Divider } from \"../../generics/divider\"\r\n\r\nconst calcTabWidth = ({ hasResetIcon, hasDashboardIcon, hasImg }: { hasResetIcon?: boolean; hasDashboardIcon?: boolean; hasImg?: boolean }) => {\r\n if (hasResetIcon && hasDashboardIcon && hasImg) {\r\n return { width: \"315px\" }\r\n }\r\n if ((hasResetIcon || hasDashboardIcon) && hasImg) {\r\n return { width: \"266px\" }\r\n }\r\n if (!hasDashboardIcon) {\r\n return { width: \"233px\" }\r\n }\r\n return { width: \"48px\" }\r\n}\r\n\r\ntype TabProps = BoxProps & { isSelected?: boolean; hasResetIcon?: boolean; hasDashboardIcon?: boolean; hasImg?: boolean }\r\n\r\nconst Tab = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isSelected\",\r\n})(({ isSelected, hasResetIcon, hasDashboardIcon, hasImg, theme }) => ({\r\n ...(isSelected && { transform: \"translateY(3px)\" }),\r\n height: \"58px\",\r\n ...calcTabWidth({ hasResetIcon, hasDashboardIcon, hasImg }),\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px 0 0 0\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n ...(!hasDashboardIcon && { borderRight: `2px solid ${isSelected ? theme.colors?.highlight : theme.colors?.primary}` }),\r\n position: \"relative\",\r\n}))\r\n\r\nconst CenterContent = styled(Box)(() => ({\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n}))\r\n\r\ntype InfoWrapperProps = BoxProps & { hasDashboardIcon?: boolean }\r\n\r\nconst InfoWrapper = styled(Box)(({ hasDashboardIcon }) => ({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n width: \"100%\",\r\n ...(hasDashboardIcon ? { marginLeft: \"122px\" } : { marginLeft: \"73px\" }),\r\n}))\r\n\r\nconst CarInfo = styled(\"div\")(({ theme }) => ({\r\n color: theme.palette.grey[600],\r\n fontSize: \"11px\",\r\n maxWidth: \"155px\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n marginTop: \"5px\",\r\n}))\r\n\r\nconst CustomerInfo = styled(\"div\")(({ theme }) => ({\r\n color: theme.palette.common.black,\r\n maxWidth: \"155px\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n}))\r\n\r\nexport type Props = {\r\n isSelected?: boolean\r\n title?: string\r\n subtitle?: string\r\n img?: string\r\n emptyText: string\r\n onResetIconClick?(): void\r\n hasDashboardIcon?: boolean\r\n}\r\n\r\nexport const TabWithImage: FC = (props: Props) => {\r\n const { isSelected, title, subtitle, img, emptyText, onResetIconClick, hasDashboardIcon } = props\r\n\r\n return (\r\n \r\n {hasDashboardIcon && (\r\n <>\r\n \r\n \r\n \r\n {img && }\r\n \r\n )}\r\n {img && }\r\n\r\n {!title && !subtitle && !hasDashboardIcon && (\r\n \r\n {emptyText}\r\n \r\n )}\r\n {(title || subtitle) && (\r\n \r\n {title}\r\n {subtitle}\r\n \r\n )}\r\n {onResetIconClick && (\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { ComponentType, ReactNode } from \"react\"\r\nimport { Badge as MuiBadge, styled, BadgeProps } from \"@mui/material\"\r\n\r\ntype BadgeAdvancedProps = BadgeProps & {\r\n size?: \"small\" | \"medium\"\r\n // onClick?: ReactNode\r\n}\r\n\r\nexport const Badge = styled(MuiBadge, { shouldForwardProp: (prop) => prop !== \"title\" && prop !== \"size\" })>(\r\n ({ theme, size, color }) => {\r\n const defaultSmallProps = {\r\n height: \"16px\",\r\n fontSize: \"12px\",\r\n border: \"0\",\r\n padding: \"0 2px\",\r\n }\r\n\r\n return {\r\n \"& .MuiBadge-root\": {\r\n position: \"absolute\",\r\n top: \"0\",\r\n right: \"3px\",\r\n },\r\n\r\n \"& .MuiBadge-badge\": {\r\n border: `1px solid ${theme.palette.primary}`,\r\n padding: \"0 2px\",\r\n },\r\n\r\n ...(size === \"small\" && {\r\n \"& .MuiBadge-badge\": {\r\n ...defaultSmallProps,\r\n },\r\n }),\r\n\r\n ...(color === undefined && {\r\n \"& .MuiBadge-dot\": {\r\n backgroundColor: \"#000000\",\r\n },\r\n ...(size === \"small\" && {\r\n \"& .MuiBadge-badge\": {\r\n ...defaultSmallProps,\r\n marginRight: \"10px\",\r\n backgroundColor: \"#000000\",\r\n color: \"#FFFFFF\",\r\n },\r\n }),\r\n ...(size === \"medium\" && {\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#000000\",\r\n color: \"#FFFFFF\",\r\n },\r\n }),\r\n }),\r\n }\r\n }\r\n) as ComponentType\r\n","import { styled } from \"@mui/material/styles\"\r\nimport { Checkbox as MuiCheckBox, CheckboxProps } from \"@mui/material\"\r\n\r\nconst CheckboxIcon = styled(\"span\")<{ size: number }>(({ size, theme }) => ({\r\n borderRadius: theme.radius?.default,\r\n width: size,\r\n height: size,\r\n boxShadow: \"inset 0 0 0 1px #c0c0c0, inset 0 -1px 0 #c0c0c0\",\r\n backgroundColor: \"#f5f8fa\",\r\n backgroundImage: \"linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,0))\",\r\n \".Mui-focusVisible &\": {\r\n outline: \"2px auto rgba(19,124,189,.6)\",\r\n outlineOffset: 2,\r\n },\r\n \"input:hover ~ &\": {\r\n boxShadow: `inset 0 0 0 1px${theme.palette.primary.main}`,\r\n backgroundColor: \"#ebf1f5\",\r\n },\r\n \"input:disabled ~ &\": {\r\n boxShadow: \"none\",\r\n background: \"rgba(206,217,224,.5)\",\r\n },\r\n}))\r\n\r\nconst CheckedIcon = styled(CheckboxIcon)(({ size, theme }) => ({\r\n backgroundColor: \"#f5f8fa\",\r\n backgroundImage: \"linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))\",\r\n \"&:before\": {\r\n display: \"block\",\r\n width: size,\r\n height: size,\r\n backgroundImage: `${\r\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath\" +\r\n \" fill-rule='evenodd' clip-rule='evenodd' d='M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 \" +\r\n \"1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z' fill='%23\"\r\n }${theme.palette.primary.main.replace(\"#\", \"\")}'/%3E%3C/svg%3E\")`,\r\n content: '\"\"',\r\n },\r\n \"input:hover ~ &\": {\r\n backgroundColor: \"#f5f8fa\",\r\n },\r\n}))\r\n\r\nconst StyledCheckbox = styled(MuiCheckBox)(({ theme }) => ({\r\n padding: \"4px 8px\",\r\n \"&:hover\": {\r\n bgcolor: \"transparent\",\r\n span: {\r\n boxShadow: `inset 0 0 0 1px ${theme.palette.primary.main}, inset 0 -1px 0 ${theme.palette.primary.main}`,\r\n },\r\n },\r\n}))\r\n\r\n// Inspired by blueprintjs\r\nexport function Checkbox(props: CheckboxProps) {\r\n const size = props.size === \"small\" ? 16 : 24\r\n return } icon={} {...props} />\r\n}\r\n","import { FormControlLabel as MuiFormControlLabel, FormControlLabelProps, styled } from \"@mui/material\"\r\n\r\nconst StyledFormControlLabel = styled(MuiFormControlLabel)(({ theme }) => ({\r\n \":hover\": {\r\n \".MuiFormControlLabel-label\": {\r\n color: theme.palette.primary.main,\r\n },\r\n },\r\n}))\r\n\r\nexport function FormControlLabel(props: FormControlLabelProps) {\r\n return \r\n}\r\n","import { forwardRef } from \"react\"\r\nimport { createSvgIcon, SvgIcon, SvgIconProps } from \"@mui/material\"\r\nimport { IconProps } from \"./index\"\r\n\r\nexport const DefaultSvg = forwardRef>((props, ref) => {\r\n const DefaultIcon = createSvgIcon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n props.name || \"DefaultSvg\"\r\n )\r\n\r\n return \r\n})\r\n","import { forwardRef, useMemo } from \"react\"\r\nimport { SvgIcon, styled, SvgIconProps } from \"@mui/material\"\r\nimport { classes } from \"@tm/utils\"\r\nimport { DefaultSvg } from \"./default-svg\"\r\n\r\ntype ColorType = \"primary\" | \"secondary\" | \"warning\" | \"error\" | \"info\" | \"success\"\r\nexport type IconProps = {\r\n color?: ColorType | string\r\n size?: string\r\n}\r\n\r\nconst SVG = styled(\"svg\", {\r\n shouldForwardProp: (prop) => prop !== \"color\" && prop !== \"size\",\r\n})(({ color, theme, height, width }) => {\r\n const paletteColors = [\"primary\", \"secondary\", \"warning\", \"error\", \"info\", \"success\", \"highlight\"]\r\n const themeColor = paletteColors.some((x) => x === color) ? theme.palette[color as ColorType]?.main : color\r\n\r\n return {\r\n fill: themeColor || \"currentColor\",\r\n minHeight: height || \"20px\",\r\n minWidth: width || \"20px\",\r\n height: height || \"20px\",\r\n width: width || \"20px\",\r\n }\r\n})\r\n\r\nexport type ForwardRefIconProps = Omit, \"color\"> & IconProps\r\n\r\nexport const Icon = forwardRef((props, ref) => {\r\n const className = useMemo(() => {\r\n return classes(`icon-${props.name}`, props.className)\r\n }, [props])\r\n\r\n if (!props.name) {\r\n return )} />\r\n }\r\n\r\n return (\r\n )}\r\n >\r\n \r\n \r\n )\r\n})\r\n","import { forwardRef } from \"react\"\r\nimport { Paper, PaperProps, styled } from \"@mui/material\"\r\n\r\nexport type Props = PaperProps & {\r\n isSelected?: boolean\r\n}\r\n\r\nexport const ListItemPaper = forwardRef((props, ref) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n})\r\n\r\nconst StyledPaper = styled(Paper)(({ theme, isSelected }) => ({\r\n padding: theme.spacing(1),\r\n border: \"1px solid transparent\",\r\n borderLeftWidth: \"5px\",\r\n borderLeftColor: theme.palette.divider,\r\n borderRadius: \"2px\",\r\n boxShadow: \"#00000022 0 1px 5px 0\",\r\n transition: theme.transitions.create([\"border-color\", \"box-shadow\"]),\r\n \"&:hover\": {\r\n boxShadow: \"#0000008A 0 3px 8px 0\",\r\n },\r\n ...(isSelected && {\r\n borderColor: theme.palette.primary.main,\r\n }),\r\n}))\r\n","import { Box, BoxProps, styled } from \"@mui/material\"\r\nimport { Loader } from \"../loader\"\r\n\r\nconst StyledBox = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isLoading\",\r\n})<{ isLoading?: boolean }>(({ theme, isLoading }) => ({\r\n width: \"100%\",\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...(isLoading && {\r\n pointerEvents: \"none\",\r\n opacity: theme.opacity?.disabled ?? \"0.38\",\r\n }),\r\n}))\r\n\r\ntype Props = BoxProps & {\r\n isLoading?: boolean\r\n}\r\n\r\nexport function LoadingContainer({ isLoading, children, ...rest }: Props) {\r\n return (\r\n \r\n {isLoading && (\r\n \r\n \r\n \r\n )}\r\n {children}\r\n \r\n )\r\n}\r\n","import { Box, styled, useMediaQuery, useTheme } from \"@mui/material\"\r\nimport { useMemo } from \"react\"\r\nimport { Modal } from \"../../components/modal\"\r\nimport { Button } from \"../button\"\r\nimport { Icon } from \"../Icons\"\r\nimport { ScrollContainer } from \"../scrollContainer\"\r\n\r\nconst StyledButtonWrapper = styled(Box)(({ theme }) => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n paddingLeft: theme.margin?.s ?? \"0.5em\",\r\n}))\r\n\r\nconst ContentFlex = styled(Box)({\r\n padding: \"2em\",\r\n flex: 1,\r\n height: \"100%\",\r\n})\r\n\r\ntype Props = {\r\n open: boolean\r\n onOutsideClick: () => void\r\n handleOkButton?: () => void\r\n disabledOkButon?: boolean\r\n children: React.ReactNode\r\n showCloseButtonOnTheLeft?: boolean\r\n smallCloseButton?: boolean\r\n}\r\n\r\nexport const MuiCustomModal: React.FC = ({\r\n open,\r\n onOutsideClick,\r\n handleOkButton,\r\n disabledOkButon,\r\n children,\r\n showCloseButtonOnTheLeft,\r\n smallCloseButton,\r\n}) => {\r\n const muitheme = useTheme()\r\n const matchesLg = useMediaQuery(muitheme.breakpoints.up(\"lg\"))\r\n const matchesXl = useMediaQuery(muitheme.breakpoints.up(\"xl\"))\r\n\r\n const percentWidth = useMemo(() => {\r\n if (matchesXl) {\r\n return 55\r\n }\r\n\r\n if (matchesLg) {\r\n return 70\r\n }\r\n\r\n return 85\r\n }, [matchesLg, matchesXl])\r\n\r\n return (\r\n .MuiBox-root\": { flex: 1, display: \"flex\" } }}\r\n smallCloseButton={smallCloseButton}\r\n >\r\n \r\n {children}\r\n \r\n \r\n {!showCloseButtonOnTheLeft && \r\n \r\n )\r\n})\r\n","import { useState } from \"react\"\r\nimport { Stack, TextFieldProps } from \"@mui/material\"\r\nimport { isValidDate } from \"@tm/utils\"\r\nimport { sub, add, isBefore, isAfter } from \"date-fns\"\r\nimport { DatePicker } from \"../date/datePicker\"\r\nimport { LocalizationType } from \"../helper/locale\"\r\n\r\nexport type DateRangeProps = TextFieldProps & {\r\n initialDate: { startDate?: Date; endDate?: Date }\r\n rangeInDays: number\r\n startLabel?: string\r\n endLabel?: string\r\n onRangeChange: (startDate: Date, endDate: Date) => void\r\n localisation: LocalizationType\r\n}\r\n\r\nexport function DateRange(props: DateRangeProps) {\r\n const { initialDate, rangeInDays } = props\r\n\r\n const [startDate, setStartDate] = useState(initialDate.startDate || sub(new Date(), { days: rangeInDays }))\r\n const [endDate, setEndDate] = useState(initialDate.endDate || new Date())\r\n\r\n const handleStartDateChange = (date: Date | null) => {\r\n if (date === null) {\r\n return\r\n }\r\n\r\n setStartDate(date)\r\n const newPeriod = add(date, { days: rangeInDays })\r\n\r\n if (isBefore(newPeriod, endDate)) {\r\n setEndDate(newPeriod)\r\n props.onRangeChange(date, newPeriod)\r\n } else {\r\n let newEndDate = endDate\r\n\r\n if (isAfter(date, endDate)) {\r\n newEndDate = add(date, { days: rangeInDays })\r\n }\r\n\r\n setEndDate(newEndDate)\r\n props.onRangeChange(date, newEndDate)\r\n }\r\n }\r\n\r\n const handleEndDateChange = (date: Date | null) => {\r\n if (date === null) {\r\n return\r\n }\r\n\r\n setEndDate(date)\r\n const newPeriod = sub(date, { days: rangeInDays })\r\n\r\n if (isAfter(newPeriod, startDate)) {\r\n setStartDate(newPeriod)\r\n props.onRangeChange(newPeriod, date)\r\n } else {\r\n props.onRangeChange(startDate, date)\r\n }\r\n }\r\n\r\n const textFieldProps: TextFieldProps = {\r\n variant: \"filled\",\r\n sx: { width: 160 },\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { forwardRef, useEffect, useMemo, useState } from \"react\"\r\nimport { DateTimePicker as MuiDateTimePicker, DateTimePickerProps as MuiDateTimePickerProps, LocalizationProvider } from \"@mui/x-date-pickers\"\r\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\"\r\nimport enLocale from \"date-fns/locale/en-GB\"\r\nimport { TextField } from \"../../textfield\"\r\nimport { Icon } from \"../../Icons\"\r\nimport type { LocalizationType } from \"../helper/locale\"\r\n\r\nexport type DateTimePickerProps = Omit, \"renderInput\"> & {\r\n localisation: LocalizationType\r\n}\r\n\r\nexport const DateTimePicker = forwardRef(({ localisation, ...rest }, ref) => {\r\n const [locale, setLocale] = useState(enLocale)\r\n\r\n useEffect(() => {\r\n const importLocaleFile = async () => {\r\n // This webpack option stops all of the date-fns files being imported and chunked.\r\n const localeToSet = await import(\r\n /* webpackMode: \"lazy\", webpackChunkName: \"i18n/[request]\", webpackExclude: /_lib/ */\r\n `date-fns/locale/${localisation.locale}/index.js`\r\n )\r\n setLocale(localeToSet.default)\r\n }\r\n\r\n importLocaleFile()\r\n }, [localisation.locale])\r\n\r\n const dateMask = useMemo((): { inputFormat: string; mask: string } => {\r\n /* use this to see how you should configure the date https://date-fns.org/v2.25.0/docs/format */\r\n switch (locale.code) {\r\n case \"en-GB\": {\r\n return {\r\n inputFormat: \"yyyy/MM/dd | HH:mm aaa\",\r\n mask: \"____/__/__ | __:__ ___\",\r\n }\r\n }\r\n\r\n default: {\r\n return {\r\n inputFormat: \"dd.MM.yyyy | HH:mm\",\r\n mask: \"__.__.____ | __:__\",\r\n }\r\n }\r\n }\r\n }, [locale])\r\n\r\n return (\r\n \r\n }\r\n components={{\r\n OpenPickerIcon: (props) => ,\r\n ...(rest.components || {}),\r\n }}\r\n views={[\"year\", \"month\", \"day\", \"hours\", \"minutes\"]}\r\n showToolbar\r\n openTo=\"year\"\r\n {...rest}\r\n />\r\n \r\n )\r\n})\r\n","import { FilledTextFieldProps, styled } from \"@mui/material\"\r\nimport { LocalizationProvider, DatePicker as MuiDatePicker, DatePickerProps as MuiDatePickerProps } from \"@mui/x-date-pickers\"\r\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { cloneElement, forwardRef, ReactElement, useCallback, useEffect, useMemo, useState } from \"react\"\r\nimport { DateUnit, isValidDate } from \"@tm/utils\"\r\nimport enLocale from \"date-fns/locale/en-GB\"\r\nimport { DateValidationError } from \"@mui/x-date-pickers/internals\"\r\nimport { ForwardRefIconProps, Icon } from \"../../Icons\"\r\nimport { TextField, TextFieldProps } from \"../../textfield\"\r\nimport type { LocalizationType } from \"../helper/locale\"\r\n\r\nconst StyledTextField = styled(TextField)({\r\n \".MuiInputAdornment-positionEnd\": {\r\n margin: 0,\r\n },\r\n \".inputButtons\": {\r\n padding: 0,\r\n },\r\n})\r\n\r\nexport type DatePickerProps = Omit, \"renderInput\"> & {\r\n localisation: LocalizationType\r\n textfieldProps?: TextFieldProps\r\n size?: \"small\" | \"medium\" | \"large\" | \"extralarge\"\r\n renderInputOverride?: ReactElement\r\n errorMessage?: string\r\n}\r\n\r\nfunction fixUTCDate(date: Date | null): Date | null {\r\n // The function in the check below ensures that the year can be written completely by the user,\r\n // otherwise after typing one digit for the year, the date is automatically set to \"000\" + the typed digit\r\n if (!date || !isValidDate(date)) {\r\n return date\r\n }\r\n\r\n // Because the datepicker only selects a date and not a time,\r\n // we create a new date with the time set to UTC 00:00:00\r\n const newDate = new Date()\r\n newDate.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate())\r\n newDate.setUTCHours(0, 0, 0, 0)\r\n return newDate\r\n}\r\n\r\nfunction CalendarIcon(props: ForwardRefIconProps) {\r\n return \r\n}\r\n\r\nexport const DatePicker = forwardRef(\r\n ({ localisation, renderInputOverride, textfieldProps = { sx: { width: 180 } }, onAccept, onChange, onError, errorMessage, ...rest }, ref) => {\r\n const { translateText } = useLocalization()\r\n const [locale, setLocale] = useState(enLocale)\r\n const [dateError, setDateError] = useState(\"\")\r\n\r\n useEffect(() => {\r\n const importLocaleFile = async () => {\r\n // This webpack option stops all of the date-fns files being imported and chunked.\r\n const localeToSet = await import(\r\n /* webpackMode: \"lazy\", webpackChunkName: \"i18n/[request]\", webpackExclude: /_lib/ */\r\n `date-fns/locale/${localisation.locale}/index.js`\r\n )\r\n setLocale(localeToSet.default)\r\n }\r\n\r\n importLocaleFile()\r\n }, [localisation.locale])\r\n\r\n const showTodayButton =\r\n (rest.minDate === undefined || !rest.minDate.isAfter(new Date(), DateUnit.Day)) &&\r\n (rest.maxDate === undefined || !rest.maxDate.isBefore(new Date(), DateUnit.Day))\r\n\r\n const dateMask = useMemo((): { inputFormat: string; mask: string } => {\r\n /* use this to see how you should configure the date https://date-fns.org/v2.25.0/docs/format */\r\n switch (locale.code) {\r\n case \"en-GB\": {\r\n return {\r\n inputFormat: \"yyyy/MM/dd\",\r\n mask: \"____/__/__\",\r\n }\r\n }\r\n\r\n default: {\r\n return {\r\n inputFormat: \"dd.MM.yyyy\",\r\n mask: \"__.__.____\",\r\n }\r\n }\r\n }\r\n }, [locale])\r\n\r\n const validateDate = useCallback(\r\n (date: Date | null) => {\r\n if (!date || !isValidDate(date)) {\r\n return date\r\n }\r\n\r\n let newDate = date\r\n\r\n if (rest.minDate && date.isBefore(rest.minDate)) {\r\n newDate = rest.minDate\r\n }\r\n\r\n if (rest.maxDate && date.isAfter(rest.maxDate)) {\r\n newDate = rest.maxDate\r\n }\r\n\r\n return newDate\r\n },\r\n [rest.maxDate, rest.minDate]\r\n )\r\n\r\n const handleAccept = useCallback(\r\n (date: Date | null) => {\r\n onAccept?.(fixUTCDate(date))\r\n },\r\n [onAccept]\r\n )\r\n\r\n const handleChange = useCallback(\r\n (date: Date | null) => {\r\n const validatedDate = validateDate(date)\r\n onChange(fixUTCDate(validatedDate))\r\n },\r\n [onChange, validateDate]\r\n )\r\n\r\n const handleError = useCallback(\r\n (reason: DateValidationError, value: Date | null) => {\r\n setDateError(reason ? translateText(13931) : \"\")\r\n onError?.(reason, value)\r\n },\r\n [onError, translateText]\r\n )\r\n\r\n const renderTextfield = useCallback(\r\n (params: TextFieldProps) => {\r\n const castedParams = { ...params, size: rest.size } as FilledTextFieldProps\r\n\r\n if (renderInputOverride) {\r\n return cloneElement(renderInputOverride as ReactElement, {\r\n ...castedParams,\r\n })\r\n }\r\n\r\n return (\r\n \r\n )\r\n },\r\n [rest.size, renderInputOverride, errorMessage, dateError, textfieldProps]\r\n )\r\n\r\n return (\r\n \r\n renderTextfield(params)}\r\n components={{\r\n OpenPickerIcon: CalendarIcon,\r\n ...(rest.components || {}),\r\n }}\r\n componentsProps={{\r\n actionBar: showTodayButton\r\n ? {\r\n actions: [\"today\"],\r\n }\r\n : undefined,\r\n ...rest.componentsProps,\r\n }}\r\n views={[\"year\", \"month\", \"day\"]}\r\n onAccept={onAccept && handleAccept}\r\n onChange={handleChange}\r\n onError={handleError}\r\n {...rest}\r\n />\r\n \r\n )\r\n }\r\n)\r\n","import { Divider as MuiDivider, DividerProps, styled } from \"@mui/material\"\r\nimport { FC } from \"react\"\r\n\r\nconst StyledDivider = styled(MuiDivider)(({ theme }) => ({\r\n borderColor: \"#e2e2e2\",\r\n borderBottomWidth: \"3px\",\r\n \"&.MuiDivider-light\": {\r\n borderBottomWidth: \"thin\",\r\n },\r\n}))\r\n\r\nexport const Divider: FC = (props: DividerProps) => {\r\n return \r\n}\r\n","import {\r\n Children,\r\n FC,\r\n forwardRef,\r\n ForwardRefExoticComponent,\r\n isValidElement,\r\n PropsWithChildren,\r\n ReactElement,\r\n RefAttributes,\r\n useImperativeHandle,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from \"react\"\r\nimport { Box, Popover, PopoverProps, PopoverActions } from \"@mui/material\"\r\nimport { EasyPopoverContext } from \"./context\"\r\nimport { PopoverActionButton } from \"./PopoverActionButton\"\r\nimport { PopoverContent, PopoverContentProps } from \"./PopoverContent\"\r\nimport { useResizeRef } from \"./useResizeRef\"\r\n\r\nexport type EasyPopoverProps = PropsWithChildren<{\r\n onPopoverClose?: () => void\r\n}> &\r\n Pick\r\n\r\nexport type EasyPopoverHandles = {\r\n closePopup: () => void\r\n}\r\n\r\ntype EasyPopoverComponentType = ForwardRefExoticComponent>\r\n\r\nconst EasyPopoverComponent = forwardRef(({ onPopoverClose, children, ...rest }, ref) => {\r\n const [anchor, setAnchor] = useState(null)\r\n const popoverActions = useRef(null)\r\n\r\n const contentRef = useResizeRef(() => {\r\n if (popoverActions.current) {\r\n popoverActions.current.updatePosition()\r\n }\r\n })\r\n\r\n const closePopup = () => {\r\n setAnchor(null)\r\n onPopoverClose?.()\r\n }\r\n\r\n const handlePopoverClose = (e: Event) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n closePopup()\r\n }\r\n\r\n useImperativeHandle(ref, () => ({\r\n closePopup,\r\n }))\r\n\r\n const actionButton = useMemo(\r\n () => Children.toArray(children).find((child) => isValidElement(child) && (child as ReactElement).type === PopoverActionButton),\r\n [children]\r\n )\r\n\r\n const content = useMemo(() => {\r\n if (!anchor) {\r\n return null\r\n }\r\n\r\n return Children.toArray(children).filter((child) => isValidElement(child) && (child as ReactElement).type !== PopoverActionButton)\r\n }, [children, anchor])\r\n\r\n return (\r\n {\r\n e.stopPropagation()\r\n }}\r\n >\r\n \r\n {actionButton}\r\n \r\n {content}\r\n \r\n \r\n \r\n )\r\n})\r\n\r\nexport type EasyPopoverType = EasyPopoverComponentType & {\r\n ActionButton: FC\r\n Content: FC\r\n}\r\n\r\nconst EasyPopoverWithStatics = EasyPopoverComponent as EasyPopoverType\r\nEasyPopoverWithStatics.ActionButton = PopoverActionButton\r\nEasyPopoverWithStatics.Content = PopoverContent\r\n\r\nexport { EasyPopoverWithStatics as EasyPopover }\r\n","import { cloneElement, FC, isValidElement, PropsWithChildren, ReactElement, useContext } from \"react\"\r\nimport { EasyPopoverContext } from \"./context\"\r\n\r\nexport const PopoverActionButton: FC = ({ children }) => {\r\n const context = useContext(EasyPopoverContext)\r\n\r\n if (!context) {\r\n throw new Error(\"ActionButton should be used inside EasyPopover\")\r\n }\r\n\r\n const { setAnchor } = context\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n setAnchor(event.currentTarget)\r\n\r\n if (isValidElement(children) && children.props.onClick) {\r\n children.props.onClick(event)\r\n }\r\n }\r\n\r\n return cloneElement(children as ReactElement, {\r\n onClick: handleClick,\r\n })\r\n}\r\n","import { Box, BoxProps } from \"@mui/material\"\r\nimport { FC } from \"react\"\r\n\r\nexport type PopoverContentProps = BoxProps\r\n\r\nexport const PopoverContent: FC = ({ children, ...rest }) => {\r\n return {children}\r\n}\r\n","import { createContext, Dispatch, SetStateAction } from \"react\"\r\n\r\nexport type EasyPopoverContextProps = {\r\n anchor: HTMLButtonElement | null\r\n setAnchor: Dispatch>\r\n}\r\n\r\nexport const EasyPopoverContext = createContext(undefined)\r\n","import { useCallback, useRef } from \"react\"\r\n\r\nexport function useResizeRef(callback?: () => void) {\r\n const currentRef = useRef(null)\r\n const ref = useCallback((node: Element) => {\r\n const resizeObserver = new ResizeObserver(() => {\r\n callback?.()\r\n })\r\n\r\n if (currentRef.current) {\r\n resizeObserver.disconnect()\r\n }\r\n\r\n if (node) {\r\n resizeObserver.observe(node)\r\n }\r\n\r\n currentRef.current = node\r\n }, [])\r\n\r\n return ref\r\n}\r\n","import { DetailedHTMLProps, ImgHTMLAttributes, memo } from \"react\"\r\n\r\nexport const FlagFallback = memo, HTMLImageElement>>((props) => {\r\n return {props.alt}\r\n})\r\n","import { memo, SVGProps } from \"react\"\r\n\r\nexport const ArticleFallback = memo>((props) => (\r\n \r\n \r\n \r\n))\r\n","import { memo, SVGProps } from \"react\"\r\n\r\nexport const BikeFallback = memo>((props) => (\r\n \r\n \r\n \r\n))\r\n","import { memo, SVGProps } from \"react\"\r\n\r\nexport const CarFallback = memo>((props) => (\r\n \r\n \r\n \r\n))\r\n","import { memo, SVGProps } from \"react\"\r\n\r\nexport const ManufacturerFallback = memo>((props) => (\r\n \r\n \r\n \r\n))\r\n","import { memo, SVGProps } from \"react\"\r\n\r\nexport const SvgFallback = memo>((props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n))\r\n","import { forwardRef, ImgHTMLAttributes, SyntheticEvent, useCallback, useEffect, useMemo, useState } from \"react\"\r\nimport { SvgFallback } from \"./fallbacks/svg-fallback\"\r\nimport { ArticleFallback } from \"./fallbacks/article-fallback\"\r\nimport { ManufacturerFallback } from \"./fallbacks/manufacturer-fallback\"\r\nimport { CarFallback } from \"./fallbacks/car-fallback\"\r\nimport { BikeFallback } from \"./fallbacks/bike-fallback\"\r\nimport { FlagFallback } from \"./fallbacks/Flag\"\r\n\r\n/**\r\n * @param src Image source\r\n * @param type used to show a fallback image (rename to fallbackType?)\r\n */\r\nexport type ImageProps = ImgHTMLAttributes & {\r\n src: string\r\n type?: \"article\" | \"manufacturer\" | \"car\" | \"bike\" | \"flag\"\r\n}\r\n\r\nexport const Image = forwardRef((props, ref) => {\r\n const { onError, src, type, alt, title, className } = props\r\n const [error, setError] = useState(false)\r\n\r\n useEffect(() => {\r\n setError(false)\r\n }, [src])\r\n\r\n const handleError = useCallback(\r\n (e: SyntheticEvent) => {\r\n setError(true)\r\n onError?.(e)\r\n },\r\n [onError]\r\n )\r\n\r\n const fallbackImage = useMemo(() => {\r\n let FallbackComponent\r\n\r\n switch (type) {\r\n case \"article\":\r\n FallbackComponent = ArticleFallback\r\n break\r\n case \"manufacturer\":\r\n FallbackComponent = ManufacturerFallback\r\n break\r\n case \"car\":\r\n FallbackComponent = CarFallback\r\n break\r\n case \"bike\":\r\n FallbackComponent = BikeFallback\r\n break\r\n case \"flag\":\r\n FallbackComponent = FlagFallback\r\n break\r\n default:\r\n FallbackComponent = SvgFallback\r\n break\r\n }\r\n\r\n const commonProps = {\r\n width: \"100%\",\r\n height: \"100%\",\r\n }\r\n\r\n const fallback =\r\n type === \"flag\" ? : \r\n\r\n return (\r\n \r\n {fallback}\r\n \r\n )\r\n }, [type, className, title, alt])\r\n\r\n if (error || !props?.src) {\r\n return fallbackImage\r\n }\r\n\r\n return {alt\r\n})\r\n","import { styled } from \"@mui/material\"\r\nimport { FC } from \"react\"\r\nimport { Link, LinkProps as reactRouterLinkProps } from \"react-router-dom\"\r\n\r\nexport type LinkProps = reactRouterLinkProps & {\r\n to: string\r\n}\r\n\r\nconst StyledLink = styled(Link)({\r\n textDecoration: \"none\",\r\n})\r\n\r\nexport const RouterLink: FC = (props) => {\r\n return {props.children}\r\n}\r\n","import { forwardRef } from \"react\"\r\nimport { Box, CircularProgress, CircularProgressProps, styled, BoxProps } from \"@mui/material\"\r\n\r\nconst StyledLoader = styled(CircularProgress)<{ color?: string }>(({ theme, color }) => ({\r\n color: color || theme.palette.primary.main,\r\n}))\r\n\r\nconst StyledBox = styled(Box)(() => ({\r\n display: \"flex\",\r\n flex: 1,\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n}))\r\n\r\ntype Props = BoxProps & {\r\n size?: \"medium\" | \"small\" | \"extrasmall\"\r\n color?: string\r\n}\r\n\r\nexport const Loader = forwardRef(({ size, color, ...rest }, ref) => {\r\n const circularProgressProps: CircularProgressProps = {}\r\n switch (size) {\r\n case \"extrasmall\":\r\n circularProgressProps.size = \"16px\"\r\n break\r\n case \"small\":\r\n circularProgressProps.size = \"20px\"\r\n break\r\n case \"medium\":\r\n default:\r\n break\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n})\r\n","import { memo } from \"react\"\r\nimport { Box, LinearProgress, LinearProgressProps, Typography } from \"@mui/material\"\r\n\r\ntype Props = LinearProgressProps & {\r\n value: number\r\n}\r\n\r\nexport const ProgressBar = memo((props: Props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${Math.round(props.value)}%`}\r\n \r\n \r\n \r\n )\r\n})\r\n","import { memo } from \"react\"\r\nimport { Box, styled } from \"@mui/material\"\r\nimport { keyframes } from \"@mui/system\"\r\n\r\nconst spin = keyframes`\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 50% {\r\n transform: rotate(180deg) scale(1.2);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n`\r\n\r\nconst ModernSpinner = styled(`div`)(({ theme }) => ({\r\n width: \"40px\",\r\n height: \"40px\",\r\n border: `solid 6px ${theme.palette.primary.main}`,\r\n borderRadius: \"50%\",\r\n borderTopColor: \"transparent\",\r\n borderBottomColor: \"transparent\",\r\n animation: `${spin} 1s infinite`,\r\n}))\r\n\r\nconst CenterWrapper = styled(Box)(() => ({\r\n display: \"flex\",\r\n flex: 1,\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n}))\r\n\r\nexport const Spinner = memo(() => {\r\n return (\r\n \r\n \r\n \r\n )\r\n})\r\n","import { FC } from \"react\"\r\nimport { Paper as MuiPaper, PaperProps, styled } from \"@mui/material\"\r\n\r\nexport const Paper: FC = styled(MuiPaper)(() => ({\r\n padding: \"12px\",\r\n borderRadius: 0,\r\n color: \"unset\",\r\n overflow: \"unset\",\r\n}))\r\n","import { PaperProps, styled } from \"@mui/material\"\r\nimport { FC } from \"react\"\r\nimport { Paper } from \"./paper\"\r\n\r\nexport const SelectorPaper: FC = styled(Paper)(({ theme }) => ({\r\n position: \"absolute\",\r\n zIndex: 3,\r\n height: \"2.3em\",\r\n right: \"1em\",\r\n top: \"-1em\",\r\n padding: 0,\r\n paddingLeft: 8,\r\n borderRadius: theme.radius?.default ?? \"3px\",\r\n}))\r\nSelectorPaper.defaultProps = { elevation: 8 }\r\n","import { Radio as MuiRadio, radioClasses, RadioProps, styled } from \"@mui/material\"\r\n\r\nconst StyledRadioButton = styled(MuiRadio)(({ theme }) => ({\r\n [`&.${radioClasses.checked}`]: {\r\n \"& span > svg:nth-of-type(1)\": {\r\n color: theme.palette.grey[800],\r\n },\r\n },\r\n [`&.${radioClasses.root}`]: {\r\n padding: \"4px 4px 4px 9px\",\r\n\r\n \"& span > svg:nth-of-type(1)\": {\r\n color: theme.palette.grey[800],\r\n },\r\n },\r\n}))\r\n\r\nexport function RadioButton(props: RadioProps) {\r\n return \r\n}\r\n","import { forwardRef, ReactNode } from \"react\"\r\nimport { Box, BoxProps, styled } from \"@mui/material\"\r\nimport * as CSS from \"csstype\"\r\nimport { debounce } from \"@tm/utils\"\r\n\r\nexport type ScrollContainerProps = BoxProps & {\r\n children: ReactNode | ReactNode[]\r\n onScrollBottom?(): void\r\n overflowY?: CSS.Property.OverflowY | CSS.Property.OverflowY[]\r\n style?: any\r\n useDefaultStyling?: boolean\r\n}\r\n\r\nconst ScrollWrapper = styled(Box, {\r\n shouldForwardProp: (prop) => ![\"overflowY\", \"onScrollBottom\", \"useDefaultStyling\"].includes(prop as string),\r\n})(({ overflowY, useDefaultStyling }) => ({\r\n width: \"100%\",\r\n height: \"inherit\",\r\n maxHeight: \"inherit\",\r\n overflowY: overflowY || \"scroll\",\r\n\r\n ...(!useDefaultStyling && {\r\n \"&::-webkit-scrollbar\": {\r\n backgroundColor: \"#fff\",\r\n width: \"10px\",\r\n borderBottomRightRadius: \"5px\",\r\n },\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"#fff\",\r\n borderBottomRightRadius: \"5px\",\r\n },\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.2)\",\r\n borderRadius: \"16px\",\r\n border: \"2px solid #fff\",\r\n height: \"30px\",\r\n },\r\n }),\r\n}))\r\n\r\nexport const ScrollContainer = forwardRef((props, ref) => {\r\n const { children, onScrollBottom, overflowY, style } = props\r\n\r\n const debouncedOnScrollBottom = debounce((scrollHeight: number, scrollTop: number, clientHeight: number) => {\r\n const offset = 2\r\n if (onScrollBottom) {\r\n const isBottom = scrollHeight - scrollTop - offset <= clientHeight\r\n isBottom && onScrollBottom()\r\n }\r\n }, 300)\r\n\r\n const handleScrollDebounce = (event: React.UIEvent) => {\r\n debouncedOnScrollBottom(event.currentTarget.scrollHeight, event.currentTarget.scrollTop, event.currentTarget.clientHeight)\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n})\r\n","import { forwardRef, useEffect, useState } from \"react\"\r\nimport { ButtonProps, Popover, styled, Box } from \"@mui/material\"\r\nimport { ButtonKeyDefinition, fixPrecisionSymbol } from \"@tm/utils\"\r\nimport { Button } from \"../button\"\r\nimport { Icon } from \"../Icons\"\r\nimport { NumberSelectList } from \"./NumberSelectList\"\r\n\r\nconst PopoverContent = styled(`div`)(({ theme }) => ({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n border: `1px solid ${theme.palette.primary.light}`,\r\n borderRadius: \"5px\",\r\n}))\r\n\r\nconst DropDownButton = styled(Button)(() => ({\r\n minWidth: \"80px\",\r\n}))\r\n\r\ntype Props = ButtonProps & {\r\n maxAmount?: number\r\n minAmount?: number\r\n division?: number\r\n steps?: number\r\n onValueChange?: (value: number) => void\r\n value?: number\r\n maxItemsToShow?: number\r\n roundedType?: RoundedType\r\n classNameWrapper?: string\r\n}\r\n\r\ntype RoundedType = \"ceil\" | \"floor\"\r\n\r\nfunction getRoundedValue(value: number, roundedType?: RoundedType, division?: number) {\r\n let roundedValue = value\r\n if (roundedType === \"ceil\" && division) {\r\n roundedValue = Math.ceil(value / division) * division\r\n } else if (roundedType === \"floor\" && division) {\r\n roundedValue = Math.floor(value / division) * division\r\n }\r\n // Limit decimal to 2 decimal places (0.95 / 0.01 * 0.01 = 0.950...01)\r\n return Math.round((roundedValue + Number.EPSILON) * 100) / 100\r\n}\r\n\r\nexport const NumberSelect = forwardRef((props: Props, ref) => {\r\n const { onValueChange, value, roundedType, steps, maxAmount, minAmount, maxItemsToShow, disabled, classNameWrapper } = props\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n const [selectedValue, setSelectedValue] = useState(value || 0)\r\n const [displayValue, setDisplayValue] = useState(fixPrecisionSymbol((value || 0).toString()))\r\n const [alreadyFocused, setAlreadyFocused] = useState(false)\r\n const [recentlyFocused, setRecentlyFocused] = useState(false)\r\n\r\n const division = props.division || props.steps || 1\r\n\r\n useEffect(() => {\r\n if (value) {\r\n const roundedValue = getRoundedValue(value, roundedType, division)\r\n if (onValueChange && roundedValue !== value) {\r\n onValueChange(roundedValue)\r\n }\r\n\r\n if (roundedValue !== selectedValue) {\r\n setSelectedValue(roundedValue)\r\n setDisplayValue(fixPrecisionSymbol(roundedValue.toString()))\r\n }\r\n }\r\n }, [value, roundedType, steps, division])\r\n\r\n const open = Boolean(anchorEl)\r\n const id = open ? \"simple-popover\" : undefined\r\n\r\n const handleFocus = (event: React.FocusEvent) => {\r\n if (!alreadyFocused) {\r\n if (!recentlyFocused) {\r\n setAnchorEl(event.currentTarget)\r\n setAlreadyFocused(true)\r\n setRecentlyFocused(true)\r\n } else {\r\n event.target.blur()\r\n setRecentlyFocused(false)\r\n }\r\n }\r\n }\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = (newValue: number) => {\r\n let roundedValue = getRoundedValue(newValue, roundedType, division)\r\n\r\n if (roundedValue === 0) {\r\n roundedValue = minAmount || division\r\n }\r\n\r\n setSelectedValue(roundedValue)\r\n setDisplayValue(fixPrecisionSymbol(roundedValue.toString()))\r\n if (onValueChange) {\r\n onValueChange(roundedValue)\r\n }\r\n setAnchorEl(null)\r\n setAlreadyFocused(false)\r\n }\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n switch (event.key) {\r\n case ButtonKeyDefinition.Tab:\r\n case ButtonKeyDefinition.Enter: {\r\n handleClose(selectedValue)\r\n break\r\n }\r\n default:\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n : }\r\n onClick={handleClick}\r\n disableFocusRipple\r\n disabled={disabled}\r\n onFocus={handleFocus}\r\n >\r\n {fixPrecisionSymbol(displayValue.toString())}\r\n \r\n handleClose(selectedValue)}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"center\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"center\",\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n})\r\n","import { useEffect, KeyboardEvent, useState, CSSProperties, createRef } from \"react\"\r\nimport { FixedSizeList, FixedSizeList as List } from \"react-window\"\r\nimport { lighten, MenuItem, styled } from \"@mui/material\"\r\nimport { fixPrecisionSymbol } from \"@tm/utils\"\r\nimport { IconButton } from \"../button\"\r\nimport { Icon } from \"../Icons\"\r\nimport { TextField } from \"../textfield\"\r\nimport { fillArray } from \"../../utils/fillArray\"\r\n\r\nconst DEFAULT_MIN = 0\r\nconst DEFAULT_MAX = 100\r\nconst DEFAULT_ITEMSTOSHOW = 8\r\nconst DEFAULT_ITEMSIZE = 30\r\nconst DEFAULT_WIDTH = 80\r\n\r\ntype Props = {\r\n setSelectedValue: (val: number) => void\r\n selectedValue: number\r\n handleClose: (val: number) => void\r\n maxAmount?: number\r\n minAmount?: number\r\n steps?: number\r\n maxItemsToShow?: number\r\n}\r\n\r\nconst SmallInput = styled(TextField)(({ theme }) => ({\r\n width: \"80px\",\r\n \".MuiInputBase-input\": {\r\n textAlign: \"center\",\r\n fontSize: theme.font?.body1?.fontSize,\r\n padding: \"2px\",\r\n \".Mui-focused\": {\r\n boxShadow: \"none\",\r\n },\r\n },\r\n \".MuiFilledInput-root.Mui-focused\": {\r\n boxShadow: \"none\",\r\n borderColor: \"#e2e2e1\",\r\n },\r\n}))\r\n\r\nconst StyledMenuItems = styled(MenuItem)(({ theme }) => ({\r\n padding: \"2px\",\r\n color: theme.palette.common.black,\r\n minHeight: \"30px\",\r\n opacity: 1,\r\n justifyContent: theme.overwrites?.components?.dropdown?.menu?.justifyContent || \"center\",\r\n \"&.Mui-selected\": {\r\n color:\r\n theme.overwrites?.components?.dropdown?.item?.text?.selected || theme.palette.getContrastText(lighten(theme.palette.primary.main, 0.5)),\r\n backgroundColor: theme.overwrites?.components?.dropdown?.item?.background?.selected || lighten(theme.palette.primary.main, 0.5),\r\n \"&:hover\": {\r\n backgroundColor: theme.overwrites?.components?.dropdown?.item?.background?.hover || lighten(theme.palette.primary.main, 0.5),\r\n },\r\n },\r\n \"&:hover\": {\r\n backgroundColor: theme.overwrites?.components?.dropdown?.item?.background?.hover || lighten(theme.palette.primary.main, 0.5),\r\n color: theme.overwrites?.components?.dropdown?.item?.text?.hover || theme.palette.getContrastText(lighten(theme.palette.primary.main, 0.5)),\r\n },\r\n}))\r\n\r\nconst ScrollWrapper = styled(List)({\r\n width: \"100%\",\r\n height: \"inherit\",\r\n maxHeight: \"inherit\",\r\n overflowY: \"scroll\",\r\n\r\n \"&::-webkit-scrollbar\": {\r\n display: \"none\",\r\n },\r\n \"&::-webkit-scrollbar-track\": {\r\n display: \"none\",\r\n },\r\n \"&::-webkit-scrollbar-thumb\": {\r\n display: \"none\",\r\n },\r\n})\r\n\r\nexport function NumberSelectList(props: Props) {\r\n const { setSelectedValue, selectedValue, handleClose, maxAmount, minAmount, steps, maxItemsToShow } = props\r\n const [inputValue, setInputValue] = useState(fixPrecisionSymbol(selectedValue.toString()) || minAmount?.toString() || DEFAULT_MIN.toString())\r\n const maxValue = maxAmount || DEFAULT_MAX\r\n const minValue = minAmount || DEFAULT_MIN\r\n const values = fillArray(minValue, maxValue, steps || 1)\r\n const scrollWrapperHeight = Math.min(maxItemsToShow ?? DEFAULT_ITEMSTOSHOW, values.length) * DEFAULT_ITEMSIZE\r\n\r\n const listRef = createRef()\r\n\r\n useEffect(() => {\r\n if (listRef.current) {\r\n const index = values.findIndex((element) => element === selectedValue)\r\n listRef.current.scrollToItem(index, \"center\")\r\n }\r\n }, [listRef, values, selectedValue])\r\n\r\n const handleClickElement = (val: number) => {\r\n handleClose(val)\r\n }\r\n\r\n const validate = (s: string) => {\r\n const rgx = /^[0-9]*[\\.|\\,]?[0-9]*$/\r\n return s.match(rgx)\r\n }\r\n\r\n const onInputChanged = (val: string | number) => {\r\n if (typeof val === \"string\" && validate(val)) {\r\n setInputValue(val)\r\n const intVal = parseFloat(val.replace(\",\", \".\"))\r\n if (!isNaN(intVal) && intVal > minValue) {\r\n if (intVal > maxValue) {\r\n setSelectedValue(maxValue)\r\n } else {\r\n setSelectedValue(intVal)\r\n }\r\n } else {\r\n setSelectedValue(minValue)\r\n }\r\n } else if (typeof val === \"number\") {\r\n setInputValue(val.toString())\r\n setSelectedValue(val)\r\n }\r\n }\r\n\r\n const increase = () => {\r\n if (selectedValue > minValue) {\r\n onInputChanged(selectedValue - (steps || 1))\r\n }\r\n }\r\n\r\n const decrease = () => {\r\n if (selectedValue < maxValue) {\r\n onInputChanged(selectedValue + (steps || 1))\r\n }\r\n }\r\n\r\n const keyPress = (e: KeyboardEvent) => {\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault()\r\n decrease()\r\n }\r\n if (e.key === \"ArrowUp\") {\r\n e.preventDefault()\r\n increase()\r\n }\r\n }\r\n\r\n type RowProps = {\r\n index: number\r\n style: CSSProperties\r\n }\r\n\r\n function Row({ index, style }: RowProps) {\r\n const isSelected = values[index] === Math.trunc(selectedValue)\r\n return (\r\n handleClickElement(values[index])}>\r\n {fixPrecisionSymbol(values[index].toString())}\r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n onInputChanged(e.target.value)}\r\n onFocus={(e) => e.target.select()}\r\n autoComplete=\"off\"\r\n />\r\n \r\n \r\n \r\n\r\n \r\n {Row}\r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { filledInputClasses, lighten, styled, Select as MuiSelect, SelectProps as MuiSelectProps, selectClasses } from \"@mui/material\"\r\nimport { PropsWithChildren, forwardRef } from \"react\"\r\nimport { Icon } from \"../Icons\"\r\nimport { Loader } from \"../loader/Loader\"\r\n\r\ntype Props = PropsWithChildren<\r\n MuiSelectProps & {\r\n isloading?: boolean\r\n size?: \"small\" | \"medium\" | \"large\" | \"extralarge\"\r\n iconOnTheRight?: boolean\r\n }\r\n>\r\n\r\nconst StyledSelect = styled(MuiSelect)(({ color, theme, size, variant, iconOnTheRight }) => {\r\n const { getContrastText } = theme.palette\r\n const paletteColorMain = color && theme.palette[color]?.main\r\n const paletteColorLight = color && theme.palette[color]?.light\r\n\r\n const { button } = theme.overwrites?.components ?? {}\r\n const primaryButton = button?.primary\r\n\r\n const borderColor = primaryButton?.borderColor\r\n const fontSize = primaryButton?.fontSize ?? \"12px\"\r\n const defaultBackgroundColor = primaryButton?.backgroundColor ?? theme.palette.grey[300]\r\n const backgroundColorHover = primaryButton?.hover?.backgroundColor ?? lighten(theme.palette.primary.main, 0.5)\r\n const focusedColor = primaryButton?.focus ?? theme.palette.primary.light\r\n\r\n const fontWeight = primaryButton?.fontWeight\r\n\r\n const typo = {\r\n fontSize,\r\n fontWeight,\r\n }\r\n\r\n // color has a higher priority than overwrite?\r\n const defaultColor = (paletteColorMain && {\r\n backgroundColor: paletteColorMain,\r\n color: getContrastText(paletteColorMain),\r\n }) || {\r\n backgroundColor: defaultBackgroundColor,\r\n color: getContrastText(defaultBackgroundColor),\r\n }\r\n\r\n const iconColor = {\r\n color: getContrastText(paletteColorMain || defaultBackgroundColor),\r\n ...(variant === \"outlined\" && {\r\n color: borderColor || \"black\",\r\n }),\r\n }\r\n\r\n const iconColorFocus = {\r\n color: getContrastText(focusedColor),\r\n ...(variant === \"outlined\" && {\r\n color: borderColor || \"black\",\r\n }),\r\n }\r\n\r\n const iconColorHovered = (paletteColorMain && {\r\n color: getContrastText(paletteColorMain),\r\n }) || {\r\n color: getContrastText(backgroundColorHover),\r\n ...(variant === \"outlined\" && {\r\n color: borderColor || \"black\",\r\n }),\r\n }\r\n\r\n const colorFocused = (paletteColorLight && {\r\n backgroundColor: paletteColorLight,\r\n color: getContrastText(paletteColorLight),\r\n }) || { backgroundColor: focusedColor, color: getContrastText(focusedColor) }\r\n\r\n const backgroundColorHovered = (paletteColorLight &&\r\n paletteColorMain && {\r\n backgroundColor: paletteColorLight,\r\n color: getContrastText(paletteColorMain),\r\n }) || {\r\n backgroundColor: backgroundColorHover,\r\n color: getContrastText(backgroundColorHover),\r\n }\r\n\r\n const filledInputTypo = {\r\n ...(size === \"medium\" && {\r\n fontSize: \"14px\",\r\n lineHeight: \"20px\",\r\n padding: \"8px 13px 8px 28px !important\",\r\n ...(iconOnTheRight && {\r\n padding: \"8px 28px 8px 13px !important\",\r\n }),\r\n }),\r\n ...(size === \"large\" && {\r\n fontSize: \"14px\",\r\n lineHeight: \"20px \",\r\n padding: \"11px 14px 11px 32px !important\",\r\n ...(iconOnTheRight && {\r\n padding: \"11px 32px 11px 14px !important\",\r\n }),\r\n }),\r\n ...(size === \"extralarge\" && {\r\n fontSize: \"16px\",\r\n lineHeight: \"16px !important\",\r\n padding: \"15px 18px 15px 38px !important\",\r\n ...(iconOnTheRight && {\r\n padding: \"15px 38px 15px 18px !important\",\r\n }),\r\n }),\r\n }\r\n\r\n const selectedOutlined = {\r\n ...(size === \"medium\" && {\r\n fontSize: \"14px\",\r\n lineHeight: \"20px \",\r\n padding: \"8px 13px 8px 28px !important\",\r\n ...(iconOnTheRight && {\r\n padding: \"8px 28px 8px 13px !important\",\r\n }),\r\n }),\r\n ...(size === \"large\" && {\r\n fontSize: \"14px\",\r\n lineHeight: \"20px \",\r\n padding: \"11px 14px 11px 32px !important\",\r\n ...(iconOnTheRight && {\r\n padding: \"11px 32px 11px 14px !important\",\r\n }),\r\n }),\r\n ...(size === \"extralarge\" && {\r\n fontSize: \"16px\",\r\n lineHeight: \"16px !important\",\r\n padding: \"15px 18px 15px 38px !important\",\r\n ...(iconOnTheRight && {\r\n padding: \"15px 38px 15px 18px !important\",\r\n }),\r\n }),\r\n }\r\n\r\n const selectIconSizes = {\r\n ...(size === \"small\" && {\r\n minHeight: \"unset\",\r\n minWidth: \"unset\",\r\n height: \"1em\",\r\n width: \"1em\",\r\n left: \"5px\",\r\n ...(iconOnTheRight && {\r\n left: \"unset\",\r\n right: \"5px\",\r\n }),\r\n top: \"calc(50% - 5px) !important\",\r\n }),\r\n\r\n ...(size === \"medium\" && {\r\n minHeight: \"unset\",\r\n minWidth: \"unset\",\r\n width: \"1em\",\r\n }),\r\n ...(size === \"large\" && {}),\r\n ...(size === \"extralarge\" && {\r\n left: \"10px\",\r\n ...(iconOnTheRight && {\r\n left: \"unset\",\r\n right: \"10px\",\r\n }),\r\n }),\r\n }\r\n\r\n const transition = theme.transitions.create([\"color\", \"background-color\"])\r\n\r\n return {\r\n opacity: 1,\r\n verticalAlign: \"top\",\r\n border: borderColor ? `1px solid ${borderColor}` : \"none\",\r\n\r\n [`.${filledInputClasses.input}`]: {\r\n width: \"100%\",\r\n minHeight: \"unset !important\",\r\n fontSize,\r\n fontWeight,\r\n border: \"1px solid transparent\",\r\n padding: \"6px 10px 6px 22px !important\",\r\n ...(iconOnTheRight && {\r\n padding: \"6px 22px 6px 10px !important\",\r\n }),\r\n lineHeight: \"12px !important\",\r\n ...filledInputTypo,\r\n borderRadius: theme.radius?.default || \"3px\",\r\n justifyContent: \"center\",\r\n ...defaultColor,\r\n transition,\r\n \":focus\": {\r\n ...defaultColor,\r\n },\r\n },\r\n \".MuiSelect-icon\": {\r\n height: \"1.2em\",\r\n width: \"1.2em\",\r\n left: \"7px\",\r\n ...(iconOnTheRight && {\r\n left: \"unset\",\r\n right: \"7px\",\r\n }),\r\n top: \"calc(50% - 8px) !important\",\r\n ...selectIconSizes,\r\n opacity: \".87\",\r\n ...iconColor,\r\n transition,\r\n },\r\n \".MuiSelect-outlined\": {\r\n lineHeight: \"12px !important\",\r\n padding: \"6px 10px 6px 22px !important\",\r\n ...(iconOnTheRight && {\r\n padding: \"6px 22px 6px 10px !important\",\r\n }),\r\n minHeight: \"unset !important\",\r\n border: \"1px solid transparent\",\r\n borderRadius: theme.radius?.default || \"3px\",\r\n width: \"100%\",\r\n justifyContent: \"center\",\r\n transition,\r\n ...typo,\r\n ...selectedOutlined,\r\n ...(paletteColorMain && {\r\n backgroundColor: paletteColorMain,\r\n color: getContrastText(paletteColorMain),\r\n }),\r\n },\r\n [`.Mui-focused`]: {\r\n [`.${filledInputClasses.input}`]: {\r\n transition,\r\n borderRadius: theme.radius?.default || \"3px\",\r\n colorFocused,\r\n },\r\n },\r\n [`.${selectClasses.iconOpen}`]: {\r\n transition,\r\n ...iconColorFocus,\r\n },\r\n \":hover\": {\r\n [`.${filledInputClasses.input}`]: {\r\n transition,\r\n ...backgroundColorHovered,\r\n \"&.Mui-disabled\": {\r\n backgroundColor: defaultBackgroundColor,\r\n },\r\n },\r\n \".MuiSelect-icon\": {\r\n transition,\r\n ...iconColorHovered,\r\n },\r\n },\r\n \"&.Mui-disabled\": {\r\n cursor: \"default\",\r\n opacity: 0.38,\r\n [`.${filledInputClasses.input}`]: {\r\n color: theme.palette.getContrastText(theme.palette.grey[300]),\r\n WebkitTextFillColor: theme.palette.getContrastText(theme.palette.grey[300]),\r\n ...(color && {\r\n color: theme.palette.getContrastText(theme.palette[color]?.main),\r\n WebkitTextFillColor: theme.palette.getContrastText(theme.palette[color]?.main),\r\n }),\r\n },\r\n },\r\n }\r\n})\r\n\r\nexport const Select = forwardRef((props, ref) => {\r\n const { isloading, children, ...rest } = props\r\n\r\n return (\r\n ({\r\n backgroundColor: theme.overwrites?.components?.dropdown?.menu?.backgroundColor || \"#fff\",\r\n border: 1,\r\n borderColor: theme.overwrites?.components?.dropdown?.menu?.borderColor || theme.palette.primary.main,\r\n }),\r\n },\r\n }}\r\n IconComponent={isloading ? () => : (iconProps) => }\r\n {...rest}\r\n >\r\n {children}\r\n \r\n )\r\n})\r\n","import { lighten, MenuItem, MenuItemProps, styled } from \"@mui/material\"\r\nimport { FC, ReactNode } from \"react\"\r\n\r\nexport interface SelectItemProps extends MenuItemProps {\r\n disabled?: boolean\r\n value: any\r\n key: string | number\r\n children: ReactNode | ReactNode[]\r\n}\r\n\r\nexport const SelectItem: FC = (props) => {\r\n const { children } = props\r\n return {children}\r\n}\r\n\r\nconst WidgetMenuItem = styled(SelectItem)(({ theme }) => ({\r\n color: theme.palette.common.black,\r\n opacity: 1,\r\n justifyContent: theme.overwrites?.components?.dropdown?.menu?.justifyContent || \"start\",\r\n \"&.Mui-selected\": {\r\n color:\r\n theme.overwrites?.components?.dropdown?.item?.text?.selected || theme.palette.getContrastText(lighten(theme.palette.primary.main, 0.5)),\r\n backgroundColor: theme.overwrites?.components?.dropdown?.item?.background?.selected || lighten(theme.palette.primary.main, 0.5),\r\n \"&:hover\": {\r\n backgroundColor: theme.overwrites?.components?.dropdown?.item?.background?.hover || lighten(theme.palette.primary.main, 0.5),\r\n },\r\n },\r\n \"&:hover\": {\r\n backgroundColor: theme.overwrites?.components?.dropdown?.item?.background?.hover || lighten(theme.palette.primary.main, 0.5),\r\n color: theme.overwrites?.components?.dropdown?.item?.text?.hover || theme.palette.getContrastText(lighten(theme.palette.primary.main, 0.5)),\r\n },\r\n}))\r\n\r\nexport const MenuItemWidget: FC = (props) => {\r\n const { children } = props\r\n return {children}\r\n}\r\n","import { ElementType, ForwardedRef, ReactElement, forwardRef } from \"react\"\r\nimport { SelectProps } from \"@mui/material\"\r\nimport { Overwrite } from \"@tm/utils\"\r\nimport { TextField, TextFieldProps } from \"../textfield\"\r\n\r\ntype Props = Overwrite }> & {\r\n customIcon?: ElementType\r\n maxLayerHeight?: number\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-shadow\r\nfunction SelectTextFieldComponent({ maxLayerHeight, customIcon, SelectProps, children, ...rest }: Props, ref: ForwardedRef) {\r\n const selectProps: Partial> = {\r\n ...(SelectProps as SelectProps),\r\n ...(maxLayerHeight ? { MenuProps: { PaperProps: { sx: { maxHeight: maxLayerHeight } } } } : undefined),\r\n ...(customIcon ? { IconComponent: customIcon } : undefined),\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\n// Cast necessary as \"forwardRef\" is not working with a generic component (see https://stackoverflow.com/a/58473012/15647468)\r\nexport const SelectTextField = forwardRef(SelectTextFieldComponent) as (p: Props & { ref?: ForwardedRef }) => ReactElement\r\n","import { styled } from \"@mui/material\"\r\nimport { FC } from \"react\"\r\n\r\nexport type SeparatorProps = {\r\n char?: string\r\n className?: string\r\n}\r\n\r\nexport const Separator: FC = styled(\"span\")(({ char }) => ({\r\n padding: \"0 0.4em\",\r\n \"&:before\": {\r\n content: `\"${(char || \"|\")[0]}\"`,\r\n },\r\n}))\r\n","import { KeysByValue } from \"@tm/models\"\r\nimport { styled, Typography, Palette, PaletteColor } from \"@mui/material\"\r\n\r\nimport { Icon } from \"../Icons\"\r\n\r\nexport type StatePillState = \"accept\" | \"rejected\" | \"done\" | \"open\"\r\n\r\nexport type StatePillProps = {\r\n text?: string\r\n state: StatePillState\r\n}\r\n\r\ntype Colors = KeysByValue\r\n\r\nconst Container = styled(\"div\")(({ theme }) => ({\r\n display: \"inline-flex\",\r\n overflow: \"hidden\", // because of border radius and background-color of IconBox\r\n border: `1px solid ${theme.palette.grey[400]}`,\r\n borderRadius: \"2px\",\r\n alignItems: \"center\",\r\n}))\r\n\r\nconst IconBox = styled(\"div\")<{ color: Colors }>(({ theme, color }) => ({\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n padding: \"3px\",\r\n backgroundColor: theme.palette[color].main,\r\n}))\r\n\r\nconst ColorizedIcon = styled(Icon)<{ fill: Colors }>(({ theme, fill }) => ({\r\n width: \"18px\",\r\n height: \"18px\",\r\n fill: theme.palette[fill].contrastText,\r\n}))\r\n\r\nconst StyledText = styled(Typography)({\r\n padding: \"0 0.5em\",\r\n maxWidth: \"20em\",\r\n wordBreak: \"break-word\",\r\n})\r\n\r\nconst getIconData = (state: StatePillState): { icon: string; color: Colors } => {\r\n switch (state) {\r\n case \"accept\":\r\n return { icon: \"check\", color: \"success\" }\r\n case \"rejected\":\r\n return { icon: \"close\", color: \"error\" }\r\n case \"done\":\r\n return { icon: \"summary\", color: \"warning\" }\r\n case \"open\":\r\n return { icon: \"help\", color: \"info\" }\r\n default:\r\n return { icon: \"\", color: \"primary\" }\r\n }\r\n}\r\n\r\nexport function StatePill({ text, state }: StatePillProps) {\r\n const { color, icon } = getIconData(state)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {!!text && {text}}\r\n \r\n )\r\n}\r\n","import { Stack, Switch, Typography, styled, switchClasses, SwitchProps as MuiSwitchProps } from \"@mui/material\"\r\nimport { classes } from \"@tm/utils\"\r\nimport { ReactNode, forwardRef, useEffect, useMemo, useState } from \"react\"\r\n\r\nexport type ToggleSwitchItem = {\r\n key: string | number | boolean\r\n value: T\r\n}\r\n\r\nexport type ToggleSwitchProps | number | string = any> = {\r\n size?: MuiSwitchProps[\"size\"]\r\n left?: ToggleSwitchItem\r\n right?: ToggleSwitchItem\r\n className?: string\r\n disabled?: boolean\r\n selected?: ToggleSwitchItem[\"key\"]\r\n renderLabel?: (item: ToggleSwitchItem) => ReactNode\r\n onChange: (item?: ToggleSwitchItem) => unknown\r\n}\r\n\r\nconst ToggleSwitchStack = styled(Stack)(({ theme }) => ({\r\n \"&.Mui-disabled\": {\r\n pointerEvents: \"none\",\r\n color: theme.palette.grey[300],\r\n \".ToggleSwitchLabel\": {\r\n color: theme.palette.grey[300],\r\n },\r\n [`.${switchClasses.switchBase}`]: {\r\n \"&.Mui-checked\": {\r\n \"& + .MuiSwitch-track\": {\r\n backgroundColor: theme.palette.grey[300],\r\n },\r\n },\r\n },\r\n },\r\n}))\r\n\r\nconst StyledToggleSwitch = styled(Switch)(({ theme }) => ({\r\n padding: 6,\r\n fontSize: 20,\r\n height: 34,\r\n [`&.${switchClasses.sizeSmall}`]: {\r\n width: 50,\r\n height: 30,\r\n [`.${switchClasses.switchBase}`]: {\r\n padding: 8,\r\n },\r\n [`.${switchClasses.thumb}`]: {\r\n width: 14,\r\n height: 14,\r\n },\r\n },\r\n [`.${switchClasses.switchBase}`]: {\r\n \"&.Mui-checked\": {\r\n \"& + .MuiSwitch-track\": {\r\n backgroundColor: theme.palette.primary.main,\r\n opacity: 1,\r\n border: 0,\r\n },\r\n [`.${switchClasses.thumb}`]: {\r\n color: theme.palette.common.white,\r\n },\r\n },\r\n },\r\n [`.${switchClasses.track}`]: {\r\n backgroundColor: theme.palette.primary.main,\r\n borderRadius: theme.radius?.default,\r\n opacity: 1,\r\n \"&.Mui-checked\": {},\r\n \"&:before, &:after\": {\r\n content: '\"\"',\r\n position: \"absolute\",\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n width: 16,\r\n height: 16,\r\n },\r\n \"&:before\": {\r\n left: 12,\r\n },\r\n \"&:after\": {\r\n right: 12,\r\n },\r\n },\r\n [`.${switchClasses.thumb}`]: {\r\n boxShadow: \"none\",\r\n width: 16,\r\n height: 16,\r\n marginLeft: 2,\r\n borderRadius: theme.radius?.default,\r\n },\r\n \".MuiSwitch-switchBase:hover\": {\r\n backgroundColor: \"transparent\",\r\n },\r\n}))\r\n\r\nconst ToggleSwitchLabel = styled(Typography, { shouldForwardProp: (prop: string) => prop !== \"size\" })>(\r\n ({ size }) => ({\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n opacity: 1,\r\n },\r\n\r\n ...(size === \"small\" && { fontSize: 12 }),\r\n })\r\n)\r\n\r\nexport const ToggleSwitch = forwardRef((props, ref) => {\r\n const { left, right, size, selected, className, disabled, onChange } = props\r\n\r\n const [isRightSelected, setIsRightSelected] = useState(right?.key === selected)\r\n\r\n useEffect(() => {\r\n setIsRightSelected(right?.key === selected)\r\n }, [selected, right])\r\n\r\n const renderLabel = useMemo(() => {\r\n if (!props.renderLabel) {\r\n return (item: ToggleSwitchItem) => String(item.value)\r\n }\r\n return props.renderLabel\r\n }, [props.renderLabel])\r\n\r\n const leftLabel = useMemo(() => (left ? renderLabel(left) : undefined), [left, renderLabel])\r\n const rightLabel = useMemo(() => (right ? renderLabel(right) : undefined), [right, renderLabel])\r\n\r\n const handleClickButtonButton = (item: unknown) => {\r\n if (left === item && isRightSelected) {\r\n onChange(left)\r\n } else if (right === item && !isRightSelected) {\r\n onChange(right)\r\n }\r\n }\r\n\r\n const handleClickSwitch = (_: unknown, checked: boolean) => {\r\n onChange(checked ? right : left)\r\n }\r\n\r\n return (\r\n \r\n handleClickButtonButton(left)}>\r\n {leftLabel}\r\n \r\n \r\n handleClickButtonButton(right)}>\r\n {rightLabel}\r\n \r\n \r\n )\r\n})\r\n","import {\r\n Switch as MuiSwitch,\r\n SwitchProps as MuiSwitchProps,\r\n styled,\r\n switchClasses,\r\n FormControlLabel as MuiFormControlLabel,\r\n Typography,\r\n FormControlLabelProps,\r\n TypographyProps,\r\n colors,\r\n} from \"@mui/material\"\r\n\r\nexport type SwitchProps = MuiSwitchProps & {\r\n label?: any\r\n labelPlacement?: \"start\" | \"end\" | \"top\" | \"bottom\"\r\n size?: \"small\" | \"medium\"\r\n formControlLabelSx?: FormControlLabelProps[\"sx\"]\r\n typographySx?: TypographyProps[\"sx\"]\r\n}\r\n\r\nconst StyledFormControlLabel = styled(MuiFormControlLabel)(({ theme }) => ({\r\n marginLeft: -7,\r\n \":hover\": {\r\n \".MuiFormControlLabel-label\": {\r\n color: theme.palette.primary.main,\r\n },\r\n },\r\n}))\r\n\r\nconst StyledSwitch = styled(MuiSwitch)(({ theme }) => ({\r\n padding: \"6px\",\r\n fontSize: \"20px\",\r\n height: \"34px\",\r\n [`.${switchClasses.switchBase}`]: {\r\n \"&.Mui-checked\": {\r\n \"& + .MuiSwitch-track\": {\r\n opacity: 1,\r\n border: 0,\r\n },\r\n \"&.Mui-disabled + .MuiSwitch-track\": {\r\n opacity: 0.5,\r\n },\r\n [`.${switchClasses.thumb}`]: {\r\n color: theme.palette.common.white,\r\n },\r\n },\r\n },\r\n [`.${switchClasses.track}`]: {\r\n backgroundColor: theme.palette.common.white,\r\n borderRadius: theme.radius?.default,\r\n border: `1px solid ${theme.palette.grey[400]}`,\r\n opacity: 1,\r\n \"&:before, &:after\": {\r\n content: '\"\"',\r\n position: \"absolute\",\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n width: 16,\r\n height: 16,\r\n },\r\n \"&:before\": {\r\n backgroundImage: `url('data:image/svg+xml;utf8,')`,\r\n left: 12,\r\n },\r\n \"&:after\": {\r\n backgroundImage: `url('data:image/svg+xml;utf8,')`,\r\n right: 12,\r\n },\r\n },\r\n \"&:hover\": {\r\n [`.${switchClasses.track}`]: {\r\n border: `1px solid ${theme.colors?.primary}`,\r\n },\r\n },\r\n // TODO: small flag does not work, we have to check this again\r\n [`.${switchClasses.thumb}`]: {\r\n boxShadow: \"none\",\r\n width: 16,\r\n height: 16,\r\n marginLeft: 2,\r\n color: theme.palette.grey[300],\r\n borderRadius: theme.radius?.default,\r\n },\r\n [`&.${switchClasses.sizeSmall}`]: {\r\n width: \"58px\",\r\n height: \"34px\",\r\n\r\n [`.${switchClasses.track}`]: {\r\n backgroundColor: theme.palette.common.white,\r\n borderRadius: theme.radius,\r\n border: `1px solid ${colors.grey[400]}`,\r\n opacity: 1,\r\n\r\n \"&:before, &:after\": {\r\n content: '\"\"',\r\n position: \"absolute\",\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n width: 16,\r\n height: 16,\r\n },\r\n \"&:before\": {\r\n backgroundImage: `url('data:image/svg+xml;utf8,')`,\r\n left: 12,\r\n },\r\n \"&:after\": {\r\n backgroundImage: `url('data:image/svg+xml;utf8,')`,\r\n right: 12,\r\n },\r\n },\r\n [`.${switchClasses.switchBase}`]: {\r\n padding: \"6px\",\r\n\r\n \"&.Mui-checked\": {\r\n transform: \"translateX(20px)\",\r\n\r\n \"& + .MuiSwitch-track\": {\r\n opacity: 1,\r\n border: 0,\r\n },\r\n \"&.Mui-disabled + .MuiSwitch-track\": {\r\n opacity: 0.5,\r\n },\r\n [`.${switchClasses.thumb}`]: {\r\n color: theme.palette.common.white,\r\n },\r\n },\r\n },\r\n },\r\n}))\r\n\r\nexport function Switch({ label, labelPlacement, size, formControlLabelSx, typographySx, ...switchProps }: SwitchProps) {\r\n return (\r\n }\r\n label={\r\n \r\n {label}\r\n \r\n }\r\n labelPlacement={labelPlacement ?? \"end\"}\r\n />\r\n )\r\n}\r\n","import { FC } from \"react\"\r\nimport { IconButtonProps, styled } from \"@mui/material\"\r\nimport { IconButton } from \"../button\"\r\n\r\nexport const ArrowUp: FC = styled(IconButton)(({ theme }) => ({\r\n padding: 0,\r\n margin: 0,\r\n overflow: \"hidden\",\r\n svg: {\r\n transform: \"scale(1.2) translateY(1px)\",\r\n },\r\n \"&:hover\": {\r\n svg: {\r\n fill: theme.palette.primary.main,\r\n },\r\n },\r\n}))\r\n\r\nexport const ArrowDown: FC = styled(IconButton)(({ theme }) => ({\r\n padding: 0,\r\n margin: 0,\r\n overflow: \"hidden\",\r\n svg: {\r\n transform: \"scale(1.2) translateY(-1px)\",\r\n },\r\n \"&:hover\": {\r\n background: theme.palette.highlight.dark,\r\n backgroundColor: theme.palette.highlight.main,\r\n svg: {\r\n fill: theme.palette?.primary.main,\r\n },\r\n },\r\n}))\r\n","import { ChangeEventHandler, FocusEventHandler, forwardRef, useCallback, useEffect, useMemo, useRef, useState } from \"react\"\r\nimport {\r\n alpha,\r\n filledInputClasses,\r\n FilledTextFieldProps,\r\n formHelperTextClasses,\r\n inputLabelClasses,\r\n StandardTextFieldProps,\r\n styled,\r\n TextField as MuiTextField,\r\n TextFieldProps as MuiTextFieldProps,\r\n colors,\r\n outlinedInputClasses,\r\n FilledInputProps,\r\n Stack,\r\n CSSObject,\r\n stackClasses,\r\n inputBaseClasses,\r\n tooltipClasses,\r\n} from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Decimal } from \"decimal.js-light\"\r\nimport { IconButton } from \"../button\"\r\nimport { Icon } from \"../Icons\"\r\nimport { Typography } from \"../typographie\"\r\nimport { ArrowUp, ArrowDown } from \"./Arrows\"\r\nimport { Tooltip } from \"../tooltip\"\r\n\r\nexport type TextFieldProps = (MuiTextFieldProps | StandardTextFieldProps | FilledTextFieldProps) & {\r\n variant?: \"filled\" | \"standard\" | \"outlined\" | undefined\r\n inputCounter?: boolean\r\n clearButton?: boolean\r\n hideNumericCounter?: boolean\r\n errorHandling?: ErrorHandling[]\r\n validateNow?: boolean\r\n onValidationChange?(hasValidationError: boolean): void\r\n}\r\n\r\nexport type ErrorHandling = {\r\n pattern?: string\r\n errorMessage: string\r\n}\r\n\r\nconst DEFAULT_INPUTPROPS = {\r\n max: 9999,\r\n min: 1,\r\n step: 1,\r\n}\r\n\r\nconst StyledTextField = styled(MuiTextField, {\r\n shouldForwardProp: (prop) =>\r\n ![\"onValidationChange\", \"errorHandling\", \"inputCounter\", \"clearButton\", \"endAdornment\", \"disableUnderline\"].includes(prop as string),\r\n})(({ theme, size, hideNumericCounter, hiddenLabel }) => {\r\n const styles: CSSObject = {\r\n boxSizing: \"border-box\",\r\n marginTop: \"14px\",\r\n\r\n ...(size === \"large\" && {\r\n marginTop: \"0\",\r\n }),\r\n\r\n // Size Extralarge\r\n ...(size === \"extralarge\" && {\r\n marginTop: \"0\",\r\n }),\r\n\r\n // Hide Counter on type=\"number\"\r\n ...(hideNumericCounter && {\r\n \"& input[type=number]\": {\r\n MozAppearance: \"textfield\",\r\n },\r\n \"& input[type=number]::-webkit-outer-spin-button\": {\r\n WebkitAppearance: \"none\",\r\n margin: 0,\r\n },\r\n \"& input[type=number]::-webkit-inner-spin-button\": {\r\n WebkitAppearance: \"none\",\r\n margin: 0,\r\n },\r\n }),\r\n\r\n // Display error Helpertext\r\n \"&:hover\": {\r\n [`.${formHelperTextClasses.root}`]: {\r\n [`&.${formHelperTextClasses.error}`]: {\r\n display: \"block\",\r\n },\r\n },\r\n\r\n [` .${stackClasses.root}`]: {\r\n visibility: \"visible\",\r\n },\r\n },\r\n\r\n // Counter\r\n \"& .inputCounter\": {\r\n position: \"absolute\",\r\n top: \"-17px\",\r\n fontSize: \"10px\",\r\n right: \"6px\",\r\n\r\n // Size small\r\n ...(size === \"small\" && {\r\n top: \"-19px\",\r\n }),\r\n\r\n // Size Large\r\n ...(size === \"large\" && {\r\n top: \"-5px\",\r\n }),\r\n\r\n // Size Extralarge\r\n ...(size === \"extralarge\" && {\r\n top: \"-2px\",\r\n }),\r\n },\r\n\r\n // Close Icon, EndAdornment\r\n \"& .inputButtons\": {\r\n right: \"5px\",\r\n padding: \"4px\",\r\n\r\n // Size Large\r\n ...(size === \"large\" && {\r\n top: \"8px\",\r\n }),\r\n\r\n // Size Extralarge\r\n ...(size === \"extralarge\" && {\r\n top: \"14px\",\r\n }),\r\n },\r\n\r\n // Label\r\n [`.${inputLabelClasses.filled}`]: {\r\n fontSize: \"10px\",\r\n transform: \"translate(4px,-14px) scale(1)\",\r\n textTransform: \"uppercase\",\r\n opacity: 0.54,\r\n\r\n \"&.Mui-focused, &.MuiFormLabel-filled\": {\r\n transform: \"translate(4px,-14px) scale(1)\",\r\n },\r\n\r\n // Size small\r\n ...(size === \"small\" && {\r\n fontSize: \"9px\",\r\n transform: \"translate(2px,-12px) scale(1)\",\r\n \"&.Mui-focused, &.MuiFormLabel-filled\": {\r\n transform: \"translate(2px,-12px) scale(1)\",\r\n },\r\n }),\r\n\r\n // Size Large\r\n ...(size === \"large\" && {\r\n fontSize: \"10px\",\r\n transform: \"translate(9px,2px) scale(0.87)\",\r\n \"&.Mui-focused, &.MuiFormLabel-filled\": {\r\n transform: \"translate(9px,2px) scale(0.87)\",\r\n },\r\n }),\r\n\r\n // Size Extralarge\r\n ...(size === \"extralarge\" && {\r\n fontSize: \"10px\",\r\n transform: \"translate(12px,3px) scale(1)\",\r\n \"&.Mui-focused, &.MuiFormLabel-filled\": {\r\n transform: \"translate(12px,3px) scale(1)\",\r\n },\r\n }),\r\n },\r\n\r\n // Input\r\n [`.${filledInputClasses.input}`]: {\r\n background: \"none\",\r\n\r\n // Size Medium\r\n padding: \"8px 9px\",\r\n fontSize: theme.overwrites?.components?.textfield?.fontSize?.medium || \"14px\",\r\n lineHeight: theme.overwrites?.components?.textfield?.fontSize?.medium || \"14px\",\r\n height: theme.overwrites?.components?.textfield?.fontSize?.medium || \"14px\",\r\n\r\n // Size Small\r\n ...(size === \"small\" && {\r\n padding: \"6px\",\r\n fontSize: theme.overwrites?.components?.textfield?.fontSize?.small || \"12px\",\r\n lineHeight: theme.overwrites?.components?.textfield?.fontSize?.small || \"12px\",\r\n height: theme.overwrites?.components?.textfield?.fontSize?.small || \"12px\",\r\n }),\r\n\r\n // Size Large\r\n ...(size === \"large\" && {\r\n padding: hiddenLabel ? \"11px 9px\" : \"16px 9px 6px\",\r\n fontSize: theme.overwrites?.components?.textfield?.fontSize?.large || \"14px\",\r\n lineHeight: theme.overwrites?.components?.textfield?.fontSize?.large || \"14px\",\r\n height: theme.overwrites?.components?.textfield?.fontSize?.large || \"14px\",\r\n }),\r\n\r\n // Size Extralarge\r\n ...(size === \"extralarge\" && {\r\n padding: hiddenLabel ? \"15px 11px\" : \"21px 11px 9px\",\r\n fontSize: theme.overwrites?.components?.textfield?.fontSize?.extralarge || \"16px\",\r\n lineHeight: theme.overwrites?.components?.textfield?.fontSize?.extralarge || \"16px\",\r\n height: theme.overwrites?.components?.textfield?.fontSize?.extralarge || \"16px\",\r\n }),\r\n\r\n \"&.MuiSelect-select\": {\r\n height: \"17px\",\r\n },\r\n\r\n \"&.MuiInputBase-inputMultiline\": {\r\n padding: 0,\r\n },\r\n },\r\n\r\n // Variant Outline\r\n [`.${outlinedInputClasses.input}`]: {\r\n padding: \"6px 11px\",\r\n },\r\n\r\n // Filled Root\r\n [`.${filledInputClasses.root}`]: {\r\n border: `1px solid ${theme.overwrites?.components?.textfield?.border?.color || \"#e2e2e1\"}`,\r\n borderRadius: theme.radius?.default || \"3px\",\r\n backgroundColor: theme.overwrites?.components?.textfield?.backgroundColor || colors.grey[100],\r\n transition: theme.transitions.create([\"border-color\", \"background-color\", \"box-shadow\"]),\r\n\r\n \"&:hover\": {\r\n backgroundColor: theme.overwrites?.components?.textfield?.backgroundColor || colors.grey[100],\r\n },\r\n [`&.${filledInputClasses.focused}`]: {\r\n backgroundColor: theme.overwrites?.components?.textfield?.backgroundColor || colors.grey[100],\r\n borderColor: theme.palette.primary.main,\r\n boxShadow: `${alpha(theme.palette.primary.main, 0.25)} 0 0 0 2px`,\r\n },\r\n [`&.${filledInputClasses.error}`]: {\r\n borderColor: theme.palette.error.main,\r\n borderBottom: `4px solid ${theme.palette.error.main}`,\r\n marginBottom: \"0px\",\r\n [`&.${filledInputClasses.focused}`]: {\r\n boxShadow: `${alpha(theme.palette.error.main, 0.25)} 0 0 0 2px`,\r\n },\r\n },\r\n },\r\n\r\n \".MuiInputBase-multiline\": {\r\n paddingTop: \"14px\",\r\n [`&.MuiInputBase-sizeSmall`]: {\r\n paddingTop: \"6px\",\r\n },\r\n ...(size === \"large\" && {\r\n paddingTop: \"28px\",\r\n }),\r\n },\r\n\r\n // Helper Text / Error Text\r\n [`.${formHelperTextClasses.root}`]: {\r\n [`&.${formHelperTextClasses.contained}`]: {\r\n display: \"none\",\r\n [`&.${formHelperTextClasses.error}`]: {\r\n [`&.${formHelperTextClasses.focused}`]: {\r\n display: \"block\",\r\n },\r\n position: \"absolute\",\r\n bottom: 0,\r\n marginLeft: \"0\",\r\n marginTop: \"0\",\r\n borderRadius: \"0 0 4px 4px\",\r\n color: theme.palette.error.contrastText,\r\n backgroundColor: theme.palette.error.main,\r\n width: \"100%\",\r\n fontSize: \"11px\",\r\n paddingLeft: \"5px\",\r\n transform: \"translateY(15px)\",\r\n },\r\n },\r\n },\r\n\r\n \"input[type=number]::-webkit-outer-spin-button, input[type=number]::-webkit-inner-spin-button\": {\r\n WebkitAppearance: \"none\",\r\n appearance: \"none\",\r\n MozAppearance: \"textfield\",\r\n margin: 0,\r\n },\r\n \"input[type=number]\": {\r\n MozAppearance: \"textfield\",\r\n },\r\n \".MuiInputLabel-asterisk\": {\r\n color: theme.palette.error.main,\r\n },\r\n }\r\n return styles\r\n})\r\n\r\nconst valueToNumber = (value: string): number | null => {\r\n return /^-?[\\d\\.]+$/.test(value) ? parseFloat(value) : null\r\n}\r\n\r\nconst ArrowStack = styled(Stack)(() => ({\r\n visibility: \"hidden\",\r\n [`.${inputBaseClasses.root}:hover .${inputBaseClasses.input}~&, .${inputBaseClasses.input}:active~&, .${inputBaseClasses.input}:focus~&`]: {\r\n visibility: \"visible\",\r\n },\r\n}))\r\n\r\nconst StyledTooltip = styled(Tooltip)({\r\n [`.${tooltipClasses.tooltipPlacementBottom}`]: {\r\n marginTop: \"8px !important\",\r\n textAlign: \"center\",\r\n },\r\n})\r\n\r\n/**\r\n * The `TextField` is a NOT the real Material TextBox.\r\n * It overrides a lot of styles to looks like our well known TextField\r\n *\r\n * return ;\r\n * ```\r\n *\r\n * API:\r\n * - [TextField API](https://mui.com/api/text-field/)\r\n * - inherits [FormControl API](https://mui.com/api/form-control/)\r\n */\r\nexport const TextField = forwardRef((props, ref) => {\r\n const { translateText } = useLocalization()\r\n const inputRefLocal = useRef(null)\r\n const inputRef = (typeof props.inputRef !== \"function\" ? props.inputRef : undefined) ?? inputRefLocal\r\n const { onBlur, onChange, error, ...restProps } = props\r\n const [errorMessage, setErrorMessage] = useState()\r\n const [validateNow, setValidateNow] = useState(false)\r\n\r\n useEffect(() => {\r\n setValidateNow(!!props.validateNow)\r\n }, [props.validateNow])\r\n\r\n useEffect(() => {\r\n setValidateNow(true)\r\n }, [props.errorHandling, props.value, props.required])\r\n\r\n const errorHandling = useMemo(() => {\r\n if (props.required && !props.errorHandling?.length) {\r\n return [{ pattern: \"\\\\w+\", errorMessage: translateText(13831) }]\r\n }\r\n return props.errorHandling ?? []\r\n }, [props.errorHandling, props.required])\r\n\r\n const validateMinMaxValue = useCallback(\r\n (value: number): string => {\r\n const { max = DEFAULT_INPUTPROPS.max, min = DEFAULT_INPUTPROPS.min } = props.inputProps || DEFAULT_INPUTPROPS\r\n const preValidatedValue = value > max ? max : value\r\n\r\n return (preValidatedValue < min ? min : preValidatedValue).toString()\r\n },\r\n [props.inputProps]\r\n )\r\n function validateNumber(value: number) {\r\n const { max = DEFAULT_INPUTPROPS.max, min = DEFAULT_INPUTPROPS.min } = props.inputProps || DEFAULT_INPUTPROPS\r\n return value <= max && value >= min\r\n }\r\n\r\n const setRawInputValue = useCallback((val: string) => {\r\n if (inputRef.current) {\r\n // https://stackoverflow.com/questions/23892547/what-is-the-best-way-to-trigger-onchange-event-in-react-js/46012210#46012210\r\n // React doesn't recognize the setting of ref.value = \"\"\r\n const inputPrototype = props.multiline ? window.HTMLTextAreaElement.prototype : window.HTMLInputElement.prototype\r\n\r\n const currentInputRef = inputRef.current.node ?? inputRef.current\r\n\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(inputPrototype, \"value\")?.set\r\n nativeInputValueSetter?.call(currentInputRef, val)\r\n currentInputRef.dispatchEvent(new Event(\"input\", { bubbles: true, cancelable: true }))\r\n currentInputRef.focus({})\r\n }\r\n }, [])\r\n\r\n const resetValue = () => {\r\n setRawInputValue(\"\")\r\n }\r\n\r\n const increaseValue = () => {\r\n if (!inputRef.current || props.type !== \"number\") {\r\n return\r\n }\r\n\r\n const possibleValue = valueToNumber(inputRef.current.value)\r\n const step = inputRef.current?.step || DEFAULT_INPUTPROPS.step\r\n const value = possibleValue ? new Decimal(possibleValue).add(step).toNumber() : step\r\n\r\n setRawInputValue(validateMinMaxValue(value))\r\n }\r\n\r\n const decreaseValue = () => {\r\n if (!inputRef.current || props.type !== \"number\") {\r\n return\r\n }\r\n\r\n const possibleValue = valueToNumber(inputRef.current.value)\r\n const step = inputRef.current?.step || DEFAULT_INPUTPROPS.step\r\n const minVal = inputRef.current?.min < step ? inputRef.current?.min : step\r\n const value = possibleValue ? new Decimal(possibleValue).sub(step).toNumber() : minVal\r\n\r\n setRawInputValue(validateMinMaxValue(value))\r\n }\r\n\r\n function validate() {\r\n setValidateNow(false)\r\n if (errorHandling.length) {\r\n if (props.type === \"number\") {\r\n const value = Number(props.value ?? -1)\r\n if (!validateNumber(value)) {\r\n setErrorMessage(translateText(13831))\r\n return false\r\n }\r\n }\r\n\r\n const value = String(props.value ?? \"\")\r\n const errorWithoutPattern = errorHandling.find((handling) => !handling.pattern && !!handling.errorMessage)\r\n\r\n if (errorWithoutPattern) {\r\n setErrorMessage(errorWithoutPattern.errorMessage)\r\n return false\r\n }\r\n\r\n const errorWithPattern = errorHandling.find((val) => !!val.pattern && !value.match(val.pattern))\r\n\r\n if (errorWithPattern) {\r\n setErrorMessage(errorWithPattern.errorMessage)\r\n return false\r\n }\r\n }\r\n\r\n setErrorMessage(undefined)\r\n return true\r\n }\r\n\r\n useEffect(() => {\r\n if (validateNow) {\r\n validate()\r\n }\r\n }, [validateNow])\r\n\r\n const hasValidationError = error || !!errorMessage\r\n const requireEndAdornment =\r\n props.type === \"number\" || props.InputProps?.endAdornment || props.inputCounter || props.clearButton || hasValidationError\r\n\r\n useEffect(() => {\r\n props.onValidationChange?.(hasValidationError)\r\n }, [hasValidationError, props.onValidationChange])\r\n\r\n const overwrittenInputProps: Partial = {\r\n disableUnderline: true,\r\n ...props.InputProps,\r\n endAdornment: requireEndAdornment ? (\r\n \r\n {props.inputCounter && (\r\n \r\n {(props.value as string)?.length ?? 0}\r\n {!!props.inputProps?.maxLength && `/${props.inputProps.maxLength}`}\r\n \r\n )}\r\n {(props.InputProps?.endAdornment || props.clearButton) && (\r\n \r\n {props.InputProps?.endAdornment}\r\n {props.clearButton && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {props.type === \"number\" && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {hasValidationError && (\r\n \r\n \r\n \r\n )}\r\n \r\n ) : undefined,\r\n }\r\n\r\n const onChangeHandler: ChangeEventHandler = useCallback(\r\n (e) => {\r\n const currentTargetValue = e.currentTarget?.value ?? e.target.value\r\n const value = valueToNumber(currentTargetValue)\r\n const validatedValue = props.type === \"number\" && value ? validateMinMaxValue(value) : currentTargetValue\r\n\r\n setRawInputValue(validatedValue)\r\n onChange?.({\r\n ...e,\r\n target: {\r\n ...e.target,\r\n value: validatedValue,\r\n },\r\n })\r\n },\r\n [onChange, validateMinMaxValue, setRawInputValue, props.type]\r\n )\r\n\r\n const onBlurHandler: FocusEventHandler = useCallback(\r\n (e) => {\r\n setValidateNow(true)\r\n if (!(e.relatedTarget && e.currentTarget?.parentElement?.contains(e.relatedTarget)) && onBlur) {\r\n onBlur(e)\r\n }\r\n },\r\n [onBlur]\r\n )\r\n\r\n return (\r\n \r\n )\r\n})\r\n","import { ReactElement, useCallback, useEffect, useRef, useState, FC } from \"react\"\r\nimport { Box, ClickAwayListener, Tooltip as MuiTooltip } from \"@mui/material\"\r\nimport { TooltipProps } from \"./index\"\r\nimport { useDebounce } from \"../../hooks/useDebounce\"\r\n\r\nexport const TOOLTIP_DEFAULT_DELAY = 500\r\n\r\nfunction isFunctionComponent(component: ReactElement) {\r\n return (\r\n !component ||\r\n typeof component.type === \"string\" ||\r\n (!!component.type.$$typeof &&\r\n (!component.type.__emotion_base || typeof component.type.__emotion_base === \"string\" || !!component.type.__emotion_base.$$typeof))\r\n )\r\n}\r\n\r\nexport const TooltipComponent: FC = (props) => {\r\n const { className, onClickAway, noDelay, children: childrenProp, ...rest } = props\r\n const tooltipRef = useRef(null)\r\n const [disabledHover, setDisabledHover] = useState(false)\r\n\r\n // Check if it's an old class component and wrap it with a div, if it's so. Otherwise the tooltip causes problems setting listener on an class component ref\r\n const children = isFunctionComponent(childrenProp) ? childrenProp :
    {childrenProp}
    \r\n // console.log(\"TOOLTIP CHILDREN\", childrenProp)\r\n\r\n const wheelEventHandler = useDebounce((e) => onClickAway?.(e), 50)\r\n\r\n const scrollEventHandler = useCallback(\r\n (e: WheelEvent) => {\r\n if (tooltipRef.current && !tooltipRef.current?.contains(e.target as Node)) {\r\n wheelEventHandler(e)\r\n }\r\n },\r\n [tooltipRef, wheelEventHandler]\r\n )\r\n\r\n useEffect(() => {\r\n if (window.addEventListener && props.open) {\r\n if (!props.preventCloseOnScroll) {\r\n window.addEventListener(\"wheel\", scrollEventHandler)\r\n }\r\n }\r\n\r\n return () => {\r\n window.removeEventListener(\"wheel\", scrollEventHandler)\r\n }\r\n }, [scrollEventHandler, props.preventCloseOnScroll, props.open])\r\n\r\n const tooltipProps = {\r\n ...rest,\r\n enterDelay: noDelay ? undefined : (props.enterDelay ?? TOOLTIP_DEFAULT_DELAY),\r\n enterNextDelay: noDelay ? undefined : (props.enterNextDelay ?? TOOLTIP_DEFAULT_DELAY),\r\n }\r\n\r\n const handleMouseEnter = useCallback((e: React.MouseEvent) => {\r\n const element = e.currentTarget\r\n if (props.showOnlyOnOverflow && element) {\r\n if (element.offsetWidth >= element.scrollWidth) {\r\n setDisabledHover(true)\r\n }\r\n }\r\n }, [])\r\n\r\n const handleMouseLeave = () => setDisabledHover(false)\r\n\r\n if (!tooltipProps.title) {\r\n return props.children\r\n }\r\n\r\n if (onClickAway) {\r\n return (\r\n \r\n {/* Div shall not be removed since the click in one item will instantly close the tooltip. In the case of compilations a new one couldn't be created */}\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","/* eslint-disable prefer-destructuring */\r\nimport { FC, ReactNode } from \"react\"\r\nimport { TooltipProps as MuiTooltipProps, styled, tooltipClasses } from \"@mui/material\"\r\nimport { Omit } from \"@tm/utils\"\r\nimport { TooltipComponent } from \"./component\"\r\n\r\nexport interface TooltipProps extends Omit {\r\n title?: ReactNode\r\n variant?: \"dark\" | \"light\" | \"highlight\"\r\n color?: \"primary\" | \"highlight\" | \"warning\"\r\n width?: number | string\r\n onClickAway?: (event: MouseEvent | TouchEvent | WheelEvent) => void\r\n noDelay?: boolean\r\n preventCloseOnScroll?: boolean\r\n withoutBordercolor?: boolean\r\n showOnlyOnOverflow?: boolean\r\n noWidthLimit?: boolean\r\n contentPadding?: string\r\n}\r\nexport const Tooltip: FC = styled(TooltipComponent, {\r\n shouldForwardProp: (prop: string) =>\r\n ![\"variant\", \"color\", \"width\", \"withoutBordercolor\", \"noMaxWidth\", \"contentPadding\", \"noWidthLimit\"].includes(prop),\r\n name: \"Tooltip\",\r\n slot: \"root\",\r\n overridesResolver: (props, styles) => props.variant === \"light\" && styles.light,\r\n})(({ theme, variant = \"dark\", color, width, withoutBordercolor, noWidthLimit, contentPadding }) => {\r\n const colorDark = theme.palette.grey[800]\r\n let backgroundColor = colorDark\r\n let borderColor = colorDark\r\n switch (variant) {\r\n case \"light\":\r\n backgroundColor = theme.palette.grey[50]\r\n break\r\n case \"highlight\":\r\n backgroundColor = theme.palette.highlight.main\r\n break\r\n default:\r\n }\r\n switch (color) {\r\n case \"primary\":\r\n case \"highlight\":\r\n case \"warning\": {\r\n borderColor = theme.palette[color].main\r\n break\r\n }\r\n default:\r\n }\r\n return {\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n maxWidth: width,\r\n backgroundColor,\r\n color: theme.palette.getContrastText(backgroundColor),\r\n padding: contentPadding ?? theme.spacing(),\r\n fontFamily: theme.font?.fontFamily?.secondary,\r\n fontSize: theme.font?.textSize?.s || \"14px\",\r\n ...(!withoutBordercolor && {\r\n border: `1px solid ${borderColor}`,\r\n }),\r\n ...(noWidthLimit && {\r\n maxWidth: \"none\",\r\n }),\r\n },\r\n [`& .${tooltipClasses.arrow}`]: {\r\n color: withoutBordercolor ? backgroundColor : borderColor,\r\n ...(!withoutBordercolor && {\r\n \"&::before\": {\r\n border: borderColor ? `1px solid ${borderColor}` : undefined,\r\n backgroundColor,\r\n },\r\n }),\r\n },\r\n [`.${tooltipClasses.popper}[data-popper-placement*=\"bottom\"] &`]: {\r\n marginTop: 8,\r\n },\r\n }\r\n})\r\n","import { Typography as MuiTypography, TypographyProps as MuiTypographyProps, TypographyTypeMap, styled } from \"@mui/material\"\r\nimport { ElementType, ForwardedRef, ReactElement, forwardRef } from \"react\"\r\n\r\nexport type TypographyProps = MuiTypographyProps & {\r\n maxLines?: number\r\n}\r\n\r\nconst StyledTypography = styled(MuiTypography, {\r\n shouldForwardProp: (prop) => prop !== \"maxLines\",\r\n})(({ maxLines }) => {\r\n if (maxLines === 1) {\r\n return {\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n }\r\n }\r\n\r\n if ((maxLines ?? 0) > 1) {\r\n return {\r\n overflow: \"hidden\",\r\n display: \"-webkit-box\",\r\n \"-webkit-line-clamp\": `${maxLines}`,\r\n \"-webkit-box-orient\": \"vertical\",\r\n }\r\n }\r\n})\r\n\r\n// reexport components with \"components\" flag => https://mui.com/material-ui/guides/composition/#with-typescript\r\nfunction TypographyComponent(props: TypographyProps, ref: ForwardedRef) {\r\n const { highPriority, ...rest } = props\r\n return \r\n}\r\n\r\n// Cast necessary as \"forwardRef\" is not working with a generic component (see https://stackoverflow.com/a/58473012/15647468)\r\nexport const Typography = forwardRef(TypographyComponent) as (\r\n p: TypographyProps }>\r\n) => ReactElement\r\n","import { useEffect } from \"react\"\r\n\r\nimport { debounce } from \"../utils/debounce\"\r\n\r\nexport const useDebounce = (fn: (args: A) => R, ms: number): ((args: A) => Promise) => {\r\n const [debouncedFun, teardown] = debounce(fn, ms)\r\n\r\n useEffect(() => () => teardown(), [teardown])\r\n\r\n return debouncedFun\r\n}\r\n","import { NextTheme } from \"./themeTypes\"\r\n\r\nexport const DEFAULT_THEME: NextTheme = {\r\n name: \"default\",\r\n colors: {\r\n primary: \"#2196f3\",\r\n secondary: \"#2a517f\",\r\n highlight: \"#f3ae21\",\r\n success: \"#c2e617\",\r\n warning: \"#ffeb3b\",\r\n info: \"#0288d1\",\r\n danger: \"#f44336\",\r\n dark: \"#202020\",\r\n light: \"#fff\",\r\n header: \"#2c63c9\",\r\n background: \"#fff\",\r\n text: \"#494949\",\r\n deepBlack: \"#000000\",\r\n },\r\n opacity: {\r\n primary: 0.87,\r\n secondary: 0.54,\r\n disabled: 0.38,\r\n },\r\n margin: {\r\n xs: \"0.1em\",\r\n s: \"0.25em\",\r\n m: \"0.5em\",\r\n l: \"0.75em\",\r\n xl: \"1em\",\r\n },\r\n box: {\r\n radius: \"3px\",\r\n },\r\n radius: {\r\n default: \"3px\",\r\n },\r\n font: {\r\n fontFamily: {\r\n primary: \"Open Sans, Arial, Helvetica, sans-serif\",\r\n secondary: \"Roboto Condensed, Arial Narrow, Helvetica, sans-serif\",\r\n headlines: \"Open Sans, Arial, Helvetica, sans-serif\",\r\n serif: \"Georgia, Times, serif\",\r\n },\r\n boldWeight: 600,\r\n lineHeight: 1.2,\r\n textSize: {\r\n xs: \"0.75rem\",\r\n s: \"0.875rem\",\r\n m: \"1rem\",\r\n l: \"1.125rem\",\r\n xl: \"1.25rem\",\r\n },\r\n subtitleSize: {\r\n xl: \"1.0625rem\",\r\n l: \"0.9375rem\",\r\n m: \"0.8125rem\",\r\n s: \"0.6825rem\",\r\n xs: \"0.5625rem\",\r\n },\r\n headlineSize: {\r\n xl: \"2.5rem\",\r\n l: \"2rem\",\r\n m: \"1.75rem\",\r\n s: \"1.5rem\",\r\n xs: \"1.25rem\",\r\n },\r\n h1: {\r\n fontSize: \"24px\",\r\n fontWeight: 400,\r\n color: \"#202020\",\r\n },\r\n h2: {\r\n fontSize: \"22px\",\r\n fontWeight: 400,\r\n color: \"#202020\",\r\n },\r\n h3: {\r\n fontSize: \"20px\",\r\n fontWeight: 400,\r\n color: \"#202020\",\r\n },\r\n h4: {\r\n fontSize: \"16px\",\r\n fontWeight: 400,\r\n color: \"#202020\",\r\n },\r\n button: {\r\n fontSize: \"14px\",\r\n },\r\n body1: {\r\n fontSize: \"16px\",\r\n color: \"#202020\",\r\n },\r\n body2: {\r\n fontSize: \"14px\",\r\n color: \"#202020\",\r\n },\r\n body3: {\r\n fontSize: \"12px\",\r\n color: \"#202020\",\r\n },\r\n label: {\r\n fontSize: \"12px\",\r\n color: \"#202020\",\r\n },\r\n },\r\n animation: {\r\n transition: \"all .2s ease\",\r\n },\r\n pageNavigation: {\r\n layout: \"\",\r\n itemColor: \"\",\r\n itemHoverColor: \"\",\r\n itemBorderLeftColor: \"\",\r\n },\r\n breakpoints: {\r\n s: \"640px\",\r\n m: \"1024px\",\r\n l: \"1280px\",\r\n xl: \"1680px\",\r\n },\r\n}\r\n","import { createTheme, darken, getContrastRatio, lighten, alpha, ComponentsOverrides, ComponentsVariants, Theme, colors } from \"@mui/material\"\r\nimport { CSSProperties } from \"react\"\r\nimport {\r\n NextAnimation,\r\n NextBox,\r\n NextColors,\r\n NextFont,\r\n NextGeneral,\r\n NextLayout,\r\n NextLogin,\r\n NextOpacity,\r\n NextOverwrites,\r\n NextPageNavigation,\r\n NextRadius,\r\n NextTheme,\r\n StyleSizes,\r\n} from \"./themeTypes\"\r\nimport { DEFAULT_THEME } from \"./defaultTheme\"\r\nimport { GlobalNavigationItemProps } from \"../components/GlobalNavigation/GlobalNavigationItem\"\r\nimport { TooltipProps } from \"../generics/tooltip\"\r\n\r\n// https://mui.com/material-ui/customization/typography/\r\n\r\ndeclare module \"@mui/material/styles\" {\r\n // Declare Custom theme Props\r\n interface ComponentNameToClassKey {\r\n GlobalNavigationItem: \"root\"\r\n Tooltip: \"root\"\r\n }\r\n\r\n interface ComponentsPropsList {\r\n GlobalNavigationItem: Partial\r\n Tooltip: Partial\r\n }\r\n\r\n interface Components {\r\n GlobalNavigationItem?: {\r\n defaultProps?: ComponentsPropsList[\"GlobalNavigationItem\"]\r\n styleOverrides?: ComponentsOverrides[\"GlobalNavigationItem\"]\r\n // styleOverrides?: Partial>\r\n variants?: ComponentsVariants[\"GlobalNavigationItem\"]\r\n }\r\n Tooltip?: {\r\n defaultProps?: ComponentsPropsList[\"Tooltip\"]\r\n styleOverrides?: ComponentsOverrides[\"Tooltip\"]\r\n variants?: ComponentsVariants[\"Tooltip\"]\r\n }\r\n }\r\n\r\n interface Theme {\r\n name?: string\r\n colors?: NextColors\r\n general?: NextGeneral\r\n layout?: NextLayout\r\n login?: NextLogin\r\n opacity?: NextOpacity\r\n margin?: StyleSizes\r\n radius?: NextRadius\r\n box?: NextBox\r\n font: NextFont\r\n animation?: NextAnimation\r\n pageNavigation?: NextPageNavigation\r\n overwrites?: NextOverwrites\r\n }\r\n // type Theme = Omit\r\n // Declare Custom Fonts\r\n interface TypographyVariants {\r\n body3: CSSProperties\r\n label: CSSProperties\r\n }\r\n\r\n // Declare Custom Colors\r\n interface Palette {\r\n highlight: Palette[\"primary\"]\r\n fallback: {\r\n highlightLight: string\r\n }\r\n }\r\n\r\n // # # # # # # # # # # # # # # # # # # #\r\n // allow configuration using `createTheme`\r\n // # # # # # # # # # # # # # # # # # # #\r\n interface ThemeOptions {\r\n name?: string\r\n colors?: NextColors\r\n general?: NextGeneral\r\n layout?: NextLayout\r\n login?: NextLogin\r\n opacity?: NextOpacity\r\n margin?: StyleSizes\r\n radius?: NextRadius\r\n box?: NextBox\r\n font?: NextFont\r\n animation?: NextAnimation\r\n pageNavigation?: NextPageNavigation\r\n overwrites?: NextOverwrites\r\n }\r\n\r\n interface PaletteOptions {\r\n highlight: PaletteOptions[\"primary\"]\r\n fallback: {\r\n highlightLight: string\r\n }\r\n }\r\n\r\n interface TypographyVariantsOptions {\r\n body3?: CSSProperties\r\n label?: CSSProperties\r\n }\r\n\r\n interface BreakpointOverrides {\r\n xxl: true\r\n }\r\n}\r\n\r\n// Declare Custom Colors\r\ndeclare module \"@mui/material/Button\" {\r\n interface ButtonPropsColorOverrides {\r\n highlight: true\r\n }\r\n interface ButtonPropsVariantOverrides {\r\n bordered: true\r\n textLight: true\r\n }\r\n interface ButtonPropsSizeOverrides {\r\n extralarge: true\r\n }\r\n}\r\n\r\ndeclare module \"@mui/material/IconButton\" {\r\n interface IconButtonPropsSizeOverrides {\r\n extralarge: true\r\n }\r\n}\r\ndeclare module \"@mui/material/InputBase\" {\r\n interface InputBasePropsSizeOverrides {\r\n large: true\r\n extralarge: true\r\n }\r\n}\r\n\r\n// Declare Custom Fonts\r\ndeclare module \"@mui/material/Typography\" {\r\n interface TypographyPropsVariantOverrides {\r\n body3: true\r\n label: true\r\n // disable default MUI Sizes\r\n h5: false\r\n h6: false\r\n subtitle1: false\r\n subtitle2: false\r\n caption: false\r\n overline: false\r\n button: false\r\n }\r\n}\r\n\r\ndeclare module \"@mui/material/Alert\" {\r\n interface AlertPropsVariantOverrides {\r\n standard: false\r\n }\r\n}\r\n\r\ndeclare module \"@mui/material/TextField\" {\r\n interface TextFieldPropsSizeOverrides {\r\n large: true\r\n extralarge: true\r\n }\r\n}\r\n\r\ndeclare module \"@mui/material/FormControl\" {\r\n interface FormControlPropsSizeOverrides {\r\n large: true\r\n extralarge: true\r\n }\r\n}\r\n\r\ndeclare module \"@mui/material/InputBase\" {\r\n interface InputBasePropsSizeOverrides {\r\n large: true\r\n extralarge: true\r\n }\r\n}\r\n\r\nconst ENV = \"dev\"\r\nconst DEFAULT_CONTRAST = 4.5 // 3 is a very low threshold (it's only used with a Large Icon/Text). Due to WCAG 2.1 Rule 1.4.3 a threshold of 4.5 is recommended, https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html\r\nexport const getContrastText = (background: string, nextTheme: NextTheme | Theme) => {\r\n const dark = nextTheme.colors?.dark ?? colors.grey[800]\r\n const light = nextTheme.colors?.light ?? colors.grey[100]\r\n const contrastThreshold = nextTheme?.palette?.contrastThreshold || DEFAULT_CONTRAST\r\n const contrastText = getContrastRatio(background, dark) >= contrastThreshold ? dark : light\r\n return contrastText\r\n}\r\n\r\nconst getNextTheme = async (catalogName: string): Promise => {\r\n const themeVariables = fetch(`${ENV}/styles/${catalogName}/theme.json`)\r\n .then((response) => response.json())\r\n .then((data) => data as NextTheme)\r\n .catch((e) => {\r\n // eslint-disable-next-line no-console\r\n console.log(\"FetchError: \", e)\r\n })\r\n const themeMui = fetch(`${ENV}/styles/${catalogName}/theme-mui.json`)\r\n .then((response) => response.json())\r\n .then((data) => data as NextTheme)\r\n .catch((e) => {\r\n // eslint-disable-next-line no-console\r\n console.log(\"FetchError: \", e)\r\n })\r\n const [variables, mui] = await Promise.allSettled([themeVariables, themeMui])\r\n let value = {} as NextTheme\r\n if (variables.status === \"rejected\") {\r\n return\r\n }\r\n if (variables.value) {\r\n value = { ...variables.value }\r\n }\r\n if (mui.status === \"fulfilled\" && mui.value) {\r\n value = { ...value, ...mui.value }\r\n }\r\n\r\n return value\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nexport const getTheme = async (catalogName: string) => {\r\n const nextTheme = await getNextTheme(catalogName)\r\n if (nextTheme) {\r\n return createNextMuiTheme(nextTheme)\r\n }\r\n return createTheme({ name: `unknownCatalogName: ${catalogName}` })\r\n}\r\n\r\n// Remove the unnecessary single quotes, usually used in fontFamily. They would cause errors in css\r\nfunction removeSingleQuotes(theme: NextTheme): NextTheme {\r\n let json = JSON.stringify(theme)\r\n json = json.replaceAll(/(\"'|'\")/g, '\"')\r\n return JSON.parse(json)\r\n}\r\n\r\n/** Override Mui Default Colors if included in next Theme */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nexport const createNextMuiTheme = (theme: NextTheme) => {\r\n const nextTheme = removeSingleQuotes(theme)\r\n const font = {\r\n ...DEFAULT_THEME.font,\r\n ...nextTheme?.font,\r\n }\r\n\r\n if (!font.fontFamily.secondary) {\r\n font.fontFamily.secondary = \"inherit\"\r\n }\r\n if (!font.fontFamily.condensed) {\r\n font.fontFamily.condensed = font.fontFamily.secondary\r\n }\r\n\r\n // Todo: need a better solution, quick fix for Sass-Loader json string\r\n // https://www.npmjs.com/package/node-sass-json-importer#importing-strings\r\n // TODO: remove this, we must exclude the json from the sass deployment\r\n const fontFamily = font?.fontFamily?.primary\r\n const buttonFontFamily = nextTheme.overwrites?.components?.button?.primary?.fontFamily\r\n const tabFontFamily = nextTheme.overwrites?.components?.tabs?.font?.fontFamily\r\n const borderRadius = nextTheme.radius?.default || DEFAULT_THEME.radius?.default\r\n\r\n return createTheme({\r\n name: nextTheme.name,\r\n palette: {\r\n primary: {\r\n /** generate Light, Dark and contrastText colors based on MainColor */\r\n main: nextTheme.colors?.primary || DEFAULT_THEME.colors?.primary,\r\n },\r\n secondary: {\r\n main: nextTheme.colors?.secondary || DEFAULT_THEME.colors.secondary,\r\n },\r\n error: {\r\n main: nextTheme.colors?.danger || DEFAULT_THEME.colors.danger,\r\n },\r\n warning: {\r\n main: nextTheme.colors?.warning || DEFAULT_THEME.colors.warning,\r\n },\r\n info: {\r\n main: nextTheme.colors?.info || DEFAULT_THEME.colors?.info,\r\n },\r\n success: {\r\n main: nextTheme.colors?.success || DEFAULT_THEME.colors.success,\r\n },\r\n highlight: {\r\n main: nextTheme.palette?.highlight.main || nextTheme.colors?.highlight || DEFAULT_THEME.colors.highlight,\r\n contrastText:\r\n nextTheme.palette?.highlight.contrastText ||\r\n getContrastText(nextTheme.colors?.highlight || DEFAULT_THEME.colors.highlight, nextTheme),\r\n light: lighten(nextTheme.colors?.highlight || DEFAULT_THEME.colors.highlight, 0.68), // on default like #fbe3b2;\r\n dark: darken(nextTheme.colors?.highlight || DEFAULT_THEME.colors.highlight, 0.4),\r\n },\r\n background: {\r\n default: nextTheme.colors?.background || DEFAULT_THEME.colors.background,\r\n paper: nextTheme.colors?.paperBackground || DEFAULT_THEME.colors.background,\r\n },\r\n text: {\r\n primary: nextTheme.colors?.text || DEFAULT_THEME.colors.text,\r\n },\r\n fallback: {\r\n highlightLight: \"#c8c1c2\",\r\n },\r\n },\r\n shape: {\r\n borderRadius: borderRadius ? parseInt(borderRadius) : undefined,\r\n },\r\n typography: {\r\n fontFamily,\r\n fontSize: 16,\r\n htmlFontSize: 16,\r\n h5: undefined,\r\n h6: undefined,\r\n subtitle1: undefined,\r\n subtitle2: undefined,\r\n caption: undefined,\r\n overline: undefined,\r\n button: undefined,\r\n h1: {\r\n ...DEFAULT_THEME.font?.h1,\r\n ...nextTheme.font?.h1,\r\n opacity: nextTheme?.opacity?.primary,\r\n },\r\n h2: {\r\n ...DEFAULT_THEME.font?.h2,\r\n ...nextTheme.font?.h2,\r\n opacity: nextTheme?.opacity?.primary,\r\n },\r\n h3: {\r\n ...DEFAULT_THEME.font?.h3,\r\n ...nextTheme.font?.h3,\r\n opacity: nextTheme?.opacity?.primary,\r\n },\r\n h4: {\r\n ...DEFAULT_THEME.font?.h4,\r\n ...nextTheme.font?.h4,\r\n opacity: nextTheme?.opacity?.primary,\r\n },\r\n body1: {\r\n ...DEFAULT_THEME.font?.body1,\r\n ...nextTheme.font?.body1,\r\n opacity: nextTheme?.opacity?.primary,\r\n },\r\n body2: {\r\n ...DEFAULT_THEME.font?.body2,\r\n ...nextTheme.font?.body2,\r\n opacity: nextTheme?.opacity?.primary,\r\n },\r\n body3: {\r\n ...DEFAULT_THEME.font?.body3,\r\n ...nextTheme.font?.body3,\r\n opacity: nextTheme?.opacity?.primary,\r\n },\r\n label: {\r\n ...DEFAULT_THEME.font?.label,\r\n ...nextTheme.font?.label,\r\n opacity: nextTheme?.opacity?.primary,\r\n },\r\n },\r\n breakpoints: {\r\n values: {\r\n xs: 0,\r\n sm: 640,\r\n md: 1024,\r\n lg: 1280,\r\n xl: 1680,\r\n xxl: 1996,\r\n },\r\n },\r\n colors: nextTheme?.colors,\r\n general: nextTheme?.general,\r\n layout: nextTheme?.layout,\r\n login: nextTheme?.login,\r\n opacity: nextTheme?.opacity,\r\n pageNavigation: nextTheme?.pageNavigation,\r\n radius: nextTheme?.radius,\r\n margin: nextTheme?.margin,\r\n box: nextTheme?.box,\r\n font,\r\n animation: nextTheme?.animation,\r\n overwrites: {\r\n ...nextTheme.overwrites,\r\n components: {\r\n ...nextTheme.overwrites?.components,\r\n partlist: {\r\n ...nextTheme.overwrites?.components?.partlist,\r\n groupHeader: {\r\n // Use for all Catalogs the monochrom as default\r\n monochrom: true,\r\n ...nextTheme.overwrites?.components?.partlist?.groupHeader,\r\n },\r\n },\r\n button: {\r\n ...nextTheme.overwrites?.components?.button,\r\n primary: {\r\n ...nextTheme.overwrites?.components?.button?.primary,\r\n fontFamily: buttonFontFamily,\r\n },\r\n },\r\n tabs: {\r\n ...nextTheme.overwrites?.components?.tabs,\r\n font: {\r\n ...nextTheme.overwrites?.components?.tabs?.font,\r\n fontFamily: tabFontFamily,\r\n },\r\n },\r\n basketSummary: {\r\n ...nextTheme.overwrites?.components?.basketSummary,\r\n component: {\r\n backgroundColor: nextTheme.colors?.highlight,\r\n ...nextTheme.overwrites?.components?.basketSummary?.component,\r\n },\r\n },\r\n },\r\n },\r\n components: {\r\n MuiTextField: {\r\n variants: [\r\n {\r\n props: { size: \"extralarge\" },\r\n style: {},\r\n },\r\n ],\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n lineHeight: \"1.2\",\r\n },\r\n sizeSmall: {\r\n fontSize: \"0.875rem\",\r\n padding: \"0.3em\",\r\n },\r\n sizeMedium: {\r\n fontSize: \"1rem\",\r\n padding: \"6px\",\r\n },\r\n sizeLarge: {\r\n fontSize: \"1.125rem\",\r\n padding: \"0.5em\",\r\n },\r\n },\r\n variants: [\r\n {\r\n props: { variant: \"bordered\", size: \"extralarge\" },\r\n style: {\r\n [`&::before`]: {\r\n content: \"''\",\r\n display: \"flex\",\r\n width: \"100%\",\r\n height: \"3px\",\r\n position: \"absolute\",\r\n bottom: \"0\",\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n MuiIconButton: {\r\n styleOverrides: {\r\n root: {\r\n color: alpha(nextTheme.colors.dark || DEFAULT_THEME.colors.dark, nextTheme.opacity?.primary || DEFAULT_THEME.opacity.primary),\r\n },\r\n },\r\n },\r\n MuiInputBase: {\r\n styleOverrides: {\r\n sizeSmall: {\r\n fontSize: \"0.8rem\",\r\n },\r\n },\r\n },\r\n MuiSelect: {\r\n styleOverrides: {\r\n standard: {\r\n padding: \"0.346em 0.5em 0.346em 2em\",\r\n },\r\n outlined: {\r\n padding: \"5px 0.5em 5px 2em\",\r\n },\r\n },\r\n },\r\n MuiAutocomplete: {\r\n styleOverrides: {\r\n popper: {\r\n backgroundColor: lighten(nextTheme.colors.primary, 1),\r\n },\r\n },\r\n },\r\n ...(nextTheme.components || {}),\r\n },\r\n })\r\n}\r\n","export const debounce = (fn: (args: A) => R, ms: number): [(args: A) => Promise, () => void] => {\r\n let timer: NodeJS.Timeout\r\n\r\n const debouncedFunc = (args: A): Promise =>\r\n new Promise((resolve) => {\r\n if (timer) {\r\n clearTimeout(timer)\r\n }\r\n\r\n timer = setTimeout(() => {\r\n resolve(fn(args))\r\n }, ms)\r\n })\r\n\r\n const teardown = () => clearTimeout(timer)\r\n\r\n return [debouncedFunc, teardown]\r\n}\r\n","export const fillArray = (min: number, max: number, step: number) => {\r\n const values: number[] = []\r\n let nextVal = min\r\n while (nextVal < max + step) {\r\n const val = parseFloat(nextVal.toFixed(1))\r\n values.push(val)\r\n nextVal += step\r\n }\r\n return values\r\n}\r\n","import { useEffect, useState } from \"react\"\r\nimport { Alert, Box, Stack, Typography, Link } from \"@tm/components\"\r\nimport { GetNotificationRequest, GetNotificationResponse, Notification } from \"@tm/models\"\r\nimport { ajaxAuth } from \"@tm/utils\"\r\nimport add from \"date-fns/add\"\r\nimport isWithinInterval from \"date-fns/isWithinInterval\"\r\nimport sub from \"date-fns/sub\"\r\nimport { QueryFunctionContext, useQuery } from \"react-query\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { useUser } from \"../../user\"\r\n\r\ntype QueryKey = [\"alertNotification\", GetNotificationRequest, string]\r\n\r\nexport function AlertNotification({ erpServiceUrl, telesalesCustomerNo }: { erpServiceUrl: string; telesalesCustomerNo?: string }) {\r\n const { userContext } = useUser()\r\n const { translateText } = useLocalization()\r\n const notificationsPollingIntervalInMinutes = userContext.parameter.notificationsPollingInterval\r\n\r\n const [rerenderTrigger, setRerenderTrigger] = useState(0)\r\n const date = new Date()\r\n const queryKey: QueryKey = [\r\n \"alertNotification\",\r\n {\r\n notificationContextId: 4, // will allways be 4 here\r\n telesalesCustomerNo,\r\n },\r\n erpServiceUrl,\r\n ]\r\n\r\n const { data: notifications } = useQuery(queryKey, getNotification, {\r\n refetchInterval: notificationsPollingIntervalInMinutes * 60 * 1000,\r\n refetchIntervalInBackground: true,\r\n select: (response) => response?.notifications ?? [],\r\n refetchOnWindowFocus: true,\r\n })\r\n\r\n useEffect(() => {\r\n if (!notifications) {\r\n return\r\n }\r\n\r\n const notificationTimeout = getNotificationTimeout(notifications)\r\n if (notificationTimeout === undefined) {\r\n return\r\n }\r\n\r\n const timeoutId = window.setTimeout(() => setRerenderTrigger((rerenderTrigger) => rerenderTrigger + 1), notificationTimeout)\r\n\r\n return () => window.clearTimeout(timeoutId)\r\n }, [notifications, rerenderTrigger])\r\n\r\n if (!notifications || !erpServiceUrl) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n {notifications\r\n .filter((notification) => !!notification?.memo?.text && checkDateInActiveRange(notification, date))\r\n .map((notification, idx) => (\r\n \r\n \r\n \r\n {notification.memo.text}{\" \"}\r\n {notification?.memo?.linkUrl && (\r\n \r\n {translateText(12597)}\r\n \r\n )}\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nfunction getNotification({\r\n queryKey: [, notificationRequest, erpServiceUrl],\r\n}: QueryFunctionContext): Promise {\r\n return ajaxAuth(\r\n {\r\n url: `${erpServiceUrl}/GetNotifications`,\r\n body: notificationRequest,\r\n },\r\n undefined,\r\n undefined,\r\n true\r\n )\r\n}\r\n\r\nfunction getNotificationTimeout(notifications: Notification[]): number | undefined {\r\n const currentTime = new Date()\r\n const validFromArray = notifications.orderBy((x) => x.validFrom ?? sub(currentTime, { hours: 1 }))\r\n\r\n for (const notification of validFromArray) {\r\n if (notification.validFrom && notification.validFrom >= currentTime) {\r\n return notification.validFrom.getTime() - currentTime.getTime()\r\n }\r\n }\r\n}\r\n\r\nfunction checkDateInActiveRange(notification: Notification, date: Date): boolean {\r\n return isWithinInterval(date, {\r\n start: notification.validFrom ?? sub(date, { hours: 1 }), // If validFrom is not set, we still want to show the notification.\r\n end: notification.validTo ?? add(date, { months: 1 }), // If validTo is not set, we also want the notification to be shown.\r\n })\r\n}\r\n","import { UserContext, UserModule, UserModuleType } from \"@tm/models\"\r\nimport { Authorization } from \"@tm/utils\"\r\n\r\nexport const hasAuthorization = (authorization: Authorization | null) => {\r\n return !!(authorization && authorization.type && authorization.credentials)\r\n}\r\n\r\nexport function getCountryFilter(userContext: UserContext | undefined): number | undefined {\r\n if (userContext && userContext.modules) {\r\n const catalogModule = userContext.modules.find((x) => x.type == UserModuleType.Catalog)\r\n\r\n if (catalogModule) {\r\n return catalogModule.countryFilter\r\n }\r\n }\r\n}\r\n\r\nexport function getVehicleLookupType(userContext: UserContext | undefined): number | undefined {\r\n if (userContext && userContext.modules) {\r\n const vehicleLookupModule = userContext.modules.find((x) => x.type == UserModuleType.VehicleLookup)\r\n\r\n if (vehicleLookupModule) {\r\n return vehicleLookupModule.lookupType\r\n }\r\n }\r\n}\r\n\r\nconst foundModules: Partial> = {}\r\n\r\nexport function getModuleFromUserContext(userContext: UserContext, moduleKey: UserModuleType) {\r\n if (foundModules.hasOwnProperty(moduleKey)) {\r\n return foundModules[moduleKey]\r\n }\r\n\r\n const foundModule = userContext.modules?.find((x) => x.type == moduleKey)\r\n foundModules[moduleKey] = foundModule\r\n\r\n return foundModule\r\n}\r\n\r\ntype ParameterValueType = \"string\" | \"number\" | \"boolean\"\r\ntype ParameterValue = string | number | boolean | undefined\r\n\r\nexport function getParameterFromUserContextModule(userContext: UserContext, moduleKey: UserModuleType, parameterKey: string): string | undefined\r\nexport function getParameterFromUserContextModule(\r\n userContext: UserContext,\r\n moduleKey: UserModuleType,\r\n parameterKey: string,\r\n valueType: \"string\"\r\n): string | undefined\r\nexport function getParameterFromUserContextModule(\r\n userContext: UserContext,\r\n moduleKey: UserModuleType,\r\n parameterKey: string,\r\n valueType: \"number\"\r\n): number | undefined\r\nexport function getParameterFromUserContextModule(\r\n userContext: UserContext,\r\n moduleKey: UserModuleType,\r\n parameterKey: string,\r\n valueType: \"boolean\"\r\n): boolean\r\nexport function getParameterFromUserContextModule(\r\n userContext: UserContext,\r\n moduleKey: UserModuleType,\r\n parameterKey: string,\r\n valueType?: ParameterValueType\r\n): ParameterValue\r\nexport function getParameterFromUserContextModule(\r\n userContext: UserContext,\r\n moduleKey: UserModuleType,\r\n parameterKey: string,\r\n valueType?: ParameterValueType\r\n): ParameterValue {\r\n const foundModule = getModuleFromUserContext(userContext, moduleKey)\r\n\r\n if (!foundModule) {\r\n return valueType === \"boolean\" ? false : undefined\r\n }\r\n\r\n return getParameterFromModule(foundModule, parameterKey, valueType)\r\n}\r\n\r\nexport function getParameterFromModule(foundModule: UserModule, parameterKey: string): string | undefined\r\nexport function getParameterFromModule(foundModule: UserModule, parameterKey: string, valueType: \"string\"): string | undefined\r\nexport function getParameterFromModule(foundModule: UserModule, parameterKey: string, valueType: \"number\"): number | undefined\r\nexport function getParameterFromModule(foundModule: UserModule, parameterKey: string, valueType: \"boolean\"): boolean\r\nexport function getParameterFromModule(foundModule: UserModule, parameterKey: string, valueType?: ParameterValueType): ParameterValue\r\nexport function getParameterFromModule(foundModule: UserModule, parameterKey: string, valueType?: ParameterValueType): ParameterValue {\r\n const parameterValue = foundModule.parameters?.find((item) => item.key === parameterKey)?.value\r\n\r\n switch (valueType) {\r\n case \"number\":\r\n if (parameterValue && !Number.isNaN(parseInt(parameterValue))) {\r\n return parseInt(parameterValue)\r\n }\r\n return undefined\r\n case \"boolean\":\r\n return parameterValue === \"1\"\r\n case \"string\":\r\n default:\r\n return parameterValue\r\n }\r\n}\r\n\r\ntype Res = T extends \"string\" ? string | undefined : T extends \"number\" ? number | undefined : T extends \"boolean\" ? boolean : string | undefined\r\n\r\nexport function getParametersFromUserContextModule>(\r\n userContext: UserContext,\r\n moduleKey: UserModuleType,\r\n parameterKeys: T\r\n): { [K in keyof T]: Res } {\r\n const foundModule = getModuleFromUserContext(userContext, moduleKey)\r\n\r\n if (!foundModule) {\r\n return Object.fromEntries(Object.keys(parameterKeys).map((key) => [key, undefined])) as { [K in keyof T]: Res }\r\n }\r\n\r\n return getParametersFromModule(foundModule, parameterKeys)\r\n}\r\n\r\nexport function getParametersFromModule>(\r\n foundModule: UserModule,\r\n parameterKeys: T\r\n): { [K in keyof T]: Res } {\r\n return Object.fromEntries(\r\n Object.keys(parameterKeys).map((key) => [key, getParameterFromModule(foundModule, parameterKeys[key][0], parameterKeys[key][1])])\r\n ) as { [K in keyof T]: Res }\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { UserModuleType } from \"@tm/models\"\r\nimport { useUser } from \"../../user\"\r\n\r\nexport function useAddToBasketModuleParameters() {\r\n const { userContext } = useUser()\r\n\r\n return useMemo(() => {\r\n const addToBasketModule = userContext.modules?.find((x) => x.type === UserModuleType.AddToBasket)\r\n return {\r\n addToNextBasket: addToBasketModule?.parameters?.find((x) => x.key === \"AddToNextBasket\")?.value === \"1\",\r\n showBasketButton: addToBasketModule?.parameters?.find((x) => x.key === \"ShowBasketButton\")?.value === \"1\",\r\n showCostEstimationButton: addToBasketModule?.parameters?.find((x) => x.key === \"ShowCostEstimationButton\")?.value === \"1\",\r\n sendArticlesPostMessage: addToBasketModule?.parameters?.find((x) => x.key === \"SendArticlesPostMessage\")?.value === \"1\",\r\n sendRepairTimesPostMessage: addToBasketModule?.parameters?.find((x) => x.key === \"SendRepairTimesPostMessage\")?.value === \"1\",\r\n }\r\n }, [userContext])\r\n}\r\n","import { OAuthTokenIds, UserModuleType } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\r\nimport { useUser } from \"../../user\"\r\n\r\nexport function useCostEstimationModuleParameters() {\r\n const { userContext } = useUser()\r\n\r\n return useMemo(() => {\r\n const costEstimationModule = userContext.modules?.find((x) => x.type === UserModuleType.CostEstimation)\r\n return {\r\n hasCostEstimation: !!costEstimationModule,\r\n disabledCostEstimation: !costEstimationModule || userContext.parameter.catalogLight,\r\n customerGroup: costEstimationModule?.parameters?.find((x) => x.key === \"CustomerGroup\")?.value,\r\n priceModus: costEstimationModule?.parameters?.find((x) => x.key === \"PriceModus\")?.value,\r\n priceTypes: costEstimationModule?.parameters?.find((x) => x.key === \"PriceTypes\")?.value,\r\n showExportToExternalBasket: costEstimationModule?.parameters?.find((x) => x.key === \"ShowExportToExternalBasket\")?.value === \"1\",\r\n showImportFromExternalBasket: costEstimationModule?.parameters?.find((x) => x.key === \"ShowImportFromExternalBasket\")?.value === \"1\",\r\n requiredAuthModeForExternalBasket: costEstimationModule?.parameters?.find((x) => x.key === \"RequiredAuthModeForExternalBasket\")\r\n ?.value as OAuthTokenIds,\r\n useSendCostEstimation: costEstimationModule?.parameters?.find((x) => x.key === \"UseSendCostEstimation\")?.value === \"1\",\r\n useSendOrder: costEstimationModule?.parameters?.find((x) => x.key === \"UseSendOrder\")?.value === \"1\",\r\n }\r\n }, [userContext])\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { UserModuleType } from \"@tm/models\"\r\nimport { useUser } from \"../../user\"\r\n\r\nexport function useWorkTaskOrderModuleParameters() {\r\n const { userContext } = useUser()\r\n\r\n return useMemo(() => {\r\n const workTaskOrderModule = userContext.modules?.find((x) => x.type === UserModuleType.WorkTaskOrder)\r\n return {\r\n hasWorkTaskOrder: !!workTaskOrderModule,\r\n useSendCostEstimation: workTaskOrderModule?.parameters?.find((x) => x.key === \"UseSendCostEstimation\")?.value === \"1\",\r\n useSendOrder: workTaskOrderModule?.parameters?.find((x) => x.key === \"UseSendOrder\")?.value === \"1\",\r\n }\r\n }, [userContext])\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { getModuleFromUserContext } from \"../../helper\"\r\nimport { useUser } from \"../../user/consumer/useUser\"\r\nimport { AvailabilityStatus, UserModuleType } from \"@tm/models\"\r\n\r\nexport function useAvailabilityStatus(): {\r\n availabilityStatusIdsToShow?: AvailabilityStatus[]\r\n availabilityStatusIdsToShowSecondary?: AvailabilityStatus[]\r\n} {\r\n const { userContext } = useUser()\r\n const catalogModule = getModuleFromUserContext(userContext, UserModuleType.Catalog)\r\n\r\n const statusIds = useMemo(() => {\r\n const availabilityStatusIdsToShow = catalogModule?.availabilityStatusIdsToShow\r\n const availabilityStatusIdsToShowSecondary = catalogModule?.availabilityStatusIdsToShowSecondary\r\n return { availabilityStatusIdsToShowSecondary, availabilityStatusIdsToShow }\r\n }, [catalogModule])\r\n\r\n return statusIds\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { getModuleFromUserContext } from \"../../helper\"\r\nimport { useUser } from \"../../user/consumer/useUser\"\r\nimport { PriceType, UserModuleType } from \"@tm/models\"\r\n\r\n/**\r\n * @description this hook returns a function to check if a specific price type should be displayed or not. it validates the mdm property \"hidePurchasePriceTypes\" if the pricetype is included and if the property \"showPurchasePrice\" set by mdm or if the user disabled the \"showPurchasePrice\" manually\r\n * @returns {isPriceTypeHidden: (priceType: PriceType) => boolean } returns a function to check if a pricetype should be shown or hidden\r\n */\r\nexport function useHidePriceTypes(): { isPriceTypeHidden: (priceType: PriceType) => boolean } {\r\n const { userContext, userSettings } = useUser()\r\n const catalogModule = getModuleFromUserContext(userContext, UserModuleType.Catalog)\r\n const hiddenByUserSettings = userSettings?.showPurchasePrice === false\r\n\r\n return useMemo(\r\n () => ({\r\n isPriceTypeHidden: (priceType: PriceType) => {\r\n return catalogModule?.hidePurchasePriceTypes?.includes(priceType) && hiddenByUserSettings\r\n },\r\n }),\r\n [catalogModule?.showPurchasePrice, catalogModule?.hidePurchasePriceTypes, hiddenByUserSettings]\r\n )\r\n}\r\n","import { CisCustomerResponse, CisShowCustomerRequest, RegisteredModels } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useCallback } from \"react\"\r\nimport { QueryFunctionContext, useQuery, useQueryClient } from \"react-query\"\r\nimport { useTelesalesCustomerNumber } from \"..\"\r\nimport { useHasCis } from \"./useHasCis\"\r\n\r\nconst QUERY_KEY = \"cis_useCisCustomer\"\r\n\r\ntype QueryKey = [typeof QUERY_KEY, string | undefined]\r\n\r\n/**\r\n * Returns the current CIS customer.\r\n * @param enabled Set this to `false` to disable the request. Default: `true`.\r\n */\r\nexport function useCisCustomer(enabled = true) {\r\n const hasCis = useHasCis()\r\n const { telesalesCustomerNo, enableServiceCalls } = useTelesalesCustomerNumber()\r\n\r\n const { data, isLoading } = useQuery([QUERY_KEY, telesalesCustomerNo], fetchCisCustomer, {\r\n enabled: hasCis && enabled && enableServiceCalls,\r\n staleTime: 60 * 60 * 1000, // 1 hour\r\n cacheTime: 4 * 60 * 60 * 1000, // 4 hours\r\n })\r\n\r\n return {\r\n cisCustomerLoading: isLoading,\r\n cisCustomer: data,\r\n }\r\n}\r\n\r\nfunction fetchCisCustomer({ queryKey: [, customerNo] }: QueryFunctionContext) {\r\n const request: CisShowCustomerRequest = { customerNo }\r\n\r\n return Container.getInstance(RegisteredModels.CIS_Customer).subscribe(request).load()\r\n}\r\n\r\n/**\r\n * Returns a function to trigger a reload of the current CIS customer.\r\n */\r\nexport function useReloadCisCustomer() {\r\n const queryClient = useQueryClient()\r\n\r\n const invalidateCisCustomer = useCallback(() => {\r\n queryClient.invalidateQueries(QUERY_KEY)\r\n }, [queryClient])\r\n\r\n return { invalidateCisCustomer }\r\n}\r\n","import { RegisteredModels, ShowReturnsTotalNumbersRequest, ShowReturnsTotalNumbersResponse } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useCallback } from \"react\"\r\nimport { useQuery, useQueryClient } from \"react-query\"\r\nimport { useTelesalesCustomerNumber } from \"..\"\r\n\r\n/**\r\n * @memberof Context-Distribution\r\n */\r\nconst KEY = \"cis_useCisReturnItemsTotalNumbers\"\r\nexport function useCisReturnItemsTotalNumbers() {\r\n const { telesalesCustomerNo, enableServiceCalls } = useTelesalesCustomerNumber()\r\n const enabled = enableServiceCalls\r\n\r\n const { data, isLoading } = useQuery(\r\n [KEY, telesalesCustomerNo, enabled],\r\n () => {\r\n const request: ShowReturnsTotalNumbersRequest = { customerNo: telesalesCustomerNo }\r\n return Container.getInstance(RegisteredModels.CIS_ShowTotalNumbers).subscribe(request).load()\r\n },\r\n { enabled }\r\n )\r\n\r\n return { totalNumbers: data, totalNumbersLoading: isLoading }\r\n}\r\n\r\nexport function useReloadCisReturnItemsTotalNumbers() {\r\n const queryClient = useQueryClient()\r\n\r\n const resetCisReturnItemsTotalNumbers = useCallback(() => {\r\n queryClient.resetQueries(KEY)\r\n }, [queryClient])\r\n\r\n return { resetCisReturnItemsTotalNumbers }\r\n}\r\n","import { UserModuleType } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\r\nimport { useUser } from \"../../user\"\r\nimport { getModuleFromUserContext } from \"../../helper\"\r\n\r\n/**\r\n * Returns a boolean indicating whether the current user has the CIS module enabled.\r\n */\r\nexport function useHasCis(): boolean {\r\n const { userContext } = useUser()\r\n\r\n return useMemo(() => {\r\n return !!getModuleFromUserContext(userContext, UserModuleType.CustomerInformation)\r\n }, [userContext.modules])\r\n}\r\n","import { RegisteredModels, ShowCisOptionsRequest, ShowCisOptionsResponse } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { QueryFunctionContext, useQuery } from \"react-query\"\r\nimport { useTelesalesCustomerNumber } from \"../..\"\r\nimport { useHasCis } from \"./useHasCis\"\r\n\r\nconst QUERY_KEY = \"cis_useShowCisOptions\"\r\n\r\ntype QueryKey = [typeof QUERY_KEY, string | undefined]\r\n\r\n/**\r\n * Returns the options for the current CIS customer.\r\n */\r\nexport function useShowCisOptions() {\r\n const hasCis = useHasCis()\r\n const { telesalesCustomerNo, enableServiceCalls } = useTelesalesCustomerNumber()\r\n\r\n const { data, isLoading } = useQuery([QUERY_KEY, telesalesCustomerNo], fetchCisOptions, {\r\n enabled: hasCis && enableServiceCalls,\r\n staleTime: Infinity,\r\n cacheTime: Infinity,\r\n })\r\n\r\n return {\r\n cisOptionsLoading: isLoading,\r\n cisOptions: data,\r\n }\r\n}\r\n\r\nfunction fetchCisOptions({ queryKey: [, customerNo] }: QueryFunctionContext) {\r\n const request: ShowCisOptionsRequest = { customerNo }\r\n\r\n return Container.getInstance(RegisteredModels.CIS_ShowCisOptions).subscribe(request).load()\r\n}\r\n","import { UserModuleType } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\r\nimport { getParameterFromUserContextModule } from \"../../helper\"\r\nimport { useUser } from \"../../user\"\r\nimport { useTyresV2 } from \"./useTyresV2\"\r\n\r\nexport function useNewTyreSearch() {\r\n const { userContext } = useUser() || {}\r\n const tyresV2 = useTyresV2()\r\n const tyresSearchParameter = getParameterFromUserContextModule(userContext, UserModuleType.TMTires, \"TyreSearch\")\r\n\r\n const hasTyreSearch = useMemo(() => tyresSearchParameter === \"ListView\", [tyresSearchParameter])\r\n return tyresV2 ? hasTyreSearch : true\r\n}\r\n","import { EMatchCodeSearchType, UserModuleType } from \"@tm/models\"\r\nimport { getParameterFromUserContextModule } from \"../../helper\"\r\nimport { useUser } from \"../../user\"\r\nimport { useTyresV2 } from \"./useTyresV2\"\r\n\r\nexport function useTyresMatchCodeSearchType(isWidget?: boolean) {\r\n const { userContext } = useUser() || {}\r\n const tyresV2 = useTyresV2()\r\n const tyresMatchCodeSearchType = tyresV2\r\n ? getParameterFromUserContextModule(userContext, UserModuleType.TMTires, \"MatchcodeSearch\")\r\n : EMatchCodeSearchType.widgetAndCatalog\r\n\r\n if (!tyresMatchCodeSearchType) {\r\n return false\r\n }\r\n\r\n if (tyresMatchCodeSearchType === EMatchCodeSearchType.widgetAndCatalog) {\r\n return true\r\n }\r\n\r\n if (isWidget) {\r\n if (tyresMatchCodeSearchType === EMatchCodeSearchType.widget) {\r\n return true\r\n }\r\n } else if (tyresMatchCodeSearchType === EMatchCodeSearchType.catalog) {\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n","import { UserModuleType } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\r\nimport { getParameterFromUserContextModule } from \"../../helper\"\r\nimport { useUser } from \"../../user\"\r\n\r\nexport function useTyresV2() {\r\n const { userContext } = useUser() || {}\r\n const tyresVersionParameter = getParameterFromUserContextModule(userContext, UserModuleType.TMTires, \"Version\")\r\n\r\n const tyresV2 = useMemo(() => tyresVersionParameter === \"2\", [tyresVersionParameter])\r\n\r\n return tyresV2\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { useUser } from \"../user/consumer/useUser\"\r\nimport { UserModuleType } from \"@tm/models\"\r\n\r\ntype DatCredentials =\r\n | {\r\n customerNumber: string | undefined\r\n userName: string | undefined\r\n isPasswordSet: boolean\r\n showDatSettings: boolean\r\n }\r\n | undefined\r\n\r\n/**\r\n * @memberof Context-Distribution\r\n */\r\nexport function useDatCredentials(): DatCredentials {\r\n const { userContext } = useUser()\r\n const damageCalculationModule = userContext.modules?.find((x) => x.type === UserModuleType.TMDamageCalculationDat)\r\n\r\n return useMemo(() => {\r\n if (damageCalculationModule) {\r\n const customerNumber = damageCalculationModule.parameters?.find((x) => x.key === \"BuyerCode\")?.value\r\n const userName = damageCalculationModule.parameters?.find((x) => x.key === \"Username\")?.value\r\n const isPasswordSet = damageCalculationModule.parameters?.find((x) => x.key === \"Password\") !== undefined\r\n const showDatSettings = damageCalculationModule.parameters?.find((x) => x.key === \"AccessDataFromCatalogue\")?.value === \"1\"\r\n\r\n if (showDatSettings === false) {\r\n return\r\n }\r\n\r\n return { customerNumber, userName, isPasswordSet, showDatSettings }\r\n }\r\n }, [damageCalculationModule])\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { useUser } from \"../user/consumer/useUser\"\r\nimport { SystemType } from \"@tm/models\"\r\nimport { useShowNewArticleList } from \"./useShowNewArticleList\"\r\n\r\nexport function useDisplayListV2() {\r\n const { userContext } = useUser()\r\n const showNewArticleList = useShowNewArticleList()\r\n const isNext = useMemo(() => userContext.system.systemType === SystemType.Next, [userContext])\r\n\r\n return isNext && showNewArticleList\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { useUser } from \"../user/consumer/useUser\"\r\nimport { ErpSettings } from \"../user/model/UserSettings\"\r\n\r\ntype ErpCredentials =\r\n | {\r\n showErpSettings: boolean\r\n erpModules: { [key: string]: ErpSettings }\r\n }\r\n | undefined\r\n\r\n// If we have to adjust this position more often, please move it to the UI-Configs. Currently there was only this one request\r\n// https://jira.dvse.de/browse/NEXT-29178\r\nconst TRADER_WITH_CUSTOMER_NUMBER = [\r\n 517, // WM NL\r\n]\r\n\r\n/**\r\n * @memberof Context-Distribution\r\n */\r\nexport function useErpCredentials(): ErpCredentials {\r\n const { userContext } = useUser()\r\n const externalErpModules = userContext.externalModules?.filter((x) => x.accessDataFromCatalogue === true)\r\n return useMemo(() => {\r\n if (externalErpModules?.length) {\r\n const erpModules: { [key: string]: ErpSettings } = {}\r\n externalErpModules.forEach((element) => {\r\n erpModules[element.id] = {\r\n userName: element?.username,\r\n customerNumber: element?.customerNo,\r\n isPasswordSet: element?.isPasswordSet,\r\n isCustomerNoRequired: element?.isCustomerNoRequired || TRADER_WITH_CUSTOMER_NUMBER.includes(element.tradeReferenceId),\r\n }\r\n })\r\n\r\n return { erpModules, showErpSettings: true }\r\n }\r\n }, [externalErpModules])\r\n}\r\n","import { HotlineInfo } from \"@tm/models\"\r\n\r\nexport function useHotline(hotline: string): HotlineInfo | undefined {\r\n const mailReg = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/\r\n const phoneReg = /(?:\\+?\\d{1,3}[-.\\s]?)?(?:\\(?\\d{1,4}\\)?[-.\\s]?)?\\d{1,4}[-.\\s]?\\d{1,4}[-.\\s]?\\d{1,9}/\r\n let headline: string | undefined\r\n let email: string | undefined\r\n let phone: string | undefined\r\n\r\n const splittedHotline = hotline.split(\"\\r\\n\")\r\n\r\n splittedHotline.forEach((entry) => {\r\n // Check for phone number\r\n const phoneMatches = phoneReg.exec(entry)\r\n if (phoneMatches && phoneMatches.length === 1) {\r\n phone = phoneMatches[0]\r\n return\r\n }\r\n\r\n // Check for email\r\n const mailMatches = mailReg.exec(entry)\r\n if (mailMatches && mailMatches?.length === 1) {\r\n email = mailMatches[0]\r\n return\r\n }\r\n\r\n // String is a headline if it is not a phone number or a mail address\r\n headline = entry\r\n })\r\n\r\n return headline && (email || phone)\r\n ? {\r\n headline,\r\n email,\r\n phone,\r\n }\r\n : undefined\r\n}\r\n","import { UserModuleType } from \"@tm/models\"\r\nimport { useUser } from \"../user/consumer/useUser\"\r\nimport { getModuleFromUserContext } from \"../helper\"\r\n\r\n// TODO: this hook should be removed when the article lsit v1 is no longer used. Probably by the end of 2025\r\nexport function useShowNewArticleList() {\r\n const { userContext } = useUser() || {}\r\n return getModuleFromUserContext(userContext, UserModuleType.Catalog)?.version == 2\r\n}\r\n","import { getCurrentWorkTaskId, UserModuleType } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\r\nimport { useUser, useWorkTask } from \"..\"\r\nimport { matchPath, useLocation } from \"react-router\"\r\nimport { decodeUniqueId } from \"@tm/utils\"\r\n\r\n/**\r\n * Returns the useTelesalesCustomerNo and also returns collective customer when we aren't in a workTask and\r\n * returns a bool that can be used to determine if service calls can be started already or if we still expect a customer no.\r\n */\r\nexport function useTelesalesCustomerNumber(): { telesalesCustomerNo: string | undefined; enableServiceCalls: boolean; hasTelesales: boolean } {\r\n const { userContext } = useUser()\r\n const { workTask, workTaskId } = useWorkTask() || {}\r\n const location = useLocation()\r\n const queryParams = new URLSearchParams(location.search)\r\n const refCustomerNo: string | null = queryParams.get(\"refCustomerNo\")\r\n\r\n const hasTelesales = !!userContext.hasTelesales\r\n\r\n const collectiveCustomerNo = useMemo((): string | undefined => {\r\n if (!hasTelesales) {\r\n return undefined\r\n }\r\n\r\n if (userContext.parameter.collectiveCustomer) {\r\n return userContext.parameter.collectiveCustomer\r\n }\r\n\r\n const telesalesModule = userContext.modules?.find((module) => module.type === UserModuleType.Telesales)\r\n return telesalesModule?.parameters?.find((x: any) => x.key == \"CollectiveCustomer\")?.value\r\n }, [hasTelesales, userContext.parameter.collectiveCustomer, userContext.modules])\r\n\r\n if (!hasTelesales) {\r\n return { telesalesCustomerNo: undefined, enableServiceCalls: true, hasTelesales }\r\n }\r\n if (!workTaskId) {\r\n // use the collective customer when we aren't in a worktask\r\n return { telesalesCustomerNo: refCustomerNo || collectiveCustomerNo, enableServiceCalls: true, hasTelesales }\r\n }\r\n\r\n if (!workTask?.customer) {\r\n return { telesalesCustomerNo: undefined, enableServiceCalls: false, hasTelesales }\r\n }\r\n\r\n const telesalesCustomerNo = workTask?.customer?.refCustomerNo ?? collectiveCustomerNo\r\n\r\n if (!collectiveCustomerNo) {\r\n // When there is no collective customer configured, we might have worktasks without a partner,\r\n // so we have to enable service calls (or we don't?) directly, but else ...\r\n return { telesalesCustomerNo, enableServiceCalls: true, hasTelesales }\r\n }\r\n\r\n // ... at some point the workTask will have a patner attached. Only then we need to enable the service calls.\r\n return { telesalesCustomerNo, enableServiceCalls: !!telesalesCustomerNo, hasTelesales }\r\n}\r\n","import { useUser } from \"../../user/consumer/useUser\"\r\nimport { getShortCountryCodeByUserContext, plateCountryCodeMapper, useAvailableVehicleSearchOptions } from \"@tm/utils\"\r\nimport { useMemo } from \"react\"\r\nimport { useSelectedVehicleLookup } from \"./useSelectedVehicleLookup\"\r\n\r\n/**\r\n * get the default countrycode and map a vehicle country code to a license country code. if not vehicle countrycode is given, the selected vehiclelookup oder the default vehiclelookup countrycode id will be used\r\n * @param countryCode used for the vehicle country code to get a translated version\r\n * @returns plateCode is the licensePlateCountryCode and countryCode is the default country code\r\n */\r\nexport function useCountryCodeToLicensePlate(countryCode?: string) {\r\n const { selectedVehicleLookup } = useSelectedVehicleLookup()\r\n const { availableVehicleSearches } = useAvailableVehicleSearchOptions()\r\n const { userContext } = useUser() ?? {}\r\n\r\n const tempCountryCode = useMemo(() => {\r\n return (\r\n countryCode ||\r\n selectedVehicleLookup.countryCode ||\r\n availableVehicleSearches.defaultVehicleLookup?.countryCode ||\r\n getShortCountryCodeByUserContext(userContext)\r\n )\r\n }, [countryCode, selectedVehicleLookup.countryCode, userContext, availableVehicleSearches.defaultVehicleLookup?.countryCode])\r\n\r\n const plateCode = useMemo(() => {\r\n return plateCountryCodeMapper(tempCountryCode)\r\n }, [tempCountryCode])\r\n\r\n return { plateCode, countryCode: tempCountryCode }\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { useSessionStorage } from \"@tm/utils\"\r\n\r\nconst STARTPAGE = \"startpage\"\r\n\r\ntype SelectedLookupType = {\r\n lookupTypeId?: number\r\n countryCode?: string\r\n}\r\n\r\nexport function useSelectedVehicleLookup(): {\r\n selectedVehicleLookup: SelectedLookupType\r\n} {\r\n const workTaskId = window.__NEXT_WORKTASKID__ || STARTPAGE\r\n\r\n const { sessionStorageData } = useSessionStorage<{ [workTaskId: string]: SelectedLookupType }>(\"useSelectedVehicleLookup\")\r\n\r\n const selectedVehicleLookup = useMemo(() => {\r\n // previous lookupselection from startpage if no lookuptype is bound to the worktask id\r\n return (\r\n sessionStorageData?.[workTaskId] ??\r\n sessionStorageData?.[STARTPAGE] ?? {\r\n lookupTypeId: undefined,\r\n countryCode: undefined,\r\n }\r\n )\r\n }, [sessionStorageData, workTaskId])\r\n\r\n return { selectedVehicleLookup }\r\n}\r\n","import type { ModuleTab } from \"@tm/models\"\r\n\r\nexport { useModuleNavigation } from \"./useModuleNavigation\"\r\nexport { useInitModuleNavigation } from \"./useInitModuleNavigation\"\r\n\r\nexport function getNextUrlComparable(pathname: string) {\r\n const fragments = pathname.split(\"/\")\r\n if (fragments.length <= 2) {\r\n return null\r\n }\r\n\r\n let basePath = fragments.slice(0, 3).join(\"/\")\r\n\r\n // TODO: PLEASE REFACTOR, JRE 03.11.2022 Hacky way to get the correct basepath even if it must be a 3-fragments one\r\n const threeFragsBasePath = [\"sd\", \"td\", \"tdw\", \"gpi\", \"repair-times\", \"damage-calculation\", \"ext\", \"truck\"]\r\n if (fragments.length > 3 && threeFragsBasePath.indexOf(fragments[2].toLowerCase()) !== -1) {\r\n basePath = fragments.slice(0, 4).join(\"/\")\r\n }\r\n\r\n return basePath\r\n}\r\n\r\nexport function isModalUrl(url: string) {\r\n return decodeURIComponent(url).indexOf(\"?(1)=\") !== -1\r\n}\r\n\r\nexport function isSameTab(a: ModuleTab, b: ModuleTab): boolean {\r\n return a.key && b.key ? a.key === b.key : a.title === b.title && isModalUrl(a.url) === isModalUrl(b.url)\r\n}\r\n","import { AtomEffect, DefaultValue, atomFamily, selectorFamily } from \"recoil\"\r\nimport { isEqual } from \"lodash\"\r\nimport { RegisteredModels } from \"@tm/models\"\r\nimport type { ModuleNavigationState, ViewState, ViewStateContainer } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { encodeUniqueId } from \"@tm/utils\"\r\nimport { getNextUrlComparable, isSameTab } from \".\"\r\n\r\nfunction createStateEffects(workTaskId: string | undefined): AtomEffect[] {\r\n const container = Container.getInstance(RegisteredModels.ViewState) as ViewStateContainer\r\n return [\r\n function syncState({ onSet, setSelf, trigger }) {\r\n if (!workTaskId) {\r\n return\r\n }\r\n\r\n const encodedWorktaskId = encodeUniqueId(workTaskId)\r\n\r\n // Store on every change\r\n onSet((newValue, oldValue) => {\r\n const tabsToSave = newValue.tabs.map((x) => ({ ...x, isSelected: undefined }))\r\n if (\r\n workTaskId &&\r\n !(oldValue instanceof DefaultValue) &&\r\n !isEqual(\r\n tabsToSave,\r\n oldValue.tabs.map((x) => ({ ...x, isSelected: undefined }))\r\n )\r\n ) {\r\n // Store in session for conflict dialog\r\n sessionStorage.setItem(`${encodedWorktaskId}_openModules`, JSON.stringify(tabsToSave))\r\n\r\n // Store in state management service\r\n const viewState: ViewState = {\r\n key: `${encodedWorktaskId}__module-navigation__`,\r\n value: {\r\n tabs: tabsToSave,\r\n },\r\n }\r\n container.action(\"saveViewState\")(viewState)\r\n }\r\n })\r\n\r\n // Initialize: load from database and merge it with already set tabs\r\n if (trigger === \"get\") {\r\n container\r\n .action(\"loadViewState\")(`${encodedWorktaskId}__module-navigation__`)\r\n .then((viewState: ViewState) =>\r\n setSelf((state) => {\r\n // Merge loaded tabs with already opened ones\r\n let currentTabs = (state as ModuleNavigationState).tabs\r\n viewState.value?.tabs\r\n .filter((loadedTab) => !!loadedTab.title)\r\n .forEach((loadedTab) => {\r\n const tabIndex = currentTabs.findIndex((x) => isSameTab(x, loadedTab))\r\n if (tabIndex === -1) {\r\n currentTabs = [...currentTabs, loadedTab]\r\n } else {\r\n currentTabs = currentTabs.with(tabIndex, { ...loadedTab, ...currentTabs[tabIndex] })\r\n }\r\n })\r\n\r\n // check current url and select tab if url matches\r\n const currentUrl = `${location.pathname}${location.search}`\r\n const currentUrlComparable = getNextUrlComparable(currentUrl)\r\n const currentTabIndex = currentTabs.findIndex((tab) => {\r\n const tabUrl = getNextUrlComparable(tab.url)\r\n return currentUrlComparable && currentUrlComparable === tabUrl\r\n })\r\n if (currentTabIndex !== -1) {\r\n currentTabs = currentTabs.with(currentTabIndex, { ...currentTabs[currentTabIndex], isSelected: true })\r\n }\r\n\r\n return {\r\n visibleTabCount: -1,\r\n tabs: currentTabs,\r\n }\r\n })\r\n )\r\n }\r\n },\r\n ]\r\n}\r\n\r\nconst moduleNavigationState = atomFamily({\r\n key: \"moduleNavigation\",\r\n default: { tabs: [], visibleTabCount: -1 },\r\n effects: createStateEffects,\r\n})\r\n\r\nexport const tabsSelector = selectorFamily({\r\n key: \"tabsSelector\",\r\n get:\r\n (workTaskId) =>\r\n ({ get }) =>\r\n get(moduleNavigationState(workTaskId)).tabs,\r\n set:\r\n (workTaskId) =>\r\n ({ set }, tabs) =>\r\n set(moduleNavigationState(workTaskId), (prev) => ({ ...prev, tabs }) as ModuleNavigationState),\r\n})\r\n\r\nexport const visibleTabCountSelector = selectorFamily({\r\n key: \"visibleTabCountSelector\",\r\n get:\r\n (workTaskId) =>\r\n ({ get }) =>\r\n get(moduleNavigationState(workTaskId)).visibleTabCount,\r\n set:\r\n (workTaskId) =>\r\n ({ set }, visibleTabCount) =>\r\n set(moduleNavigationState(workTaskId), (prev) => ({ ...prev, visibleTabCount }) as ModuleNavigationState),\r\n})\r\n","import { useEffect, useMemo } from \"react\"\r\nimport { useLocation } from \"react-router\"\r\nimport { values } from \"lodash\"\r\nimport { channel, ModuleTab } from \"@tm/models\"\r\nimport { encodeUniqueId, renderRoute } from \"@tm/utils\"\r\nimport { getNextUrlComparable } from \".\"\r\nimport { useModuleNavigation } from \"./useModuleNavigation\"\r\nimport { useWorkTaskId } from \"../worktask\"\r\nimport { useRecoilState } from \"recoil\"\r\nimport { tabsSelector, visibleTabCountSelector } from \"./state\"\r\n\r\nexport function useInitModuleNavigation(activateDefaultTabs?: boolean, defaultTabs?: Record) {\r\n const workTaskId = useWorkTaskId()\r\n const location = useLocation()\r\n\r\n const [tabs, setTabs] = useRecoilState(tabsSelector(workTaskId))\r\n const [visibleTabCount, setVisibleTabCount] = useRecoilState(visibleTabCountSelector(workTaskId))\r\n\r\n const { showTab, closeTab, resetVisibleTabCount } = useModuleNavigation()\r\n\r\n const visibleTabs = useMemo(() => {\r\n if (visibleTabCount === -1) {\r\n return tabs\r\n }\r\n const selectedPos = tabs.findIndex((x) => x.isSelected)\r\n if (selectedPos >= visibleTabCount) {\r\n return [...tabs.slice(0, visibleTabCount - 1), tabs[selectedPos]]\r\n }\r\n return tabs.slice(0, visibleTabCount)\r\n }, [visibleTabCount, tabs])\r\n\r\n const moreTabs = useMemo(() => tabs.filter((x) => !visibleTabs.includes(x)), [visibleTabCount, tabs])\r\n\r\n useEffect(() => {\r\n return channel(\"WORKTASK\", workTaskId).subscribe(\"MODULE/OPENED\", (tab) => showTab(tab, true), true)\r\n }, [])\r\n\r\n useEffect(\r\n function initDefaultTabs() {\r\n if (!activateDefaultTabs || !workTaskId || tabs?.some((val) => val.isDefault)) {\r\n return\r\n }\r\n const defaultTabsWithName = values(defaultTabs).filter((tab) => !!tab.name)\r\n if (!defaultTabsWithName.length) {\r\n return\r\n }\r\n setTabs((prev) => {\r\n let currentTabs: ModuleTab[] = []\r\n\r\n defaultTabsWithName.map(\r\n (tab) =>\r\n (currentTabs = [\r\n ...currentTabs,\r\n {\r\n icon: tab.icon,\r\n title: tab.name!,\r\n url: renderRoute(tab.url, { workTaskId: encodeUniqueId(workTaskId) }),\r\n isSelected: false,\r\n isDefault: true,\r\n vehicleDependency: tab.vehicleDependency,\r\n moduleGroupId: tab.moduleGroupId,\r\n moduleId: tab.moduleId,\r\n },\r\n ])\r\n )\r\n\r\n currentTabs = [...currentTabs, ...prev]\r\n\r\n return currentTabs\r\n })\r\n },\r\n [defaultTabs, activateDefaultTabs]\r\n )\r\n\r\n useEffect(\r\n function changeTabUrl() {\r\n const currentUrl = `${location.pathname}${location.search}`\r\n const currentUrlComparable = getNextUrlComparable(currentUrl)\r\n setTabs((prev) => {\r\n let currentTabs = prev\r\n const currentTabIndex = currentTabs.findIndex((tab) => {\r\n const tabUrl = getNextUrlComparable(tab.url)\r\n return currentUrlComparable && currentUrlComparable === tabUrl\r\n })\r\n const selectedIndex = currentTabs.findIndex((x) => x.isSelected)\r\n if (selectedIndex !== -1) {\r\n currentTabs = currentTabs.with(selectedIndex, { ...currentTabs[selectedIndex], isSelected: false })\r\n }\r\n if (currentTabIndex !== -1) {\r\n if (currentTabs[currentTabIndex].url !== currentUrl || !currentTabs[currentTabIndex].isSelected) {\r\n currentTabs = currentTabs.with(currentTabIndex, {\r\n ...currentTabs[currentTabIndex],\r\n url: currentUrl,\r\n isSelected: true,\r\n })\r\n }\r\n }\r\n return currentTabs\r\n })\r\n },\r\n [location]\r\n )\r\n\r\n return { visibleTabs, moreTabs, closeTab, visibleTabCount, setVisibleTabCount, resetVisibleTabCount }\r\n}\r\n","import { useCallback, useMemo } from \"react\"\r\nimport { useHistory, useRouteMatch } from \"react-router\"\r\nimport { isEqual } from \"lodash\"\r\nimport { useSetRecoilState } from \"recoil\"\r\nimport { ModuleTab, channel } from \"@tm/models\"\r\nimport { Overwrite, encodeUniqueId } from \"@tm/utils\"\r\nimport { tabsSelector, visibleTabCountSelector } from \"./state\"\r\nimport { isModalUrl, isSameTab } from \".\"\r\nimport { useWorkTaskId } from \"../worktask\"\r\n\r\nexport function useModuleNavigation() {\r\n const history = useHistory()\r\n const { params } = useRouteMatch<{ workTaskId?: string }>()\r\n\r\n const workTaskId = useWorkTaskId()\r\n const encodedWorktaskId = useMemo(() => (workTaskId ? encodeUniqueId(workTaskId) : undefined), [workTaskId])\r\n\r\n const setVisibleTabCount = useSetRecoilState(visibleTabCountSelector(workTaskId))\r\n const setTabs = useSetRecoilState(tabsSelector(workTaskId))\r\n\r\n const resetVisibleTabCount = useCallback(() => setVisibleTabCount(-1), [setVisibleTabCount])\r\n\r\n const closeTabs = useCallback(\r\n (urls: string[]) => {\r\n setTabs((prev) => prev.filter((x) => !urls.includes(x.url)))\r\n const currentUrl = `${location.pathname}${location.search}`\r\n if (urls.includes(currentUrl)) {\r\n history.push(`/${encodedWorktaskId}`)\r\n }\r\n resetVisibleTabCount()\r\n },\r\n [encodedWorktaskId, history, setTabs]\r\n )\r\n\r\n const closeTab = useCallback(\r\n (url: string) => {\r\n closeTabs([url])\r\n },\r\n [closeTabs]\r\n )\r\n\r\n const showTab = useCallback(\r\n (moduleTab?: Overwrite, avoidAddToChannel?: boolean) => {\r\n if (!moduleTab || params.workTaskId !== encodedWorktaskId || !moduleTab?.title) {\r\n return\r\n }\r\n\r\n // extra check if the workTaskId in the url is really the correct one\r\n if (location.pathname.replace(/^\\//, \"\").split(\"/\")[0] !== encodedWorktaskId) {\r\n return\r\n }\r\n\r\n // Add a message to Hermes for downwards compatibility. https://jira.dvse.de/browse/NEXT-28489\r\n if (!avoidAddToChannel) {\r\n const workTaskChannel = channel(\"WORKTASK\", workTaskId)\r\n const lastMessage = workTaskChannel.last()[0]\r\n if (lastMessage && (lastMessage.topic !== \"MODULE/OPENED\" || !isEqual(lastMessage.content, moduleTab))) {\r\n workTaskChannel.add(\"MODULE/OPENED\", moduleTab as ModuleTab)\r\n }\r\n }\r\n resetVisibleTabCount()\r\n\r\n const currentUrl = `${location.pathname}${location.search}`\r\n let currentTab = moduleTab\r\n\r\n if (!currentTab.preventURLRewrite) {\r\n currentTab = { ...moduleTab, url: currentUrl }\r\n }\r\n\r\n setTabs((prev) => {\r\n let currentTabs = prev\r\n let pos = currentTabs.findIndex((x) => isSameTab(x, currentTab as ModuleTab))\r\n\r\n if (pos === -1) {\r\n // Tab does not exist\r\n if (location.search && isModalUrl(location.search)) {\r\n // Check if a modal is opened and one of his components send a MODULE_OPENED. In this case, we have to take the existing parent tab.\r\n pos = currentTabs.findIndex((x) => x.title !== moduleTab.title && x.url?.indexOf(location.pathname) !== -1)\r\n if (pos !== -1) {\r\n currentTab = { ...currentTab, title: currentTabs[pos].title }\r\n }\r\n }\r\n } else if (!isEqual(moduleTab, currentTabs[pos])) {\r\n // Tab has changed\r\n currentTab = {\r\n ...currentTab,\r\n isDefault: currentTabs[pos].isDefault,\r\n vehicleDependency: currentTabs[pos].vehicleDependency,\r\n moduleGroupId: currentTabs[pos].moduleGroupId,\r\n moduleId: currentTabs[pos].moduleId,\r\n }\r\n }\r\n\r\n if (!currentTab.isSelected) {\r\n currentTab = { ...currentTab, isSelected: true }\r\n }\r\n\r\n const selectedPos = currentTabs.findIndex((x) => x.isSelected)\r\n\r\n if (currentTab !== currentTabs[pos]) {\r\n currentTabs = currentTabs.with(pos, currentTab as ModuleTab)\r\n }\r\n\r\n if (selectedPos !== -1 && selectedPos !== pos) {\r\n currentTabs = currentTabs.with(selectedPos, { ...currentTabs[selectedPos], isSelected: false })\r\n }\r\n\r\n return currentTabs\r\n })\r\n },\r\n [params.workTaskId, encodedWorktaskId, setTabs]\r\n )\r\n\r\n const resetTabs = useCallback(() => setTabs((prev) => prev.filter((x) => x.isDefault)), [setTabs])\r\n\r\n return { showTab, closeTab, closeTabs, resetTabs, resetVisibleTabCount, setTabs, setVisibleTabCount }\r\n}\r\n","import { useCallback } from \"react\"\r\nimport { atomFamily, useSetRecoilState, useRecoilValue } from \"recoil\"\r\nimport { Article, RequestArticleListPayload } from \"@tm/models\"\r\nimport { useWorkTaskId } from \"../worktask\"\r\n\r\ntype PureArticleListState = {\r\n request?: RequestArticleListPayload\r\n data?: Article[]\r\n isLoading?: boolean\r\n}\r\n\r\nconst pureArticleListsState = atomFamily, string | undefined>({\r\n default: {},\r\n key: \"pureArticleLists\",\r\n})\r\n\r\nexport function usePureArticleList(id: string) {\r\n const workTaskId = useWorkTaskId()\r\n const states = useRecoilValue(pureArticleListsState(workTaskId))\r\n return { state: states[id] }\r\n}\r\n\r\nexport function usePureArticleLists() {\r\n const workTaskId = useWorkTaskId()\r\n const setStates = useSetRecoilState(pureArticleListsState(workTaskId))\r\n\r\n const setRequest = useCallback((id: string, request: RequestArticleListPayload) => {\r\n setStates((prev) => {\r\n return {\r\n ...prev,\r\n [id]: { request },\r\n }\r\n })\r\n }, [])\r\n\r\n const reset = useCallback((id: string) => {\r\n setStates((prev) => {\r\n return { ...prev, [id]: {} }\r\n })\r\n }, [])\r\n\r\n return { setRequest, reset }\r\n}\r\n","import { createContext } from \"react\"\r\nimport { ScreenSizeProps } from \"./model\"\r\n\r\nexport const SizeContext = createContext(\"m\")\r\n","import { ScreenSizeProps } from \"./model\"\r\n\r\nexport const getWindowSize = () => {\r\n const { innerWidth: width } = window\r\n let windowSize: ScreenSizeProps[\"screenSize\"] = \"m\"\r\n if (width < 800) {\r\n windowSize = \"xs\"\r\n }\r\n if (width >= 800 && width < 1100) {\r\n windowSize = \"s\"\r\n }\r\n if (width >= 1100 && width < 1300) {\r\n windowSize = \"m\"\r\n }\r\n if (width >= 1300 && width < 1700) {\r\n windowSize = \"l\"\r\n }\r\n if (width >= 1700) {\r\n windowSize = \"xl\"\r\n }\r\n\r\n return windowSize\r\n}\r\n","import { Component, PropsWithChildren } from \"react\"\r\nimport { getWindowSize } from \".\"\r\nimport { SizeContext } from \"./context\"\r\n\r\ntype Props = PropsWithChildren\r\n\r\ntype State = {\r\n windowSize: \"xs\" | \"s\" | \"m\" | \"l\" | \"xl\"\r\n}\r\n\r\nexport class SizeProvider extends Component {\r\n constructor(props: Props) {\r\n super(props)\r\n this.state = {\r\n windowSize: getWindowSize(),\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"resize\", this.updateDimensions.bind(this))\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.updateDimensions.bind(this))\r\n }\r\n\r\n updateDimensions() {\r\n const windowSize = getWindowSize()\r\n if (this.state.windowSize != windowSize) {\r\n this.setState({ windowSize })\r\n }\r\n }\r\n\r\n render() {\r\n const { children } = this.props\r\n const { windowSize } = this.state\r\n return {children}\r\n }\r\n}\r\n","import { useContext } from \"react\"\r\nimport { SizeContext } from \".\"\r\n\r\nexport const useSize = () => useContext(SizeContext)\r\n","import { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { SizeContext } from \".\"\r\nimport { ScreenSizeProps } from \"./model\"\r\n\r\nexport function withScreenSize

    (component: ComponentType

    ): ComponentClass> {\r\n return class extends Component> {\r\n renderInnerComponent(screenSize?: ScreenSizeProps[\"screenSize\"]) {\r\n if (!screenSize) {\r\n console.warn(\"There is no ScreenSize Provider\")\r\n }\r\n\r\n const currentProps: any = this.props || {}\r\n const props: P & ScreenSizeProps = {\r\n ...currentProps,\r\n screenSize,\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return (\r\n {(screenSize?: ScreenSizeProps[\"screenSize\"]) => this.renderInnerComponent(screenSize)}\r\n )\r\n }\r\n }\r\n}\r\n","import { NestedCSSProperties } from \"typestyle/lib/types\"\r\n\r\nexport function css(cfg: T) {\r\n return cfg\r\n}\r\n\r\nexport function classes(...classes: (string | false | undefined | null | { [className: string]: any })[]): string {\r\n return classes\r\n .map((c) => (c && typeof c === \"object\" ? Object.keys(c).map((key) => !!c[key] && key) : [c]))\r\n .reduce((flattened, c) => flattened.concat(c), [] as string[])\r\n .filter((c) => !!c)\r\n .join(\" \")\r\n}\r\n","import { FC } from \"react\"\r\nimport { style } from \"typestyle\"\r\nimport { NestedCSSProperties } from \"typestyle/lib/types\"\r\n\r\nconst isDebug = localStorage.getItem(\"ENV\") == \"development\"\r\n\r\n/**\r\n * @deprecated This function uses typestyle which we don't want to use anymore. Please use `styled` from `@tm/components` instead.\r\n */\r\nexport function useStyle(classes: Record) {\r\n return function (this: Record, comp: FC): Record {\r\n const classNames = Object.getOwnPropertyNames(this)\r\n const result: any = {}\r\n for (let _i = 0, classNames_1 = classNames; _i < classNames_1.length; _i++) {\r\n const className = classNames_1[_i]\r\n const classDef = classes[className as Names]\r\n if (classDef) {\r\n if (isDebug) {\r\n classDef.$debugName = `${(comp?.name ?? (comp as any)?.type?.name)?.toLowerCase()}--${className}`\r\n }\r\n result[className] = style(classDef)\r\n }\r\n }\r\n return result as Record\r\n }.bind(classes)\r\n}\r\n","import { NextTheme } from \"@tm/components\"\r\nimport { style } from \"typestyle\"\r\nimport { Component, ComponentClass, createElement } from \"react\"\r\nimport { StyleProps } from \"..\"\r\n\r\nexport function withStyle

    , S, T, V extends (props: P, theme: NextTheme) => Record>(\r\n generateStyle: V,\r\n component: ComponentClass\r\n): ComponentClass>, S> {\r\n return class extends Component {\r\n render() {\r\n const ss = generateStyle(this.props, (window as any).__NEXT_STYLETHEME__)\r\n\r\n const styles: Record = {}\r\n const compName = `${component.prototype.constructor.name.toLowerCase()}--`\r\n\r\n Object.keys(ss).forEach((key) => {\r\n styles[key] = style({ ...ss[key], $debugName: `${compName + key}_` })\r\n })\r\n const props = { ...this.props, style: styles }\r\n return createElement(component, props)\r\n }\r\n } as any\r\n}\r\n","import { ThemeProvider as MuiThemeProvider, createTheme, createNextMuiTheme } from \"@tm/components\"\r\nimport { Children, PropsWithChildren, useMemo } from \"react\"\r\nimport { ThemeProviderContext } from \"./ThemeProviderContext\"\r\nimport { getStyleTheme } from \".\"\r\n\r\ntype ThemeProviderProps = PropsWithChildren\r\n\r\nexport function ThemeProvider(props: ThemeProviderProps) {\r\n const nextTheme = getStyleTheme() // theme was already loaded by the portal, before the Providers are rendered\r\n const muiTheme = useMemo(() => {\r\n try {\r\n return createNextMuiTheme(nextTheme)\r\n } catch {\r\n return createTheme()\r\n }\r\n }, [nextTheme])\r\n\r\n return (\r\n \r\n {props.children ? Children.only(props.children) : null}\r\n \r\n )\r\n}\r\n","import { createContext } from \"react\"\r\n\r\nexport const ThemeProviderContext = createContext<{}>({})\r\n","import { ajax } from \"@tm/utils\"\r\nimport { DEFAULT_THEME, NextTheme } from \"@tm/components\"\r\n\r\nexport * from \"./ThemeProvider\"\r\nexport * from \"./ThemeProviderContext\"\r\nexport * from \"./withTheme\"\r\n\r\nexport const THEME_IDENTIFIER = \"__NEXT_STYLETHEME__\"\r\nlet _theme: NextTheme\r\n\r\n/**\r\n * @deprecated Please use properties from the MUI theme instead by using `styled` from `@tm/components` or the `sx` property existing for MUI components.\r\n */\r\nexport function getStyleTheme(): NextTheme {\r\n if (typeof window != \"undefined\") {\r\n return (window as any)[THEME_IDENTIFIER]\r\n }\r\n return _theme\r\n}\r\n\r\nexport function loadStyleThemes(themeUrl: string, themeMuiUrl: string) {\r\n const nextThemeJson = ajax({ url: themeUrl })\r\n const muiThemeJson = ajax({ url: themeMuiUrl })\r\n const themes = Promise.allSettled([nextThemeJson, muiThemeJson])\r\n\r\n themes.then((settledThemes) => {\r\n const [next, mui] = settledThemes\r\n if (next.status === \"rejected\") {\r\n return\r\n }\r\n if (next.value && typeof next.value === \"object\") {\r\n setStyleTheme(next.value)\r\n }\r\n\r\n if (mui.status === \"fulfilled\" && mui.value && typeof mui.value === \"object\") {\r\n appendMuiTheme(mui.value)\r\n }\r\n })\r\n\r\n return themes\r\n}\r\n\r\nexport function setStyleTheme(theme: NextTheme) {\r\n theme = {\r\n ...DEFAULT_THEME,\r\n ...theme,\r\n font: {\r\n ...DEFAULT_THEME.font,\r\n ...theme?.font,\r\n },\r\n }\r\n if (typeof window !== \"undefined\") {\r\n ;(window as any)[THEME_IDENTIFIER] = theme\r\n }\r\n _theme = theme\r\n}\r\n\r\nexport function appendMuiTheme(muiTheme: NextTheme) {\r\n const theme = ((window || {}) as any)[THEME_IDENTIFIER] || _theme\r\n\r\n const fullTheme = {\r\n ...theme,\r\n ...muiTheme,\r\n }\r\n\r\n if (typeof window !== \"undefined\") {\r\n ;(window as any)[THEME_IDENTIFIER] = fullTheme\r\n }\r\n _theme = fullTheme\r\n}\r\n","import { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { ThemeProviderContext } from \".\"\r\n\r\nexport type WithThemeProps = {\r\n theme: {}\r\n}\r\n\r\nexport function withTheme

    (component: ComponentType

    ): ComponentClass> {\r\n return class extends Component> {\r\n renderInnerComponent(theme: {}) {\r\n const currentProps: any = this.props || {}\r\n\r\n const props: P & WithThemeProps = {\r\n ...currentProps,\r\n theme,\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return {(theme: {}) => this.renderInnerComponent(theme)}\r\n }\r\n }\r\n}\r\n","import { ConfigParams, RegistrationNoType } from \"@tm/models\"\r\nimport Morpheus from \"@tm/morpheus\"\r\nimport { getStoredAuthorization } from \"@tm/utils\"\r\nimport { Location } from \"history\"\r\nimport { User, useUser } from \"../user\"\r\nimport { useWorkTask, WorkTask } from \"../worktask\"\r\n\r\n// Only Tags that start with a \"#\"\r\nconst availableTags = [\r\n \"HOSTETTLER_DOM\",\r\n \"HOSTETTLER_KTYPNR\",\r\n \"HOSTETTLER_LOCALE\",\r\n \"HOSTETTLER_RUB\",\r\n \"HOSTETTLER_SHOP_RUB\",\r\n \"HOSTETTLER_SRV\",\r\n \"HSN\",\r\n \"KHER\",\r\n \"KTYPNR\",\r\n \"LANGUAGE\",\r\n \"LICENSEPLATE\",\r\n \"ORDERID\",\r\n \"PRICEFILTER\",\r\n \"PRICEFILTER_NUMBER\",\r\n \"PRODUCT_GROUP_ID\",\r\n \"QUANTITY\",\r\n \"REGISTRATIONNO\",\r\n \"SEARCHQUERY\",\r\n \"SUPPLIERARTICLENUMBER\",\r\n \"SUPPLIERNUMBER\",\r\n \"TOKEN\",\r\n \"TSN\",\r\n \"URLAPPENDIX\",\r\n \"VSN\",\r\n \"WHOLESALERARTICLENUMBER\",\r\n \"WORKTASKID\",\r\n \"WORKTASK_CUSTOMER_ID\",\r\n \"WORKTASK_VEHICLE_ID\",\r\n \"WORKTASK_VEHICLE_TYPE\",\r\n] as const\r\n\r\ntype UrlTag = (typeof availableTags)[number]\r\n\r\nexport function getUrlTags() {\r\n return availableTags\r\n}\r\n\r\n// UrlTagsProps musst match in availableTags\r\nexport type UrlTagsProps = {\r\n kbaNumbers?: string[]\r\n languageId?: string\r\n location?: Location\r\n orderId?: string\r\n productGroupId?: number\r\n quantity?: number\r\n supplierArticleNumber?: string\r\n supplierNumber?: number\r\n wholesalerArticleNumber?: string\r\n}\r\n\r\nexport function useReplaceUrlTags(url: string | undefined, props: UrlTagsProps) {\r\n const userContainer = useUser()\r\n const workTaskContainer = useWorkTask()\r\n\r\n if (!url) {\r\n return\r\n }\r\n\r\n return replaceUrlTags(url, props, userContainer, workTaskContainer)\r\n}\r\n\r\nexport function replaceUrlTags(url: string, props: UrlTagsProps, userContainer?: User, workTaskContainer?: WorkTask) {\r\n const { userContext, userSettings } = userContainer ?? {}\r\n const { workTask, workTaskId } = workTaskContainer ?? {}\r\n\r\n let error = false\r\n const { location, kbaNumbers, languageId, quantity, wholesalerArticleNumber, supplierArticleNumber, supplierNumber, productGroupId, orderId } =\r\n props\r\n let match\r\n\r\n let kbaNumber = new URLSearchParams(location?.search).get(\"kba\")\r\n if (!kbaNumber) {\r\n if (workTask?.vehicle?.registrationNo && workTask?.vehicle?.registrationTypeId === RegistrationNoType.Kba) {\r\n kbaNumber = workTask.vehicle.registrationNo\r\n } else if (kbaNumbers && kbaNumbers.length && kbaNumbers[0]) {\r\n kbaNumber = kbaNumbers[0]\r\n }\r\n }\r\n\r\n while ((match = RegExp(\"{#(.+?)}\", \"g\").exec(url)) !== null) {\r\n const tag = match[1]\r\n let queryValue = \"\"\r\n\r\n switch (tag.toUpperCase() as UrlTag) {\r\n // Alphabetically sorted\r\n case \"HOSTETTLER_DOM\": {\r\n if (languageId) {\r\n if (languageId == \"6\" || languageId == \"7\") {\r\n queryValue = \"2\"\r\n } else {\r\n queryValue = \"1\"\r\n }\r\n }\r\n break\r\n }\r\n case \"HOSTETTLER_KTYPNR\": // TODO: This should be removed and replaced by \"KTYPNR\" in code and in MDM\r\n case \"KTYPNR\": {\r\n queryValue = workTask?.vehicle?.tecDocTypeId?.toString() || \"\"\r\n break\r\n }\r\n case \"HOSTETTLER_LOCALE\": {\r\n if (languageId) {\r\n if (languageId == \"6\" || languageId == \"7\") {\r\n queryValue = \"fr_CH\"\r\n } else {\r\n queryValue = \"de_CH\"\r\n }\r\n }\r\n break\r\n }\r\n case \"HOSTETTLER_RUB\": {\r\n if (workTask?.vehicle) {\r\n if (languageId) {\r\n if (languageId == \"6\" || languageId == \"7\") {\r\n queryValue = \"78\"\r\n }\r\n } else {\r\n queryValue = \"77\"\r\n }\r\n } else if (languageId) {\r\n if (languageId == \"6\" || languageId == \"7\") {\r\n queryValue = \"75\"\r\n }\r\n } else {\r\n queryValue = \"74\"\r\n }\r\n break\r\n }\r\n case \"HOSTETTLER_SHOP_RUB\": {\r\n if (workTask?.vehicle) {\r\n if (languageId) {\r\n if (languageId == \"6\" || languageId == \"7\") {\r\n queryValue = \"2\"\r\n }\r\n }\r\n } else {\r\n queryValue = \"1\"\r\n }\r\n break\r\n }\r\n case \"HOSTETTLER_SRV\": {\r\n if (workTask?.vehicle) {\r\n queryValue = \"vehiculesearch\"\r\n } else {\r\n queryValue = \"tiresearch\"\r\n }\r\n break\r\n }\r\n case \"HSN\": {\r\n if (kbaNumber) {\r\n const hsn = kbaNumber.replace(\" \", \"\")\r\n queryValue = hsn.substr(0, 4)\r\n }\r\n break\r\n }\r\n case \"KHER\": {\r\n queryValue = workTask?.vehicle?.tecDocManufacturerId?.toString() || \"\"\r\n break\r\n }\r\n case \"LANGUAGE\": {\r\n if (languageId) {\r\n queryValue = languageId\r\n } else {\r\n return\r\n }\r\n break\r\n }\r\n case \"LICENSEPLATE\": {\r\n queryValue = workTask?.vehicle?.plateId || \"\"\r\n break\r\n }\r\n case \"ORDERID\": {\r\n if (orderId) {\r\n queryValue = encodeURIComponent(orderId)\r\n }\r\n break\r\n }\r\n case \"PRICEFILTER\": {\r\n if (userSettings) {\r\n queryValue = userSettings.showPurchasePrice ? \"false\" : \"true\"\r\n } else {\r\n return\r\n }\r\n break\r\n }\r\n case \"PRICEFILTER_NUMBER\": {\r\n if (userSettings) {\r\n queryValue = userSettings.showPurchasePrice ? \"0\" : \"1\"\r\n } else {\r\n return\r\n }\r\n break\r\n }\r\n case \"PRODUCT_GROUP_ID\": {\r\n if (productGroupId) {\r\n queryValue = encodeURIComponent(productGroupId)\r\n }\r\n break\r\n }\r\n case \"QUANTITY\": {\r\n if (quantity) {\r\n queryValue = encodeURIComponent(quantity)\r\n }\r\n break\r\n }\r\n case \"REGISTRATIONNO\": {\r\n queryValue = workTask?.vehicle?.registrationNo || \"\"\r\n break\r\n }\r\n case \"SEARCHQUERY\": {\r\n if (location) {\r\n queryValue = new URLSearchParams(location.search).get(\"query\") || queryValue\r\n } else {\r\n return\r\n }\r\n break\r\n }\r\n case \"SUPPLIERARTICLENUMBER\": {\r\n if (supplierArticleNumber) {\r\n queryValue = encodeURIComponent(supplierArticleNumber)\r\n }\r\n break\r\n }\r\n case \"SUPPLIERNUMBER\": {\r\n if (supplierNumber) {\r\n queryValue = encodeURIComponent(supplierNumber)\r\n }\r\n break\r\n }\r\n case \"TOKEN\": {\r\n // NEXT portal token\r\n const authorization = getStoredAuthorization()\r\n if (authorization) {\r\n queryValue += `${authorization.type} ${authorization.credentials}`\r\n }\r\n break\r\n }\r\n case \"TSN\": {\r\n if (kbaNumber) {\r\n const tsn = kbaNumber.replace(\" \", \"\")\r\n queryValue = tsn.substr(4, 3)\r\n }\r\n break\r\n }\r\n case \"URLAPPENDIX\": {\r\n if (location) {\r\n queryValue = new URLSearchParams(location.search).get(\"frameUrlAppendix\") || queryValue\r\n }\r\n break\r\n }\r\n case \"VSN\": {\r\n if (kbaNumber) {\r\n const vsn = kbaNumber.replace(\" \", \"\")\r\n if (vsn.length > 7) {\r\n queryValue = vsn.substr(7)\r\n }\r\n }\r\n break\r\n }\r\n case \"WHOLESALERARTICLENUMBER\": {\r\n if (wholesalerArticleNumber) {\r\n queryValue = encodeURIComponent(wholesalerArticleNumber)\r\n }\r\n break\r\n }\r\n case \"WORKTASKID\": {\r\n if (workTaskId) {\r\n queryValue += workTaskId\r\n }\r\n break\r\n }\r\n case \"WORKTASK_CUSTOMER_ID\": {\r\n queryValue = workTask?.customer?.id || \"\"\r\n break\r\n }\r\n case \"WORKTASK_VEHICLE_ID\": {\r\n queryValue = workTask?.vehicle?.id || \"\"\r\n break\r\n }\r\n case \"WORKTASK_VEHICLE_TYPE\": {\r\n queryValue = workTask?.vehicle?.vehicleType?.toString() || \"\"\r\n break\r\n }\r\n default: {\r\n // if (Object.keys(props.state).some(x => x == tag)) {\r\n // const val = (props.state as Dictionary)[tag]\r\n // queryValue = val || \"\";\r\n // }\r\n\r\n // External authentication tokens\r\n if (tag.toUpperCase().startsWith(\"TOKEN:\")) {\r\n const tokenKey = tag.substr(6)\r\n const { tokenHandler } = Morpheus.getParams()\r\n const tokenKeyAlt = tokenHandler\r\n ? Object.entries(tokenHandler).find(([key]) => key.toUpperCase() === tokenKey.toUpperCase())?.[1]\r\n : undefined\r\n\r\n // First look in the session storage ...\r\n const tokenStorage = sessionStorage.getItem(`token://${tokenKey}`) ?? sessionStorage.getItem(`token://${tokenKeyAlt}`)\r\n if (tokenStorage) {\r\n try {\r\n queryValue = JSON.parse(tokenStorage).token\r\n } catch {}\r\n }\r\n\r\n if (!queryValue && userContext) {\r\n // ...then in the userContext\r\n const token = Object.entries(userContext.externalAuthenticationTokens).find(\r\n ([key]) => key.toUpperCase() === tokenKey.toUpperCase()\r\n )?.[1]\r\n if (token) {\r\n queryValue = token\r\n } else if (tokenKeyAlt) {\r\n const tokenAlt = Object.entries(userContext.externalAuthenticationTokens).find(\r\n ([key]) => key.toUpperCase() === tokenKeyAlt.toUpperCase()\r\n )?.[1]\r\n if (tokenAlt) {\r\n queryValue = tokenAlt\r\n }\r\n }\r\n }\r\n\r\n error = !queryValue\r\n }\r\n }\r\n }\r\n\r\n url = url.replace(`{#${tag}}`, queryValue)\r\n }\r\n\r\n return error ? undefined : url\r\n}\r\n","import { useContext } from \"react\"\r\nimport { UserProviderContext } from \"../model/UserProviderContext\"\r\n\r\nexport function useUser() {\r\n return useContext(UserProviderContext)\r\n}\r\n","import { Omit } from \"@tm/utils\"\r\nimport { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { UserProviderContext } from \"../model/UserProviderContext\"\r\nimport { User } from \"../model\"\r\n\r\nexport type WithChangeUserSettingProps = Pick<\r\n User,\r\n | \"userSettings\"\r\n | \"reloadUserSettings\"\r\n | \"setUserSetting\"\r\n | \"changeLogo\"\r\n | \"changePrintLogo\"\r\n | \"removeLogo\"\r\n | \"changeHourlyRates\"\r\n | \"updateRepairShop\"\r\n | \"changeRepairTimeOptions\"\r\n | \"changeOrderOptions\"\r\n | \"changeDirectBuyOptions\"\r\n>\r\n\r\nexport function withChangeUserSetting

    (\r\n component: ComponentType

    \r\n): ComponentClass> {\r\n return class extends Component> {\r\n constructor(props: Omit) {\r\n super(props)\r\n this.renderInnerComponent = this.renderInnerComponent.bind(this)\r\n }\r\n\r\n renderInnerComponent(user: User) {\r\n const currentProps: any = this.props || {}\r\n\r\n const props: P & WithChangeUserSettingProps = {\r\n ...currentProps,\r\n userSettings: user.userSettings,\r\n reloadUserSettings: user.reloadUserSettings,\r\n setUserSetting: user.setUserSetting,\r\n changeLogo: user.changeLogo,\r\n changePrintLogo: user.changePrintLogo,\r\n removeLogo: user.removeLogo,\r\n changeHourlyRates: user.changeHourlyRates,\r\n updateRepairShop: user.updateRepairShop,\r\n changeRepairTimeOptions: user.changeRepairTimeOptions,\r\n changeOrderOptions: user.changeOrderOptions,\r\n changeDirectBuyOptions: user.changeDirectBuyOptions,\r\n changeCostEstimationOptions: user.changeCostEstimationOptions,\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return {this.renderInnerComponent}\r\n }\r\n }\r\n}\r\n","import { Omit } from \"@tm/utils\"\r\nimport { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { UserProviderContext } from \"../model/UserProviderContext\"\r\nimport { User } from \"../model\"\r\n\r\nexport type WithUserContextProps = Pick\r\n\r\nexport function withUserContext

    (component: ComponentType

    ): ComponentClass> {\r\n return class extends Component> {\r\n constructor(props: Omit) {\r\n super(props)\r\n this.renderInnerComponent = this.renderInnerComponent.bind(this)\r\n }\r\n\r\n renderInnerComponent(user: User) {\r\n const currentProps: any = this.props || {}\r\n\r\n const props: P & WithUserContextProps = {\r\n ...currentProps,\r\n userContext: user.userContext,\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return {this.renderInnerComponent}\r\n }\r\n }\r\n}\r\n","import { Omit } from \"@tm/utils\"\r\nimport { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { UserProviderContext } from \"../model/UserProviderContext\"\r\nimport { User } from \"../model\"\r\n\r\nexport type WithUserSettingsProps = Pick\r\n\r\nexport function withUserSettings

    (component: ComponentType

    ): ComponentClass> {\r\n return class extends Component> {\r\n constructor(props: Omit) {\r\n super(props)\r\n this.renderInnerComponent = this.renderInnerComponent.bind(this)\r\n }\r\n\r\n renderInnerComponent(user: User) {\r\n const currentProps: any = this.props || {}\r\n\r\n const props: P & WithUserSettingsProps = {\r\n ...currentProps,\r\n userSettings: user.userSettings,\r\n reloadUserSettings: user.reloadUserSettings,\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return {this.renderInnerComponent}\r\n }\r\n }\r\n}\r\n","import { RegisteredModels, UserContext, ViewState, ViewStateContainer } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { ajax, getStoredAuthorization } from \"@tm/utils\"\r\nimport { hasAuthorization } from \"../../helper\"\r\nimport { UserSettingsKeys } from \"../model\"\r\nimport { mapUserContext } from \"./mapper\"\r\n\r\nexport * from \"./repairshop\"\r\n\r\nexport function getUserContext(authorityServiceUrl: string): Promise {\r\n const url = `${authorityServiceUrl}/user/v3/GetUserContext`\r\n const authorization = getStoredAuthorization()\r\n\r\n if (!hasAuthorization(authorization)) {\r\n return Promise.reject(\"Authorization is missing\")\r\n }\r\n\r\n return new Promise((resolve, reject) =>\r\n ajax({ url, authorization }).then((data) => (data ? resolve(mapUserContext(data)) : reject()), reject)\r\n )\r\n}\r\n\r\nexport function getUserSetting(id: UserSettingsKeys): Promise {\r\n return Container.getInstance(RegisteredModels.ViewState)\r\n .subscribe(id)\r\n .load()\r\n .then((viewState) => {\r\n let response = viewState.value\r\n let result\r\n\r\n // \"!= undefined\" because response can be a falsey boolean or empty string which are valid\r\n if (response != undefined) {\r\n // Legacy fallback: if response still has nested state \"unpack\" it\r\n if (response.hasOwnProperty(\"state\")) {\r\n response = response.state\r\n }\r\n\r\n result = convertDates(response)\r\n }\r\n\r\n return result\r\n })\r\n}\r\n\r\nexport function setUserSetting(key: UserSettingsKeys, value: any) {\r\n const container: ViewStateContainer = Container.getInstance(RegisteredModels.ViewState)\r\n return container.action(\"saveViewState\")({ key, value })\r\n}\r\n\r\nconst regexDate = new RegExp(/^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$/)\r\nfunction convertDates(state: any) {\r\n if (!state) {\r\n return state\r\n }\r\n if (Array.isArray(state)) {\r\n for (let i = 0; i < state.length; i++) {\r\n state[i] = convertDates(state[i])\r\n }\r\n } else if (typeof state == \"object\") {\r\n Object.keys(state).forEach((key) => {\r\n state[key] = convertDates(state[key])\r\n })\r\n } else if (typeof state == \"string\" && regexDate.exec(state)) {\r\n state = new Date(state)\r\n }\r\n return state\r\n}\r\n","import { OrderingType, UserContext, UserContextParameters } from \"@tm/models\"\r\nimport { RepairShop, OpeningTime } from \"../model\"\r\n\r\nexport function mapRepairShop(response?: any): RepairShop | undefined {\r\n if (!response) {\r\n return undefined\r\n }\r\n\r\n return {\r\n ...response,\r\n openingTimes: mapOpeningTimes(response.openingTimes),\r\n logo: mapLogo(response.logo),\r\n printLogo: response.printLogo,\r\n }\r\n}\r\n\r\nfunction mapOpeningTimes(openingTimes?: any): OpeningTime | undefined {\r\n if (!openingTimes) {\r\n return undefined\r\n }\r\n\r\n return {\r\n ...openingTimes,\r\n from: openingTimes.from ? new Date(openingTimes.from) : undefined,\r\n until: openingTimes.until ? new Date(openingTimes.until) : undefined,\r\n }\r\n}\r\n\r\nfunction mapLogo(logo?: Array): string | undefined {\r\n if (!logo) {\r\n return undefined\r\n }\r\n\r\n return `data:image/*;base64,${logo}`\r\n}\r\n\r\nexport function mapUserContext(response?: any): UserContext {\r\n return {\r\n ...response,\r\n externalAuthenticationTokens: mapExternalAuthenticationTokens(response.externalAuthenticationTokens),\r\n parameter: mapParameters(response.parameter),\r\n }\r\n}\r\n\r\ntype KeyValue = {\r\n key: string\r\n value?: string\r\n}\r\n\r\nfunction mapExternalAuthenticationTokens(response?: KeyValue[]): Record {\r\n return Object.fromEntries(response?.map((x) => [x.key, x.value]) ?? [])\r\n}\r\n\r\nfunction mapParameters(response?: Array): UserContextParameters {\r\n const parameters: UserContextParameters = {\r\n purchasePricesDisabled: false,\r\n orderDisabled: false,\r\n hideBestsellers: false,\r\n catalogLight: false,\r\n urlLogoMoodPicture: undefined,\r\n orderingType: OrderingType.NoCentralOrdering,\r\n clientErpCachingTimespan: 0,\r\n positionChangeEArtNrHArtNr: false,\r\n hideDealerPartNumber: false,\r\n showCloseWorktaskButton: false,\r\n showVoucherKVA: true,\r\n showVoucherOrder: true,\r\n showVoucherReturn: false,\r\n showDataSupplierLogos: false,\r\n notificationsPollingInterval: 10,\r\n }\r\n\r\n if (!response) {\r\n return parameters\r\n }\r\n\r\n response.forEach((x) => {\r\n switch (x.key) {\r\n case \"PurchasePricesDisabled\":\r\n parameters.purchasePricesDisabled = true\r\n break\r\n case \"OrderDisabled\":\r\n parameters.orderDisabled = true\r\n break\r\n case \"HideBestsellers\":\r\n parameters.hideBestsellers = true\r\n break\r\n case \"CatalogLight\":\r\n parameters.catalogLight = true\r\n break\r\n case \"UrlLogoMoodPicture\":\r\n if (x.value) {\r\n parameters.urlLogoMoodPicture = x.value\r\n }\r\n break\r\n case \"TraderAddress\":\r\n parameters.traderAddress = x.value\r\n break\r\n case \"CollectiveCustomer\": {\r\n parameters.collectiveCustomer = x.value\r\n break\r\n }\r\n case \"CustomerReferenceNumber\":\r\n parameters.customerReferenceNumber = x.value\r\n break\r\n case \"CentralOrdering\":\r\n parameters.orderingType = parseNumber(x.value) ?? parameters.orderingType\r\n break\r\n case \"AddressGVS\":\r\n parameters.addressGVS = x.value\r\n break\r\n case \"ErpCacheTimeSpan\":\r\n parameters.clientErpCachingTimespan = parseNumber(x.value) ?? parameters.clientErpCachingTimespan\r\n break\r\n case \"CacheFrontendArticleListSec\":\r\n parameters.cacheFrontendArticleListSec = parseNumber(x.value)\r\n break\r\n case \"PositionChangeEArtNrHArtNr\":\r\n parameters.positionChangeEArtNrHArtNr = true\r\n break\r\n case \"HideDealerPartNumber\":\r\n parameters.hideDealerPartNumber = true\r\n break\r\n case \"ShowCloseWorktaskButton\":\r\n parameters.showCloseWorktaskButton = true\r\n break\r\n case \"ShowReceiptWidget_KVA\":\r\n parameters.showVoucherKVA = x.value === \"1\"\r\n break\r\n case \"ShowReceiptWidget_Order\":\r\n parameters.showVoucherOrder = x.value === \"1\"\r\n break\r\n case \"ShowReceiptWidget_Return\":\r\n parameters.showVoucherReturn = x.value === \"1\"\r\n break\r\n case \"Hotline\": {\r\n parameters.hotline = x.value\r\n break\r\n }\r\n case \"ShowDataSupplierLogos\":\r\n parameters.showDataSupplierLogos = true\r\n break\r\n case \"NotificationsPollingInterval\":\r\n const pollingIntervalFromMdm = parseNumber(x.value)\r\n if (pollingIntervalFromMdm) {\r\n parameters.notificationsPollingInterval = pollingIntervalFromMdm\r\n }\r\n break\r\n default: {\r\n const key = `${x.key[0].toLowerCase()}${x.key.substring(1, x.key.length)}`\r\n parameters[key] = parseBoolean(x.value) ?? parseNumber(x.value) ?? x.value\r\n break\r\n }\r\n }\r\n })\r\n\r\n return parameters\r\n}\r\n\r\nfunction parseBoolean(value?: string): boolean | undefined {\r\n value = value?.toLowerCase()\r\n if (value == \"false\") {\r\n return false\r\n }\r\n\r\n if (value == \"true\") {\r\n return true\r\n }\r\n}\r\n\r\nfunction parseNumber(value?: string) {\r\n return value && /^-?\\d+/.test(value) ? parseFloat(value) : undefined\r\n}\r\n","import { ajax, ajaxAuth, getStoredAuthorization } from \"@tm/utils\"\r\nimport {\r\n HourlyRate,\r\n UpdateRepairShopRequest,\r\n RepairTimeOptions,\r\n OrderOptions,\r\n DirectBuyOptions,\r\n ShowAllOptionsRequest,\r\n ShowAllOptionsResponse,\r\n RepairShop,\r\n ChangeOrderOptionsRequest,\r\n CostEstimationOptions,\r\n} from \"../model\"\r\nimport { mapRepairShop } from \"./mapper\"\r\n\r\nexport function showAllOptions(serviceUrl: string, body: ShowAllOptionsRequest) {\r\n const url = `${serviceUrl}/ShowAllOptions`\r\n const authorization = getStoredAuthorization()\r\n\r\n return ajax({ url, body, authorization }).then(\r\n (response): ShowAllOptionsResponse => ({\r\n ...response,\r\n repairShop: mapRepairShop(response?.repairShop),\r\n })\r\n )\r\n}\r\n\r\nexport function showOrderOptions(serviceUrl: string) {\r\n const url = `${serviceUrl}/ShowOrderOptions`\r\n const authorization = getStoredAuthorization()\r\n\r\n return ajax({ url, authorization })\r\n}\r\n\r\nexport function changeLogo(serviceUrl: string, logoBytes: Array) {\r\n const url = `${serviceUrl}/ChangeLogo`\r\n const authorization = getStoredAuthorization()\r\n const body = { logoBytes }\r\n\r\n return ajax({ url, body, authorization, method: \"POST\" })\r\n}\r\n\r\nexport function changePrintLogo(serviceUrl: string, printLogo: boolean) {\r\n const url = `${serviceUrl}/ChangePrintLogo`\r\n const authorization = getStoredAuthorization()\r\n const body = { printLogo }\r\n\r\n return ajax({ url, body, authorization, method: \"POST\" })\r\n}\r\n\r\nexport function removeLogo(serviceUrl: string) {\r\n const url = `${serviceUrl}/RemoveLogo`\r\n const authorization = getStoredAuthorization()\r\n const body = {}\r\n\r\n return ajax({ url, body, authorization, method: \"POST\" })\r\n}\r\n\r\nexport function changeHourlyRates(serviceUrl: string, hourlyRates: Array, currencyCode: string) {\r\n const url = `${serviceUrl}/ChangeHourlyRates`\r\n const authorization = getStoredAuthorization()\r\n const body = { hourlyRates, currencyCode }\r\n\r\n return ajax({ url, body, authorization, method: \"POST\" })\r\n}\r\n\r\nexport function updateRepairShop(serviceUrl: string, body: UpdateRepairShopRequest) {\r\n const url = `${serviceUrl}/UpdateRepairShop`\r\n const authorization = getStoredAuthorization()\r\n\r\n return ajax({ url, body, authorization, method: \"POST\" }).then(mapRepairShop)\r\n}\r\n\r\nexport function changeRepairTimeOptions(serviceUrl: string, body: RepairTimeOptions) {\r\n const url = `${serviceUrl}/ChangeRepairTimeOptions`\r\n const authorization = getStoredAuthorization()\r\n\r\n return ajax({ url, authorization, body, method: \"POST\" })\r\n}\r\n\r\nexport function changeOrderOptions(serviceUrl: string, body: ChangeOrderOptionsRequest) {\r\n const url = `${serviceUrl}/ChangeOrderOptions`\r\n const authorization = getStoredAuthorization()\r\n\r\n return ajax({ url, authorization, body, method: \"POST\" })\r\n}\r\n\r\nexport function changeDirectBuyOptions(serviceUrl: string, body: DirectBuyOptions) {\r\n const url = `${serviceUrl}/ChangeDirectBuyOptions`\r\n const authorization = getStoredAuthorization()\r\n\r\n return ajax({ url, authorization, body, method: \"POST\" })\r\n}\r\n\r\nexport function changeCostEstimationOptions(serviceUrl: string, body: CostEstimationOptions) {\r\n const url = `${serviceUrl}/ChangeCostEstimationOptions`\r\n return ajaxAuth({ url, body, method: \"POST\" })\r\n}\r\n","import { Version } from \"@tm/models\"\r\n\r\nexport type RepairTimeOptions = {\r\n id: string\r\n version?: Version\r\n useManufacturerRepairTimeDivision: boolean\r\n division: ERepairTimeDivision\r\n useRepairTimeCalculation?: boolean\r\n}\r\n\r\nexport enum ERepairTimeDivision {\r\n Hours = 1,\r\n Division10 = 10,\r\n Division12 = 12,\r\n Division100 = 100,\r\n}\r\n","import { createContext } from \"react\"\r\nimport { User } from \".\"\r\n\r\n/**\r\n * See discussion in https://github.com/DefinitelyTyped/DefinitelyTyped/pull/24509#issuecomment-382213106\r\n * In the portal we always wrap the app with the UserProvider, so we don't need undefined in the type.\r\n * But if someone is trying to access this context without a provider it's ok if we get an error.\r\n */\r\nexport const UserProviderContext = createContext(undefined as any)\r\n","import { Authority } from \"@tm/data\"\r\nimport { AuthTokenPayload, channel, UserContext, UserSettingsDefaults } from \"@tm/models\"\r\nimport { bindSpecialReactMethods, concat, convertBase64ImageToByteArray, decodeJwtToken, getStoredAuthorization } from \"@tm/utils\"\r\nimport { Children, Component, PropsWithChildren } from \"react\"\r\nimport { BehaviorSubject, Subscription } from \"rxjs\"\r\nimport * as Data from \"../data\"\r\nimport {\r\n ChangeOrderOptionsRequest,\r\n CostEstimationOptions,\r\n DirectBuyOptions,\r\n HourlyRate,\r\n RepairTimeOptions,\r\n UpdateRepairShopRequest,\r\n User,\r\n UserSettings,\r\n UserSettingsKeys,\r\n} from \"../model\"\r\nimport { UserProviderContext } from \"../model/UserProviderContext\"\r\n\r\ntype CreateUserProviderOptions = {\r\n authorityServiceUrl: string\r\n repairShopServiceUrl: string\r\n externalAuthentication?: Record>\r\n userContext?: UserContext\r\n userSettingsDefaults: UserSettingsDefaults\r\n}\r\n\r\ntype UserProviderState = {\r\n userSettingsUpdating: boolean\r\n}\r\n\r\nexport async function createUserProvider(options: CreateUserProviderOptions) {\r\n const { repairShopServiceUrl, userSettingsDefaults } = options\r\n\r\n // Load external tokens before getting the user context, because loading the external tokens will also add them to the user context\r\n const tokens = options.externalAuthentication ? await loadExternalTokens(options.externalAuthentication) : {}\r\n\r\n const initialUserContext = options.userContext ?? (await getUserContext(options.authorityServiceUrl))\r\n\r\n if (Object.keys(tokens).length) {\r\n initialUserContext.externalAuthenticationTokens = {\r\n ...initialUserContext.externalAuthenticationTokens,\r\n ...tokens,\r\n }\r\n }\r\n\r\n window.userContext = initialUserContext\r\n\r\n const contextSubject = new BehaviorSubject(initialUserContext)\r\n channel(\"GLOBAL\").publish(\"USER/CONTEXT_LOADED\", { context: initialUserContext })\r\n\r\n const settingsSubject = new BehaviorSubject(undefined)\r\n\r\n return class UserProvider extends Component {\r\n contextSubscription: Subscription | undefined = undefined\r\n\r\n settingsSubscription: Subscription | undefined = undefined\r\n\r\n state = {\r\n userSettingsUpdating: false,\r\n }\r\n\r\n constructor(props: any) {\r\n super(props)\r\n bindSpecialReactMethods(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.contextSubscription = contextSubject.subscribe(() => this.forceUpdate())\r\n this.settingsSubscription = settingsSubject.subscribe(() => this.forceUpdate())\r\n\r\n this.getUserSettings()\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.contextSubscription && !this.contextSubscription.closed) {\r\n this.contextSubscription.unsubscribe()\r\n }\r\n\r\n if (this.settingsSubscription && !this.settingsSubscription.closed) {\r\n this.settingsSubscription.unsubscribe()\r\n }\r\n }\r\n\r\n getUserSettings = (): Promise => {\r\n return Promise.all([\r\n Data.showAllOptions(repairShopServiceUrl, {\r\n includeRepairShop: true,\r\n includeHourlyRates: true,\r\n includeOrderOptions: true,\r\n includeRepairTimeOptions: true,\r\n includeDirectBuyOptions: true,\r\n includeCostEstimationOptions: true,\r\n }),\r\n Data.getUserSetting(\"SHOW_PURCHASE_PRICE\"),\r\n Data.getUserSetting(\"ARTICLE_LIST_SETTINGS\"),\r\n Data.getUserSetting(\"ACTIVE_VEHICLE_DATA_PROVIDERS\"),\r\n Data.getUserSetting(\"DMS_SETTINGS\"),\r\n Data.getUserSetting(\"AUTO_EXPAND_FILTERS\"),\r\n Data.getUserSetting(\"ORDER_OPTIONS_EXPANDED\"),\r\n Data.getUserSetting(\"EAN_NUMBER_SEARCH_ENABLED\"),\r\n Data.getUserSetting(\"BASKET_MEMO_OPTIONS\"),\r\n Data.getUserSetting(\"BASKET_ITEM_SORTING\"),\r\n Data.getUserSetting(\"SHOW_PURCHASE_PRICE_IN_SUMMARY\"),\r\n Data.getUserSetting(\"VRC_SCAN_OPTIONS\"),\r\n Data.getUserSetting(\"HIDE_WHEELS_AVAILABILITY\"),\r\n Data.getUserSetting(\"SINDRI_SETTINGS\"),\r\n Data.getUserSetting(\"ARTICLE_LIST_DEFAULT_SORTING\"),\r\n Data.getUserSetting(\"DRIVEMOTIVE_SETTINGS\"),\r\n Data.getUserSetting(\"PARTSLIFE_SETTINGS\"),\r\n Data.getUserSetting(\"FAST_SERVCE_SETTINGS\"),\r\n ]).then((responses) => {\r\n const userSettings: UserSettings = {\r\n repairShop: responses[0].repairShop,\r\n hourlyRates: mapHourlyRates(responses[0].hourlyRates?.hourlyRates),\r\n hourlyRatesCurrencyCode: responses[0].hourlyRates?.currencyCode || \"EUR\",\r\n costEstimationOptions: responses[0].costEstimationOptions,\r\n orderOptions: {\r\n repairShopResponse: responses[0].orderOptions,\r\n expandedByDefault: responses[6],\r\n basketMemoContext: responses[8]?.context,\r\n basketMemoSections: responses[8]?.sections,\r\n },\r\n repairTimeOptions: responses[0].repairTimeOptions,\r\n directBuyOptions: {\r\n repairShopResponse: responses[0].directBuyOptions,\r\n eanNumberSearchEnabled: responses[7],\r\n },\r\n showPurchasePrice: getShowPurchasePriceFromResponse(responses[1], contextSubject.getValue()),\r\n showPurchasePriceInSummary: responses[10], // No default here because we have to know if the setting is not yet set for a user!\r\n articleListSettings: responses[2] || undefined,\r\n activeVehicleDataProviders: responses[3] || {},\r\n dmsSettings: responses[4] || {},\r\n autoExpandFilters: responses[5],\r\n itemSorting: responses[9] || false,\r\n vrcScanOptions: {\r\n customerEnabled: responses[11]?.customerEnabled,\r\n vehicleEnabled: responses[11]?.vehicleEnabled,\r\n },\r\n hideWheelsAvailability: responses[12] ?? userSettingsDefaults?.hideWheelsAvailability,\r\n sindriSettings: responses[13] || {},\r\n articleListDefaultSorting: responses[14],\r\n drivemotiveSettings: responses[15] || {},\r\n partsLifeSettings: responses[16] || {},\r\n fastServiceSettings: responses[17] || {},\r\n // IMPORTANT: When adding or changing a setting here also change the according \"case\" in the \"switch\" of \"setSetting\" below!\r\n }\r\n\r\n settingsSubject.next(userSettings)\r\n return userSettings\r\n })\r\n }\r\n\r\n setSetting = async (key: UserSettingsKeys, value: any): Promise => {\r\n this.setState({ userSettingsUpdating: true })\r\n\r\n await Data.setUserSetting(key, value)\r\n\r\n const response = await Data.getUserSetting(key)\r\n let userSettings = settingsSubject.getValue()\r\n\r\n if (!userSettings) {\r\n this.setState({ userSettingsUpdating: false })\r\n return this.getUserSettings()\r\n }\r\n\r\n userSettings = { ...userSettings }\r\n\r\n switch (key) {\r\n case \"HIDE_WHEELS_AVAILABILITY\":\r\n userSettings.hideWheelsAvailability = response\r\n break\r\n case \"SHOW_PURCHASE_PRICE\":\r\n userSettings.showPurchasePrice = getShowPurchasePriceFromResponse(response, contextSubject.getValue())\r\n break\r\n case \"SHOW_PURCHASE_PRICE_IN_SUMMARY\":\r\n userSettings.showPurchasePriceInSummary = response\r\n break\r\n case \"AUTO_EXPAND_FILTERS\":\r\n userSettings.autoExpandFilters = response\r\n break\r\n case \"ARTICLE_LIST_SETTINGS\":\r\n userSettings.articleListSettings = response || undefined\r\n break\r\n case \"ACTIVE_VEHICLE_DATA_PROVIDERS\":\r\n userSettings.activeVehicleDataProviders = response || {}\r\n break\r\n case \"DMS_SETTINGS\":\r\n userSettings.dmsSettings = response || {}\r\n break\r\n case \"ORDER_OPTIONS_EXPANDED\":\r\n userSettings.orderOptions = {\r\n ...userSettings.orderOptions,\r\n expandedByDefault: response,\r\n }\r\n break\r\n case \"EAN_NUMBER_SEARCH_ENABLED\":\r\n userSettings.directBuyOptions = {\r\n ...userSettings.directBuyOptions,\r\n eanNumberSearchEnabled: response,\r\n }\r\n break\r\n case \"BASKET_MEMO_OPTIONS\":\r\n userSettings.orderOptions = {\r\n ...userSettings.orderOptions,\r\n basketMemoContext: response?.context,\r\n basketMemoSections: response?.sections,\r\n }\r\n break\r\n case \"VRC_SCAN_OPTIONS\":\r\n userSettings.vrcScanOptions = {\r\n customerEnabled: response?.customerEnabled,\r\n vehicleEnabled: response?.vehicleEnabled,\r\n }\r\n break\r\n case \"BASKET_ITEM_SORTING\": {\r\n userSettings.itemSorting = response || false\r\n break\r\n }\r\n case \"SINDRI_SETTINGS\": {\r\n userSettings.sindriSettings = response || {}\r\n break\r\n }\r\n case \"ARTICLE_LIST_DEFAULT_SORTING\": {\r\n userSettings.articleListDefaultSorting = response\r\n break\r\n }\r\n case \"DRIVEMOTIVE_SETTINGS\": {\r\n userSettings.drivemotiveSettings = response || {}\r\n break\r\n }\r\n case \"PARTSLIFE_SETTINGS\": {\r\n userSettings.partsLifeSettings = response || { hasPartsLifeActive: false }\r\n break\r\n }\r\n case \"FAST_SERVCE_SETTINGS\": {\r\n userSettings.fastServiceSettings = response || { isTyresWheelsDisabled: false }\r\n break\r\n }\r\n }\r\n\r\n settingsSubject.next(userSettings)\r\n\r\n this.setState({ userSettingsUpdating: false })\r\n\r\n return userSettings\r\n }\r\n\r\n changeLogo = async (logoData: string): Promise => {\r\n const logoBytes = convertBase64ImageToByteArray(logoData)\r\n await Data.changeLogo(repairShopServiceUrl, logoBytes)\r\n return this.updateLogoState(logoData)\r\n }\r\n\r\n changePrintLogo = async (printLogo: boolean): Promise => {\r\n await Data.changePrintLogo(repairShopServiceUrl, printLogo)\r\n\r\n let userSettings = settingsSubject.getValue()\r\n\r\n if (!userSettings?.repairShop) {\r\n return this.getUserSettings()\r\n }\r\n\r\n userSettings = {\r\n ...userSettings,\r\n repairShop: { ...userSettings.repairShop, printLogo },\r\n }\r\n\r\n settingsSubject.next(userSettings)\r\n return userSettings\r\n }\r\n\r\n removeLogo = async (): Promise => {\r\n await Data.removeLogo(repairShopServiceUrl)\r\n return this.updateLogoState(undefined)\r\n }\r\n\r\n updateLogoState = async (logo: string | undefined): Promise => {\r\n let userSettings = settingsSubject.getValue()\r\n\r\n if (!userSettings?.repairShop) {\r\n return this.getUserSettings()\r\n }\r\n\r\n userSettings = {\r\n ...userSettings,\r\n repairShop: { ...userSettings.repairShop, logo },\r\n }\r\n\r\n settingsSubject.next(userSettings)\r\n return userSettings\r\n }\r\n\r\n changeHourlyRates = async (hourlyRates: Array, currencyCode: string): Promise => {\r\n await Data.changeHourlyRates(repairShopServiceUrl, hourlyRates, currencyCode)\r\n return this.updateUserSettingsState({ hourlyRates, hourlyRatesCurrencyCode: currencyCode })\r\n }\r\n\r\n changeDirectBuyOptions = async (directBuyOptions: DirectBuyOptions): Promise => {\r\n const response = await Data.changeDirectBuyOptions(repairShopServiceUrl, directBuyOptions)\r\n\r\n return this.updateUserSettingsState((userSettings) => ({\r\n directBuyOptions: {\r\n ...userSettings.directBuyOptions,\r\n repairShopResponse: response,\r\n },\r\n }))\r\n }\r\n\r\n changeCostEstimationOptions = async (costEstimationOption: CostEstimationOptions): Promise => {\r\n const response = await Data.changeCostEstimationOptions(repairShopServiceUrl, costEstimationOption)\r\n return this.updateUserSettingsState(() => ({\r\n costEstimationOptions: {\r\n ...response,\r\n },\r\n }))\r\n }\r\n\r\n changeOrderOptions = async (orderOptions: ChangeOrderOptionsRequest): Promise => {\r\n await Data.changeOrderOptions(repairShopServiceUrl, orderOptions)\r\n const response = await Data.showOrderOptions(repairShopServiceUrl)\r\n\r\n return this.updateUserSettingsState((userSettings) => ({\r\n orderOptions: {\r\n ...userSettings.orderOptions,\r\n repairShopResponse: response,\r\n },\r\n }))\r\n }\r\n\r\n updateRepairShop = async (data: UpdateRepairShopRequest): Promise => {\r\n const response = await Data.updateRepairShop(repairShopServiceUrl, data)\r\n return this.updateUserSettingsState({ repairShop: response })\r\n }\r\n\r\n updateExternalAuthenticationTokens = async (forgetExistingTokens = false): Promise => {\r\n if (!options.externalAuthentication) {\r\n if (forgetExistingTokens) {\r\n return this.updateUserContextState({\r\n externalAuthenticationTokens: {},\r\n })\r\n }\r\n\r\n return Promise.resolve(contextSubject.getValue())\r\n }\r\n\r\n const tokens = await loadExternalTokens(options.externalAuthentication)\r\n\r\n if (!Object.keys(tokens).length) {\r\n if (forgetExistingTokens) {\r\n return this.updateUserContextState({\r\n externalAuthenticationTokens: {},\r\n })\r\n }\r\n\r\n return Promise.resolve(contextSubject.getValue())\r\n }\r\n\r\n return this.updateUserContextState((userContext) => ({\r\n externalAuthenticationTokens: {\r\n ...(forgetExistingTokens ? {} : userContext.externalAuthenticationTokens),\r\n ...tokens,\r\n },\r\n }))\r\n }\r\n\r\n changeRepairTimeOptions = async (options: RepairTimeOptions): Promise => {\r\n const response = await Data.changeRepairTimeOptions(repairShopServiceUrl, options)\r\n return this.updateUserSettingsState({ repairTimeOptions: response })\r\n }\r\n\r\n updateUserSettingsState = async (\r\n updatedValuesOrUpdater: Partial | ((settings: UserSettings) => Partial)\r\n ): Promise => {\r\n let userSettings = settingsSubject.getValue()\r\n\r\n if (!userSettings) {\r\n return this.getUserSettings()\r\n }\r\n\r\n userSettings = {\r\n ...userSettings,\r\n ...(typeof updatedValuesOrUpdater === \"function\" ? updatedValuesOrUpdater(userSettings) : updatedValuesOrUpdater),\r\n }\r\n\r\n settingsSubject.next(userSettings)\r\n return userSettings\r\n }\r\n\r\n updateUserContextState = async (\r\n updatedValuesOrUpdater: Partial | ((context: UserContext) => Partial)\r\n ): Promise => {\r\n let userContext = contextSubject.getValue()\r\n\r\n userContext = {\r\n ...userContext,\r\n ...(typeof updatedValuesOrUpdater === \"function\" ? updatedValuesOrUpdater(userContext) : updatedValuesOrUpdater),\r\n }\r\n\r\n contextSubject.next(userContext)\r\n return userContext\r\n }\r\n\r\n updateUserContextGeneralContactName = async (name: string): Promise => {\r\n return this.updateUserContextState((userContext) => ({\r\n generalContact: {\r\n ...userContext.generalContact,\r\n name,\r\n },\r\n }))\r\n }\r\n\r\n getContext(): User {\r\n return {\r\n userSettings: settingsSubject.getValue(),\r\n userContext: contextSubject.getValue(),\r\n userSettingsUpdating: this.state.userSettingsUpdating,\r\n reloadUserSettings: this.getUserSettings,\r\n setUserSetting: this.setSetting,\r\n changeLogo: this.changeLogo,\r\n changePrintLogo: this.changePrintLogo,\r\n removeLogo: this.removeLogo,\r\n changeHourlyRates: this.changeHourlyRates,\r\n updateRepairShop: this.updateRepairShop,\r\n updateExternalAuthenticationTokens: this.updateExternalAuthenticationTokens,\r\n changeRepairTimeOptions: this.changeRepairTimeOptions,\r\n changeOrderOptions: this.changeOrderOptions,\r\n changeDirectBuyOptions: this.changeDirectBuyOptions,\r\n changeCostEstimationOptions: this.changeCostEstimationOptions,\r\n updateUserContextGeneralContactName: this.updateUserContextGeneralContactName,\r\n }\r\n }\r\n\r\n render() {\r\n const { children } = this.props\r\n return {children && Children.only(children)}\r\n }\r\n }\r\n}\r\n\r\nasync function getUserContext(serviceUrl: string): Promise {\r\n let userContext = await Data.getUserContext(serviceUrl)\r\n\r\n // add isAnonym flag to userContext\r\n if (!userContext.isAnonym) {\r\n const auth = getStoredAuthorization()\r\n const { isanonym } = decodeJwtToken(auth?.credentials ?? \"\")\r\n\r\n userContext = {\r\n ...userContext,\r\n isAnonym: isanonym,\r\n }\r\n }\r\n\r\n return userContext\r\n}\r\n\r\nasync function loadExternalTokens(tokensToLoad: Record>): Promise> {\r\n const validTokensToLoad = Object.entries(tokensToLoad).filter(([key]) => key in Authority.Models.ETokenRepositories)\r\n\r\n if (!validTokensToLoad.length) {\r\n return {}\r\n }\r\n\r\n try {\r\n const response = await Authority.getTokens({\r\n tokenIdentifiers: validTokensToLoad.map(([key, options]) => ({\r\n repository: Authority.Models.ETokenRepositories[key as keyof typeof Authority.Models.ETokenRepositories],\r\n options,\r\n })),\r\n refreshUserContext: true,\r\n })\r\n\r\n if (response.errors.length) {\r\n console.error(\"Error loading (some) external tokens\", response.errors)\r\n }\r\n\r\n if (response.tokens.length) {\r\n const tokens: Record = {}\r\n\r\n validTokensToLoad.forEach(([key]) => {\r\n const repository = Authority.Models.ETokenRepositories[key as keyof typeof Authority.Models.ETokenRepositories]\r\n if (!repository) {\r\n return\r\n }\r\n\r\n const responseTokens = response.tokens.filter((x) => x.repository === repository)\r\n if (!responseTokens.length) {\r\n return\r\n }\r\n\r\n responseTokens.forEach((token) => {\r\n const tokenKey = concat(\"_\", key, token.id, token.variant ? Authority.Models.ETokenVariants[token.variant] : undefined)\r\n\r\n sessionStorage.setItem(\r\n `token://${tokenKey}`,\r\n JSON.stringify({\r\n token: token.token,\r\n expiration: token.expiryDate ? parseInt((token.expiryDate.getTime() / 1000).toFixed(0)) : undefined, // Convert to unix timestamp\r\n schema: token.schema,\r\n })\r\n )\r\n\r\n tokens[tokenKey] = token.token\r\n })\r\n })\r\n\r\n return tokens\r\n }\r\n } catch (error) {\r\n console.error(\"Error loading (some) external tokens\", error)\r\n }\r\n\r\n return {}\r\n}\r\n\r\nfunction getShowPurchasePriceFromResponse(response: any, userContext: UserContext) {\r\n if (userContext.parameter.purchasePricesDisabled || response === false) {\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction mapHourlyRates(rates: Array | undefined): Array | undefined {\r\n if (!rates) {\r\n return rates\r\n }\r\n\r\n return rates.map((x) => {\r\n return {\r\n ...x,\r\n hourlyRate: x.hourlyRate ?? 0,\r\n }\r\n })\r\n}\r\n","export function getWorkTaskId() {\r\n return window.__NEXT_WORKTASKID__\r\n}\r\n","import { useContext } from \"react\"\r\nimport { WorkTaskProviderContext } from \"..\"\r\n\r\nexport function useWorkTask() {\r\n return useContext(WorkTaskProviderContext)\r\n}\r\n","export function useWorkTaskId() {\r\n return window.__NEXT_WORKTASKID__\r\n}\r\n","import { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { Omit } from \"@tm/utils\"\r\nimport { WorkTask } from \"../model\"\r\nimport { WorkTaskProviderContext } from \"../model/context\"\r\n\r\nexport type WithWorkTaskProps = Pick<\r\n WorkTask,\r\n \"workTaskId\" | \"workTask\" | \"createWorkTask\" | \"attachToWorkTask\" | \"openWorkTask\" | \"reloadWorkTask\" | \"workTaskLoading\" | \"newWorkTaskLoading\"\r\n>\r\n\r\nexport function withWorkTask

    (component: ComponentType

    ): ComponentClass> {\r\n return class extends Component> {\r\n showError() {\r\n console.error(\"withWorkTask: No wrapping WorkTask Provider was found!\", component)\r\n return Promise.reject()\r\n }\r\n\r\n renderInnerComponent(workTask?: WorkTask) {\r\n const currentProps: any = this.props || {}\r\n\r\n const props: P & WithWorkTaskProps = {\r\n ...currentProps,\r\n }\r\n\r\n if (!workTask) {\r\n // this.showError()\r\n props.createWorkTask = () => this.showError()\r\n props.attachToWorkTask = () => this.showError()\r\n props.openWorkTask = () => this.showError()\r\n props.reloadWorkTask = () => this.showError()\r\n } else {\r\n props.workTaskId = workTask.workTaskId\r\n props.workTask = workTask.workTask\r\n props.createWorkTask = workTask.createWorkTask\r\n props.attachToWorkTask = workTask.attachToWorkTask\r\n props.openWorkTask = workTask.openWorkTask\r\n props.reloadWorkTask = workTask.reloadWorkTask\r\n props.workTaskLoading = workTask.workTaskLoading\r\n props.newWorkTaskLoading = workTask.newWorkTaskLoading\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return {(workTask?: WorkTask) => this.renderInnerComponent(workTask)}\r\n }\r\n }\r\n}\r\n","import { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { Omit } from \"@tm/utils\"\r\nimport { WorkTask } from \"../model\"\r\nimport { WorkTaskProviderContext } from \"../model/context\"\r\n\r\nexport type WithWorkTaskConflictProps = Pick\r\n\r\nexport function withWorkTaskConflict

    (\r\n component: ComponentType

    \r\n): ComponentClass> {\r\n return class extends Component> {\r\n showError() {\r\n console.error(\"withWorkTaskConflict: No wrapping WorkTask Provider was found!\", component)\r\n }\r\n\r\n renderInnerComponent(workTask?: WorkTask) {\r\n const currentProps: any = this.props || {}\r\n\r\n const props: P & WithWorkTaskConflictProps = {\r\n ...currentProps,\r\n }\r\n\r\n if (!workTask) {\r\n this.showError()\r\n props.triggerWorkTaskConflict = () => this.showError()\r\n } else {\r\n props.triggerWorkTaskConflict = workTask.triggerWorkTaskConflict\r\n props.workTaskConflict = workTask.workTaskConflict\r\n // props.workTaskLoading = workTask.workTaskLoading\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return {(workTask?: WorkTask) => this.renderInnerComponent(workTask)}\r\n }\r\n }\r\n}\r\n","import {\r\n Customer,\r\n Vehicle,\r\n RegisteredModels,\r\n Version,\r\n WorkTaskContainer,\r\n VehicleContainer,\r\n CustomerContainer,\r\n AttachCustomerAndVehicleRequest,\r\n} from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\n\r\nlet workTaskContainer: WorkTaskContainer\r\nlet vehicleContainer: VehicleContainer\r\nlet customerContainer: CustomerContainer\r\n\r\nexport function initialize() {\r\n workTaskContainer = Container.getInstance(RegisteredModels.Worktask)\r\n vehicleContainer = Container.getInstance(RegisteredModels.Vehicle)\r\n customerContainer = Container.getInstance(RegisteredModels.Customer)\r\n}\r\n\r\nexport function loadWorktask(workTaskId: string) {\r\n return workTaskContainer.subscribe(workTaskId).load()\r\n}\r\n\r\nexport function loadCustomer(customerId: string) {\r\n return customerContainer.subscribe(customerId).load()\r\n}\r\n\r\nexport function loadVehicle(vehicleId: string) {\r\n return vehicleContainer.subscribe(vehicleId).load()\r\n}\r\n\r\nexport function setWorktaskSelected(workTaskId: string) {\r\n return workTaskContainer.action(\"saveSelected\")(workTaskId)\r\n}\r\n\r\nexport function createWorktask(workTaskId: string, vehicleId?: string, customerId?: string) {\r\n return workTaskContainer.action(\"create\")({ workTaskId, vehicleId, customerId })\r\n}\r\n\r\nexport function createWorktaskAndReturnNewVersion(workTaskId: string, vehicleId?: string, customerId?: string) {\r\n return workTaskContainer.action(\"createAndReturnNewVersion\")({ workTaskId, vehicleId, customerId })\r\n}\r\n\r\nexport function saveCustomer(customer: Customer): Promise {\r\n return new Promise((resolve) => {\r\n const contract = customerContainer.subscribe(customer.id)\r\n contract.addListener(\"updated\", resolve)\r\n contract.save?.(customer)\r\n })\r\n}\r\n\r\nexport function saveVehicle(vehicle: Vehicle): Promise {\r\n return new Promise((resolve, reject) => {\r\n const contract = vehicleContainer.subscribe(vehicle.id)\r\n contract.addListener(\"updated\", resolve, reject)\r\n contract.save?.(vehicle)\r\n })\r\n}\r\n\r\nexport function attachCustomerToVehicle(vehicleId: string, customerId: string) {\r\n return vehicleContainer.action(\"attachCustomer\")(vehicleId, customerId)\r\n}\r\n\r\nexport function attachCustomerAndVehicleAndReturnNewVersion(request: AttachCustomerAndVehicleRequest) {\r\n return workTaskContainer.action(\"attachCustomerAndVehicleAndReturnNewVersion\")(request)\r\n}\r\n\r\nexport function attachVehicleAndReturnNewVersion(workTaskId: string, vehicleId: string, version: Version | undefined) {\r\n return workTaskContainer.action(\"attachVehicleAndReturnNewVersion\")({ workTaskId, vehicleId, version })\r\n}\r\n\r\nexport function attachCustomerAndReturnNewVersion(workTaskId: string, customerId: string, version: Version | undefined) {\r\n return workTaskContainer.action(\"attachCustomerAndReturnNewVersion\")({ workTaskId, customerId, version })\r\n}\r\n\r\nexport function detachCustomerAndReturnNewVersion(workTaskId: string, version: Version | undefined) {\r\n return workTaskContainer.action(\"detachCustomerAndReturnNewVersion\")({ workTaskId, version })\r\n}\r\n","import { createContext } from \"react\"\r\nimport { WorkTask } from \".\"\r\n\r\n/**\r\n * Unfortunately the same trick as in UserProviderContext cannot be used here,\r\n * because the WorkTaskProvider is not always used as a wrapper,\r\n * so undefined is actually a possible value.\r\n * (see wrapWithWorktaskProvider function in Core.Portal/src/bootstrap/index.tsx)\r\n */\r\nexport const WorkTaskProviderContext = createContext(undefined)\r\n","import { bindSpecialReactMethods, decodeUniqueId, encodeUniqueId, withRouter, RouteComponentProps, uniqueId, setCoopMemberId } from \"@tm/utils\"\r\nimport { RegisteredModels, channel, HistoryVehicle, getCurrentWorkTaskId, WorkTaskStatus } from \"@tm/models\"\r\nimport { Route, matchPath } from \"react-router\"\r\nimport { UnregisterCallback, Location } from \"history\"\r\nimport { Container, IModelContainer } from \"@tm/nexus\"\r\nimport { Children, Component, PropsWithChildren } from \"react\"\r\nimport { WorkTaskInfo, WorkTask, WorkTaskConflict } from \"../model\"\r\nimport { WorkTaskProviderContext } from \"../model/context\"\r\nimport * as Data from \"../data\"\r\n\r\nimport { loadVehicleDataAvailabilities } from \"./loadVehicleDataAvailabilities\"\r\nimport { attachToWorkTask } from \"./attachToWorkTask\"\r\nimport { loadWorkTaskInfo, loadWorkTaskInfoModal } from \"./loadWorkTaskInfo\"\r\nimport { createWorkTask } from \"./createWorkTask\"\r\nimport { openWorkTask } from \"./openWorkTask\"\r\n\r\nexport type WorkTaskProviderPropsWithRoute = RouteComponentProps<{ workTaskId?: string }> & WorkTaskProviderProps\r\n\r\nexport type WorkTaskProviderProps = PropsWithChildren<{\r\n globalPages: string[]\r\n}>\r\n\r\nexport type WorkTaskProviderState = {\r\n workTaskId?: string\r\n workTaskInfo?: WorkTaskInfo\r\n conflict?: WorkTaskConflict\r\n loading: boolean\r\n loadingNewWorkTask: boolean\r\n vehicleHistory?: HistoryVehicle[]\r\n}\r\n\r\nconst GUID_REGEX = /[({]?[a-zA-Z0-9]{8}[-]?([a-zA-Z0-9]{4}[-]?){3}[a-zA-Z0-9]{12}[})]?/\r\n\r\nexport class WorkTaskProvider extends Component {\r\n unregisterHistoryListener?: UnregisterCallback\r\n\r\n BasketActivityDoneContainer: IModelContainer\r\n\r\n unregisterBasketActivityDone?: Function\r\n\r\n openWorkTask = openWorkTask.bind(this)\r\n\r\n createWorkTask = createWorkTask.bind(this)\r\n\r\n attachToWorkTask = attachToWorkTask.bind(this)\r\n\r\n loadWorkTaskInfo = loadWorkTaskInfo.bind(this)\r\n\r\n loadWorkTaskInfoModal = loadWorkTaskInfoModal.bind(this)\r\n\r\n loadVehicleDataAvailabilities = loadVehicleDataAvailabilities.bind(this)\r\n\r\n constructor(props: WorkTaskProviderPropsWithRoute) {\r\n super(props)\r\n const { workTaskId } = props.match.params\r\n\r\n window.__NEXT_WORKTASKID__ = undefined\r\n if (workTaskId && !this.props.globalPages.includes(workTaskId)) {\r\n window.__NEXT_WORKTASKID__ = decodeUniqueId(workTaskId)\r\n }\r\n\r\n bindSpecialReactMethods(this)\r\n this.state = {\r\n loading: false,\r\n loadingNewWorkTask: false,\r\n }\r\n\r\n this.handleChangeDialogCancel = this.handleChangeDialogCancel.bind(this)\r\n this.reloadWorkTask = this.reloadWorkTask.bind(this)\r\n this.historyListener = this.historyListener.bind(this)\r\n this.triggerWorkTaskConflict = this.triggerWorkTaskConflict.bind(this)\r\n this.injectVehicleHistory = this.injectVehicleHistory.bind(this)\r\n\r\n this.BasketActivityDoneContainer = Container.getInstance(RegisteredModels.Worktask_BasketActivityDone)\r\n\r\n Data.initialize()\r\n this.initListeners()\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n const { match, location } = this.props\r\n let { workTaskId } = match.params\r\n\r\n // Whenever a global page () has been called, the workTaskId should be null\r\n if (workTaskId && this.props.globalPages.includes(workTaskId)) {\r\n workTaskId = undefined\r\n }\r\n\r\n if (workTaskId) {\r\n if (GUID_REGEX.test(workTaskId)) {\r\n const encodedId = encodeUniqueId(workTaskId)\r\n // this.props.history.push(location.pathname.replace(workTaskId, encodedId) + location.search)\r\n window.location.href = location.pathname.replace(workTaskId, encodedId) + location.search\r\n return\r\n }\r\n if (workTaskId == \"0000000000000000000000\") {\r\n const encodedId = encodeUniqueId(uniqueId())\r\n window.location.href = location.pathname.replace(workTaskId, encodedId) + location.search\r\n return\r\n }\r\n this.loadWorkTaskInfo(workTaskId)\r\n }\r\n\r\n if (!workTaskId) {\r\n this.setState({ workTaskId })\r\n }\r\n }\r\n\r\n initListeners() {\r\n this.unregisterHistoryListener = this.props.history.listen(this.historyListener)\r\n\r\n const subscription = this.BasketActivityDoneContainer.subscribe()\r\n this.unregisterBasketActivityDone = subscription.addListener(\"loaded\", () => {\r\n if (this.state.loadingNewWorkTask) {\r\n const currentWorkTaskId = getCurrentWorkTaskId()\r\n\r\n channel(\"WORKTASK\", currentWorkTaskId).subscribeOnce(\r\n \"WORKTASK/LOADED\",\r\n (workTask) => {\r\n if (workTask.statusValue == WorkTaskStatus.Undefined) {\r\n this.createWorkTask({ workTaskId: currentWorkTaskId, skipRedirect: true })\r\n }\r\n },\r\n true\r\n )\r\n } else if (!this.state.workTaskInfo || !this.state.workTaskInfo.no) {\r\n this.createWorkTask({ workTaskId: this.state.workTaskId, skipRedirect: true })\r\n }\r\n })\r\n }\r\n\r\n componentWillUnmount() {\r\n this.unregisterHistoryListener && this.unregisterHistoryListener()\r\n this.unregisterBasketActivityDone && this.unregisterBasketActivityDone()\r\n }\r\n\r\n historyListener(location: Location) {\r\n const match = matchPath<{ workTaskId?: string }>(location.pathname, { path: \"/:workTaskId?\" })\r\n let workTaskId = match && match.params.workTaskId\r\n let workTaskIdFromMorpheus = false\r\n\r\n // Whenever a global page () has been called, the workTaskId should be null\r\n if (workTaskId && this.props.globalPages.includes(workTaskId)) {\r\n workTaskId = undefined\r\n }\r\n\r\n if (!workTaskId) {\r\n const urlParams = new URLSearchParams(location.search)\r\n if (urlParams.has(\"(1)\")) {\r\n const morpheusPath = urlParams.get(\"(1)\")\r\n const morpheusMatch = matchPath<{ workTaskId?: string }>(morpheusPath || \"\", { path: \"/:workTaskId?\" })\r\n workTaskId = morpheusMatch && morpheusMatch.params.workTaskId\r\n workTaskId = workTaskId?.replace(\"^\", \"\")\r\n workTaskIdFromMorpheus = true\r\n }\r\n }\r\n\r\n if (workTaskId) {\r\n if (GUID_REGEX.test(workTaskId)) {\r\n const encodedId = encodeUniqueId(workTaskId)\r\n // this.props.history.push(location.pathname.replace(workTaskId, encodedId) + location.search)\r\n window.location.href = location.pathname.replace(workTaskId, encodedId) + location.search\r\n return\r\n }\r\n\r\n if (workTaskId == \"0000000000000000000000\") {\r\n const encodedId = encodeUniqueId(uniqueId())\r\n window.location.href = location.pathname.replace(workTaskId, encodedId) + location.search\r\n return\r\n }\r\n\r\n if (decodeUniqueId(workTaskId) !== this.state.workTaskId) {\r\n window.__NEXT_WORKTASKID__ = decodeUniqueId(workTaskId)\r\n if (workTaskIdFromMorpheus) {\r\n this.loadWorkTaskInfoModal(workTaskId)\r\n } else {\r\n this.loadWorkTaskInfo(workTaskId || undefined, undefined)\r\n }\r\n }\r\n } else if (this.state.workTaskId || this.state.workTaskInfo) {\r\n window.__NEXT_WORKTASKID__ = undefined\r\n setCoopMemberId(undefined)\r\n this.setState({ workTaskId: undefined, workTaskInfo: undefined })\r\n channel(\"GLOBAL\").publish(\"WORKTASK/ID_CHANGED\", { id: undefined })\r\n }\r\n }\r\n\r\n reloadWorkTask() {\r\n const { workTaskInfo } = this.state\r\n\r\n if (workTaskInfo) {\r\n return this.loadWorkTaskInfo(workTaskInfo.id)\r\n }\r\n\r\n return Promise.reject()\r\n }\r\n\r\n triggerWorkTaskConflict(conflict: Omit): void {\r\n this.setState({ conflict: { ...conflict, onCancel: this.handleChangeDialogCancel } })\r\n }\r\n\r\n injectVehicleHistory(vehicleHistory: HistoryVehicle[]) {\r\n if (this.state.workTaskInfo) {\r\n this.setState({ vehicleHistory })\r\n }\r\n }\r\n\r\n handleChangeDialogCancel() {\r\n this.setState({ conflict: undefined })\r\n }\r\n\r\n getContext(): WorkTask {\r\n const { workTaskInfo, conflict, loading, loadingNewWorkTask, workTaskId, vehicleHistory } = this.state\r\n\r\n return {\r\n workTaskId: window.__NEXT_WORKTASKID__,\r\n workTask: workTaskInfo ? { ...workTaskInfo, vehicleHistory } : undefined,\r\n createWorkTask: this.createWorkTask,\r\n attachToWorkTask: this.attachToWorkTask,\r\n openWorkTask: this.openWorkTask,\r\n reloadWorkTask: this.reloadWorkTask,\r\n triggerWorkTaskConflict: this.triggerWorkTaskConflict,\r\n workTaskConflict: conflict,\r\n workTaskLoading: loading,\r\n newWorkTaskLoading: loadingNewWorkTask,\r\n injectVehicleHistory: this.injectVehicleHistory,\r\n }\r\n }\r\n\r\n render() {\r\n const { children, match } = this.props\r\n\r\n const { workTaskId } = match.params\r\n\r\n // A GUID has to be encoded, so that the children not begin to load and render their stuff. Otherwise, all further links are wrong and the worktask manager will reset all states :(\r\n if (workTaskId && GUID_REGEX.test(workTaskId)) {\r\n return null\r\n }\r\n\r\n return (\r\n {children ? Children.only(children) : null}\r\n )\r\n }\r\n}\r\n\r\nconst WrappedWorkTaskProvider = withRouter(WorkTaskProvider)\r\n\r\nexport default function (props: WorkTaskProviderProps) {\r\n return } />\r\n}\r\n","import { Customer, ModuleConflictType, ModuleTab, Vehicle, WorkTaskStatus } from \"@tm/models\"\r\nimport { encodeUniqueId } from \"@tm/utils\"\r\n\r\nimport * as Data from \"../data\"\r\nimport { WorkTaskInfo } from \"../model\"\r\nimport { saveCustomerOrGetId, saveVehicleOrGetId } from \"./helpers\"\r\nimport { WorkTaskProvider } from \"./WorkTaskProvider\"\r\n\r\n/**\r\n * @returns A promise. If it's resolved the data has been attached or a new WorkTask has been created. If it's rejected, the conflict dialog has been canceled.\r\n *\r\n * If you want to open a specific page after everything is attached, use the subPage property in the data parameter.\r\n */\r\nexport async function attachToWorkTask(\r\n this: WorkTaskProvider,\r\n data: { customer?: string | Customer; vehicle?: string | Vehicle; subPage?: string },\r\n allowVehicleChange?: boolean\r\n): Promise {\r\n const { workTaskInfo } = this.state\r\n\r\n if (!workTaskInfo) {\r\n return this.createWorkTask(data)\r\n }\r\n if (workTaskInfo.statusValue === WorkTaskStatus.Undefined) {\r\n const conflictingStatus = checkConflictingModules(workTaskInfo, data)\r\n if (conflictingStatus.conflictedModules.length > 0) {\r\n await promptConflict(this, data, conflictingStatus.conflictedModules, conflictingStatus.conflictType)\r\n }\r\n\r\n return this.createWorkTask({ ...data, workTaskId: workTaskInfo.id, skipRedirect: !data.subPage })\r\n }\r\n\r\n const conflictingStatus = checkConflictingModules(workTaskInfo, data)\r\n if (conflictingStatus.conflictedModules.length > 0) {\r\n await promptConflict(this, data, conflictingStatus.conflictedModules, conflictingStatus.conflictType)\r\n }\r\n\r\n const customerId = await saveCustomerOrGetId(data.customer)\r\n\r\n if (workTaskInfo.customer && workTaskInfo.vehicle) {\r\n const workTaskInfoCustomer = workTaskInfo.customer\r\n\r\n if (customerId && data.vehicle) {\r\n // case 1\r\n if (workTaskInfo.customer.id === customerId) {\r\n if (!allowVehicleChange && checkVehicleConflict(data.vehicle, workTaskInfo.vehicle)) {\r\n await new Promise((resolve, reject) => {\r\n this.setState({\r\n conflict: {\r\n currentWorkTaskId: workTaskInfo.id,\r\n data,\r\n options: {\r\n showNewWorkTask: false,\r\n showNewCustomerVehicle: false,\r\n },\r\n onConfirm: async () => {\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, data.vehicle, workTaskInfoCustomer.id)\r\n resolve()\r\n },\r\n onCancel: () => {\r\n this.handleChangeDialogCancel()\r\n reject()\r\n },\r\n },\r\n })\r\n })\r\n } else {\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, data.vehicle, workTaskInfoCustomer.id)\r\n }\r\n } else {\r\n return this.createWorkTask(data)\r\n }\r\n } else if (customerId) {\r\n // case 2\r\n if (workTaskInfo.customer.id === customerId) {\r\n await this.loadWorkTaskInfo(workTaskInfo.id)\r\n } else {\r\n return this.createWorkTask(data)\r\n }\r\n } else if (!allowVehicleChange && checkVehicleConflict(data.vehicle, workTaskInfo.vehicle)) {\r\n // case 3\r\n const newWorkTaskWasCreated = await new Promise((resolve, reject) => {\r\n this.setState({\r\n conflict: {\r\n currentWorkTaskId: workTaskInfo.id,\r\n data,\r\n options: {\r\n showNewWorkTask: true,\r\n showNewCustomerVehicle: true,\r\n },\r\n onConfirm: async (newWorkTask, asCustomerVehicle) => {\r\n if (newWorkTask) {\r\n await this.createWorkTask({\r\n vehicle: data.vehicle,\r\n customer: asCustomerVehicle ? workTaskInfoCustomer.id : undefined,\r\n subPage: data.subPage,\r\n })\r\n } else if (asCustomerVehicle) {\r\n if (data.vehicle && window.userContext.hasTelesales) {\r\n // In Telesales catalogs the customerId of the vehicle should not be considered (see NEXT-15165))\r\n let vehicle: Vehicle\r\n\r\n if (typeof data.vehicle === \"string\") {\r\n vehicle = await Data.loadVehicle(data.vehicle)\r\n } else {\r\n vehicle = data.vehicle\r\n }\r\n\r\n await saveVehicleOrGetIdAndAttachVehicle(\r\n this,\r\n workTaskInfo,\r\n { ...vehicle, customerId: undefined },\r\n workTaskInfoCustomer.id\r\n )\r\n } else {\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, data.vehicle, workTaskInfoCustomer.id)\r\n }\r\n } else {\r\n const { vehicleId } = await saveVehicleOrGetId(data.vehicle)\r\n if (vehicleId) {\r\n const workTask = await Data.detachCustomerAndReturnNewVersion(workTaskInfo.id, workTaskInfo.version)\r\n const workTask2 = await Data.attachVehicleAndReturnNewVersion(workTaskInfo.id, vehicleId, workTask.version)\r\n await this.loadWorkTaskInfo(workTaskInfo.id, workTask2)\r\n }\r\n }\r\n resolve(newWorkTask)\r\n },\r\n onCancel: () => {\r\n this.handleChangeDialogCancel()\r\n reject()\r\n },\r\n },\r\n })\r\n })\r\n\r\n if (newWorkTaskWasCreated) {\r\n return\r\n }\r\n } else {\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, data.vehicle, workTaskInfoCustomer.id)\r\n }\r\n } else if (workTaskInfo.customer) {\r\n const workTaskInfoCustomer = workTaskInfo.customer\r\n\r\n if (customerId && data.vehicle) {\r\n // case 4\r\n if (workTaskInfo.customer.id === customerId) {\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, data.vehicle, customerId)\r\n } else {\r\n return this.createWorkTask(data)\r\n }\r\n } else if (customerId) {\r\n // case 5\r\n if (workTaskInfo.customer.id === customerId) {\r\n await this.loadWorkTaskInfo(workTaskInfo.id)\r\n } else {\r\n return this.createWorkTask(data)\r\n }\r\n } else if (data.vehicle) {\r\n // case 6\r\n const vehicle = typeof data.vehicle === \"string\" ? await Data.loadVehicle(data.vehicle) : data.vehicle\r\n if (vehicle) {\r\n if (!vehicle.customerId || vehicle.customerId === workTaskInfoCustomer.id) {\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, vehicle, workTaskInfoCustomer.id)\r\n } else if (window.userContext.hasTelesales) {\r\n // In Telesales catalogs the customerId of the vehicle should not be considered (see NEXT-15165))\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, { ...vehicle, customerId: undefined }, workTaskInfoCustomer.id)\r\n } else {\r\n return this.createWorkTask({ ...data, customer: vehicle.customerId })\r\n }\r\n }\r\n } else {\r\n await this.loadWorkTaskInfo(workTaskInfo.id)\r\n }\r\n } else if (workTaskInfo.vehicle) {\r\n if (customerId && data.vehicle) {\r\n // case 7\r\n if (typeof data.vehicle === \"string\" ? data.vehicle === workTaskInfo.vehicle.id : data.vehicle.id === workTaskInfo.vehicle.id) {\r\n await saveVehicleOrGetId(data.vehicle, customerId)\r\n const workTask = await Data.attachCustomerAndReturnNewVersion(workTaskInfo.id, customerId, workTaskInfo.version)\r\n await this.loadWorkTaskInfo(workTaskInfo.id, workTask)\r\n } else {\r\n const newWorkTaskWasCreated = await new Promise((resolve, reject) => {\r\n this.setState({\r\n conflict: {\r\n currentWorkTaskId: workTaskInfo.id,\r\n data,\r\n options: {\r\n showNewWorkTask: true,\r\n showNewCustomerVehicle: false,\r\n },\r\n onConfirm: async (newWorkTask) => {\r\n if (newWorkTask) {\r\n await this.createWorkTask(data)\r\n } else {\r\n const { vehicleId, computedCustomerId } = await saveVehicleOrGetId(data.vehicle, customerId)\r\n if (vehicleId || computedCustomerId) {\r\n const workTask = await Data.attachCustomerAndVehicleAndReturnNewVersion({\r\n workTaskId: workTaskInfo.id,\r\n vehicleId,\r\n customerId: computedCustomerId!, // small hack, typescript doesn't remember (vehicleId || computedCustomerId)\r\n version: workTaskInfo.version,\r\n })\r\n await this.loadWorkTaskInfo(workTaskInfo.id, workTask)\r\n }\r\n }\r\n resolve(newWorkTask)\r\n },\r\n onCancel: () => {\r\n this.handleChangeDialogCancel()\r\n reject()\r\n },\r\n },\r\n })\r\n })\r\n\r\n if (newWorkTaskWasCreated) {\r\n return\r\n }\r\n }\r\n } else if (customerId) {\r\n // case 8\r\n if (!workTaskInfo.vehicle.customerId) {\r\n await Data.attachCustomerToVehicle(workTaskInfo.vehicle.id, customerId)\r\n const workTask = await Data.attachCustomerAndReturnNewVersion(workTaskInfo.id, customerId, workTaskInfo.version)\r\n await this.loadWorkTaskInfo(workTaskInfo.id, workTask)\r\n } else if (workTaskInfo.vehicle.customerId === customerId) {\r\n const workTask = await Data.attachCustomerAndReturnNewVersion(workTaskInfo.id, customerId, workTaskInfo.version)\r\n await this.loadWorkTaskInfo(workTaskInfo.id, workTask)\r\n } else {\r\n return this.createWorkTask(data)\r\n }\r\n } else if (!allowVehicleChange && checkVehicleConflict(data.vehicle, workTaskInfo.vehicle)) {\r\n // case 9\r\n const newWorkTaskWasCreated = await new Promise((resolve, reject) => {\r\n this.setState({\r\n conflict: {\r\n currentWorkTaskId: workTaskInfo.id,\r\n data,\r\n options: {\r\n showNewWorkTask: true,\r\n showNewCustomerVehicle: false,\r\n },\r\n onConfirm: async (newWorkTask) => {\r\n if (newWorkTask) {\r\n await this.createWorkTask({ vehicle: data.vehicle, subPage: data.subPage })\r\n } else {\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, data.vehicle)\r\n }\r\n resolve(newWorkTask)\r\n },\r\n onCancel: () => {\r\n this.handleChangeDialogCancel()\r\n reject()\r\n },\r\n },\r\n })\r\n })\r\n\r\n if (newWorkTaskWasCreated) {\r\n return\r\n }\r\n } else {\r\n await saveVehicleOrGetIdAndAttachVehicle(this, workTaskInfo, data.vehicle)\r\n }\r\n } else {\r\n // case 10\r\n const { vehicleId, computedCustomerId } = await saveVehicleOrGetId(data.vehicle, customerId)\r\n if (vehicleId || computedCustomerId) {\r\n const workTask = await Data.attachCustomerAndVehicleAndReturnNewVersion({\r\n workTaskId: workTaskInfo.id,\r\n vehicleId,\r\n customerId: computedCustomerId!, // small hack, typescript doesn't remember (vehicleId || computedCustomerId)\r\n version: workTaskInfo.version,\r\n })\r\n await this.loadWorkTaskInfo(workTaskInfo.id, workTask)\r\n }\r\n }\r\n\r\n // All code paths that handle subPage themselves should have returned by now\r\n if (data.subPage) {\r\n const url = `/${encodeUniqueId(workTaskInfo.id)}${data.subPage.indexOf(\"/\") !== 0 ? \"/\" : \"\"}${data.subPage}`\r\n this.props.history.push(url)\r\n }\r\n}\r\n\r\nfunction checkVehicleConflict(vehicleOrId?: Vehicle | string, comparison?: Vehicle) {\r\n if (!vehicleOrId && !!comparison) {\r\n return true\r\n }\r\n if (!comparison || !vehicleOrId) {\r\n return false\r\n }\r\n if (typeof vehicleOrId == \"string\") {\r\n return comparison.id != vehicleOrId\r\n }\r\n if (vehicleOrId.id != comparison.id) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nfunction parseModuleList(workTaskInfo: WorkTaskInfo) {\r\n try {\r\n return JSON.parse(sessionStorage.getItem(`${encodeUniqueId(workTaskInfo.id)}_openModules`) ?? \"\")\r\n } catch (_) {\r\n return []\r\n }\r\n}\r\n\r\nfunction checkConflictingModules(\r\n workTaskInfo: WorkTaskInfo,\r\n data: { customer?: string | Customer; vehicle?: string | Vehicle; subPage?: string }\r\n): {\r\n conflictedModules: ModuleTab[]\r\n conflictType: ModuleConflictType | undefined\r\n} {\r\n // If the worktask has both customer and vehicle attached we don't need to handle the first attach conflict\r\n if (workTaskInfo.customer && workTaskInfo.vehicle) {\r\n return {\r\n conflictedModules: [],\r\n conflictType: undefined,\r\n }\r\n }\r\n\r\n let conflictType: ModuleConflictType | undefined\r\n if (data.customer && !workTaskInfo.customer && data.vehicle && !workTaskInfo.vehicle) {\r\n conflictType = ModuleConflictType.CustomerAndVehicle\r\n } else if (data.customer && !workTaskInfo.customer) {\r\n conflictType = ModuleConflictType.Customer\r\n } else if (data.vehicle && !workTaskInfo.vehicle) {\r\n conflictType = ModuleConflictType.Vehicle\r\n }\r\n\r\n const moduleList: ModuleTab[] = parseModuleList(workTaskInfo)\r\n\r\n if (!conflictType) {\r\n return {\r\n conflictedModules: [],\r\n conflictType: undefined,\r\n }\r\n }\r\n\r\n const conflictedModules = moduleList.filter((tab) => {\r\n if (tab.firstAttachConflictType === undefined) {\r\n return false\r\n }\r\n\r\n if (conflictType === ModuleConflictType.CustomerAndVehicle) {\r\n return (\r\n tab.firstAttachConflictType === ModuleConflictType.Customer ||\r\n tab.firstAttachConflictType === ModuleConflictType.Vehicle ||\r\n tab.firstAttachConflictType === ModuleConflictType.CustomerAndVehicle\r\n )\r\n }\r\n\r\n return tab.firstAttachConflictType === conflictType || tab.firstAttachConflictType === ModuleConflictType.CustomerAndVehicle\r\n })\r\n\r\n return {\r\n conflictType,\r\n conflictedModules,\r\n }\r\n}\r\n\r\nasync function saveVehicleOrGetIdAndAttachVehicle(\r\n workTaskProvider: WorkTaskProvider,\r\n workTaskInfo: WorkTaskInfo,\r\n vehicle?: string | Vehicle,\r\n customerId?: string\r\n) {\r\n const { vehicleId, computedCustomerId } = await saveVehicleOrGetId(vehicle, customerId)\r\n if (vehicleId) {\r\n const workTask = await Data.attachCustomerAndVehicleAndReturnNewVersion({\r\n workTaskId: workTaskInfo.id,\r\n vehicleId,\r\n customerId: computedCustomerId !== workTaskInfo.customer?.id ? computedCustomerId : undefined,\r\n version: workTaskInfo.version,\r\n })\r\n return workTaskProvider.loadWorkTaskInfo(workTaskInfo.id, workTask)\r\n }\r\n}\r\n\r\nasync function promptConflict(\r\n workTaskProvider: WorkTaskProvider,\r\n data: { customer?: string | Customer; vehicle?: string | Vehicle; subPage?: string },\r\n conflictedModules?: ModuleTab[],\r\n conflictType?: ModuleConflictType\r\n) {\r\n const { workTaskInfo } = workTaskProvider.state\r\n if (!workTaskInfo) {\r\n return\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n workTaskProvider.setState({\r\n conflict: {\r\n currentWorkTaskId: workTaskInfo.id,\r\n data: {\r\n ...data,\r\n conflictedTabs: conflictedModules,\r\n conflictType,\r\n },\r\n options: {\r\n showNewWorkTask: false,\r\n showNewCustomerVehicle: false,\r\n },\r\n onConfirm: async (newWorkTask) => {\r\n resolve(newWorkTask)\r\n },\r\n onCancel: () => {\r\n workTaskProvider.handleChangeDialogCancel()\r\n reject()\r\n },\r\n },\r\n })\r\n })\r\n}\r\n","import { Vehicle, Customer, WorkTaskDetailsReadModel } from \"@tm/models\"\r\nimport { uniqueId } from \"@tm/utils\"\r\nimport { WorkTaskProvider } from \"./WorkTaskProvider\"\r\nimport * as Data from \"../data\"\r\nimport { saveCustomerOrGetId, saveVehicleOrGetId } from \"./helpers\"\r\n\r\nconst creatingPromises: Array<{ workTaskId: string; prom: Promise }> = []\r\n\r\nexport async function createWorkTask(\r\n this: WorkTaskProvider,\r\n data: {\r\n workTaskId?: string\r\n customer?: string | Customer\r\n vehicle?: string | Vehicle\r\n subPage?: string\r\n skipRedirect?: boolean\r\n withoutCustomerVehicle?: boolean\r\n }\r\n): Promise {\r\n const { vehicleId, computedCustomerId: customerId } = await saveVehicleOrGetId(data.vehicle, await saveCustomerOrGetId(data.customer))\r\n\r\n if (data.workTaskId) {\r\n const { workTaskId } = data\r\n\r\n const workTask = await Data.loadWorktask(data.workTaskId)\r\n if (workTask) {\r\n await attachIfDifferent(workTaskId, customerId, vehicleId, workTask)\r\n this.openWorkTask(workTask.workTaskId, data.subPage, data.skipRedirect)\r\n } else {\r\n const index = creatingPromises.findIndex((x) => x.workTaskId == workTaskId)\r\n if (index != -1) {\r\n const { prom } = creatingPromises[index]\r\n creatingPromises.splice(index, 1)\r\n\r\n const createdWorkTask = await prom\r\n const possiblyLoadedWorkTask = await attachIfDifferent(workTaskId, customerId, vehicleId, createdWorkTask)\r\n\r\n if (possiblyLoadedWorkTask) {\r\n await this.loadWorkTaskInfo(workTaskId, possiblyLoadedWorkTask)\r\n }\r\n return\r\n }\r\n\r\n const prom = Data.createWorktaskAndReturnNewVersion(workTaskId, vehicleId, customerId)\r\n creatingPromises.push({ workTaskId, prom })\r\n const createdWorkTask = await prom\r\n this.openWorkTask(workTaskId, data.subPage, data.skipRedirect, createdWorkTask)\r\n }\r\n } else {\r\n const workTaskId = uniqueId()\r\n\r\n if (data.withoutCustomerVehicle) {\r\n await Data.createWorktask(workTaskId, vehicleId)\r\n } else {\r\n await Data.createWorktask(workTaskId, vehicleId, customerId)\r\n }\r\n\r\n this.openWorkTask(workTaskId, data.subPage, data.skipRedirect)\r\n }\r\n}\r\n\r\nfunction attachIfDifferent(workTaskId: string, customerId: string | undefined, vehicleId: string | undefined, workTask: WorkTaskDetailsReadModel) {\r\n let attachData\r\n if (customerId && (!workTask.customer || customerId !== workTask.customer.id)) {\r\n attachData = { customerId }\r\n }\r\n if (vehicleId && (!workTask.vehicle || vehicleId !== workTask.vehicle.id)) {\r\n attachData = { ...attachData, vehicleId }\r\n }\r\n\r\n if (attachData) {\r\n return Data.attachCustomerAndVehicleAndReturnNewVersion({ workTaskId, ...attachData, version: workTask.version })\r\n }\r\n}\r\n","import { Customer, Vehicle } from \"@tm/models\"\r\nimport * as Data from \"../data\"\r\n\r\nexport async function saveCustomerOrGetId(customer?: string | Customer) {\r\n if (!customer || typeof customer === \"string\") {\r\n return customer\r\n }\r\n\r\n const savedCustomer = await Data.saveCustomer(customer)\r\n return savedCustomer.id\r\n}\r\n\r\nexport async function saveVehicleOrGetId(\r\n newVehicle?: string | Vehicle,\r\n newCustomerId?: string\r\n): Promise<{ vehicleId?: string; computedCustomerId?: string }> {\r\n const { vehicle, customerId: computedCustomerId } = await getVehicleWithUpdatedCustomerId(newVehicle, newCustomerId)\r\n if (!vehicle || typeof vehicle === \"string\") {\r\n return { vehicleId: vehicle, computedCustomerId }\r\n }\r\n\r\n const savedVehicle = await Data.saveVehicle(vehicle)\r\n return { vehicleId: savedVehicle.id, computedCustomerId }\r\n}\r\n\r\nasync function getVehicleWithUpdatedCustomerId(\r\n newVehicle?: string | Vehicle,\r\n customerId?: string\r\n): Promise<{\r\n vehicle?: string | Vehicle\r\n customerId?: string\r\n}> {\r\n if (newVehicle) {\r\n if (typeof newVehicle === \"string\") {\r\n const savedVehicle = await Data.loadVehicle(newVehicle)\r\n if (savedVehicle) {\r\n if (savedVehicle.customerId) {\r\n return { vehicle: newVehicle, customerId: savedVehicle.customerId }\r\n }\r\n if (customerId) {\r\n return { vehicle: { ...savedVehicle, customerId }, customerId }\r\n }\r\n return { vehicle: newVehicle }\r\n }\r\n console.error(`Tried to attach vehicle by id ${newVehicle}, which doesn't exist. Continuing without attaching it...`)\r\n } else {\r\n if (newVehicle.customerId) {\r\n return { vehicle: newVehicle, customerId: newVehicle.customerId }\r\n }\r\n if (customerId) {\r\n return { vehicle: { ...newVehicle, customerId }, customerId }\r\n }\r\n return { vehicle: newVehicle }\r\n }\r\n }\r\n return { customerId }\r\n}\r\n","import { channel, RegisteredModels, Vehicle } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\n\r\nimport { ShowAvailabilitiesRequest, ShowAvailabilitiesResponse } from \"../data/data-availabilities\"\r\nimport { WorkTaskProvider } from \"./WorkTaskProvider\"\r\n\r\nexport function loadVehicleDataAvailabilities(this: WorkTaskProvider, vehicle: Vehicle) {\r\n // Update the component state\r\n const updateState = (vehicle: Vehicle) => {\r\n this.setState(\r\n (prevState) => {\r\n if (!prevState.workTaskInfo) {\r\n return null\r\n }\r\n\r\n return {\r\n ...prevState,\r\n workTaskInfo: {\r\n ...prevState.workTaskInfo,\r\n vehicle,\r\n },\r\n }\r\n },\r\n () => {\r\n if (this.state.workTaskId) {\r\n channel(\"WORKTASK\", this.state.workTaskId).publish(\"VEHICLE/UPDATED\", vehicle)\r\n }\r\n }\r\n )\r\n }\r\n\r\n const request: ShowAvailabilitiesRequest = {\r\n modelId: vehicle.tecDocTypeId,\r\n vehicleType: vehicle.vehicleType,\r\n countryCode: vehicle.countryCode,\r\n }\r\n\r\n Container.getInstance(RegisteredModels.Vehicle_DataAvailabilities)\r\n .subscribe(request)\r\n .load()\r\n .then((response) => {\r\n if (!response) {\r\n throw new Error()\r\n }\r\n\r\n updateState({\r\n ...vehicle,\r\n dataAvailabilities: {\r\n gpi: {\r\n dat: response.gpi.hasDat || false,\r\n eurotaxV3: response.gpi.hasEurotaxV3 || false,\r\n temot: response.gpi.hasTemot || false,\r\n tecRMI: response.gpi.hasTecRmi || false,\r\n },\r\n repairTimes: {\r\n awDoc: response.repairTimes.hasAwDoc || false,\r\n autodata: response.repairTimes.hasAutodata || false,\r\n haynesPro: response.repairTimes.hasHaynesPro || false,\r\n tecRMI: response.repairTimes.hasTecRmi || false,\r\n },\r\n inspectionData: {\r\n autodata: response.inspectionData.hasAutodata || false,\r\n haynesPro: response.inspectionData.hasHaynesPro || false,\r\n tecRMI: response.inspectionData.hasTecRmi || false,\r\n },\r\n technicalData: {\r\n autodata: response.technicalData.hasAutodata || false,\r\n haynesPro: response.technicalData.hasHaynesPro || false,\r\n tecRMI: response.technicalData.hasTecRmi || false,\r\n },\r\n tyres: {\r\n driveRight: response.tyres.hasDriveRight || false,\r\n tecRMI: response.tyres.hasTecRmi || false,\r\n },\r\n fastCalculator: {\r\n hasAny: response.fastCalculator.hasAny,\r\n hasAutodata: response.fastCalculator.hasAutodata || false,\r\n hasHaynesPro: response.fastCalculator.hasHaynesPro || false,\r\n hasTecRmi: response.fastCalculator.hasTecRmi || false,\r\n activeServiceDataProviders: response.fastCalculator.activeServiceDataProviders,\r\n },\r\n toolRental: {\r\n mobilityMarket: response.toolRental.hasMobilityMarket || false,\r\n },\r\n },\r\n })\r\n })\r\n .catch(() => {\r\n updateState({\r\n ...vehicle,\r\n dataAvailabilities: {\r\n gpi: { dat: null, eurotaxV3: null, temot: null, tecRMI: null },\r\n repairTimes: { awDoc: null, autodata: null, haynesPro: null, tecRMI: null },\r\n inspectionData: { autodata: null, haynesPro: null, tecRMI: null },\r\n technicalData: { autodata: null, haynesPro: null, tecRMI: null },\r\n tyres: { driveRight: null, tecRMI: null },\r\n fastCalculator: { hasAny: null, hasAutodata: null, hasHaynesPro: null, hasTecRmi: null, activeServiceDataProviders: null },\r\n toolRental: { mobilityMarket: null },\r\n },\r\n })\r\n })\r\n}\r\n","import { WorkTaskStatus, WorkTaskDetailsReadModel, channel } from \"@tm/models\"\r\nimport { decodeUniqueId, setCoopMemberId, uniqueId } from \"@tm/utils\"\r\nimport { WorkTaskProvider } from \"./WorkTaskProvider\"\r\nimport * as Data from \"../data\"\r\n\r\nexport function loadWorkTaskInfo(this: WorkTaskProvider, workTaskString?: string, alreadyLoadedWorkTask?: WorkTaskDetailsReadModel) {\r\n const handleNotAccesWorktask = (workTaskId?: string) => {\r\n const { location } = this.props\r\n const subPage = location.pathname.replace(`/${workTaskString}`, \"\") + location.search\r\n this.openWorkTask(uniqueId(), subPage)\r\n channel(\"WORKTASK\", workTaskId).publish(\"WORKTASK/CLOSE\", undefined)\r\n channel(\"APP\").publish(\"TOAST_MESSAGE/SHOW\", {\r\n message: \"{{12530}}\",\r\n icon: \"attention-dark\",\r\n skin: \"warning\",\r\n closeDelay: 10 * 1000,\r\n })\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n let workTaskId: string | undefined\r\n if (workTaskString) {\r\n if (workTaskString.length === 36) {\r\n workTaskId = workTaskString\r\n } else if (workTaskString.length === 22) {\r\n workTaskId = decodeUniqueId(workTaskString)\r\n }\r\n }\r\n\r\n if (workTaskId !== this.state.workTaskId) {\r\n channel(\"GLOBAL\").publish(\"WORKTASK/ID_CHANGED\", { id: workTaskId, previousId: this.state.workTaskId })\r\n channel(\"GLOBAL\").publish(\"VEHICLE/RESET\", undefined)\r\n channel(\"GLOBAL\").publish(\"CUSTOMER/RESET\", undefined)\r\n setCoopMemberId(undefined)\r\n }\r\n\r\n const workTaskInfo = this.state.workTaskInfo && this.state.workTaskInfo.id === workTaskId ? this.state.workTaskInfo : undefined\r\n this.setState({ workTaskInfo, workTaskId: workTaskInfo?.id, conflict: undefined })\r\n\r\n if (workTaskId) {\r\n this.setState({ loading: true, loadingNewWorkTask: workTaskId != this.state.workTaskId }) // semicolon is needed\r\n ;(alreadyLoadedWorkTask?.workTaskId === workTaskId ? Promise.resolve(alreadyLoadedWorkTask) : Data.loadWorktask(workTaskId))\r\n .then((workTask) => {\r\n resolve(workTask)\r\n setCoopMemberId(workTask?.cooperationMemberId)\r\n Data.setWorktaskSelected(workTaskId!)\r\n if (workTask && !(workTask as any).error) {\r\n // NEXT-19545 don't open closed worktasks\r\n const { hasTelesales } = window.userContext\r\n if (!hasTelesales && workTask.statusValue === WorkTaskStatus.Completed) {\r\n handleNotAccesWorktask(workTaskId)\r\n this.setState({ loading: false })\r\n reject()\r\n } else {\r\n channel(\"WORKTASK\", workTaskId).publish(\"WORKTASK/LOADED\", workTask)\r\n\r\n // Look if there's not a new worktask loading. In this case, throw the old one away.\r\n const currentWorkTaskId = window.__NEXT_WORKTASKID__\r\n if (workTaskId != currentWorkTaskId) {\r\n return\r\n }\r\n\r\n if (workTask.customer) {\r\n channel(\"WORKTASK\", workTaskId).publish(\"CUSTOMER/LOADED\", workTask.customer)\r\n channel(\"GLOBAL\").publish(\"CUSTOMER/LOADED\", workTask.customer)\r\n }\r\n if (workTask.vehicle) {\r\n channel(\"WORKTASK\", workTaskId).publish(\"VEHICLE/LOADED\", workTask.vehicle)\r\n channel(\"GLOBAL\").publish(\"VEHICLE/LOADED\", workTask.vehicle)\r\n }\r\n\r\n this.setState({\r\n workTaskInfo: {\r\n id: workTask.workTaskId,\r\n no: workTask.workTaskNo,\r\n refId: workTask.refId,\r\n statusValue: workTask.statusValue,\r\n customer: workTask.customer,\r\n vehicle: workTask.vehicle,\r\n version: workTask.version,\r\n telesalesStatusValue: workTask.telesalesStatusValue,\r\n workTaskReadModel: workTask,\r\n },\r\n workTaskId: workTask.workTaskId,\r\n loading: false,\r\n loadingNewWorkTask: false,\r\n })\r\n\r\n if (workTask.vehicle) {\r\n this.loadVehicleDataAvailabilities(workTask.vehicle)\r\n }\r\n }\r\n } else {\r\n channel(\"WORKTASK\", workTaskId).publish(\"WORKTASK/LOADED\", {\r\n workTaskId: workTaskId!,\r\n statusValue: WorkTaskStatus.Undefined,\r\n telesalesStatusValue: WorkTaskStatus.Undefined,\r\n })\r\n this.setState({\r\n workTaskInfo: {\r\n id: workTaskId!,\r\n statusValue: WorkTaskStatus.Undefined,\r\n telesalesStatusValue: WorkTaskStatus.Undefined,\r\n },\r\n workTaskId,\r\n loading: false,\r\n loadingNewWorkTask: false,\r\n })\r\n }\r\n })\r\n .catch((error) => {\r\n if (error?.type === \"DataAccessViolationException\") {\r\n handleNotAccesWorktask(workTaskId)\r\n }\r\n this.setState({ loading: false, loadingNewWorkTask: false })\r\n reject()\r\n })\r\n }\r\n })\r\n}\r\n\r\nexport function loadWorkTaskInfoModal(this: WorkTaskProvider, workTaskString?: string) {\r\n return new Promise((resolve, reject) => {\r\n let workTaskId: string | undefined\r\n if (workTaskString) {\r\n if (workTaskString.length === 36) {\r\n workTaskId = workTaskString\r\n } else if (workTaskString.length === 22) {\r\n workTaskId = decodeUniqueId(workTaskString)\r\n }\r\n }\r\n\r\n if (workTaskId) {\r\n this.setState({ loading: true, loadingNewWorkTask: workTaskId != this.state.workTaskId })\r\n Data.loadWorktask(workTaskId).then((workTask) => {\r\n resolve(workTask)\r\n setCoopMemberId(workTask?.cooperationMemberId)\r\n\r\n channel(\"WORKTASK\", workTaskId).publish(\"WORKTASK/LOADED\", workTask)\r\n\r\n // Look if there's not a new worktask loading. In this case, throw the old one away.\r\n const currentWorkTaskId = window.__NEXT_WORKTASKID__\r\n if (workTaskId != currentWorkTaskId) {\r\n return\r\n }\r\n\r\n if (workTask.customer) {\r\n channel(\"WORKTASK\", workTaskId).publish(\"CUSTOMER/LOADED\", workTask.customer)\r\n channel(\"GLOBAL\").publish(\"CUSTOMER/LOADED\", workTask.customer)\r\n }\r\n if (workTask.vehicle) {\r\n channel(\"WORKTASK\", workTaskId).publish(\"VEHICLE/LOADED\", workTask.vehicle)\r\n channel(\"GLOBAL\").publish(\"VEHICLE/LOADED\", workTask.vehicle)\r\n }\r\n\r\n this.setState({\r\n workTaskInfo: {\r\n id: workTask.workTaskId,\r\n no: workTask.workTaskNo,\r\n refId: workTask.refId,\r\n statusValue: workTask.statusValue,\r\n customer: workTask.customer,\r\n vehicle: workTask.vehicle,\r\n version: workTask.version,\r\n telesalesStatusValue: workTask.telesalesStatusValue,\r\n workTaskReadModel: workTask,\r\n },\r\n workTaskId: workTask.workTaskId,\r\n loading: false,\r\n loadingNewWorkTask: false,\r\n })\r\n })\r\n }\r\n })\r\n}\r\n","import { WorkTaskDetailsReadModel } from \"@tm/models\"\r\nimport { encodeUniqueId, decodeUniqueId } from \"@tm/utils\"\r\nimport { WorkTaskProvider } from \"./WorkTaskProvider\"\r\n\r\nexport function openWorkTask(\r\n this: WorkTaskProvider,\r\n workTaskId: string,\r\n subPage?: string,\r\n skipRedirect?: boolean,\r\n alreadyLoadedWorkTask?: WorkTaskDetailsReadModel\r\n): void {\r\n let encodedWorkTaskId = workTaskId\r\n let decodedWorkTaskId: string | undefined = workTaskId\r\n\r\n if (workTaskId.length === 36) {\r\n encodedWorkTaskId = encodeUniqueId(workTaskId)\r\n } else if (workTaskId.length === 22) {\r\n decodedWorkTaskId = decodeUniqueId(workTaskId)\r\n }\r\n\r\n const { workTaskInfo } = this.state\r\n\r\n if (workTaskInfo && workTaskInfo.id === decodedWorkTaskId) {\r\n this.loadWorkTaskInfo(workTaskInfo.id, alreadyLoadedWorkTask)\r\n }\r\n\r\n if (skipRedirect !== true) {\r\n let url = `/${encodedWorkTaskId}`\r\n\r\n if (subPage) {\r\n if (subPage.indexOf(\"/\") !== 0) {\r\n url += \"/\"\r\n }\r\n\r\n url += subPage\r\n }\r\n\r\n this.props.history.push(url)\r\n }\r\n}\r\n","import { FC, useCallback, useMemo, useState } from \"react\"\r\nimport Image from \"./image\"\r\n\r\nexport type Props = {\r\n className?: string\r\n id: number\r\n name: string\r\n imageUrl: string\r\n}\r\n\r\nexport const BonusSystemImage: FC = (props) => {\r\n const [useDefaultTheme, setUseDefaultTheme] = useState(false)\r\n const [trySvgImage, setTrySvgImage] = useState(true)\r\n const [imageError, setImageError] = useState(false)\r\n\r\n const imageUrl = useMemo(() => {\r\n let url = props.imageUrl\r\n\r\n if (useDefaultTheme) {\r\n url = url.replace(/(\\/)\\d+(\\/)/, \"$1-1$2\")\r\n }\r\n\r\n if (trySvgImage) {\r\n url = `${url.substring(0, url.lastIndexOf(\".\"))}.svg`\r\n }\r\n\r\n return url\r\n }, [useDefaultTheme, trySvgImage])\r\n\r\n const handleImageLoadError = useCallback(() => {\r\n if (trySvgImage) {\r\n setTrySvgImage(false)\r\n } else if (!useDefaultTheme) {\r\n setTrySvgImage(true)\r\n setUseDefaultTheme(true)\r\n } else {\r\n setImageError(true)\r\n }\r\n }, [useDefaultTheme, trySvgImage])\r\n\r\n if (imageError) {\r\n return null\r\n }\r\n\r\n return (\r\n

    \r\n \r\n
    \r\n )\r\n}\r\n","import Button, { ButtonSkins } from \"./button\"\r\nimport { useStyle } from \"@tm/context-distribution\"\r\nimport { useMemo } from \"react\"\r\nimport { classes } from \"@tm/utils\"\r\n\r\nexport type ReplaceButtonProps = {\r\n onClick: () => void\r\n disabled?: boolean\r\n isWm?: boolean\r\n skin?: ButtonSkins\r\n className?: string\r\n disableMargin?: boolean\r\n}\r\n\r\nfunction getStyle(isWm?: boolean, disableMargin?: boolean) {\r\n return useStyle({\r\n button: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minWidth: isWm ? \"13em\" : \"6em\",\r\n marginLeft: disableMargin ? \"initial\" : \"auto\",\r\n },\r\n })(ReplaceButton)\r\n}\r\n\r\nexport function ReplaceButton({ onClick, disabled, isWm, skin, className, disableMargin }: ReplaceButtonProps) {\r\n const style = useMemo(() => getStyle(isWm, disableMargin), [isWm, disableMargin])\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import { Component } from \"react\"\r\nimport Button from \"../button\"\r\nimport Icon from \"../icon\"\r\nimport { Text } from \"..\"\r\nimport bem from \"bem-classnames\"\r\n\r\nexport type AlertProps = {\r\n skin?: \"warning\" | \"danger\" | \"success\"\r\n buttonText?: string\r\n message: string\r\n description?: string\r\n icon?: string\r\n onButtonClick?(action: any): void\r\n}\r\n\r\nexport default class Alert extends Component {\r\n private static defaultProps: Partial = {\r\n icon: \"info\",\r\n skin: undefined,\r\n message: \"\",\r\n }\r\n\r\n render() {\r\n const alertClass = \"alert\"\r\n const iconSize = \"l\"\r\n\r\n const alert = {\r\n default: {\r\n name: `${alertClass}`,\r\n modifiers: [\"long\", \"skin\"],\r\n },\r\n icon: {\r\n name: `${alertClass}__icon`,\r\n modifiers: [\"iconSize\", \"icon\"],\r\n },\r\n description: {\r\n name: `${alertClass}__description`,\r\n },\r\n textWrapper: {\r\n name: `${alertClass}__text-wrapper`,\r\n },\r\n message: {\r\n name: `${alertClass}__message`,\r\n },\r\n closeButton: {\r\n name: `${alertClass}__close-button`,\r\n },\r\n }\r\n\r\n const { skin, description, buttonText, message, onButtonClick, icon } = this.props\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {message}\r\n \r\n {description}\r\n \r\n
    \r\n {onButtonClick && buttonText && (\r\n
    \r\n )\r\n }\r\n\r\n setIcon(skin?: \"warning\" | \"danger\" | \"success\") {\r\n let iconName\r\n switch (skin) {\r\n case \"warning\": {\r\n iconName = \"attention-dark\"\r\n break\r\n }\r\n case \"danger\": {\r\n iconName = \"attention-light\"\r\n break\r\n }\r\n case \"success\": {\r\n iconName = \"success-dark\"\r\n break\r\n }\r\n default: {\r\n iconName = \"information-light\"\r\n break\r\n }\r\n }\r\n return iconName\r\n }\r\n}\r\n","import { ButtonKeyDefinition, fixPrecisionSymbol, getLocalePrecisionSymbol } from \"@tm/utils\"\r\nimport { ChangeEvent, PureComponent, RefObject, SyntheticEvent } from \"react\"\r\nimport { bindMethodsToContext } from \"../../../helper/bindObjectContext\"\r\nimport { AmountItem } from \"..\"\r\n\r\ntype AmountFieldInputProps = AmountItem & {\r\n inputRef: RefObject\r\n onChange?(item: AmountItem): void\r\n}\r\n\r\ntype AmountFieldInputState = {\r\n showValue: string\r\n dropdownNavigationActive: boolean\r\n fromInput: boolean\r\n}\r\n\r\nexport default class AmountFieldInput extends PureComponent {\r\n constructor(props: AmountFieldInputProps) {\r\n super(props)\r\n bindMethodsToContext(this, [\"get\", \"set\", \"step\", \"adjust\", \"validate\", \"focus\"])\r\n\r\n this.state = {\r\n showValue: props.value?.toString() ?? \"\",\r\n dropdownNavigationActive: false,\r\n fromInput: false, // need this to handle input changes in getDerivedStateFromProps\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(props: AmountFieldInputProps, state: AmountFieldInputState) {\r\n const { value } = props\r\n const { showValue, fromInput } = state\r\n\r\n if (value?.toString() == showValue) {\r\n return null\r\n }\r\n\r\n return { showValue: fromInput ? showValue : value }\r\n }\r\n\r\n handleInputChange(e: ChangeEvent) {\r\n const { value } = e.target\r\n const valid = this.validateValue(value)\r\n\r\n if (!valid) {\r\n return\r\n }\r\n\r\n if (!value) {\r\n this.setState({ showValue: value, fromInput: true })\r\n return\r\n }\r\n\r\n const adjustedValue = this.adjustMinMaxValue(value).toString()\r\n const showValue = this.appendPrecision(value, adjustedValue)\r\n\r\n this.setState({ showValue, fromInput: true })\r\n }\r\n\r\n /**\r\n * due to parsing the userinput, the precision symbol could be lost,\r\n * so we will replace it with the locale language of the users browser\r\n * @param userInput the data the user has given\r\n * @param value parsed value\r\n */\r\n appendPrecision = (userInput: string, value: string) => {\r\n let fixedPrecisionValue = value\r\n if (/.*[^\\.,]$/.test(value)) {\r\n const locale = getLocalePrecisionSymbol()\r\n\r\n if (/.*[\\.,]$/.test(userInput)) {\r\n fixedPrecisionValue = `${value}${locale}`\r\n }\r\n\r\n if (fixedPrecisionValue.indexOf(locale) < 0) {\r\n fixedPrecisionValue = fixPrecisionSymbol(fixedPrecisionValue)\r\n }\r\n }\r\n return fixedPrecisionValue\r\n }\r\n\r\n validateValue(value: string): boolean {\r\n let valid = this.isNumber(value)\r\n valid = valid && this.validateBoundary(value)\r\n\r\n return valid\r\n }\r\n\r\n isNumber(value: string): boolean {\r\n const match = value.match(/^[+-]?\\d*[,.]?\\d*$/g)\r\n\r\n if (!match) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n\r\n validateBoundary(value: string): boolean {\r\n const currentValue = parseFloat(value)\r\n\r\n if (currentValue > this.props.maxAmount || currentValue < this.props.minAmount) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n\r\n adjustMinMaxValue(value: string | number) {\r\n const { maxAmount, minAmount } = this.props\r\n\r\n let fittedValue = typeof value == \"string\" ? parseFloat(value.replace(\",\", \".\")) : value\r\n\r\n if (fittedValue > maxAmount) {\r\n fittedValue = maxAmount\r\n }\r\n\r\n if (fittedValue < minAmount) {\r\n fittedValue = minAmount\r\n }\r\n\r\n return fittedValue\r\n }\r\n\r\n handleSubmitValue() {\r\n const { unit, maxAmount, minAmount, onChange, division } = this.props\r\n let adjustedValue = parseFloat(this.state.showValue.replace(\",\", \".\")) || this.props.value\r\n\r\n if (!this.stepSizeFits(adjustedValue)) {\r\n adjustedValue = this.adjustValue(adjustedValue)\r\n }\r\n\r\n this.setState({ fromInput: false })\r\n onChange?.({ value: adjustedValue, unit, division, maxAmount, minAmount })\r\n }\r\n\r\n handleKeyDown(e: React.KeyboardEvent) {\r\n switch (e.key) {\r\n case ButtonKeyDefinition.Enter: {\r\n if (this.state.dropdownNavigationActive) {\r\n this.setState({ dropdownNavigationActive: false })\r\n } else {\r\n this.handleBubbling(e)\r\n this.handleSubmitValue()\r\n }\r\n break\r\n }\r\n case ButtonKeyDefinition.ArrowDown: {\r\n this.setState({ dropdownNavigationActive: true })\r\n break\r\n }\r\n\r\n case ButtonKeyDefinition.Tab: {\r\n this.handleSubmitValue()\r\n break\r\n }\r\n }\r\n }\r\n\r\n stepSizeFits(value: number) {\r\n if (((value % this.props.division) as number) == 0) {\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n adjustValue(value: number) {\r\n const { division } = this.props\r\n\r\n const precision = this.getPrecision(division)\r\n const fixedValue = parseFloat(value.toFixed(precision))\r\n const rest = parseFloat((fixedValue % division).toFixed(precision))\r\n\r\n if (rest == 0) {\r\n return fixedValue\r\n }\r\n\r\n return fixedValue - rest + division\r\n }\r\n\r\n getPrecision(value: number) {\r\n const tmpValue = value.toString()\r\n if (tmpValue.indexOf(\".\") >= 0) {\r\n const splittedValue = tmpValue.split(\".\")\r\n const valueDecimals = splittedValue.last()\r\n return valueDecimals ? valueDecimals.length : 0\r\n }\r\n\r\n return 0\r\n }\r\n\r\n handleBubbling(e: SyntheticEvent) {\r\n e.stopPropagation()\r\n e.preventDefault()\r\n e.bubbles = false\r\n }\r\n\r\n render() {\r\n const { showValue } = this.state\r\n const { division } = this.props\r\n\r\n let numberDecimalPlaces = 0\r\n if (division.toString().indexOf(\".\") >= 0) {\r\n const decimalPlaces = division.toString().split(\".\").last()\r\n if (decimalPlaces && decimalPlaces.length > 0) {\r\n numberDecimalPlaces = decimalPlaces.length\r\n }\r\n }\r\n\r\n const className = \"amount-field__input input\"\r\n\r\n let value = numberDecimalPlaces == 1 || this.state.fromInput ? showValue : Number(showValue).toFixed(numberDecimalPlaces)\r\n value = fixPrecisionSymbol(value)\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n","import { memo } from \"react\"\r\nimport { AmountItem } from \"..\"\r\nimport { fixPrecisionSymbol } from \"@tm/utils\"\r\n\r\nexport const AmountFieldItem = memo((props) => {\r\n const { value, unit, division } = props\r\n\r\n let numberDecimalPlaces = 0\r\n if (division.toString().indexOf(\".\") >= 0) {\r\n const decimalPlaces = division.toString().split(\".\").last()\r\n if (decimalPlaces && decimalPlaces.length > 0) {\r\n numberDecimalPlaces = decimalPlaces.length\r\n }\r\n }\r\n\r\n let showValue = numberDecimalPlaces == 0 ? value : value.toFixed(numberDecimalPlaces)\r\n showValue = fixPrecisionSymbol(showValue.toString())\r\n\r\n return (\r\n
    \r\n {showValue} {!!unit && unit}\r\n
    \r\n )\r\n})\r\n","import { memo, useEffect, useMemo } from \"react\"\r\nimport { Dropdown } from \"../..\"\r\nimport { ButtonLayout } from \"../../button\"\r\nimport DecimalAmountFieldInput from \"./decimal-amountfield-input\"\r\nimport { DecimalAmountFieldItem } from \"./decimal-amountfield-item\"\r\nimport { useDecimalItems } from \"../useDecimalItems\"\r\n\r\nexport type DecimalAmountItem = {\r\n value: number\r\n unit?: string\r\n stepSize?: number\r\n inputPrecision?: number\r\n maxAmount: number\r\n minAmount: number\r\n}\r\n\r\nexport type DecimalAmountFieldProps = {\r\n className?: string\r\n value?: number\r\n unit?: string\r\n maxAmount?: number\r\n minAmount?: number\r\n inputPrecision?: number\r\n disabled?: boolean\r\n layout?: Array\r\n onChange?: (item: DecimalAmountItem) => void\r\n}\r\n\r\nexport const DecimalAmountField = memo((props) => {\r\n useEffect(() => {\r\n if (!props.disabled && !props.onChange) {\r\n console.warn(\"DecimalAmountField: onChange prop has to be set!\")\r\n }\r\n }, [])\r\n\r\n let maxAmount = props.maxAmount || 9999\r\n const minAmount = props.minAmount || 0\r\n const division = 1\r\n\r\n if (division > maxAmount) {\r\n maxAmount = division\r\n }\r\n\r\n const { items } = useDecimalItems(maxAmount, minAmount, division, props.unit, props.inputPrecision)\r\n\r\n function createItem(value: number): DecimalAmountItem {\r\n const { unit, inputPrecision } = props\r\n\r\n return {\r\n value,\r\n unit,\r\n stepSize: 1,\r\n inputPrecision: inputPrecision || 2,\r\n maxAmount,\r\n minAmount,\r\n }\r\n }\r\n const activeItem = useMemo(() => {\r\n if (items?.length) {\r\n const activeItem = items.find((item) => item.value === props.value)\r\n return activeItem || (props.value && createItem(props.value)) || items[0]\r\n }\r\n }, [items, props.value])\r\n\r\n useEffect(() => {\r\n if (activeItem && activeItem.value !== props.value && props.onChange) {\r\n props.onChange(activeItem)\r\n }\r\n }, [activeItem?.value, props.value])\r\n\r\n if (!items?.length) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n )\r\n})\r\n","import { ButtonKeyDefinition } from \"@tm/utils\"\r\nimport { ChangeEvent, RefObject, SyntheticEvent, useEffect, useState } from \"react\"\r\nimport { DecimalAmountItem } from \"./decimal-amount-field\"\r\n\r\ntype Props = DecimalAmountItem & {\r\n inputRef: RefObject\r\n onChange?(item: DecimalAmountItem): void\r\n}\r\n\r\nexport default function DecimalAmountFieldInput(props: Props) {\r\n const { maxAmount, minAmount, value, inputPrecision, unit, inputRef } = props\r\n\r\n const [showValue, setShowValue] = useState(value ? value.toString() : \"\")\r\n const [dropdownNavigationActive, setDropdownNavigationActive] = useState(false)\r\n\r\n useEffect(() => {\r\n setShowValue(value.toString())\r\n }, [value])\r\n\r\n function convertToDisplayValue(): string {\r\n const values = showValue.toString().split(\".\")\r\n if (values.length > 1) {\r\n const precisionValue = values.last()\r\n const integerValues = values.first()\r\n\r\n if (!(integerValues && precisionValue)) {\r\n return showValue\r\n }\r\n\r\n return `${integerValues},${precisionValue}`\r\n }\r\n return showValue\r\n }\r\n\r\n function handleInputChange(e: ChangeEvent) {\r\n const { value } = e.target\r\n\r\n const isNumber = !Number.isNaN(value)\r\n const inBoundary = validateBoundary(value)\r\n\r\n if (!isNumber) {\r\n setShowValue(minAmount.toString())\r\n return\r\n }\r\n\r\n if (!inBoundary) {\r\n setShowValue(parseFloat(value.replace(\",\", \".\")) > maxAmount ? maxAmount.toString() : minAmount.toString())\r\n return\r\n }\r\n\r\n const noEmptyValue = value === \"\" ? \"0\" : value\r\n\r\n const validDecimalRegex = /^(\\d+[,\\\\.]$)/\r\n if (typeof noEmptyValue == \"string\" && validDecimalRegex.exec(noEmptyValue)) {\r\n setShowValue(value)\r\n return\r\n }\r\n\r\n const convertedValue = convertToValidDecimal(value)\r\n const fixedPrecision = fixPrecision(convertedValue)\r\n const showValue = adjustMinMaxValue(fixedPrecision).toString()\r\n setShowValue(showValue)\r\n }\r\n\r\n function validateBoundary(value: string): boolean {\r\n const currentValue = parseFloat(value)\r\n if (currentValue > maxAmount) {\r\n return false\r\n }\r\n\r\n if (currentValue < minAmount) {\r\n return false\r\n }\r\n\r\n if (isNaN(currentValue)) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n\r\n function fixPrecision(value: string): string {\r\n return parseFloat(value)\r\n .toFixed(inputPrecision || 2)\r\n .toString()\r\n }\r\n\r\n function convertToValidDecimal(value: string): string {\r\n const hasPrecision = /(\\d(?:.\\d{3})?),(\\d+)$/\r\n return value.replace(hasPrecision, (value, integerGroup, precisionGroup) => {\r\n return `${integerGroup}.${precisionGroup}`\r\n })\r\n }\r\n\r\n function adjustMinMaxValue(value: string | number) {\r\n let fitValue = typeof value == \"string\" ? parseFloat(value) : value\r\n\r\n if (fitValue > maxAmount) {\r\n fitValue = maxAmount\r\n }\r\n\r\n if (fitValue < minAmount) {\r\n fitValue = minAmount\r\n }\r\n\r\n return fitValue\r\n }\r\n\r\n function handleSubmitValue() {\r\n let inputValue = showValue\r\n\r\n if (!inputValue) {\r\n return\r\n }\r\n\r\n inputValue = inputValue.replace(\",\", \".\")\r\n const submitValue = parseFloat(inputValue) || value\r\n\r\n props.onChange && props.onChange({ value: submitValue, unit, inputPrecision, maxAmount, minAmount })\r\n }\r\n\r\n function handleKeyDown(e: React.KeyboardEvent) {\r\n switch (e.key) {\r\n case ButtonKeyDefinition.Enter: {\r\n if (dropdownNavigationActive) {\r\n setDropdownNavigationActive(false)\r\n } else {\r\n handleBubbling(e)\r\n handleSubmitValue()\r\n }\r\n break\r\n }\r\n case ButtonKeyDefinition.ArrowDown: {\r\n setDropdownNavigationActive(true)\r\n break\r\n }\r\n\r\n case ButtonKeyDefinition.Tab: {\r\n handleSubmitValue()\r\n break\r\n }\r\n\r\n default: {\r\n }\r\n }\r\n }\r\n\r\n function handleBubbling(e: SyntheticEvent) {\r\n e.stopPropagation()\r\n e.preventDefault()\r\n e.bubbles = false\r\n }\r\n\r\n let className = \"amount-field__input input amount-field--decimal\"\r\n\r\n if (unit) {\r\n className += \"amount-field--unit\"\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import { memo } from \"react\"\r\nimport { fixPrecisionSymbol } from \"@tm/utils\"\r\nimport { DecimalAmountItem } from \"./decimal-amount-field\"\r\n\r\nexport const DecimalAmountFieldItem = memo((props) => {\r\n const { value, unit } = props\r\n const fixedSeperator = fixPrecisionSymbol(value.toString())\r\n\r\n return (\r\n
    \r\n {fixedSeperator} {!!unit && unit}\r\n
    \r\n )\r\n})\r\n","import { memo, useEffect, useMemo } from \"react\"\r\nimport { Dropdown } from \"..\"\r\nimport { AmountFieldItem } from \"./components/amountfield-item\"\r\nimport { ButtonLayout } from \"../button\"\r\nimport AmountFieldInput from \"./components/amountfield-input\"\r\nimport { useItems } from \"./useItems\"\r\n\r\nexport type AmountItem = {\r\n value: number\r\n unit?: string\r\n division: number\r\n maxAmount: number\r\n minAmount: number\r\n}\r\n\r\nexport type AmountFieldProps = {\r\n className?: string\r\n value?: number\r\n unit?: string\r\n maxAmount?: number\r\n minAmount?: number\r\n stepSize?: number\r\n disabled?: boolean\r\n layout?: Array\r\n onChange?: (item: AmountItem) => void\r\n}\r\n\r\nexport const AmountField = memo((props) => {\r\n useEffect(() => {\r\n if (!props.disabled && !props.onChange) {\r\n console.warn(\"AmountField: onChange prop has to be set!\")\r\n }\r\n }, [])\r\n\r\n let maxAmount = props.maxAmount || 9999\r\n const minAmount = props.minAmount || 1\r\n const division = !props.stepSize || props.stepSize <= 0 ? 1 : props.stepSize\r\n\r\n if (division > maxAmount) {\r\n maxAmount = division\r\n }\r\n\r\n const { items } = useItems(maxAmount, minAmount, division, props.unit)\r\n\r\n const activeItem = useMemo(() => {\r\n if (items?.length) {\r\n return items.find((item) => item.value === props.value) || items[0]\r\n }\r\n }, [items, props.value])\r\n\r\n useEffect(() => {\r\n if (activeItem && activeItem.value !== props.value && props.onChange) {\r\n props.onChange(activeItem)\r\n }\r\n }, [activeItem?.value, props.value])\r\n\r\n if (!items?.length) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n )\r\n})\r\n","import { useQuery } from \"react-query\"\r\nimport { DecimalAmountItem } from \"./decimal/decimal-amount-field\"\r\n\r\nexport function useDecimalItems(\r\n maxAmount: number,\r\n minAmount: number,\r\n division: number,\r\n unit: string | undefined,\r\n inputPrecision: number | undefined\r\n) {\r\n const { data } = useQuery(\r\n [\"controls_decimal-amount-field_items\", maxAmount, minAmount, division, unit, inputPrecision],\r\n () => {\r\n return Promise.resolve() // Force async execution\r\n .then(() => {\r\n const items: Array = []\r\n let numberDecimalPlaces = 2\r\n\r\n const decimalParts = (inputPrecision || 0.01).toString().split(\".\")\r\n numberDecimalPlaces = decimalParts.length > 1 ? (decimalParts.last() as string).length : numberDecimalPlaces\r\n const division = inputPrecision || 1\r\n for (let i = division || 1; i <= maxAmount; i += division) {\r\n if (i >= minAmount) {\r\n items.push({\r\n maxAmount,\r\n minAmount,\r\n value: parseFloat(i.toFixed(numberDecimalPlaces)),\r\n stepSize: 1,\r\n inputPrecision: inputPrecision || 2,\r\n unit,\r\n })\r\n }\r\n }\r\n\r\n return items\r\n })\r\n },\r\n { staleTime: Infinity }\r\n )\r\n\r\n return { items: data }\r\n}\r\n","import { useQuery } from \"react-query\"\r\nimport { Decimal } from \"decimal.js-light\"\r\nimport { AmountItem } from \".\"\r\n\r\nexport function useItems(maxAmount: number, minAmount: number, division: number, unit: string | undefined) {\r\n const { data } = useQuery(\r\n [\"controls_amount-field_items\", maxAmount, minAmount, division, unit],\r\n () => {\r\n return Promise.resolve() // Force async execution\r\n .then(() => {\r\n const items: Array = []\r\n\r\n let itemValue = new Decimal(division)\r\n\r\n while (itemValue.lessThanOrEqualTo(maxAmount) && items.length < 10000) {\r\n if (itemValue.greaterThanOrEqualTo(minAmount)) {\r\n items.push({\r\n value: itemValue.todp(2).toNumber(),\r\n unit,\r\n division,\r\n maxAmount,\r\n minAmount,\r\n })\r\n }\r\n\r\n itemValue = itemValue.plus(division)\r\n }\r\n\r\n return items\r\n })\r\n },\r\n { staleTime: Infinity }\r\n )\r\n\r\n return { items: data }\r\n}\r\n","import { Icon, Image } from \"../../..\"\r\n\r\nexport type AvailabilityDescriptionProps = {\r\n baseName: string\r\n iconname?: string\r\n imageUrl?: string\r\n description?: string\r\n}\r\n\r\nexport function AvailabilityDescription({ baseName, iconname, imageUrl, description }: AvailabilityDescriptionProps) {\r\n if (!description && !iconname && !imageUrl) {\r\n return null\r\n }\r\n\r\n let imageElement\r\n if (imageUrl) {\r\n imageElement = \r\n } else if (iconname) {\r\n imageElement = \r\n }\r\n\r\n return (\r\n <>\r\n {!!imageElement &&
    {imageElement}
    }\r\n {description &&
    {description}
    }\r\n \r\n )\r\n}\r\n","import { AvailabilityStatus } from \"@tm/models\"\r\nimport { mapAvailabilityStatusToLevel } from \"@tm/utils\"\r\nimport { PropsWithChildren } from \"react\"\r\nimport { AvailabilityDescription } from \"./components/availability-description\"\r\n\r\ntype AvailabilityProps = PropsWithChildren<{\r\n status: AvailabilityStatus\r\n description?: string\r\n iconname?: string\r\n imageUrl?: string\r\n indicatorPosition?: \"bottom\" | \"top\"\r\n tourDate?: string\r\n tourName?: string\r\n onClick?(): void\r\n}>\r\n\r\nexport default function Availability({\r\n status,\r\n iconname,\r\n imageUrl,\r\n description,\r\n indicatorPosition,\r\n tourDate,\r\n tourName,\r\n onClick,\r\n children,\r\n}: AvailabilityProps) {\r\n const baseName = \"availability\"\r\n\r\n let className = `${baseName} ${baseName}--level-${mapAvailabilityStatusToLevel(status)} ${baseName}--status-${status}`\r\n\r\n if (indicatorPosition) {\r\n className += ` ${baseName}--${indicatorPosition}`\r\n }\r\n\r\n if (onClick) {\r\n className += ` ${baseName}--clickable`\r\n }\r\n\r\n if (imageUrl) {\r\n className += ` ${baseName}--has-image`\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {children || }\r\n
    \r\n
    \r\n {(tourDate || tourName) && (\r\n
    \r\n
    \r\n {tourDate}\r\n {tourDate && tourName &&
    }\r\n {tourName}\r\n
    \r\n
    \r\n )}\r\n
    \r\n )\r\n}\r\n","import { Icon, Image } from \"../../..\"\r\n\r\nexport type AvailabilityDescriptionProps = {\r\n baseName: string\r\n iconname?: string\r\n imageUrl?: string\r\n description?: string\r\n}\r\n\r\nexport function AvailabilityDescription({ baseName, iconname, imageUrl, description }: AvailabilityDescriptionProps) {\r\n if (!description && !iconname && !imageUrl) {\r\n return null\r\n }\r\n\r\n let imageElement\r\n if (imageUrl) {\r\n imageElement = \r\n } else if (iconname) {\r\n imageElement = \r\n }\r\n\r\n return (\r\n <>\r\n {!!imageElement &&
    {imageElement}
    }\r\n {description &&
    {description}
    }\r\n \r\n )\r\n}\r\n","import { AvailabilityStatus } from \"@tm/models\"\r\nimport { mapAvailabilityStatusToLevel } from \"@tm/utils\"\r\nimport { PropsWithChildren } from \"react\"\r\nimport { Icon, Image } from \"../..\"\r\nimport { AvailabilityDescription } from \"./components/availability-description\"\r\n\r\nexport type AvailabilityIconWithDescriptionProps = PropsWithChildren<{\r\n status: AvailabilityStatus\r\n description?: string\r\n iconname?: string\r\n imageUrl?: string\r\n onClick?(): void\r\n}>\r\n\r\nexport default function AvailabilityIconWithDescription({\r\n status,\r\n iconname,\r\n imageUrl,\r\n onClick,\r\n description,\r\n children,\r\n}: AvailabilityIconWithDescriptionProps) {\r\n const baseName = \"availability-icon-with-description\"\r\n\r\n let className = `${baseName} ${baseName}--level-${mapAvailabilityStatusToLevel(status)} ${baseName}--status-${status}`\r\n\r\n if (onClick) {\r\n className += ` ${baseName}--clickable`\r\n }\r\n\r\n let imageElement\r\n if (imageUrl) {\r\n imageElement = \r\n } else if (iconname) {\r\n imageElement = \r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {children || }\r\n
    \r\n
    \r\n )\r\n}\r\n","import { AvailabilityStatus } from \"@tm/models\"\r\nimport { Icon, Image } from \"../..\"\r\nimport { mapAvailabilityStatusToLevel } from \"@tm/utils\"\r\n\r\nexport type AvailabilityIconWithTourProps = {\r\n status: AvailabilityStatus\r\n iconname?: string\r\n imageUrl?: string\r\n tourDate?: string\r\n tourName?: string\r\n onClick?(): void\r\n}\r\n\r\nexport default function AvailabilityIconWithTour({ status, iconname, imageUrl, tourDate, tourName, onClick }: AvailabilityIconWithTourProps) {\r\n const baseName = \"availability-icon-with-tour\"\r\n\r\n let className = `${baseName} ${baseName}--level-${mapAvailabilityStatusToLevel(status)} ${baseName}--status-${status}`\r\n\r\n if (onClick) {\r\n className += ` ${baseName}--clickable`\r\n }\r\n\r\n let imageElement\r\n if (imageUrl) {\r\n imageElement = \r\n } else if (iconname) {\r\n imageElement = \r\n }\r\n\r\n return (\r\n
    \r\n
    {imageElement}
    \r\n {(tourDate || tourName) && (\r\n
    \r\n
    \r\n {tourDate}\r\n {tourDate && tourName &&
    }\r\n {tourName}\r\n
    \r\n
    \r\n )}\r\n
    \r\n )\r\n}\r\n","import { mapAvailabilityStatusToIconName } from \"@tm/utils\"\r\nimport { Availability, AvailabilityStatus } from \"@tm/models\"\r\nimport { Icon, Text, Image } from \"../..\"\r\n\r\nexport type AvailabilityMultiQuantityProps = {\r\n availabilities: Array<{ availability: Omit; quantity: number }>\r\n additionalText?: string\r\n onClick?(): void\r\n}\r\n\r\nexport default function AvailabilityMultiQuantity({ availabilities, additionalText, onClick }: AvailabilityMultiQuantityProps) {\r\n const baseName = \"availability-multi-quantity\"\r\n const itemBaseName = `${baseName}__item`\r\n\r\n const content: Array = []\r\n availabilities.map((a) => {\r\n const type = a.availability.type || AvailabilityStatus.Undefined\r\n\r\n let image\r\n if (a.availability.icon?.useIconFromUrl && a.availability.icon.url) {\r\n image = \r\n } else {\r\n image = \r\n }\r\n\r\n content.push(\r\n
    \r\n
    {image}
    \r\n
    \r\n {a.quantity}\r\n
    \r\n
    \r\n )\r\n })\r\n\r\n let className = baseName\r\n\r\n if (onClick) {\r\n className = `${className} ${className}--clickable`\r\n }\r\n\r\n return (\r\n
    \r\n
    {content}
    \r\n {!!additionalText && (\r\n
    \r\n {additionalText}\r\n
    \r\n )}\r\n
    \r\n )\r\n}\r\n","import { Component, ReactElement } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { BaseProps } from \"../../models/SharedModels\"\r\nimport Loader from \"../loader\"\r\nimport Icon from \"../icon\"\r\nimport { GrayishSkins, DefaultSkins } from \"../../models/skins\"\r\n\r\nexport type BadgeProps = BaseProps & {\r\n skin?: DefaultSkins | GrayishSkins\r\n loading?: boolean\r\n value?: string | number | null | ReactElement\r\n buttonIcon?: string\r\n onButtonClick?(): void\r\n title?: string\r\n}\r\n\r\nexport type BadgeState = {\r\n show: boolean\r\n}\r\n\r\n/**\r\n * @deprecated Use new Badge from \"@tm/components\" instead\r\n */\r\n\r\nexport default class Badge extends Component {\r\n private _visibleTimeoutId: number\r\n\r\n private _isMounted = false\r\n\r\n baseName = \"badge\"\r\n\r\n constructor(props: BadgeProps) {\r\n super(props)\r\n\r\n this.state = {\r\n show: false,\r\n }\r\n\r\n bindMethodsToContext(this, [\"build\"])\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false\r\n window.clearTimeout(this._visibleTimeoutId)\r\n }\r\n\r\n render() {\r\n const className = this.buildClassName()\r\n const { value, loading, title } = this.props\r\n const show = !!(loading || value)\r\n this.handleBadgeVisibility()\r\n\r\n return (\r\n
    \r\n {this.renderBadgeContent()}\r\n
    \r\n //
    \r\n // {\r\n // (loading || value) &&\r\n //
    \r\n // {\r\n // this.renderBadgeContent()\r\n // }\r\n //
    \r\n // }\r\n // {\r\n // this.props.children\r\n // }\r\n //
    \r\n )\r\n }\r\n\r\n renderBadgeContent() {\r\n const { loading, value, buttonIcon, onButtonClick } = this.props\r\n\r\n let badgeContent\r\n if (loading) {\r\n badgeContent = \r\n } else {\r\n badgeContent = buttonIcon ? (\r\n
    \r\n {value}\r\n
    \r\n \r\n
    \r\n
    \r\n ) : (\r\n value\r\n )\r\n }\r\n\r\n return badgeContent\r\n }\r\n\r\n handleOnButtonClick(e: React.MouseEvent) {\r\n if (this.props.onButtonClick) {\r\n e.stopPropagation()\r\n this.props.onButtonClick()\r\n }\r\n }\r\n\r\n handleBadgeVisibility() {\r\n const { show } = this.state\r\n const { loading, value } = this.props\r\n\r\n if (!value && !loading && show) {\r\n this.handleHidden()\r\n return\r\n }\r\n\r\n if ((value || loading) && !show) {\r\n this._visibleTimeoutId = window.setTimeout(this.handleVisible, 100)\r\n }\r\n }\r\n\r\n handleVisible() {\r\n if (this._isMounted) {\r\n this.setState({ show: true })\r\n }\r\n }\r\n\r\n handleHidden() {\r\n this.setState({ show: false })\r\n }\r\n\r\n buildClassName() {\r\n let qualifiedSelector = `${this.baseName}`\r\n const { className, skin, loading } = this.props\r\n\r\n if (className) {\r\n qualifiedSelector = `${qualifiedSelector} ${className}`\r\n }\r\n\r\n if (skin) {\r\n qualifiedSelector = `${qualifiedSelector} ${this.baseName}--${skin}`\r\n }\r\n\r\n if (this.state.show) {\r\n qualifiedSelector = `${qualifiedSelector} ${this.state.show ? `${this.baseName}--show` : \"\"}`\r\n }\r\n\r\n if (loading) {\r\n qualifiedSelector = `${qualifiedSelector} ${`${this.baseName}--loading`}`\r\n }\r\n\r\n return qualifiedSelector\r\n }\r\n}\r\n","import { CSSProperties, Component, PropsWithChildren, ReactNode, RefObject, createRef } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nimport cx from \"bem-classnames\"\r\nimport { getUIA } from \"@tm/utils\"\r\nimport { Size } from \"../../models/skins\"\r\nimport Icon from \"../icon\"\r\n\r\nexport type ButtonLayout = \"none\" | \"rounded\" | \"ghost\" | \"shaded\" | \"holo\" | \"bordered\" | \"iconRight\" | \"circle\" | \"dropshadow\"\r\nexport type ComponentSize = Size\r\nexport type ButtonSkins = \"warning\" | \"danger\" | \"success\" | \"highlight\" | \"primary\"\r\n\r\nexport type ButtonProps = PropsWithChildren<{\r\n /** name of the icon */\r\n icon?: string\r\n /** renders a seperate value next to the button */\r\n value?: string\r\n /** render button as link */\r\n linkTo?: string\r\n /** disables link check */\r\n forceExternalLink?: boolean\r\n /** the target of the underlying anchor */\r\n target?: string\r\n /** defines the color of the button */\r\n skin?: ButtonSkins\r\n /** size of the button, Size */\r\n size?: ComponentSize\r\n /** defines the appearance, except the color, of the button */\r\n layout?: Array\r\n /** hovering text */\r\n title?: string\r\n /** additional css classname */\r\n className?: string\r\n /** id classname */\r\n id?: string\r\n /** disable or enable the button */\r\n disabled?: boolean\r\n /** callback which gets executed on button click */\r\n onClick?(action: any): void\r\n /** doesn't use the html button element, instead take a div */\r\n fakeButton?: boolean\r\n /** You need the icon to scale up depending on the size, mb usefull for icon only buttons */\r\n scaleIcon?: boolean\r\n /** set the active state to the button */\r\n isActive?: boolean\r\n /** use this only if you need to add content as sibling to the content (like badge's which otherwise would inherit the opacity of the content container) */\r\n appendItem?: ReactNode\r\n style?: CSSProperties\r\n}>\r\n\r\n/**\r\n * This is the button component, it will render a brand new button. This description will be shown in the styleguide\r\n * @param skin defines the appearance\r\n */\r\nexport default class Button extends Component {\r\n private buttonElement: RefObject\r\n\r\n private button = {\r\n name: \"btn\",\r\n modifiers: [\"value\", \"size\", \"skin\", \"rounded\", \"ghost\", \"shaded\", \"holo\", \"disabled\", \"bordered\", \"icon-only\", \"circle\"],\r\n states: [\"value\", \"icon\", \"icon-right\", \"dropshadow\"],\r\n\r\n text: {\r\n name: \"btn__text\",\r\n modifiers: [\"size\"],\r\n },\r\n }\r\n\r\n constructor(props: ButtonProps) {\r\n super(props)\r\n this.buttonElement = createRef()\r\n }\r\n\r\n render() {\r\n const {\r\n value,\r\n icon,\r\n onClick,\r\n title,\r\n id,\r\n size,\r\n skin,\r\n children,\r\n linkTo,\r\n disabled,\r\n fakeButton,\r\n target,\r\n layout,\r\n isActive,\r\n scaleIcon,\r\n appendItem,\r\n forceExternalLink,\r\n ...buttonProperties\r\n } = this.props\r\n cx.prefixes.states = \"has-\"\r\n\r\n const hasChildren = Array.isArray(children) ? children.some((child) => !!child) : !!children\r\n const hasIconRight = layout && layout.indexOf(\"iconRight\") >= 0\r\n\r\n const buttonLayout = {\r\n shaded: layout && layout.indexOf(\"shaded\") >= 0,\r\n rounded: layout && layout.indexOf(\"rounded\") >= 0,\r\n ghost: layout && layout.indexOf(\"ghost\") >= 0,\r\n holo: layout && layout.indexOf(\"holo\") >= 0,\r\n bordered: layout && layout.indexOf(\"bordered\") >= 0,\r\n circle: layout && layout.indexOf(\"circle\") >= 0,\r\n disabled,\r\n \"icon-only\": !hasChildren,\r\n \"icon-right\": hasIconRight,\r\n dropshadow: layout && layout.indexOf(\"dropshadow\") >= 0,\r\n }\r\n\r\n const bemConfig = {\r\n ...buttonLayout,\r\n value: !!value,\r\n icon: !!icon && !hasIconRight && hasChildren,\r\n size,\r\n skin,\r\n }\r\n\r\n const btnClassName = cx(this.button, { ...bemConfig, value: false }, this.appendToClassName.bind(this)())\r\n const btnTitle = title || \"\"\r\n\r\n let btn = !fakeButton ? (\r\n }\r\n {...getUIA(\"Button\", id || btnClassName || btnTitle)}\r\n >\r\n {this.renderChildren()}\r\n \r\n ) : (\r\n }\r\n style={this.props.style}\r\n {...getUIA(\"ButtonFake\", id || btnClassName || btnTitle)}\r\n >\r\n {this.renderChildren()}\r\n
    \r\n )\r\n\r\n if (linkTo && linkTo.length > 0) {\r\n if (/^\\w+:\\/\\//.test(linkTo) || forceExternalLink) {\r\n btn = (\r\n \r\n {this.renderChildren()}\r\n \r\n )\r\n } else {\r\n btn = (\r\n \r\n {this.renderChildren()}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (value) {\r\n btn = (\r\n
    \r\n {btn}\r\n \r\n
    \r\n )\r\n }\r\n\r\n return btn\r\n }\r\n\r\n renderChildren() {\r\n const { layout, children, icon, scaleIcon, appendItem } = this.props\r\n const hasIconRight = layout && layout.indexOf(\"iconRight\") >= 0\r\n\r\n let iconElement: ReactNode\r\n\r\n if (icon) {\r\n iconElement = \r\n }\r\n\r\n return (\r\n <>\r\n {!hasIconRight && iconElement && iconElement}\r\n {children &&
    {children}
    }\r\n {appendItem}\r\n {hasIconRight && iconElement && iconElement}\r\n \r\n )\r\n }\r\n\r\n appendToClassName() {\r\n const { isActive, className, value } = this.props\r\n\r\n let extendedClassName = \"\"\r\n\r\n if (value) {\r\n extendedClassName = `has-value`\r\n }\r\n\r\n if (className) {\r\n if (extendedClassName) {\r\n extendedClassName = `${extendedClassName} ${className}`\r\n } else {\r\n extendedClassName = `${className}`\r\n }\r\n }\r\n\r\n if (isActive) {\r\n if (extendedClassName) {\r\n extendedClassName = `${extendedClassName} is-active`\r\n } else {\r\n extendedClassName = `is-active`\r\n }\r\n }\r\n\r\n return extendedClassName\r\n }\r\n\r\n focus() {\r\n setTimeout(() => {\r\n this.buttonElement.current && this.buttonElement.current.focus()\r\n }, 0)\r\n }\r\n}\r\n","import { Component, PropsWithChildren } from \"react\"\r\nimport Icon from \"../icon\"\r\n\r\nimport { GrayishSkins, DefaultSkins } from \"../../models/skins\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { BaseProps } from \"../../models/SharedModels\"\r\n\r\nexport type CardProps = PropsWithChildren<\r\n BaseProps & {\r\n skin?: \"highlight\" | GrayishSkins\r\n open?: boolean\r\n indicator?: boolean\r\n onClick?(): void\r\n onDblClick?(): void\r\n }\r\n>\r\n\r\nexport default class Card extends Component {\r\n static baseName = \"card\"\r\n\r\n constructor(props: CardProps) {\r\n super(props)\r\n bindMethodsToContext(this, [\"getClassName\"])\r\n }\r\n\r\n render() {\r\n const className = this.getClassName(Card.baseName)\r\n\r\n return (\r\n
    \r\n
    \r\n {this.props.children}\r\n
    \r\n
    \r\n )\r\n }\r\n\r\n handleClick() {\r\n const { onClick } = this.props\r\n if (onClick) {\r\n onClick()\r\n }\r\n }\r\n\r\n handleDblClick() {\r\n const { onDblClick } = this.props\r\n if (onDblClick) {\r\n onDblClick()\r\n }\r\n }\r\n\r\n getClassName(baseClassName: string): string {\r\n const { skin, open, indicator, className } = this.props\r\n let fullClassName = `${baseClassName}`\r\n\r\n if (className) {\r\n fullClassName = `${fullClassName} ${className}`\r\n }\r\n if (skin) {\r\n fullClassName = `${fullClassName} ${baseClassName}--${skin}`\r\n }\r\n\r\n if (indicator) {\r\n fullClassName = `${fullClassName} ${baseClassName}--indicator`\r\n }\r\n\r\n if (open) {\r\n fullClassName = `${fullClassName} is-open`\r\n }\r\n\r\n return fullClassName\r\n }\r\n}\r\n","import cx from \"bem-classnames\"\r\nimport { Component } from \"react\"\r\nimport { Icon, Text } from \"..\"\r\nimport { Size } from \"../../models/skins\"\r\nimport { bindMethodsToContext } from \"../../helper/bindObjectContext\"\r\nimport { elementId } from \"../../helper\"\r\n\r\nexport type CheckboxProps = {\r\n label?: string\r\n checked?: boolean\r\n onToggle?(e?: React.MouseEvent): void\r\n /** size of the checkbox, Size */\r\n size?: Size\r\n disabled?: boolean\r\n labelTitle?: string\r\n onLabelClick?(e: React.MouseEvent): void\r\n}\r\n\r\nconst bemConfig = {\r\n name: \"checkbox\",\r\n modifiers: [\"size\", \"disabled\"],\r\n}\r\n\r\nexport default class Checkbox extends Component {\r\n private elementId = elementId()\r\n\r\n constructor(props: CheckboxProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n static get defaultProps(): Partial {\r\n return {\r\n size: \"m\",\r\n }\r\n }\r\n\r\n handleChange(e?: React.MouseEvent) {\r\n const { onToggle, disabled } = this.props\r\n !disabled && onToggle && onToggle(e)\r\n }\r\n\r\n render() {\r\n const { checked, label, size, disabled, labelTitle, onLabelClick } = this.props\r\n\r\n return (\r\n \r\n \r\n \r\n {checked && }\r\n \r\n {!!label && (\r\n \r\n )}\r\n \r\n )\r\n }\r\n}\r\n","import { registerOutsideClick } from \"@tm/utils\"\r\nimport { PropsWithChildren, ReactNode, Component } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport Icon from \"../icon\"\r\n\r\nexport type Props = PropsWithChildren<{\r\n name: string\r\n disabled?: boolean\r\n active?: boolean\r\n initiallyOpened?: boolean\r\n asDropDown?: boolean\r\n className?: string\r\n value?: string\r\n skin?: \"dark\"\r\n layout?: \"holo\"\r\n closeDropdownOnOutsideClick?: boolean\r\n renderHeaderAppendix?(): ReactNode\r\n onChangeOpen?(opened: boolean): void\r\n shouldComponentToggle?(e: React.MouseEvent): boolean\r\n}>\r\n\r\nexport type State = {\r\n opened: boolean\r\n}\r\n\r\nexport default class Collapsible extends Component {\r\n private dropDownRef: HTMLDivElement | null = null\r\n\r\n private removeOutsideClick?: () => void\r\n\r\n static defaultProps: Partial = {\r\n closeDropdownOnOutsideClick: true,\r\n }\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n\r\n this.state = {\r\n opened: this.props.initiallyOpened || false,\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.removeOutsideClick) {\r\n this.removeOutsideClick()\r\n this.removeOutsideClick = undefined\r\n }\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\r\n if (\r\n this.props.initiallyOpened != nextProps.initiallyOpened &&\r\n nextProps.initiallyOpened != undefined &&\r\n this.state.opened != nextProps.initiallyOpened\r\n ) {\r\n this.setState({ opened: !!nextProps.initiallyOpened })\r\n }\r\n }\r\n\r\n private handleDropDownRef(ref: HTMLDivElement | null) {\r\n this.dropDownRef = ref\r\n }\r\n\r\n private handleDropDownToggleOpen(e: React.MouseEvent) {\r\n if (this.removeOutsideClick) {\r\n this.removeOutsideClick()\r\n this.removeOutsideClick = undefined\r\n }\r\n\r\n if (!this.state.opened && this.dropDownRef && this.props.closeDropdownOnOutsideClick) {\r\n this.removeOutsideClick = registerOutsideClick(this.dropDownRef, this.handleToggleOpen)\r\n }\r\n\r\n this.handleToggleOpen(e)\r\n }\r\n\r\n private handleToggleOpen(e?: any) {\r\n const { shouldComponentToggle } = this.props\r\n const preventToggle = shouldComponentToggle && e && !shouldComponentToggle(e)\r\n\r\n if (preventToggle || this.props.disabled) {\r\n return\r\n }\r\n\r\n this.setState((prev) => ({\r\n opened: !prev.opened,\r\n }))\r\n\r\n const { onChangeOpen } = this.props\r\n onChangeOpen && onChangeOpen(!this.state.opened)\r\n }\r\n\r\n expand() {\r\n if (this.state.opened) {\r\n return\r\n }\r\n this.handleToggleOpen()\r\n }\r\n\r\n collapse() {\r\n if (!this.state.opened) {\r\n return\r\n }\r\n this.handleToggleOpen()\r\n\r\n if (this.removeOutsideClick) {\r\n this.removeOutsideClick()\r\n this.removeOutsideClick = undefined\r\n }\r\n }\r\n\r\n private renderHeader() {\r\n const { asDropDown, name, disabled, active, renderHeaderAppendix, value, layout } = this.props\r\n const { opened } = this.state\r\n\r\n if (asDropDown) {\r\n let className = \"collapsible__header btn\"\r\n if (layout == \"holo\") {\r\n className += \" btn--holo\"\r\n }\r\n if (disabled) {\r\n className += \" btn--disabled\"\r\n } else if (active) {\r\n className += \" is-active\"\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    {name}
    \r\n {value &&
    {value}
    }\r\n
    \r\n
    {renderHeaderAppendix && renderHeaderAppendix()}
    \r\n
    \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    {name}
    \r\n {!opened && value &&
    {value}
    }\r\n
    \r\n {renderHeaderAppendix && renderHeaderAppendix()}\r\n
    \r\n )\r\n }\r\n\r\n render() {\r\n const { asDropDown, value, disabled, skin } = this.props\r\n const { opened } = this.state\r\n\r\n let className = \"collapsible \"\r\n className += disabled ? \"collapsible--disabled \" : \"\"\r\n className += asDropDown ? \"collapsible--dropdown \" : \"\"\r\n className += opened ? \"collapsible--opened \" : \"\"\r\n className += value ? \"has-value \" : \"\"\r\n className += skin ? `collapsible--${skin} ` : \"\"\r\n className += this.props.className || \"\"\r\n\r\n return (\r\n
    \r\n {this.renderHeader()}\r\n
    {this.props.children}
    \r\n
    \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { getFieldErrors } from \"@tm/utils\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { createErrorMessage } from \"../../models\"\r\nimport Button from \"../button\"\r\n\r\nexport type DateFieldCustomInputProps = {\r\n floatingLabel?: boolean\r\n id?: string\r\n label?: string | JSX.Element\r\n placeholder?: string\r\n readOnly?: boolean\r\n required?: boolean\r\n showClear: boolean\r\n minDate?: string\r\n maxDate?: string\r\n size?: number\r\n value?: string\r\n wrapperClassName?: string\r\n initiallyFocused?: boolean\r\n // calender?: DatePicker\r\n path?: string[]\r\n modelState?: { [key: string]: Array }\r\n onChange?: (test: { target: { value: string } }) => void\r\n onBlur?: () => void\r\n onFocus?: () => void\r\n}\r\n\r\ntype DateFieldCustomInputState = {\r\n errors?: string[]\r\n showErrorMessage: boolean\r\n}\r\nexport default class DateFieldCustomInput extends Component {\r\n private outerContainerRef: HTMLElement | null = null\r\n\r\n constructor(props: DateFieldCustomInputProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n this.state = {\r\n showErrorMessage: false,\r\n }\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n this.checkErrors(this.props)\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: DateFieldCustomInputProps) {\r\n this.checkErrors(nextProps)\r\n }\r\n\r\n checkErrors(props: DateFieldCustomInputProps) {\r\n if (props.modelState && props.path) {\r\n const errors = getFieldErrors(props.modelState, props.path)\r\n if (errors) {\r\n this.setState({\r\n errors,\r\n })\r\n }\r\n } else {\r\n this.setState({\r\n errors: [],\r\n })\r\n }\r\n }\r\n\r\n handleClear() {\r\n const { onChange } = this.props\r\n\r\n if (onChange) {\r\n onChange({ target: { value: \"\" } })\r\n }\r\n }\r\n\r\n handleKeyPress(e: React.KeyboardEvent) {\r\n if (e.key === \"Enter\" && e.currentTarget.blur) {\r\n e.currentTarget.blur()\r\n }\r\n }\r\n\r\n handleOuterRef = (ref: HTMLElement | null) => {\r\n this.outerContainerRef = ref\r\n }\r\n\r\n handleFocus() {\r\n this.setState({\r\n showErrorMessage: true,\r\n })\r\n\r\n this.props.onFocus && this.props.onFocus()\r\n }\r\n\r\n handleBlur() {\r\n this.setState({\r\n showErrorMessage: false,\r\n })\r\n\r\n this.props.onBlur && this.props.onBlur()\r\n }\r\n\r\n handleMouseEnter = () => {\r\n this.setState({ showErrorMessage: true })\r\n }\r\n\r\n handleMouseOut = () => {\r\n this.setState({ showErrorMessage: false })\r\n }\r\n\r\n render() {\r\n const { readOnly, id, label, initiallyFocused, wrapperClassName, showClear, placeholder, floatingLabel, size, value } = this.props\r\n const hasErrors = !!this.state.errors?.length\r\n\r\n let elClassName = \"input input--textfield input--datefield date-field\"\r\n elClassName += hasErrors ? \" field-error\" : \"\"\r\n elClassName += hasErrors && this.state.showErrorMessage ? \" field-error--show-message has-error\" : \"\"\r\n elClassName += wrapperClassName ? ` ${wrapperClassName}` : \"\"\r\n elClassName += readOnly ? \" readonly\" : \"\"\r\n elClassName += showClear && !readOnly ? \" clearable\" : \"\"\r\n elClassName += (value && value != \"\") || (placeholder && placeholder) ? \" has-value\" : \"\"\r\n elClassName += floatingLabel ? \" input--floating-label\" : \"\"\r\n elClassName += size ? ` input--${size}` : \"\"\r\n\r\n const resetProps: Partial = { ...this.props }\r\n delete resetProps.showClear\r\n delete resetProps.floatingLabel\r\n delete resetProps.wrapperClassName\r\n delete resetProps.initiallyFocused\r\n delete resetProps.modelState\r\n delete resetProps.path\r\n\r\n return (\r\n
    \r\n
    \r\n {!!label && (\r\n \r\n )}\r\n \r\n {showClear && !readOnly && (\r\n
    \r\n
    \r\n )}\r\n {hasErrors &&\r\n this.state.showErrorMessage &&\r\n this.outerContainerRef &&\r\n createErrorMessage(this.state.errors ?? [], this.outerContainerRef, \"bottom\")}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n","import format from \"date-fns/format\"\r\n\r\nconst formats: { [key: string]: string | string[] } = {\r\n \"ar-SA\": \"dd/MM/yy\",\r\n \"bg-BG\": \"dd.M.yyyy\",\r\n \"ca-ES\": \"dd/MM/yyyy\",\r\n \"zh-TW\": \"yyyy/M/d\",\r\n \"cs-CZ\": \"d.M.yyyy\",\r\n \"da-DK\": \"dd-MM-yyyy\",\r\n \"de-DE\": [\"dd.MM.yyyy\", \"d.M.yyyy\", \"dMyyyy\", \"ddMMyyyy\"],\r\n \"el-GR\": \"d/M/yyyy\",\r\n \"en-US\": \"M/d/yyyy\",\r\n \"fi-FI\": \"d.M.yyyy\",\r\n \"fr-FR\": \"dd/MM/yyyy\",\r\n \"he-IL\": \"dd/MM/yyyy\",\r\n \"hu-HU\": \"yyyy. MM. dd.\",\r\n \"is-IS\": \"d.M.yyyy\",\r\n \"it-IT\": \"dd/MM/yyyy\",\r\n \"ja-JP\": \"yyyy/MM/dd\",\r\n \"ko-KR\": \"yyyy-MM-dd\",\r\n \"nl-NL\": \"d-M-yyyy\",\r\n \"nb-NO\": \"dd.MM.yyyy\",\r\n \"pl-PL\": \"yyyy-MM-dd\",\r\n \"pt-BR\": \"d/M/yyyy\",\r\n \"ro-RO\": \"dd.MM.yyyy\",\r\n \"ru-RU\": \"dd.MM.yyyy\",\r\n \"hr-HR\": \"d.M.yyyy\",\r\n \"sk-SK\": \"d. M. yyyy\",\r\n \"sq-AL\": \"yyyy-MM-dd\",\r\n \"sv-SE\": \"yyyy-MM-dd\",\r\n \"th-TH\": \"d/M/yyyy\",\r\n \"tr-TR\": \"dd.MM.yyyy\",\r\n \"ur-PK\": \"dd/MM/yyyy\",\r\n \"id-ID\": \"dd/MM/yyyy\",\r\n \"uk-UA\": \"dd.MM.yyyy\",\r\n \"be-BY\": \"dd.MM.yyyy\",\r\n \"sl-SI\": \"d.M.yyyy\",\r\n \"et-EE\": \"d.MM.yyyy\",\r\n \"lv-LV\": \"yyyy.MM.dd.\",\r\n \"lt-LT\": \"yyyy.MM.dd\",\r\n \"fa-IR\": \"MM/dd/yyyy\",\r\n \"vi-VN\": \"dd/MM/yyyy\",\r\n \"hy-AM\": \"dd.MM.yyyy\",\r\n \"az-Latn-AZ\": \"dd.MM.yyyy\",\r\n \"eu-ES\": \"yyyy/MM/dd\",\r\n \"mk-MK\": \"dd.MM.yyyy\",\r\n \"af-ZA\": \"yyyy/MM/dd\",\r\n \"ka-GE\": \"dd.MM.yyyy\",\r\n \"fo-FO\": \"dd-MM-yyyy\",\r\n \"hi-IN\": \"dd-MM-yyyy\",\r\n \"ms-MY\": \"dd/MM/yyyy\",\r\n \"kk-KZ\": \"dd.MM.yyyy\",\r\n \"ky-KG\": \"dd.MM.yy\",\r\n \"sw-KE\": \"M/d/yyyy\",\r\n \"uz-Latn-UZ\": \"dd/MM yyyy\",\r\n \"tt-RU\": \"dd.MM.yyyy\",\r\n \"pa-IN\": \"dd-MM-yy\",\r\n \"gu-IN\": \"dd-MM-yy\",\r\n \"ta-IN\": \"dd-MM-yyyy\",\r\n \"te-IN\": \"dd-MM-yy\",\r\n \"kn-IN\": \"dd-MM-yy\",\r\n \"mr-IN\": \"dd-MM-yyyy\",\r\n \"sa-IN\": \"dd-MM-yyyy\",\r\n \"mn-MN\": \"yy.MM.dd\",\r\n \"gl-ES\": \"dd/MM/yy\",\r\n \"kok-IN\": \"dd-MM-yyyy\",\r\n \"syr-SY\": \"dd/MM/yyyy\",\r\n \"dv-MV\": \"dd/MM/yy\",\r\n \"ar-IQ\": \"dd/MM/yyyy\",\r\n \"zh-CN\": \"yyyy/M/d\",\r\n \"de-CH\": \"dd.MM.yyyy\",\r\n \"en-GB\": [\"dd/MM/yyyy\", \"d/M/yyyy\", \"dMyyyy\", \"ddMMyyyy\"],\r\n \"es-MX\": \"dd/MM/yyyy\",\r\n \"fr-BE\": \"d/MM/yyyy\",\r\n \"it-CH\": \"dd.MM.yyyy\",\r\n \"nl-BE\": \"d/MM/yyyy\",\r\n \"nn-NO\": \"dd.MM.yyyy\",\r\n \"pt-PT\": \"dd-MM-yyyy\",\r\n \"sr-Latn-CS\": \"d.M.yyyy\",\r\n \"sv-FI\": \"d.M.yyyy\",\r\n \"az-Cyrl-AZ\": \"dd.MM.yyyy\",\r\n \"ms-BN\": \"dd/MM/yyyy\",\r\n \"uz-Cyrl-UZ\": \"dd.MM.yyyy\",\r\n \"ar-EG\": \"dd/MM/yyyy\",\r\n \"zh-HK\": \"d/M/yyyy\",\r\n \"de-AT\": \"dd.MM.yyyy\",\r\n \"en-AU\": \"d/MM/yyyy\",\r\n \"es-ES\": \"dd/MM/yyyy\",\r\n \"fr-CA\": \"yyyy-MM-dd\",\r\n \"sr-Cyrl-CS\": \"d.M.yyyy\",\r\n \"ar-LY\": \"dd/MM/yyyy\",\r\n \"zh-SG\": \"d/M/yyyy\",\r\n \"de-LU\": \"dd.MM.yyyy\",\r\n \"en-CA\": \"dd/MM/yyyy\",\r\n \"es-GT\": \"dd/MM/yyyy\",\r\n \"fr-CH\": \"dd.MM.yyyy\",\r\n \"ar-DZ\": \"dd-MM-yyyy\",\r\n \"zh-MO\": \"d/M/yyyy\",\r\n \"de-LI\": \"dd.MM.yyyy\",\r\n \"en-NZ\": \"d/MM/yyyy\",\r\n \"es-CR\": \"dd/MM/yyyy\",\r\n \"fr-LU\": \"dd/MM/yyyy\",\r\n \"ar-MA\": \"dd-MM-yyyy\",\r\n \"en-IE\": \"dd/MM/yyyy\",\r\n \"es-PA\": \"MM/dd/yyyy\",\r\n \"fr-MC\": \"dd/MM/yyyy\",\r\n \"ar-TN\": \"dd-MM-yyyy\",\r\n \"en-ZA\": \"yyyy/MM/dd\",\r\n \"es-DO\": \"dd/MM/yyyy\",\r\n \"ar-OM\": \"dd/MM/yyyy\",\r\n \"en-JM\": \"dd/MM/yyyy\",\r\n \"es-VE\": \"dd/MM/yyyy\",\r\n \"ar-YE\": \"dd/MM/yyyy\",\r\n \"en-029\": \"MM/dd/yyyy\",\r\n \"es-CO\": \"dd/MM/yyyy\",\r\n \"ar-SY\": \"dd/MM/yyyy\",\r\n \"en-BZ\": \"dd/MM/yyyy\",\r\n \"es-PE\": \"dd/MM/yyyy\",\r\n \"ar-JO\": \"dd/MM/yyyy\",\r\n \"en-TT\": \"dd/MM/yyyy\",\r\n \"es-AR\": \"dd/MM/yyyy\",\r\n \"ar-LB\": \"dd/MM/yyyy\",\r\n \"en-ZW\": \"M/d/yyyy\",\r\n \"es-EC\": \"dd/MM/yyyy\",\r\n \"ar-KW\": \"dd/MM/yyyy\",\r\n \"en-PH\": \"M/d/yyyy\",\r\n \"es-CL\": \"dd-MM-yyyy\",\r\n \"ar-AE\": \"dd/MM/yyyy\",\r\n \"es-UY\": \"dd/MM/yyyy\",\r\n \"ar-BH\": \"dd/MM/yyyy\",\r\n \"es-PY\": \"dd/MM/yyyy\",\r\n \"ar-QA\": \"dd/MM/yyyy\",\r\n \"es-BO\": \"dd/MM/yyyy\",\r\n \"es-SV\": \"dd/MM/yyyy\",\r\n \"es-HN\": \"dd/MM/yyyy\",\r\n \"es-NI\": \"dd/MM/yyyy\",\r\n \"es-PR\": \"dd/MM/yyyy\",\r\n \"am-ET\": \"d/M/yyyy\",\r\n \"tzm-Latn-DZ\": \"dd-MM-yyyy\",\r\n \"iu-Latn-CA\": \"d/MM/yyyy\",\r\n \"sma-NO\": \"dd.MM.yyyy\",\r\n \"mn-Mong-CN\": \"yyyy/M/d\",\r\n \"gd-GB\": \"dd/MM/yyyy\",\r\n \"en-MY\": \"d/M/yyyy\",\r\n \"prs-AF\": \"dd/MM/yy\",\r\n \"bn-BD\": \"dd-MM-yy\",\r\n \"wo-SN\": \"dd/MM/yyyy\",\r\n \"rw-RW\": \"M/d/yyyy\",\r\n \"qut-GT\": \"dd/MM/yyyy\",\r\n \"sah-RU\": \"MM.dd.yyyy\",\r\n \"gsw-FR\": \"dd/MM/yyyy\",\r\n \"co-FR\": \"dd/MM/yyyy\",\r\n \"oc-FR\": \"dd/MM/yyyy\",\r\n \"mi-NZ\": \"dd/MM/yyyy\",\r\n \"ga-IE\": \"dd/MM/yyyy\",\r\n \"se-SE\": \"yyyy-MM-dd\",\r\n \"br-FR\": \"dd/MM/yyyy\",\r\n \"smn-FI\": \"d.M.yyyy\",\r\n \"moh-CA\": \"M/d/yyyy\",\r\n \"arn-CL\": \"dd-MM-yyyy\",\r\n \"ii-CN\": \"yyyy/M/d\",\r\n \"dsb-DE\": \"d. M. yyyy\",\r\n \"ig-NG\": \"d/M/yyyy\",\r\n \"kl-GL\": \"dd-MM-yyyy\",\r\n \"lb-LU\": \"dd/MM/yyyy\",\r\n \"ba-RU\": \"dd.MM.yy\",\r\n \"nso-ZA\": \"yyyy/MM/dd\",\r\n \"quz-BO\": \"dd/MM/yyyy\",\r\n \"yo-NG\": \"d/M/yyyy\",\r\n \"ha-Latn-NG\": \"d/M/yyyy\",\r\n \"fil-PH\": \"M/d/yyyy\",\r\n \"ps-AF\": \"dd/MM/yy\",\r\n \"fy-NL\": \"d-M-yyyy\",\r\n \"ne-NP\": \"M/d/yyyy\",\r\n \"se-NO\": \"dd.MM.yyyy\",\r\n \"iu-Cans-CA\": \"d/M/yyyy\",\r\n \"sr-Latn-RS\": \"d.M.yyyy\",\r\n \"si-LK\": \"yyyy-MM-dd\",\r\n \"sr-Cyrl-RS\": \"d.M.yyyy\",\r\n \"lo-LA\": \"dd/MM/yyyy\",\r\n \"km-KH\": \"yyyy-MM-dd\",\r\n \"cy-GB\": \"dd/MM/yyyy\",\r\n \"bo-CN\": \"yyyy/M/d\",\r\n \"sms-FI\": \"d.M.yyyy\",\r\n \"as-IN\": \"dd-MM-yyyy\",\r\n \"ml-IN\": \"dd-MM-yy\",\r\n \"en-IN\": \"dd-MM-yyyy\",\r\n \"or-IN\": \"dd-MM-yy\",\r\n \"bn-IN\": \"dd-MM-yy\",\r\n \"tk-TM\": \"dd.MM.yy\",\r\n \"bs-Latn-BA\": \"d.M.yyyy\",\r\n \"mt-MT\": \"dd/MM/yyyy\",\r\n \"sr-Cyrl-ME\": \"d.M.yyyy\",\r\n \"se-FI\": \"d.M.yyyy\",\r\n \"zu-ZA\": \"yyyy/MM/dd\",\r\n \"xh-ZA\": \"yyyy/MM/dd\",\r\n \"tn-ZA\": \"yyyy/MM/dd\",\r\n \"hsb-DE\": \"d. M. yyyy\",\r\n \"bs-Cyrl-BA\": \"d.M.yyyy\",\r\n \"tg-Cyrl-TJ\": \"dd.MM.yy\",\r\n \"sr-Latn-BA\": \"d.M.yyyy\",\r\n \"smj-NO\": \"dd.MM.yyyy\",\r\n \"rm-CH\": \"dd/MM/yyyy\",\r\n \"smj-SE\": \"yyyy-MM-dd\",\r\n \"quz-EC\": \"dd/MM/yyyy\",\r\n \"quz-PE\": \"dd/MM/yyyy\",\r\n \"hr-BA\": \"d.M.yyyy.\",\r\n \"sr-Latn-ME\": \"d.M.yyyy\",\r\n \"sma-SE\": \"yyyy-MM-dd\",\r\n \"en-SG\": \"d/M/yyyy\",\r\n \"ug-CN\": \"yyyy-M-d\",\r\n \"sr-Cyrl-BA\": \"d.M.yyyy\",\r\n \"es-US\": \"M/d/yyyy\",\r\n}\r\n\r\nexport function getLocaleDateString(locale: string): string | string[] {\r\n const localeKeys = Object.keys>(formats).filter((key) => key.startsWith(locale))\r\n const foundFormats = []\r\n\r\n if (localeKeys.length <= 0) {\r\n return [\"dd/MM/yyyy\"]\r\n }\r\n\r\n for (let i = 0; i < localeKeys.length; i++) {\r\n const currentFormat = formats[localeKeys[i]]\r\n if (Array.isArray(currentFormat)) {\r\n foundFormats.push(...currentFormat)\r\n } else {\r\n foundFormats.push(currentFormat)\r\n }\r\n }\r\n\r\n return foundFormats\r\n}\r\n\r\nexport function getFormattedLocalDate(locale: string, date: Date) {\r\n if (locale && date) {\r\n const dateString = getLocaleDateString(locale)\r\n return format(date, Array.isArray(dateString) ? dateString[0] : dateString)\r\n }\r\n\r\n return undefined\r\n}\r\n\r\nexport function getLocaleTimeString(locale: string): string {\r\n return \"HH:mm\"\r\n}\r\n\r\nexport function handleScrollIntoView(parentClass: string, elementClass: string) {\r\n const parentElement: HTMLElement | null = document.querySelector(parentClass)\r\n const element: HTMLElement | null = document.querySelector(elementClass)\r\n if (parentElement && element) {\r\n const { offsetTop } = element\r\n const offset = parentElement.clientHeight / 2\r\n\r\n parentElement.scroll(0, offsetTop - offset)\r\n }\r\n}\r\n","import { Component, ComponentClass } from \"react\"\r\nimport DatePicker from \"react-datepicker\"\r\nimport { LocalizationProps, withLocalization } from \"@tm/localization\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { getLocaleDateString, getLocaleTimeString, handleScrollIntoView } from \"./helper\"\r\nimport DateFieldCustomInput from \"./custom-input\"\r\nimport type { DateFieldProps } from \".\"\r\n\r\nexport class DateFieldAny extends Component {\r\n localeFormat?: string[] | string\r\n\r\n timeFormat?: string\r\n\r\n private selectYearElement: HTMLElement | null = null\r\n\r\n private timerId: number | undefined\r\n\r\n private yearSelector =\r\n \".react-datepicker__year-dropdown-container.react-datepicker__year-dropdown-container--scroll .react-datepicker__year-read-view\"\r\n\r\n private yearDropdownSelector = \".react-datepicker__year-dropdown.react-datepicker__year-dropdown--scrollable\"\r\n\r\n private yearSelectedElSelector = \".react-datepicker__year-option--selected_year\"\r\n\r\n constructor(props: DateFieldProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n this.localeFormat = getLocaleDateString(this.props.localization.language)\r\n if (this.localeFormat && this.props.showTimeSelect) {\r\n this.timeFormat = getLocaleTimeString(this.props.localization.language)\r\n if (Array.isArray(this.localeFormat)) {\r\n this.localeFormat = this.localeFormat.map((s) => `${s} ${this.timeFormat}`)\r\n } else {\r\n this.localeFormat = `${this.localeFormat} ${this.timeFormat}`\r\n }\r\n }\r\n\r\n this.state = {\r\n calender: undefined,\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: DateFieldProps) {\r\n if (this.props.autoFocus && !prevProps.autoFocus) {\r\n this.state.calender?.setFocus()\r\n this.state.calender?.setOpen(true)\r\n this.handleRegisterClick()\r\n }\r\n }\r\n\r\n handleRegisterClick() {\r\n clearInterval(this.timerId)\r\n\r\n this.selectYearElement = document.querySelector(this.yearSelector)\r\n\r\n if (!this.selectYearElement) {\r\n this.timerId = setTimeout(this.handleRegisterClick as TimerHandler, 100)\r\n return\r\n }\r\n\r\n this.handleUnRegisterClick()\r\n this.selectYearElement.addEventListener(\"click\", this.handleScroll)\r\n }\r\n\r\n handleUnRegisterClick() {\r\n clearInterval(this.timerId)\r\n this.selectYearElement?.removeEventListener(\"click\", this.handleScroll)\r\n }\r\n\r\n handleScroll() {\r\n setTimeout(() => {\r\n handleScrollIntoView(this.yearDropdownSelector, this.yearSelectedElSelector)\r\n }, 100)\r\n }\r\n\r\n componentWillUnmount() {\r\n this.handleUnRegisterClick()\r\n }\r\n\r\n handleDateChange(date: Date | null) {\r\n this.handleUnRegisterClick()\r\n\r\n const { onChange, useUtc, showTimeSelect } = this.props\r\n if (date) {\r\n if (!showTimeSelect) {\r\n // workaround to be 11:59 in UTC/GMT in order to not get date differences\r\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 11 - date.getTimezoneOffset() / 60, 59, 0)\r\n } else if (useUtc) {\r\n date = new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000)\r\n }\r\n }\r\n onChange?.(date)\r\n }\r\n\r\n render() {\r\n let {\r\n readonly,\r\n autoFocus,\r\n disabled,\r\n minDate,\r\n maxDate,\r\n value,\r\n floatingLabel,\r\n showClear,\r\n label,\r\n className,\r\n required,\r\n openToDate,\r\n modelState,\r\n path,\r\n size,\r\n } = this.props\r\n const tabIndex = readonly ? 0 : this.props.tabIndex\r\n let realValue = value\r\n className = `${className} input--${size ?? \"m\"}`\r\n\r\n if (required && !realValue) {\r\n if (minDate) {\r\n realValue = minDate\r\n } else if (maxDate) {\r\n realValue = maxDate\r\n } else {\r\n realValue = new Date()\r\n }\r\n }\r\n\r\n const datePlaceholder = Array.isArray(this.localeFormat) ? this.localeFormat[0] : this.localeFormat\r\n return (\r\n {\r\n if (ref && this.state.calender != ref) {\r\n this.setState({ calender: ref }, () => {\r\n if (autoFocus) {\r\n ref.setFocus()\r\n ref.setOpen(true)\r\n this.handleRegisterClick()\r\n }\r\n })\r\n }\r\n }}\r\n customInput={\r\n {\r\n this.state.calender?.setOpen(true)\r\n this.handleRegisterClick()\r\n }}\r\n onBlur={() => {\r\n this.state.calender?.setOpen(false)\r\n }}\r\n />\r\n }\r\n strictParsing\r\n className=\"input__field input__field--date\"\r\n dateFormat={this.localeFormat}\r\n disabled={!!disabled}\r\n locale={this.props.localization.language}\r\n maxDate={maxDate}\r\n minDate={minDate}\r\n openToDate={openToDate}\r\n placeholderText={datePlaceholder}\r\n readOnly={readonly}\r\n required={required}\r\n selected={realValue}\r\n tabIndex={tabIndex}\r\n onChange={this.handleDateChange}\r\n onSelect={this.props.ignoreOnSelect ? undefined : this.handleDateChange}\r\n onInputClick={this.handleRegisterClick}\r\n onClickOutside={this.handleUnRegisterClick}\r\n showYearDropdown\r\n showMonthDropdown\r\n scrollableYearDropdown\r\n yearDropdownItemNumber={100}\r\n showTimeSelect={this.props.showTimeSelect}\r\n timeFormat={this.timeFormat}\r\n timeIntervals={this.props.timeIntervals}\r\n dropdownMode=\"scroll\"\r\n />\r\n )\r\n }\r\n}\r\n\r\nconst DateFieldComponent: ComponentClass> = withLocalization(DateFieldAny)\r\nexport default DateFieldComponent\r\n","import { LocalizationProps, withLocalization } from \"@tm/localization\"\r\nimport { ComponentClass } from \"react\"\r\nimport { FormElementProps } from \"../../models\"\r\nimport { DateFieldAny } from \"./index.any\"\r\n// import { DateFieldDe } from \"./index.de\"\r\n\r\nexport type DateFieldProps = LocalizationProps &\r\n FormElementProps & {\r\n maxDate?: Date\r\n minDate?: Date\r\n openToDate?: Date\r\n /**\r\n * @description make sure your placeholder fit's to the format and the pattern\r\n */\r\n placeholder?: string\r\n /**\r\n * @description if a datefield is required the last valid date will be set if user clicks the clear button\r\n */\r\n required?: boolean\r\n showClear?: boolean\r\n useUtc?: boolean\r\n value?: Date\r\n\r\n showTimeSelect?: boolean\r\n timeIntervals?: number\r\n\r\n ignoreOnSelect?: boolean // Sometimes is not desired to have the onchange event triggered twice. OnSelect and OnChange trigger the same event, which cuases double persistence requests\r\n onChange?: (value: Date) => void\r\n onKeyPress?: (e: React.KeyboardEvent) => void\r\n }\r\n\r\nfunction DateField(props: DateFieldProps) {\r\n return \r\n}\r\n\r\nconst Component: ComponentClass> = withLocalization(DateField)\r\nexport default Component\r\n\r\nexport { getFormattedLocalDate } from \"./helper\"\r\n","export type DemoProps = {\r\n className?: string\r\n displayMode?: \"flat\" | \"edge\"\r\n}\r\n\r\nexport default function Demo({ displayMode, className }: DemoProps) {\r\n if (displayMode == \"edge\") {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { Component, createRef, PropsWithChildren, ReactNode, RefObject } from \"react\"\r\nimport { createPortal } from \"react-dom\"\r\nimport { registerOutsideClick } from \"@tm/utils\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { getTime } from \"../../helper/date\"\r\nimport { Colored } from \"../../models/SharedModels\"\r\nimport Button from \"../button\"\r\nimport Icon from \"../icon\"\r\nimport Text from \"../text\"\r\nimport Image from \"../image\"\r\n\r\nexport type DialogComponentProps = PropsWithChildren<\r\n Colored & {\r\n iconName?: string\r\n imagePath?: string\r\n time?: Date\r\n confirmButtonText?: string\r\n confirmButtonDisabled?: boolean\r\n cancelButtonText?: string\r\n skin?: \"primary\" | \"warning\" | \"danger\"\r\n layout?: \"stretch\"\r\n preText?: string\r\n text?: string | ReactNode\r\n onConfirm?(e?: Event): void\r\n onCancel?(e?: Event): void\r\n onClose?(e?: Event): void\r\n doNotCloseOnConfirm?: boolean\r\n closeOnlyWithDialogInteraction?: boolean\r\n customConfirmationButtonIcon?: string\r\n hideCloseButton?: boolean\r\n }\r\n>\r\n\r\ntype DialogComponentState = {\r\n open: boolean\r\n dropIn: boolean\r\n}\r\n\r\nconst baseName = \"dialog-prompt\"\r\nexport default class Dialog extends Component {\r\n innerRef: RefObject\r\n\r\n unreg?: () => void\r\n\r\n timeout?: number\r\n\r\n constructor(props: DialogComponentProps) {\r\n super(props)\r\n bindMethodsToContext(this, [\"stop\", \"show\", \"hide\"])\r\n\r\n this.state = {\r\n dropIn: false,\r\n open: false,\r\n }\r\n\r\n this.innerRef = createRef()\r\n }\r\n\r\n componentDidUpdate(prevProps: DialogComponentProps, prevState: DialogComponentState) {\r\n if (!this.state.dropIn) {\r\n this.timeout = window.setTimeout(() => {\r\n this.setState({ dropIn: true })\r\n }, 100)\r\n }\r\n if (prevState.open !== this.state.open) {\r\n this.innerRef.current?.focus()\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.clearTimeout(this.timeout)\r\n document.removeEventListener(\"keydown\", this.handleConfirmViaKeyPress)\r\n }\r\n\r\n handleClose(e?: Event) {\r\n e?.stopPropagation()\r\n e?.preventDefault()\r\n\r\n this.hide()\r\n this.props.onClose?.(e)\r\n }\r\n\r\n handleConfirm(e?: Event) {\r\n this.props.onConfirm?.(e)\r\n if (this.props.doNotCloseOnConfirm != true) {\r\n this.handleClose(e)\r\n } else {\r\n this.hide()\r\n }\r\n }\r\n\r\n handleConfirmViaKeyPress(event: KeyboardEvent) {\r\n if (event.key == \"Enter\" && !this.props.confirmButtonDisabled) {\r\n this.handleConfirm(event)\r\n }\r\n }\r\n\r\n handleDecline(e?: Event) {\r\n this.props.onCancel?.(e)\r\n this.handleClose(e)\r\n }\r\n\r\n show() {\r\n this.setState({ open: true })\r\n document.addEventListener(\"keydown\", this.handleConfirmViaKeyPress)\r\n }\r\n\r\n hide() {\r\n this.unreg && this.unreg()\r\n this.setState({ dropIn: false, open: false })\r\n }\r\n\r\n render(): any {\r\n if (!this.state.open) {\r\n return null\r\n }\r\n\r\n const {\r\n time,\r\n text,\r\n children,\r\n cancelButtonText,\r\n confirmButtonText,\r\n iconName,\r\n preText,\r\n customConfirmationButtonIcon,\r\n hideCloseButton,\r\n imagePath,\r\n } = this.props\r\n\r\n let className = `${baseName} ${this.props.className || \"\"}`\r\n if (this.props.skin) {\r\n className += ` ${baseName}--${this.props.skin}`\r\n }\r\n if (this.props.layout) {\r\n className += ` ${baseName}--${this.props.layout}`\r\n }\r\n\r\n const preTextSize = this.props.layout == \"stretch\" ? \"m\" : \"s\"\r\n const textSize = this.props.layout == \"stretch\" ? \"xl\" : \"l\"\r\n const timeSize = \"xs\"\r\n\r\n const comp: ReactNode = (\r\n {\r\n if (ref) {\r\n this.unreg = registerOutsideClick(ref, this.handleClose, !this.props.closeOnlyWithDialogInteraction)\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {iconName && (\r\n
    \r\n \r\n
    \r\n )}\r\n {imagePath && (\r\n
    \r\n \r\n
    \r\n )}\r\n {(time || text) && (\r\n
    \r\n {preText && (\r\n \r\n {preText}\r\n \r\n )}\r\n {text && (\r\n \r\n {text}\r\n \r\n )}\r\n {time && (\r\n \r\n {getTime(time)}\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {!(cancelButtonText && confirmButtonText) && !hideCloseButton && (\r\n
    \r\n
    \r\n )}\r\n {cancelButtonText && (\r\n \r\n )}\r\n {confirmButtonText && (\r\n \r\n {confirmButtonText}\r\n \r\n )}\r\n
    \r\n
    \r\n {children &&
    {children}
    }\r\n
    \r\n \r\n )\r\n return createPortal(comp, document.getElementsByTagName(\"body\")[0])\r\n }\r\n}\r\n","import { PropsWithChildren, PureComponent, RefObject, createRef } from \"react\"\r\nimport { PromptProps } from \"./models\"\r\nimport Dialog from \".\"\r\n\r\nexport type QuestionPromptProps = PropsWithChildren>\r\n\r\nexport default class QuestionPrompt extends PureComponent {\r\n dialogRef: RefObject = createRef()\r\n\r\n show() {\r\n this.dialogRef.current?.show()\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.children}\r\n \r\n )\r\n }\r\n}\r\n","import { PropsWithChildren, PureComponent, ReactNode, RefObject, createRef } from \"react\"\r\nimport Dialog from \".\"\r\n\r\nexport type WarningPromptProps = PropsWithChildren<{\r\n cancelButtonText?: string\r\n confirmationButtonText: string\r\n doNotCloseOnConfirm?: boolean\r\n layout?: \"stretch\"\r\n ref: any\r\n text: string | ReactNode\r\n time?: Date\r\n hideCloseButton?: boolean\r\n onCancel?(e: Event): void\r\n onClose?(e: Event): void\r\n onConfirm?(e: Event): void\r\n}>\r\n\r\nexport default class WarningPrompt extends PureComponent {\r\n dialogRef: RefObject = createRef()\r\n\r\n show() {\r\n this.dialogRef.current?.show()\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.children}\r\n \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { getFieldErrors, getValue, setValue, clone, registerOutsideClick, bindSpecialReactMethods } from \"@tm/utils\"\r\nimport { createErrorMessage, FormElementProps, FormElementState } from \"../../models\"\r\nimport Icon from \"../icon\"\r\nimport Popover from \"../popover\"\r\n\r\nexport default class DropdownField extends Component {\r\n element?: HTMLElement\r\n\r\n unregisterOutsideClick?: () => void\r\n\r\n constructor(props: DropdownFieldProps) {\r\n super(props)\r\n bindSpecialReactMethods(this)\r\n\r\n this.state = {\r\n value: this.getValue(this.props),\r\n errors: [],\r\n }\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n this.checkErrors(this.props)\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: DropdownFieldProps) {\r\n this.setState({\r\n value: this.getValue(nextProps),\r\n })\r\n this.checkErrors(nextProps)\r\n }\r\n\r\n componentWillUnmount() {\r\n this.unregisterOutsideClick && this.unregisterOutsideClick()\r\n }\r\n\r\n checkErrors(props: DropdownFieldProps) {\r\n if (props.modelState && props.path) {\r\n const errors = getFieldErrors(props.modelState, props.path)\r\n if (errors) {\r\n this.setState({ errors })\r\n }\r\n } else {\r\n this.setState({ errors: [] })\r\n }\r\n }\r\n\r\n getValue(props: DropdownFieldProps): string {\r\n const value = props.model && props.path ? getValue(props.model, props.path) : props.value\r\n return value != null ? value.toString() : \"\"\r\n }\r\n\r\n getItemValue(key: any) {\r\n return this.props.items[key] || key\r\n }\r\n\r\n focus() {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n if (!this.state.active) {\r\n this.setState({ active: true })\r\n }\r\n\r\n if (this.element) {\r\n setTimeout(() => {\r\n this.element && this.element.focus()\r\n }, 0)\r\n }\r\n }\r\n\r\n handleClickOutside() {\r\n this.setState({ open: false })\r\n }\r\n\r\n handleRef(el: HTMLElement | null) {\r\n if (el) {\r\n this.element = el\r\n }\r\n }\r\n\r\n handleFocus() {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n this.setState({ active: true })\r\n\r\n if (this.props.onFocus) {\r\n this.props.onFocus()\r\n }\r\n }\r\n\r\n handleBlur() {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n this.setState({ active: false })\r\n }\r\n\r\n handleSetOpen(open: boolean) {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n this.setState({ open })\r\n if (this.element) {\r\n if (open) {\r\n this.unregisterOutsideClick = registerOutsideClick(this.element, this.handleClickOutside)\r\n } else {\r\n this.unregisterOutsideClick && this.unregisterOutsideClick()\r\n }\r\n }\r\n }\r\n\r\n handleChange(item: string) {\r\n let value = item\r\n let model\r\n\r\n if (this.props.model && this.props.path) {\r\n model = setValue(clone(this.props.model), this.props.path, item)\r\n value = getValue(model, this.props.path)\r\n }\r\n\r\n this.setState({\r\n value,\r\n open: false,\r\n })\r\n\r\n if (this.props.onChange) {\r\n if (model && this.props.path) {\r\n this.props.onChange(model, this.props.path)\r\n } else {\r\n this.props.onChange(value)\r\n }\r\n }\r\n }\r\n\r\n renderItems() {\r\n let className = \"input__list-item\"\r\n if (this.props.noWrap) {\r\n className += \"-nowrap\"\r\n }\r\n\r\n return Object.keys>(this.props.items).map((key) => (\r\n
  • \r\n {this.props.items[key]}\r\n
  • \r\n ))\r\n }\r\n\r\n render() {\r\n const { className, label } = this.props\r\n const { open, value } = this.state\r\n\r\n let elClassName = \"input input--dropdown\"\r\n const hasErrors = this.state.errors != null && this.state.errors.length > 0\r\n elClassName += !label ? \" input--s\" : \"\"\r\n elClassName += className ? ` ${className}` : \"\"\r\n elClassName += hasErrors ? \" has-error\" : \"\"\r\n elClassName += this.props.readonly ? \" readonly\" : \"\"\r\n elClassName += open ? \" is-active\" : \"\"\r\n elClassName += this.props.value && this.props.value != \" \" ? \" has-value\" : \"\"\r\n elClassName += this.props.floatingLabel ? \" input--floating-label\" : \"\"\r\n elClassName += this.props.noCover && this.state.value == \"0\" ? \"\" : \" has-value\"\r\n\r\n const inputClassName = \"input__field\"\r\n\r\n const labelElement = label ? (\r\n \r\n ) : (\r\n false\r\n )\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {labelElement}\r\n
    {this.getItemValue(value)}
    \r\n
    \r\n \r\n
    \r\n {\r\n if (!(this.element as any).contains(e.target)) {\r\n this.handleSetOpen(!open)\r\n }\r\n }}\r\n >\r\n
      {this.renderItems()}
    \r\n \r\n {hasErrors && this.element ? createErrorMessage(this.state.errors || [], this.element, \"bottom\") : null}\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport interface DropdownFieldProps extends FormElementProps {\r\n items: { [key: string]: string }\r\n noCover?: boolean\r\n noWrap?: boolean\r\n}\r\n\r\nexport interface DropdownFieldState extends FormElementState {\r\n open?: boolean\r\n}\r\n","import { Component, ComponentType } from \"react\"\r\nimport { bindMethodsToContext } from \"../../../helper\"\r\n\r\nexport type DropdownListItemProps = {\r\n isListItem?: boolean\r\n}\r\n\r\nexport type DropdownItemProps = DropdownListItemProps & {\r\n className: string\r\n onClick(e: React.MouseEvent, item: T): void\r\n View: ComponentType\r\n item: T & { disabled?: boolean }\r\n}\r\n\r\nexport default class DropdownItem extends Component> {\r\n constructor(props: any) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n render() {\r\n const { View, item, isListItem } = this.props\r\n const ViewComponent = View as ComponentType\r\n\r\n let className = this.props.className || \"\"\r\n\r\n if (item.disabled) {\r\n className += \" is-disabled\"\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n\r\n handleClick(e: React.MouseEvent) {\r\n const { item, onClick } = this.props\r\n onClick && onClick(e, item)\r\n }\r\n}\r\n","import { ButtonKeyDefinition, concat, equals, registerOutsideClick } from \"@tm/utils\"\r\nimport { ComponentType, createRef, MouseEventHandler, PureComponent, ReactNode, RefObject } from \"react\"\r\nimport { Button, Icon, Loader, Popover } from \"..\"\r\nimport { BaseDisableableProps, Positioning, SizedProps } from \"../../models/SharedModels\"\r\nimport { ButtonLayout, ButtonSkins } from \"../button\"\r\nimport DropdownItem from \"./components/dropdown-item\"\r\n\r\nconst SEARCH_KEYS = \"abcdefghijklmnopqrstuvwxyz1234567890\"\r\n\r\nexport type DropdownProps = {\r\n items: Array | undefined\r\n value?: FItem\r\n itemView: ComponentType>\r\n displayView?: ComponentType>\r\n inputView?: ComponentType & WithInputRef>\r\n coverView?: ComponentType\r\n itemWrapper?: ComponentType<{ children: ReactNode }>\r\n getSearchValue?: (item: FItem) => string\r\n amountItemsToShow?: number\r\n isActive?: boolean\r\n enableLoaderInDropdown?: boolean\r\n layout?: Array\r\n skin?: ButtonSkins\r\n alignArrow?: Positioning\r\n onDropdownOpen?: () => void\r\n onDropdownClose?: () => void\r\n onPopOverClose?: () => void\r\n onClick?(e: React.MouseEvent): void\r\n onFocus?(e: React.FocusEvent): void\r\n onChange?(value: FItem): void\r\n onMouseEnter?(): void\r\n onMouseLeave?(): void\r\n onShowIndexChange?(direction: 1 | -1): void\r\n onRef?(ref: HTMLDivElement): void\r\n submitOnTab?: boolean\r\n emptyPlaceholder?: string\r\n customCoverView?: boolean\r\n} & BaseDisableableProps &\r\n SizedProps\r\n\r\nexport type DropdownState = {\r\n open: boolean\r\n value?: FItem\r\n startShowIndex: number\r\n preSelectedItemIndex: number\r\n alreadyFocused: boolean\r\n searchValues?: string[]\r\n}\r\n\r\ntype WithChangeHandler = {\r\n onChange?(value: FItem): void\r\n}\r\n\r\ntype WithInputRef = {\r\n inputRef: RefObject\r\n}\r\n\r\nexport default class Dropdown extends PureComponent, DropdownState> {\r\n private baseName = \"dropdown\"\r\n\r\n private divRef: HTMLDivElement | undefined\r\n\r\n /** this one is the input element of the dropdownbox which handles all the events, like focus, keyboardevent, ... */\r\n private buttonRef = createRef\r\n {\r\n if (!(this.divRef as any).contains(e.target)) {\r\n this.setState((pref) => ({ ...pref, open: !pref.open }))\r\n }\r\n }}\r\n >\r\n <>\r\n {InputView && !!this.state.value && (\r\n \r\n )}\r\n\r\n {this.renderArrow(\"up\")}\r\n\r\n {ItemWrapper ? {optionList} : optionList}\r\n\r\n {this.renderArrow(\"down\")}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n","import { memo, useCallback, useEffect, ReactNode, useState, useRef, ChangeEvent } from \"react\"\r\nimport {\r\n AllowedFileSelectionTypes,\r\n FileSelectError,\r\n FileTypeMaxSize,\r\n getAcceptAttribute,\r\n getMaxFileSizeByType,\r\n getMimeTypes,\r\n} from \"../../helper/fileTypes\"\r\n\r\nexport type FileDropFieldProps = {\r\n /** To use more filetypes, extend the mapping object in @tm/controls/file-select-button */\r\n allowedFileTypes: AllowedFileSelectionTypes\r\n /** In kB */\r\n maxFileSize: number\r\n children?: ReactNode\r\n className?: string\r\n onLoad(fileData: string, fileName: string, fileMimeType: string): void\r\n onError?(type: FileSelectError, options?: { maxAllowedFileSize: number }): void\r\n maxFileSizesByType?: FileTypeMaxSize\r\n allowPaste?: boolean\r\n}\r\n\r\nexport const FileDropField = memo(\r\n ({ allowedFileTypes, maxFileSize, allowPaste, className, onError, onLoad, maxFileSizesByType, children }) => {\r\n const [active, setActive] = useState(false)\r\n const ref = useRef(null)\r\n const maxFileSizes = getMaxFileSizeByType(maxFileSizesByType)\r\n\r\n const getAllowedFileSizeByType = (mimeType: string) => {\r\n if (maxFileSizes) {\r\n const fileSizeOption = maxFileSizes.find(({ mime }) => mime.includes(mimeType))\r\n\r\n return 1024 * (fileSizeOption?.size || maxFileSize)\r\n }\r\n\r\n return 1024 * maxFileSize\r\n }\r\n\r\n const saveFile = useCallback(\r\n (file: File): void => {\r\n if (getMimeTypes(allowedFileTypes).indexOf(file.type) <= -1) {\r\n onError?.(\"WRONG_FILE_TYPE\")\r\n } else if (file.size > getAllowedFileSizeByType(file.type)) {\r\n onError?.(\"FILE_TOO_BIG\", { maxAllowedFileSize: getAllowedFileSizeByType(file.type) / 1024 })\r\n } else {\r\n const reader = new FileReader()\r\n\r\n reader.onload = (e: any) => {\r\n if (e.target && e.target.result) {\r\n onLoad(e.target.result, file.name, file.type)\r\n\r\n if (ref.current) {\r\n ref.current.value = \"\"\r\n }\r\n }\r\n }\r\n\r\n reader.readAsDataURL(file)\r\n }\r\n },\r\n [onError, ref, onLoad]\r\n )\r\n\r\n const handlePaste = useCallback(\r\n (e: ClipboardEvent): void => {\r\n const clipboardItems: DataTransferItemList | undefined = e.clipboardData?.items\r\n\r\n if (!clipboardItems) {\r\n return\r\n }\r\n\r\n const items = [].slice.call(clipboardItems).filter(({ type }: DataTransferItem) => getMimeTypes(allowedFileTypes).includes(type))\r\n\r\n if (items.length === 0) {\r\n return\r\n }\r\n\r\n const item: DataTransferItem = items[0]\r\n const file = item.getAsFile()\r\n\r\n if (file) {\r\n saveFile(file)\r\n }\r\n },\r\n [saveFile]\r\n )\r\n\r\n useEffect(() => {\r\n allowPaste && document.addEventListener(\"paste\", handlePaste, true)\r\n\r\n return () => {\r\n document.removeEventListener(\"paste\", handlePaste, true)\r\n }\r\n }, [allowPaste])\r\n\r\n const handleEnter = useCallback(() => {\r\n setActive(true)\r\n }, [])\r\n\r\n const handleExit = useCallback(() => {\r\n setActive(false)\r\n }, [])\r\n\r\n const onChangeFile = useCallback(\r\n (event: ChangeEvent) => {\r\n const { files } = event.target\r\n if (files && files.length) {\r\n const file = files[0]\r\n\r\n if (file) {\r\n saveFile(file)\r\n }\r\n }\r\n },\r\n [saveFile]\r\n )\r\n\r\n return (\r\n \r\n {children}\r\n \r\n \r\n )\r\n }\r\n)\r\n","import { ChangeEvent, ReactNode, useRef } from \"react\"\r\nimport { Button } from \"..\"\r\nimport { AllowedFileSelectionTypes, FileSelectError, getAcceptAttribute, getMimeTypes } from \"../../helper/fileTypes\"\r\nimport { ButtonProps } from \"../button\"\r\n\r\nexport type FileSelectButtonProps = {\r\n /** To use more filetypes, extend the mapping object in @tm/controls/file-select-button */\r\n allowedFileTypes: AllowedFileSelectionTypes\r\n /** This will be passed to the button. onClick will be overwritten. */\r\n buttonProps?: ButtonProps\r\n /** In kB */\r\n maxFileSize: number\r\n children?: ReactNode\r\n\r\n onOpenFileDialog?(): void\r\n onLoad(fileData: string, fileName: string, fileMimeType: string): void\r\n onError?(type: FileSelectError): void\r\n}\r\n\r\nexport function FileSelectButton(props: FileSelectButtonProps) {\r\n const ref = useRef(null)\r\n\r\n const onChangeFile = (event: ChangeEvent) => {\r\n const { files } = event.target\r\n if (files && files.length) {\r\n const file = files[0]\r\n\r\n if (file) {\r\n if (getMimeTypes(props.allowedFileTypes).indexOf(file.type) <= -1) {\r\n props.onError?.(\"WRONG_FILE_TYPE\")\r\n } else if (file.size > 1024 * props.maxFileSize) {\r\n props.onError?.(\"FILE_TOO_BIG\")\r\n } else {\r\n const reader = new FileReader()\r\n\r\n reader.onload = (e: any) => {\r\n if (e.target && e.target.result) {\r\n props.onLoad(e.target.result, file.name, file.type)\r\n\r\n if (ref.current) {\r\n ref.current.value = \"\"\r\n }\r\n }\r\n }\r\n\r\n reader.readAsDataURL(file)\r\n }\r\n }\r\n }\r\n }\r\n\r\n const showFileDialog = () => {\r\n props.onOpenFileDialog?.()\r\n ref.current && ref.current.click()\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}\r\n","import { useStyle } from \"@tm/context-distribution\"\r\nimport { FittingPosition, TirePressure } from \"@tm/models\"\r\nimport { bem } from \"@tm/utils\"\r\nimport { em } from \"csx\"\r\nimport { Component } from \"react\"\r\nimport { Text } from \"../..\"\r\n\r\nexport type Props = {\r\n selected: FittingPosition\r\n onChange(fittingPosition: FittingPosition): void\r\n isBikeAsVehicle?: boolean\r\n tirePressure?: TirePressure\r\n}\r\n\r\nexport default class extends Component {\r\n getClassName(value: FittingPosition): string | undefined {\r\n const { selected } = this.props\r\n\r\n let className = \"fitting-position__item\"\r\n\r\n if (selected && (selected & value) == selected) {\r\n className += \" is-active\"\r\n }\r\n\r\n return className\r\n }\r\n\r\n handleSelect(fittingPosition: FittingPosition) {\r\n const { onChange, selected } = this.props\r\n onChange(fittingPosition != selected ? fittingPosition : FittingPosition.None)\r\n }\r\n\r\n renderItem(fittingPosition: FittingPosition, id: string, path: string, transform?: string) {\r\n return (\r\n this.handleSelect(fittingPosition)}\r\n id={id}\r\n d={path}\r\n transform={transform}\r\n />\r\n )\r\n }\r\n\r\n renderImage() {\r\n if (this.props.isBikeAsVehicle) {\r\n return (\r\n \r\n \r\n {this.renderItem(\r\n FittingPosition.FrontAxle,\r\n \"front-axle\",\r\n \"M255,196a18.73,18.73,0,0,1-10-2.89v46l20-20.86V193.07A18.73,18.73,0,0,1,255,196Z\",\r\n \"translate(-129.85 -36.88)\"\r\n )}\r\n \r\n {this.renderItem(\r\n FittingPosition.FrontAxle,\r\n \"front-axle\",\r\n \"M255.46,152.18A50.59,50.59,0,0,0,272,149.5V49.89c0-7.19-7.18-13-16.5-13s-16.5,5.82-16.5,13v99.63A50.67,50.67,0,0,0,255.46,152.18Z\",\r\n \"translate(-129.85 -36.88)\"\r\n )}\r\n {this.renderItem(\r\n FittingPosition.FrontAxle,\r\n \"front-axle\",\r\n \"M257.44,177.07c-0.76.07-1.49,0.11-2.26,0.11a18.46,18.46,0,0,1-2-.11L239,175.72v1.19c0,7.19,7.18,13,16.5,13s16.5-5.82,16.5-13v-1.19Z\",\r\n \"translate(-129.85 -36.88)\"\r\n )}\r\n \r\n this.handleSelect(FittingPosition.Right)}\r\n id=\"front-right\"\r\n x=\"340.59\"\r\n y=\"148.25\"\r\n width=\"15.93\"\r\n height=\"69.83\"\r\n transform=\"translate(-125.25 337.95) rotate(-56.85)\"\r\n />\r\n this.handleSelect(FittingPosition.Left)}\r\n id=\"front-left\"\r\n x=\"128.52\"\r\n y=\"175.2\"\r\n width=\"69.83\"\r\n height=\"15.93\"\r\n transform=\"translate(-203.41 82.3) rotate(-33.15)\"\r\n />\r\n \r\n {this.renderItem(\r\n FittingPosition.FrontAxle,\r\n \"front-axle\",\r\n \"M211.42,150.94a4.13,4.13,0,1,0,4.13,4.13,4.13,4.13,0,0,0-4.13-4.13h0Z\",\r\n \"translate(-129.85 -36.88)\"\r\n )}\r\n {this.renderItem(\r\n FittingPosition.FrontAxle,\r\n \"front-axle\",\r\n \"M297.69,150.94a4.13,4.13,0,1,0,4.13,4.13,4.13,4.13,0,0,0-4.13-4.13h0Z\",\r\n \"translate(-129.85 -36.88)\"\r\n )}\r\n {this.renderItem(\r\n FittingPosition.FrontAxle,\r\n \"front-axle\",\r\n \"M255.14,174.26a13,13,0,0,1-1.55-.09l-43.75-5.24A14.4,14.4,0,1,1,218,141.76l17.15,8.59a44.62,44.62,0,0,0,40,0l17.15-8.59a14.39,14.39,0,1,1,8.16,27.16l-43.75,5.24A13.05,13.05,0,0,1,255.14,174.26Zm42.55-28.14a9,9,0,1,0,9,9A9,9,0,0,0,297.69,146.11Zm-86.27,0a9,9,0,1,0,9,9A9,9,0,0,0,211.42,146.11Z\",\r\n \"translate(-129.85 -36.88)\"\r\n )}\r\n \r\n \r\n \r\n {this.renderItem(\r\n FittingPosition.RearAxle,\r\n \"rear-axle\",\r\n \"M258.06,309H252.6c-12.75,0-22.6,10.63-22.6,23.38V451.75A23,23,0,0,0,252.88,475h-0.44A28.71,28.71,0,0,0,281,446.29V332.38A23.14,23.14,0,0,0,258.06,309Z\",\r\n \"translate(-129.85 -36.88)\"\r\n )}\r\n {this.renderItem(\r\n FittingPosition.RearAxle,\r\n \"rear-axle\",\r\n \"M252.6,300h5.46a25.94,25.94,0,0,1,6.94.7v-44l-20,20.86v23.18A36.4,36.4,0,0,1,252.6,300Z\",\r\n \"translate(-129.85 -36.88)\"\r\n )}\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.renderItem(\r\n FittingPosition.FrontAxle | FittingPosition.Left,\r\n \"front-left\",\r\n \"M2.14690257,27.3364232 C1.97200588,27.247082 1.78903314,27.1711168 1.62372675,27.0668854 C0.896126211,26.607056 0.479453134,25.9693014 0.47970551,25.0819467 C0.482481648,17.501071 0.478948382,9.92019518 0.483743529,2.33957179 C0.484500658,1.05018187 1.46700114,0.0732336702 2.76017669,0.0699527798 C5.74099179,0.0623814943 8.72205925,0.0623814943 11.7028743,0.0699527798 C12.9955452,0.0732336702 13.9777933,1.05018187 13.9785504,2.33982416 C13.9835979,9.92044756 13.9808218,17.5013233 13.9813265,25.0821991 C13.9815789,26.2451485 13.2973871,26.9000647 12.3156437,27.3364232 L2.14690257,27.3364232 Z\"\r\n )}\r\n {this.renderItem(\r\n FittingPosition.FrontAxle | FittingPosition.Right,\r\n \"front-right\",\r\n \"M66.7077112,27.3364232 C66.5330669,27.247082 66.3498418,27.1711168 66.1845354,27.0668854 C65.4569348,26.607056 65.0402617,25.9693014 65.0407665,25.0819467 C65.0432903,17.501071 65.039757,9.92044756 65.0445521,2.33957179 C65.0453093,1.05018187 66.0280621,0.0732336702 67.3212377,0.0699527798 C70.3018004,0.0623814943 73.2828679,0.0623814943 76.263683,0.0699527798 C77.5563538,0.0732336702 78.5386019,1.05018187 78.5396114,2.33982416 C78.5444065,9.92044756 78.5418827,17.5013233 78.5423875,25.0821991 C78.5423875,26.2451485 77.858448,26.9000647 76.8764523,27.3364232 L66.7077112,27.3364232 Z\"\r\n )}\r\n {this.renderItem(\r\n FittingPosition.FrontAxle,\r\n \"front-axle\",\r\n \"M47.6172433,9.20527932 L47.6172433,6.94054102 C47.6172433,6.19704079 47.014569,5.59411409 46.2708164,5.59411409 L32.7512766,5.59411409 C32.0077764,5.59411409 31.4048497,6.19704079 31.4048497,6.94054102 L31.4048497,9.20527932 C31.4048497,9.75756407 30.9571345,10.2052793 30.4048497,10.2052793 L26.2298761,10.2052793 C25.6163496,10.2052793 25.1189161,10.7027128 25.1189161,11.3159869 L25.1189161,16.5969585 C25.1189161,17.2102326 25.6163496,17.7076661 26.2298761,17.7076661 L30.4048497,17.7076661 C30.9571345,17.7076661 31.4048497,18.1553813 31.4048497,18.7076661 L31.4048497,20.4600807 C31.4048497,21.2038333 32.0077764,21.8065077 32.7512766,21.8065077 L34.5655235,21.8065077 C35.1178082,21.8065077 35.5655235,22.2542229 35.5655235,22.8065077 L35.5655235,32.4825249 C34.8298469,32.732125 33.8306211,32.8073622 33.4665107,33.4380212 C34.4022414,34.3916842 35.4462376,35.4356803 36.5984992,36.5700096 C37.439669,36.2353588 38.3562993,36.0493575 39.316843,36.0493575 C43.3811091,36.0493575 46.6761325,39.3441286 46.6761325,43.408647 C46.6761325,44.3694431 46.4901313,45.2855687 46.1554804,46.1269909 C47.129989,46.9412052 48.2172256,48.0284418 49.4171902,49.3887007 C50.433383,47.5936657 50.9905034,45.67019 50.9905034,43.5368541 C50.9905034,38.4022607 47.6742803,34.0452383 43.0679102,32.4825249 L43.0679102,22.8065077 C43.0679102,22.2542229 43.5156255,21.8065077 44.0679102,21.8065077 L46.2708164,21.8065077 C47.014569,21.8065077 47.6172433,21.2038333 47.6172433,20.4600807 L47.6172433,18.7076661 C47.6172433,18.1553813 48.0649585,17.7076661 48.6172433,17.7076661 L52.40381,17.7076661 C53.0173365,17.7076661 53.5145176,17.2102326 53.5145176,16.5969585 L53.5145176,11.3159869 C53.5145176,10.7027128 53.0173365,10.2052793 52.40381,10.2052793 L48.6172433,10.2052793 C48.0649585,10.2052793 47.6172433,9.75756407 47.6172433,9.20527932 Z\"\r\n )}\r\n \r\n \r\n {this.renderItem(\r\n FittingPosition.RearAxle | FittingPosition.Left,\r\n \"rear-left\",\r\n \"M2.14690257,115.349822 C1.97200588,115.26048 1.78903314,115.184515 1.62372675,115.080031 C0.896126211,114.620202 0.479453134,113.9827 0.47970551,113.095093 C0.482481648,105.514217 0.478948382,97.9335936 0.483743529,90.3527179 C0.484500658,89.0635803 1.46700114,88.0866321 2.76017669,88.0833512 C5.74099179,88.0757799 8.72205925,88.0757799 11.7028743,88.0833512 C12.9955452,88.0866321 13.9777933,89.0635803 13.9785504,90.3529702 C13.9835979,97.933846 13.9808218,105.514469 13.9813265,113.095345 C13.9815789,114.258295 13.2973871,114.913463 12.3156437,115.349822 L2.14690257,115.349822 Z\"\r\n )}\r\n {this.renderItem(\r\n FittingPosition.RearAxle | FittingPosition.Right,\r\n \"rear-right\",\r\n \"M66.7077112,115.349822 C66.5330669,115.26048 66.3498418,115.184515 66.1845354,115.080031 C65.4569348,114.620202 65.0402617,113.9827 65.0407665,113.095093 C65.0432903,105.514217 65.039757,97.9335936 65.0445521,90.3527179 C65.0453093,89.0633279 66.0280621,88.0866321 67.3212377,88.0833512 C70.3018004,88.0757799 73.2828679,88.0757799 76.263683,88.0833512 C77.5563538,88.0866321 78.5386019,89.0635803 78.5396114,90.3529702 C78.5444065,97.933846 78.5418827,105.514469 78.5423875,113.095345 C78.5423875,114.258295 77.858448,114.913463 76.8764523,115.349822 L66.7077112,115.349822 Z\"\r\n )}\r\n {this.renderItem(\r\n FittingPosition.RearAxle,\r\n \"rear-axle\",\r\n \"M52.40381,97.9624655 L44.1786178,97.9624655 C43.5653437,97.9624655 43.0679102,97.465032 43.0679102,96.8517579 L43.0679102,83.1876066 C43.954003,82.8870266 44.7881063,82.4776724 45.5639107,81.984277 L44.433013,80.8531269 L42.3085103,78.7288766 C41.3941514,79.1362118 40.3823753,79.3648646 39.316843,79.3648646 C35.2523246,79.3648646 31.9573012,76.0698411 31.9573012,72.0053227 C31.9573012,70.9395381 32.1857016,69.927762 32.5930368,69.0134031 L30.4687865,66.8889004 L29.4605436,65.8809099 C28.3107177,67.6881757 27.6429303,69.8321114 27.6429303,72.1332774 C27.6429303,77.2678709 30.9591534,81.6248933 35.5655235,83.1876066 L35.5655235,96.8517579 C35.5655235,97.465032 35.0683424,97.9624655 34.4548159,97.9624655 L26.2298761,97.9624655 C25.6163496,97.9624655 25.1189161,98.4598989 25.1189161,99.073173 L25.1189161,104.353892 C25.1189161,104.967671 25.6163496,105.464852 26.2298761,105.464852 L52.40381,105.464852 C53.0173365,105.464852 53.5145176,104.967671 53.5145176,104.353892 L53.5145176,99.073173 C53.5145176,98.4598989 53.0173365,97.9624655 52.40381,97.9624655\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n render() {\r\n const { tirePressure } = this.props\r\n\r\n if (tirePressure) {\r\n const { frontLeft, frontRight, rearLeft, rearRight } = tirePressure\r\n\r\n return (\r\n
    \r\n {(frontLeft || rearLeft) && (\r\n
    \r\n {frontLeft && (\r\n \r\n {frontLeft}\r\n \r\n )}\r\n {rearLeft && (\r\n \r\n {rearLeft}\r\n \r\n )}\r\n
    \r\n )}\r\n
    {this.renderImage()}
    \r\n {(frontRight || rearRight) && (\r\n
    \r\n {frontRight && (\r\n \r\n {frontRight}\r\n \r\n )}\r\n {rearRight && (\r\n \r\n {rearRight}\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n )\r\n }\r\n\r\n return this.renderImage()\r\n }\r\n}\r\n\r\nconst style = useStyle({\r\n fittingPosition: {\r\n display: \"inline-flex\",\r\n flex: 1,\r\n alignContent: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n lateral: {\r\n display: \"flex\",\r\n flex: 1,\r\n flexFlow: \"column\",\r\n $nest: {\r\n \"&--left\": {\r\n alignItems: \"flex-end\",\r\n },\r\n \"&--right\": {\r\n alignItems: \"flex-start\",\r\n },\r\n },\r\n },\r\n fittingPositionSvg: {\r\n marginLeft: em(0.75),\r\n paddingTop: em(0.75),\r\n },\r\n textTop: {\r\n display: \"flex\",\r\n flex: 1,\r\n },\r\n})(() => null)\r\n","import { classes, getStyleTheme, useSize, useStyle } from \"@tm/context-distribution\"\r\nimport { getValue } from \"@tm/utils\"\r\nimport { percent } from \"csx\"\r\nimport { FC, PropsWithChildren } from \"react\"\r\n\r\nconst bem = (...classes: (string | false | undefined | null)[]): string => {\r\n if (classes.length < 2) {\r\n return classes.first() || \"\"\r\n }\r\n return classes\r\n .filter((c) => c)\r\n .map((x, idx) => (idx && `${classes.first()}--${x}`) || x)\r\n .join(\" \")\r\n}\r\n\r\ntype SizeValues = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12\r\n\r\nexport type GridProps = PropsWithChildren<{\r\n xs?: SizeValues\r\n s?: SizeValues\r\n m?: SizeValues\r\n l?: SizeValues\r\n xl?: SizeValues\r\n container?: boolean\r\n center?: boolean\r\n auto?: boolean\r\n className?: string\r\n}>\r\n\r\nconst Grid: FC = (props) => {\r\n const { children, container, center, className, xl, l, m, s, xs, auto } = props\r\n const screenSize = useSize()\r\n const getPrevSize = (items: string[]): number => {\r\n if (!items.length) {\r\n return 12\r\n }\r\n const firstItem = items.shift()\r\n if (firstItem && getValue(props, [firstItem])) {\r\n return getValue(props, [firstItem])\r\n }\r\n return getPrevSize(items)\r\n }\r\n\r\n const getSize = () => {\r\n switch (screenSize) {\r\n case \"xl\":\r\n return getPrevSize([\"xl\", \"l\", \"m\", \"s\", \"xs\"])\r\n case \"l\":\r\n return getPrevSize([\"l\", \"m\", \"s\", \"xs\"])\r\n case \"m\":\r\n return getPrevSize([\"m\", \"s\", \"xs\"])\r\n case \"s\":\r\n return getPrevSize([\"s\", \"xs\"])\r\n case \"xs\":\r\n return getPrevSize([\"xs\"])\r\n default:\r\n return 12\r\n }\r\n }\r\n\r\n let gridClassName = \"\"\r\n if (container) {\r\n gridClassName = bem(style.container, center && \"center\")\r\n }\r\n\r\n if (xl || l || m || s || xs || auto) {\r\n gridClassName = classes(gridClassName, bem(style.item, getSize().toString(), auto && \"auto\"))\r\n }\r\n\r\n return
    {children}
    \r\n}\r\n\r\nconst theme = getStyleTheme()\r\nconst style = useStyle({\r\n container: {\r\n display: \"flex\",\r\n width: percent(100),\r\n flexWrap: \"wrap\",\r\n boxSizing: \"border-box\",\r\n $nest: {\r\n \"&--center\": {\r\n justifyContent: \"center\",\r\n },\r\n },\r\n },\r\n item: {\r\n $nest: {\r\n \"&--auto\": {\r\n flex: 1,\r\n },\r\n ...Array.from(Array(12).keys()).reduce(\r\n (obj, _, idx) => ({\r\n ...obj,\r\n [`&--${idx + 1}`]: { flexBasis: percent(((idx + 1 ?? 12) / 12) * 100) },\r\n }),\r\n {}\r\n ),\r\n },\r\n },\r\n})(Grid)\r\n\r\nexport default Grid\r\n","import { Component, PropsWithChildren, SyntheticEvent } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper/bindObjectContext\"\r\nimport { SizedProps } from \"../../models/SharedModels\"\r\n\r\nexport type HeadlineProps = PropsWithChildren<\r\n SizedProps & {\r\n onClick?(target: Headline): void\r\n }\r\n>\r\n\r\nexport default class Headline extends Component {\r\n constructor(props: HeadlineProps) {\r\n super(props)\r\n bindMethodsToContext(this, [\"get\"])\r\n }\r\n\r\n handleClick = (e: SyntheticEvent) => {\r\n const { onClick } = this.props\r\n onClick && onClick(this)\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.props.children}\r\n
    \r\n )\r\n }\r\n\r\n getClassName() {\r\n const { size, className } = this.props\r\n const baseName = \"headline\"\r\n let qualifiedClassName = `${baseName}`\r\n\r\n if (className) {\r\n qualifiedClassName = `${qualifiedClassName} ${className}`\r\n }\r\n\r\n if (size) {\r\n qualifiedClassName = `${qualifiedClassName} ${baseName}--${size}`\r\n }\r\n\r\n return qualifiedClassName\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { SizedProps, Colored } from \"../../models/SharedModels\"\r\n\r\nexport type IconProps = SizedProps &\r\n Colored & {\r\n name: string\r\n path?: string\r\n }\r\n\r\nexport default class Icon extends Component {\r\n render() {\r\n const { className, skin } = this.props\r\n let fullClassName = \"icon\"\r\n\r\n if (className) {\r\n fullClassName = `${fullClassName} ${className}`\r\n }\r\n\r\n if (skin) {\r\n fullClassName = `${fullClassName} icon--${skin}`\r\n }\r\n\r\n fullClassName += ` icon--${this.props.size || \"m\"}`\r\n\r\n const href = `#${this.props.name}`\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n","import { useState, useMemo, useEffect } from \"react\"\r\n\r\nexport type IFrameProps = {\r\n url: string\r\n id: string\r\n className?: string\r\n children?: JSX.Element\r\n contextDependent?: boolean\r\n allowFullscreen?: boolean\r\n allow?: string\r\n observeViewportIntersection?: boolean\r\n /** Can be either a valid sandbox value or true (equals sandbox=\"\") */\r\n sandbox?: string | boolean\r\n refreshOnUrlChanged?: boolean\r\n refreshOnLoad?: boolean\r\n onLoad?(ev: Event): void\r\n}\r\n\r\nexport default function IFrame(props: IFrameProps) {\r\n const { url, id, className, children } = props\r\n const [iframe, setIframe] = useState()\r\n const [container, setContainer] = useState()\r\n const [waitForBoundingRect, setWaitForBoundingRect] = useState(false)\r\n\r\n const observer = useMemo(\r\n () =>\r\n new IntersectionObserver(handleResize, {\r\n root: null,\r\n rootMargin: \"0px\",\r\n threshold: 1.0,\r\n }),\r\n []\r\n )\r\n\r\n function handleRef(el: HTMLDivElement) {\r\n if (el) {\r\n setContainer(el)\r\n observer && observer.observe(el)\r\n }\r\n }\r\n\r\n function handleResize() {\r\n setTimeout(() => iframe && container && setBoundingRect(iframe, container, waitForBoundingRect, setWaitForBoundingRect), 200)\r\n }\r\n\r\n useEffect(() => {\r\n iframe && container && setBoundingRect(iframe, container, waitForBoundingRect, setWaitForBoundingRect)\r\n window.addEventListener(\"resize\", handleResize)\r\n\r\n return () => {\r\n iframe && hideIframe(iframe)\r\n window.removeEventListener(\"resize\", handleResize)\r\n observer && observer.disconnect()\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n if (iframe?.id == id) {\r\n iframe.onload = props.onLoad || null\r\n iframe.src = url\r\n return\r\n }\r\n\r\n const newIframe = getOrCreateIFrame(props)\r\n setIframe(newIframe)\r\n }, [url])\r\n\r\n return (\r\n
    \r\n {children}\r\n
    \r\n )\r\n}\r\n\r\nfunction hideIframe(iframe: HTMLIFrameElement) {\r\n iframe.style.display = \"none\"\r\n iframe.style.pointerEvents = \"none\"\r\n iframe.style.zIndex = \"-1\"\r\n}\r\n\r\nfunction getOrCreateIFrame(props: IFrameProps) {\r\n let iframe = document.querySelector(`#${props.id}`)\r\n if (!iframe) {\r\n iframe = document.createElement(\"iframe\")\r\n\r\n if (props.contextDependent) {\r\n iframe.classList.add(\"context-dependent\")\r\n }\r\n\r\n // if(props.className) {\r\n // const classNameList = props.className.split(' ')\r\n // classNameList.forEach(item => iframe && iframe.classList.add(item))\r\n // }\r\n\r\n iframe.id = props.id\r\n iframe.src = props.url\r\n iframe.style.position = \"absolute\"\r\n iframe.style.display = \"none\"\r\n iframe.allowFullscreen = props.allowFullscreen || false\r\n iframe.allow = props.allow || \"\"\r\n\r\n if (typeof props.sandbox == \"string\" || props.sandbox === true) {\r\n iframe.sandbox.value = props.sandbox === true ? \"\" : props.sandbox\r\n }\r\n\r\n iframe.onload = props.onLoad || null\r\n\r\n document.body.appendChild(iframe)\r\n } else if ((props.refreshOnUrlChanged && iframe.src != props.url) || props.refreshOnLoad) {\r\n iframe.onload = props.onLoad || null\r\n iframe.src = props.url\r\n } else {\r\n props.onLoad?.(new Event(\"loaded\"))\r\n }\r\n\r\n return iframe\r\n}\r\n\r\nfunction setBoundingRect(\r\n iframe: HTMLIFrameElement,\r\n container: HTMLDivElement,\r\n waitForBoundingRect: boolean,\r\n setWaitForBoundingRect: (value: boolean) => void\r\n) {\r\n const containerBoundingRect = container.getBoundingClientRect()\r\n\r\n if (!container.clientWidth || containerBoundingRect.left > 0.5 * window.innerWidth) {\r\n setTimeout(() => setBoundingRect(iframe, container, waitForBoundingRect, setWaitForBoundingRect), 500)\r\n setWaitForBoundingRect(true)\r\n return\r\n }\r\n\r\n setWaitForBoundingRect(false)\r\n\r\n iframe.style.left = `${containerBoundingRect.left}px`\r\n iframe.style.top = `${containerBoundingRect.top}px`\r\n iframe.style.width = `${containerBoundingRect.width}px`\r\n iframe.style.height = `${containerBoundingRect.height}px`\r\n iframe.style.display = \"\"\r\n iframe.style.pointerEvents = \"\"\r\n iframe.style.zIndex = \"\"\r\n}\r\n","import { forwardRef, ImgHTMLAttributes, useEffect, useState } from \"react\"\r\n\r\nexport type Props = ImgHTMLAttributes & {\r\n url: string\r\n className?: string\r\n type?: FallbackImageType\r\n}\r\n\r\nexport type FallbackImageType = \"article\" | \"manufacturer\" | \"car\" | \"bike\"\r\n\r\nexport default forwardRef(function Image(props, ref) {\r\n const [error, setError] = useState(false)\r\n\r\n useEffect(() => {\r\n setError(false)\r\n }, [props.url])\r\n\r\n function handleError(e: React.SyntheticEvent) {\r\n setError(true)\r\n props.onError?.(e)\r\n }\r\n\r\n function renderErrorImage() {\r\n let fallback = FALLBACK_SVG\r\n\r\n switch (type) {\r\n case \"article\":\r\n fallback = FALLBACK_SVG_ARTICLE\r\n break\r\n case \"manufacturer\":\r\n fallback = FALLBACK_SVG_MANUFACTURER\r\n break\r\n case \"car\":\r\n fallback = FALLBACK_SVG_CAR\r\n break\r\n case \"bike\":\r\n fallback = FALLBACK_SVG_BIKE\r\n break\r\n }\r\n\r\n return (\r\n \r\n {fallback}\r\n \r\n )\r\n }\r\n\r\n // Pull out all know props and the rest (\"img\"-props) into an seperate variable\r\n const { url, className, type, title, ...rest } = props\r\n\r\n if (error || !url) {\r\n return renderErrorImage()\r\n }\r\n\r\n return \r\n})\r\n\r\nconst FALLBACK_SVG_ARTICLE = (\r\n \r\n \r\n \r\n)\r\n\r\nconst FALLBACK_SVG_MANUFACTURER = (\r\n \r\n \r\n \r\n)\r\n\r\nconst FALLBACK_SVG_CAR = (\r\n \r\n \r\n \r\n)\r\n\r\nconst FALLBACK_SVG_BIKE = (\r\n \r\n \r\n \r\n)\r\n\r\nconst FALLBACK_SVG = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n","import { Children, cloneElement, Component } from \"react\"\r\nimport bem from \"bem-classnames\"\r\nimport { Size } from \"../../models/skins\"\r\n\r\nexport type InputGroupSizes = Size\r\nexport type InputGroupItemAlignment = \"Left\" | \"Right\" | \"Center\" | \"SpaceBetween\"\r\n\r\nexport type InputGroupProps = {\r\n children: Array | JSX.Element\r\n className?: string\r\n size?: InputGroupSizes\r\n itemAlignment?: InputGroupItemAlignment\r\n /**\r\n * @param preventBorderModifications use this parameter to force the children to not have any border modifications\r\n */\r\n preventBorderModifications?: boolean\r\n onMouseOver?: (e: React.MouseEvent) => void\r\n onMouseOut?: (e: React.MouseEvent) => void\r\n onFocus?: (e: React.FocusEvent) => void\r\n onBlur?: (e: React.FocusEvent) => void\r\n}\r\n\r\nexport default class InputGroup extends Component {\r\n private bemStyle: any = {\r\n group: {\r\n name: \"inputgroup\",\r\n modifiers: [\"inputSize\", \"alignment\", \"with-shadow\"],\r\n },\r\n children: {\r\n name: \"inputgroup__children\",\r\n },\r\n }\r\n\r\n modifyChildClassNames = (child: any, index: number) => {\r\n if (!child) {\r\n return null\r\n }\r\n const props = {\r\n className: bem(this.bemStyle.children, {}, child.props.className, this.props.preventBorderModifications ? \"pseudogroup\" : \"\"),\r\n key: `ig-${index}`,\r\n }\r\n\r\n return cloneElement(child, props)\r\n }\r\n\r\n render() {\r\n const { children, size, itemAlignment, className, preventBorderModifications, ...handler } = this.props\r\n\r\n const alignment = itemAlignment || false\r\n\r\n const inputSize = size || \"m\"\r\n\r\n return (\r\n
    \r\n {Children.map(children, this.modifyChildClassNames.bind(this))}\r\n
    \r\n )\r\n }\r\n}\r\n","import { Component, RefObject } from \"react\"\r\nimport { getFieldErrors, plateCountryCodeMapper } from \"@tm/utils\"\r\nimport { TextField, TextFieldProps } from \"..\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\n\r\nexport type LicensePlateFieldProps = TextFieldProps & {\r\n shortCountryCode: string\r\n showCountryCode?: boolean\r\n attachShowErrorTo?: HTMLElement\r\n showErrorBorder?: boolean\r\n size?: \"xs\" | \"s\" | \"m\" | \"l\" | \"xl\"\r\n inputFieldRef?: RefObject\r\n}\r\n\r\nexport default class LicensePlateField extends Component {\r\n constructor(props: LicensePlateFieldProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n handleFormat(value: string) {\r\n let formatted = value.toUpperCase()\r\n if (this.props.formatter) {\r\n formatted = this.props.formatter(value)\r\n }\r\n\r\n return formatted\r\n }\r\n\r\n handleChange(model: any, path?: any[]) {\r\n const { onChange } = this.props\r\n onChange && onChange(model, path)\r\n }\r\n\r\n render() {\r\n const { type, shortCountryCode, showCountryCode = true, className, size, modelState, path, showErrorBorder, ...rest } = this.props\r\n\r\n let cName = `plate-id ${className || \"\"}`\r\n cName += shortCountryCode ? ` plate-id--${shortCountryCode.toLowerCase()}` : \"\"\r\n cName += size ? ` plate-id--${size}` : \" plate-id--m\"\r\n if (showErrorBorder && modelState && path) {\r\n cName += (getFieldErrors(modelState, path).length && \" field-error\") || \"\"\r\n }\r\n\r\n return (\r\n
    \r\n
    {showCountryCode && plateCountryCodeMapper(shortCountryCode)?.toUpperCase()}
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n","import { createElement, Component } from \"react\"\r\nimport { Text } from \"../..\"\r\n\r\nexport type ListProps = {\r\n className?: string\r\n view: any\r\n items: Array>\r\n onItemHover?(item: T | undefined): void\r\n}\r\n\r\nexport type ListItem = T | ListGroupItem\r\n\r\nexport type ListGroupItem = {\r\n groupTitle: string\r\n listItems: Array\r\n}\r\n\r\nexport let listCounter = 0\r\n\r\nexport default class List extends Component> {\r\n constructor(props: ListProps) {\r\n super(props)\r\n listCounter++\r\n }\r\n\r\n renderListItem = (listItem: T, index: number) => {\r\n return (\r\n this.props.onItemHover?.(listItem) : undefined}\r\n onMouseLeave={this.props.onItemHover ? () => this.props.onItemHover?.(undefined) : undefined}\r\n >\r\n {createElement(this.props.view, listItem)}\r\n \r\n )\r\n }\r\n\r\n renderList = (item: ListItem, index: number) => {\r\n const listGroupItem = item as ListGroupItem\r\n\r\n if (listGroupItem.groupTitle != undefined && Array.isArray(listGroupItem.listItems)) {\r\n return (\r\n
    \r\n
    \r\n {listGroupItem.groupTitle}\r\n
    \r\n {listGroupItem.listItems.map(this.renderList)}\r\n
    \r\n )\r\n }\r\n\r\n return this.renderListItem(item as T, index)\r\n }\r\n\r\n render() {\r\n let className = \"list\"\r\n if (this.props.className) {\r\n className += ` ${this.props.className}`\r\n }\r\n\r\n return
    {(this.props.items ?? []).map(this.renderList)}
    \r\n }\r\n}\r\n","import { Component } from \"react\"\r\n\r\nconst SPINNER = \"spinner\"\r\nconst CONNECTION = \"connection\"\r\n\r\nexport type LoaderProps = {\r\n visible?: boolean\r\n delay?: number\r\n type?: \"spinner\" | \"connection\"\r\n className?: string\r\n onRef?(ref: HTMLDivElement): void\r\n}\r\n\r\nexport interface LoaderState {\r\n visible: boolean\r\n timer?: any\r\n}\r\n\r\nexport default class Loader extends Component {\r\n public static defaultProps: LoaderProps = {\r\n delay: 250,\r\n type: SPINNER,\r\n }\r\n\r\n /**\r\n *\r\n */\r\n constructor(props: LoaderProps) {\r\n super(props)\r\n this.state = {\r\n visible: false,\r\n }\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n this.setVisibility(this.props.visible !== undefined ? this.props.visible : true)\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: LoaderProps) {\r\n if (nextProps.visible !== undefined && this.props.visible !== nextProps.visible) {\r\n this.setVisibility(nextProps.visible)\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.clearTimer()\r\n }\r\n\r\n setVisibility(visible: boolean) {\r\n const { delay } = this.props\r\n\r\n this.clearTimer()\r\n\r\n if (visible) {\r\n if (delay !== undefined && delay > 0) {\r\n const timer = setTimeout(() => {\r\n this.setState({ visible })\r\n }, delay)\r\n\r\n this.setState({ timer })\r\n } else {\r\n this.setState({ visible })\r\n }\r\n } else {\r\n this.setState({ visible })\r\n }\r\n }\r\n\r\n clearTimer() {\r\n const { timer } = this.state\r\n\r\n if (timer) {\r\n clearTimeout(timer)\r\n }\r\n }\r\n\r\n renderConnectionLoader() {\r\n const { className, onRef } = this.props\r\n\r\n let loaderClassName = \"loader loader-connection\"\r\n loaderClassName += this.state.visible ? \" loader-connection--visible\" : \"\"\r\n loaderClassName += className ? ` ${className}` : \"\"\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n renderSpinnerLoader() {\r\n const { className, onRef } = this.props\r\n\r\n let loaderClassName = \"loader loader-spinner\"\r\n loaderClassName += this.state.visible ? \" loader-spinner--visible\" : \"\"\r\n loaderClassName += className ? ` ${className}` : \"\"\r\n\r\n return
    \r\n }\r\n\r\n render() {\r\n const { type } = this.props\r\n\r\n switch (type) {\r\n case CONNECTION: {\r\n return this.renderConnectionLoader()\r\n }\r\n default: {\r\n return this.renderSpinnerLoader()\r\n }\r\n }\r\n }\r\n}\r\n","import bem from \"bem-classnames\"\r\nimport { Component, ReactNode } from \"react\"\r\nimport Text from \"../text\"\r\nimport Icon from \"../icon\"\r\nimport { Size } from \"../../models/skins\"\r\nimport Button from \"../button\"\r\n\r\ntype Skins = \"warning\" | \"danger\" | \"success\" | \"information\" | \"error\"\r\n\r\nexport type MessageInlineProps = {\r\n skin?: Skins\r\n message: NonNullable\r\n description?: ReactNode\r\n icon?: string\r\n size?: Size\r\n iconSize?: Size\r\n onButtonClick?(action: any): void\r\n}\r\n\r\nexport default class MessageInline extends Component {\r\n private static defaultProps: Partial = {\r\n size: \"m\",\r\n iconSize: \"xl\",\r\n }\r\n\r\n render() {\r\n const { skin, description, message, onButtonClick, icon, iconSize, size } = this.props\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {message}\r\n \r\n {description}\r\n
    \r\n {onButtonClick && (\r\n
    \r\n )\r\n }\r\n\r\n setIcon(skin?: Skins) {\r\n let iconName\r\n switch (skin) {\r\n case \"warning\": {\r\n iconName = \"attention-dark\"\r\n break\r\n }\r\n case \"danger\": {\r\n iconName = \"not\"\r\n break\r\n }\r\n case \"success\": {\r\n iconName = \"success-dark\"\r\n break\r\n }\r\n case \"error\": {\r\n iconName = \"not\"\r\n break\r\n }\r\n case \"information\":\r\n default: {\r\n iconName = \"information-light\"\r\n break\r\n }\r\n }\r\n return iconName\r\n }\r\n}\r\n\r\nconst componentClassName = \"message-inline\"\r\n\r\nconst style = {\r\n default: {\r\n name: `${componentClassName}`,\r\n modifiers: [\"long\", \"skin\", \"size\"],\r\n },\r\n icon: {\r\n name: `${componentClassName}__icon`,\r\n modifiers: [\"iconSize\", \"icon\"],\r\n },\r\n description: {\r\n name: `${componentClassName}__description`,\r\n },\r\n textWrapper: {\r\n name: `${componentClassName}__text-wrapper`,\r\n },\r\n message: {\r\n name: `${componentClassName}__message`,\r\n },\r\n closeButton: {\r\n name: `${componentClassName}__close-button`,\r\n },\r\n}\r\n","import bem from \"bem-classnames\"\r\nimport { Component, ReactNode } from \"react\"\r\nimport Icon from \"../icon\"\r\nimport Text from \"../text\"\r\nimport Button from \"../button\"\r\n\r\nexport type MessageSystemProps = {\r\n title: string\r\n message?: string\r\n skin?: \"warning\" | \"danger\" | \"success\"\r\n icon?: string\r\n children?: ReactNode\r\n onButtonClick?(action: any): void\r\n}\r\n\r\nexport class MessageSystem extends Component {\r\n private static defaultProps: Partial = {\r\n icon: \"info\",\r\n skin: undefined,\r\n message: \"\",\r\n }\r\n\r\n render() {\r\n const { skin, message, title, onButtonClick, children } = this.props\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {title && (\r\n \r\n {title}\r\n \r\n )}\r\n {message && {message}}\r\n
    \r\n {onButtonClick && (\r\n
    \r\n {children &&
    {children}
    }\r\n
    \r\n )\r\n }\r\n\r\n setIcon(skin?: \"warning\" | \"danger\" | \"success\") {\r\n let iconName\r\n switch (skin) {\r\n case \"warning\": {\r\n iconName = \"attention-dark\"\r\n break\r\n }\r\n case \"danger\": {\r\n iconName = \"attention-light\"\r\n break\r\n }\r\n case \"success\": {\r\n iconName = \"success-dark\"\r\n break\r\n }\r\n default: {\r\n iconName = \"information-light\"\r\n break\r\n }\r\n }\r\n return iconName\r\n }\r\n}\r\n\r\nconst componentClassName = \"message-system\"\r\nconst iconSize = \"xl\"\r\n\r\nconst style = {\r\n default: {\r\n name: `${componentClassName}`,\r\n modifiers: [\"long\", \"skin\"],\r\n },\r\n icon: {\r\n name: `${componentClassName}__icon`,\r\n modifiers: [\"iconSize\", \"icon\"],\r\n },\r\n description: {\r\n name: `${componentClassName}__description`,\r\n },\r\n textWrapper: {\r\n name: `${componentClassName}__text-wrapper`,\r\n },\r\n content: {\r\n name: `${componentClassName}__content`,\r\n },\r\n additionalContent: {\r\n name: `${componentClassName}__additional-content`,\r\n },\r\n message: {\r\n name: `${componentClassName}__message`,\r\n },\r\n closeButton: {\r\n name: `${componentClassName}__close-button`,\r\n },\r\n}\r\n","import ReactDOM from \"react-dom\"\r\nimport bem from \"bem-classnames\"\r\nimport { Component, ReactNode } from \"react\"\r\nimport Icon from \"../icon\"\r\nimport Button from \"../button\"\r\nimport { Text } from \"..\"\r\n\r\nexport type MessageToastProps = {\r\n skin?: \"warning\" | \"danger\" | \"success\" | \"primary\"\r\n message: ReactNode\r\n description?: ReactNode\r\n icon?: string\r\n skipPortal?: boolean\r\n className?: string\r\n onButtonClick?(action: any): void\r\n}\r\ntype State = {\r\n hidden: boolean\r\n}\r\n\r\nexport default class MessageToast extends Component {\r\n constructor(props: MessageToastProps) {\r\n super(props)\r\n this.state = { hidden: true }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.hidden) {\r\n window.setTimeout(this.setState.bind(this, { hidden: false }), 0)\r\n }\r\n }\r\n\r\n render() {\r\n const { className, skipPortal, skin, description, message, onButtonClick, icon } = this.props\r\n const hiddenClass = this.state.hidden ? \"hidden\" : undefined\r\n\r\n const component = (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {message}\r\n \r\n {description}\r\n \r\n
    \r\n {onButtonClick && (\r\n
    \r\n )\r\n\r\n const container = document.querySelector(\"#modals .modal__messages\")\r\n if (!skipPortal && container) {\r\n return ReactDOM.createPortal(component, container)\r\n }\r\n return component\r\n }\r\n\r\n setIcon(skin?: \"warning\" | \"danger\" | \"success\" | \"primary\") {\r\n let iconName\r\n switch (skin) {\r\n case \"warning\": {\r\n iconName = \"attention-dark\"\r\n break\r\n }\r\n case \"danger\": {\r\n iconName = \"not\"\r\n break\r\n }\r\n case \"success\": {\r\n iconName = \"success-dark\"\r\n break\r\n }\r\n case \"primary\":\r\n default: {\r\n iconName = \"info\"\r\n break\r\n }\r\n }\r\n return iconName\r\n }\r\n}\r\n\r\nconst componentClassName = \"message-toast\"\r\nconst iconSize = \"l\"\r\n\r\nconst style = {\r\n default: {\r\n name: `${componentClassName}`,\r\n modifiers: [\"long\", \"skin\"],\r\n },\r\n icon: {\r\n name: `${componentClassName}__icon`,\r\n modifiers: [\"iconSize\", \"icon\"],\r\n },\r\n description: {\r\n name: `${componentClassName}__description`,\r\n },\r\n textWrapper: {\r\n name: `${componentClassName}__text-wrapper`,\r\n },\r\n message: {\r\n name: `${componentClassName}__message`,\r\n },\r\n closeButton: {\r\n name: `${componentClassName}__close-button`,\r\n },\r\n}\r\n","import { FC, ReactElement } from \"react\"\r\nimport { Button, Icon, Text } from \"..\"\r\n\r\nexport type MessageUpdateCheckProps = {\r\n icon?: string\r\n title: string\r\n message: string\r\n onCancel?(): void\r\n buttons?: ReactElement\r\n}\r\n\r\nexport const MessageUpdateCheck: FC = (props) => {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {props.title}\r\n \r\n \r\n {props.message}\r\n \r\n {props.buttons &&
    {props.buttons}
    }\r\n
    \r\n {props.onCancel &&
    \r\n )\r\n}\r\n","import { Component, PropsWithChildren } from \"react\"\r\nimport * as ReactDOM from \"react-dom\"\r\nimport { registerOutsideClick } from \"@tm/utils\"\r\nimport Button from \"../button\"\r\n\r\nconst modalRoot = document.getElementById(\"portals\") || document.getElementById(\"modals\")\r\n\r\nexport type ModalProps = PropsWithChildren<{\r\n onClose?: () => void\r\n interruptOutsideClick?: boolean\r\n className?: string\r\n containerClassName?: string\r\n}>\r\n\r\nexport default class Modal extends Component {\r\n el: HTMLDivElement\r\n\r\n modalEl: HTMLDivElement | null\r\n\r\n unregisterOutsideClick?: () => void\r\n\r\n constructor(props: any) {\r\n super(props)\r\n this.el = document.createElement(\"div\")\r\n this.el.className = \"modal__container open\"\r\n if (props.containerClassName) {\r\n this.el.className = `modal__container open ${props.containerClassName}`\r\n }\r\n // this.initializeModalContainer()\r\n this.modalEl = null\r\n modalRoot && modalRoot.prepend(this.el)\r\n }\r\n\r\n initializeModalContainer() {\r\n const modalContainers = document.getElementsByClassName(\"modal__container\") as HTMLCollectionOf\r\n const modalContainer = modalContainers.length > 0 && modalContainers.item(0)\r\n\r\n if (modalContainer) {\r\n modalContainer.remove()\r\n }\r\n\r\n this.el = document.createElement(\"div\")\r\n this.el.className = \"modal__container open\"\r\n\r\n // 2 modals\r\n // if(modalContainer) {\r\n // this.el = modalContainer\r\n // } else {\r\n // this.el = document.createElement(\"div\")\r\n // modalRoot && modalRoot.prepend(this.el)\r\n // }\r\n\r\n // if(this.el && this.el.className.indexOf(\"open\") < 0) {\r\n // this.el.className = \"modal__container open\"\r\n // }\r\n }\r\n\r\n componentDidMount() {\r\n modalRoot && modalRoot.prepend(this.el)\r\n this.modalEl?.focus()\r\n }\r\n\r\n componentWillUnmount() {\r\n this.unregisterOutsideClick && this.unregisterOutsideClick()\r\n this.el && this.el.remove()\r\n }\r\n\r\n componentDidUpdate(prevProps: ModalProps) {\r\n if (this.props.interruptOutsideClick && this.unregisterOutsideClick) {\r\n this.unregisterOutsideClick()\r\n }\r\n\r\n if (prevProps.interruptOutsideClick && !this.props.interruptOutsideClick && this.modalEl) {\r\n this.unregisterOutsideClick = registerOutsideClick(this.modalEl, this.handleOutsideClick)\r\n }\r\n }\r\n\r\n getModalRef = (ref: HTMLDivElement) => {\r\n this.unregisterOutsideClick = registerOutsideClick(ref, this.handleOutsideClick)\r\n this.modalEl = ref\r\n }\r\n\r\n // a new reactdom create portal will cause the div.portals container to rerender and the old portal will be unmountend, so it's enough to remove the classname\r\n handleOutsideClick = (e: Event) => {\r\n this.handleClose()\r\n }\r\n\r\n handleKeyPress = (event: React.KeyboardEvent) => {\r\n event.key === \"Escape\" && this.handleClose()\r\n }\r\n\r\n handleClose = () => {\r\n this.props.onClose && this.props.onClose()\r\n this.el.className = \"modal__container\"\r\n }\r\n\r\n render(): any {\r\n return ReactDOM.createPortal(\r\n
    \r\n
    {this.props.children}
    \r\n
    ,\r\n this.el\r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport Button from \"../button\"\r\n\r\nexport type MoreMenuItem = {\r\n id?: any\r\n icon?: string\r\n text?: string\r\n link?: string\r\n disabled?: boolean\r\n}\r\n\r\nexport type ItemProps = {\r\n item: MoreMenuItem\r\n onSelect(item: MoreMenuItem): void\r\n}\r\n\r\nexport class MenuItem extends Component {\r\n constructor(props: ItemProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n private handleClick() {\r\n this.props.onSelect(this.props.item)\r\n }\r\n\r\n render() {\r\n const { item } = this.props\r\n\r\n return (\r\n
  • \r\n \r\n
  • \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { Tooltip } from \"..\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { MoreMenuItem, MenuItem } from \"./index.item\"\r\nimport { Box } from \"@mui/material\"\r\n\r\nexport type { MoreMenuItem }\r\nexport type Props = {\r\n items: Array\r\n disabled?: boolean\r\n onMenuItemSelect(item: MoreMenuItem): void\r\n}\r\n\r\nexport default class MoreMenu extends Component {\r\n private tooltipRef: Tooltip | null = null\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n private handleTooltipRef(ref: Tooltip | null) {\r\n this.tooltipRef = ref\r\n }\r\n\r\n private handleItemSelect(item: MoreMenuItem) {\r\n this.props.onMenuItemSelect(item)\r\n this.tooltipRef?.hide()\r\n }\r\n\r\n private renderHeader() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n private renderMenuItem(item: MoreMenuItem, idx: number) {\r\n return \r\n }\r\n\r\n private renderMenu() {\r\n return
      {this.props.items.map(this.renderMenuItem)}
    \r\n }\r\n\r\n render() {\r\n const { disabled, items } = this.props\r\n const isDisabled = disabled || !items || items.length === 0\r\n const className = `more-menu${isDisabled ? \" more-menu--disabled\" : \"\"}`\r\n\r\n return (\r\n
    \r\n \r\n {this.renderHeader()}\r\n \r\n
    \r\n )\r\n }\r\n}\r\n","import { clone, getValue, setValue, getFieldErrors, ButtonKeyDefinition, Overwrite } from \"@tm/utils\"\r\nimport { ChangeEvent, Component, SyntheticEvent } from \"react\"\r\nimport { FormElementState, createErrorMessage, FormElementProps } from \"../../models\"\r\nimport { Icon, Tooltip } from \"..\"\r\nimport { bindMethodsToContext, elementId } from \"../../helper\"\r\n\r\nexport type Props = Overwrite<\r\n FormElementProps,\r\n {\r\n value?: number | null\r\n placeholder?: string\r\n minimum?: number\r\n maximum?: number\r\n stepSize?: number\r\n /** Deprecated */\r\n floatPoint?: boolean\r\n showClear?: boolean\r\n showButtons?: boolean\r\n showDropDown?: boolean\r\n selectValueOnFocus?: boolean\r\n /**\r\n * set to nullable if you want to allow an empty field\r\n */\r\n nullable?: boolean\r\n /**\r\n * show all decimal places eg: instead of \"3,10\" => \"3,1\" show \"3,10\"\r\n */\r\n enforceDecimalDigits?: boolean\r\n /**\r\n * if enforceDecimalDigits == true then you can enforce single ints to be displayed as double zero float\r\n * eg: 1 => 1,00\r\n */\r\n enforceZeroOnlyDecimalDigits?: boolean\r\n onChangeConfirm?(model: any, path?: Array): void\r\n onChangeReset?(model: any, path?: Array): void\r\n onKeyDown?(keyevent: React.KeyboardEvent): void\r\n }\r\n>\r\n\r\nexport type State = FormElementState & {\r\n parsedValue: number | null\r\n inputValue?: string\r\n dropDownOffset: number\r\n edit?: boolean\r\n}\r\n\r\nexport default class NumberField extends Component {\r\n private inputRef: HTMLInputElement | null = null\r\n\r\n private tooltipRef: Tooltip | null = null\r\n\r\n private outerContainerRef: HTMLElement | null\r\n\r\n static get defaultProps(): Partial {\r\n return {\r\n stepSize: 1,\r\n }\r\n }\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n\r\n const value = this.getPropsValue(this.props)\r\n const formattedInputValue = this.replaceSeperator(value)\r\n const inputValue = props.enforceDecimalDigits ? this.enforceDecimalDigits(formattedInputValue) : formattedInputValue\r\n // inputValue = !props.enforceDecimalDigits && props.enforceDoubleZeroDecimalDigits ? this.attachDoubleZero(formattedInputValue) : formattedInputValue // i dont think we need a seperated enforceDecimalDigits handling\r\n\r\n this.state = {\r\n id: elementId(),\r\n parsedValue: value,\r\n inputValue,\r\n dropDownOffset: 0,\r\n errors: this.getErrors(this.props),\r\n }\r\n\r\n if (this.props.floatPoint) {\r\n console.warn(\"NumberField: the property 'floatPoint' is deprecated, please use the property stepSize with a float value instead.\")\r\n }\r\n\r\n this.adjustValue = this.adjustValue.bind(this)\r\n this.getPrecision = this.getPrecision.bind(this)\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\r\n const nextValue = this.getPropsValue(nextProps)\r\n\r\n if (nextValue != this.state.parsedValue) {\r\n let inputValue = this.replaceSeperator(nextValue)\r\n\r\n if (nextProps.enforceDecimalDigits) {\r\n inputValue = this.enforceDecimalDigits(inputValue)\r\n }\r\n\r\n this.setState({\r\n parsedValue: nextValue,\r\n inputValue,\r\n errors: this.getErrors(nextProps),\r\n })\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.props.autoFocus && this.focus()\r\n }\r\n\r\n private getErrors(props: Props): Array | undefined {\r\n const { modelState, path } = props\r\n\r\n if (modelState && path) {\r\n return getFieldErrors(modelState, path)\r\n }\r\n }\r\n\r\n private getPropsValue(props: Props): number | null {\r\n const { value, model, path, minimum, maximum, nullable } = props\r\n const propsValue: number | undefined = model && path ? getValue(model, path) : value\r\n\r\n if (nullable && propsValue == null) {\r\n return null\r\n }\r\n if (propsValue != null) {\r\n return this.adjustValue(propsValue)\r\n }\r\n if (minimum != null) {\r\n return minimum\r\n }\r\n if (maximum != null && maximum < 0) {\r\n return maximum\r\n }\r\n\r\n return 0\r\n }\r\n\r\n adjustValue(value: number) {\r\n const { stepSize } = this.props\r\n if (!stepSize) {\r\n return value\r\n }\r\n const precision = this.getPrecision(stepSize)\r\n const fixedValue = parseFloat(value.toFixed(precision))\r\n const rest = Math.abs(parseFloat((fixedValue % stepSize).toFixed(precision))) // Negative Values supported\r\n\r\n let adjustedValue = fixedValue\r\n\r\n if (rest != 0) {\r\n if (rest < stepSize / 2) {\r\n adjustedValue = fixedValue - rest\r\n } else {\r\n adjustedValue = fixedValue - rest + stepSize\r\n }\r\n }\r\n\r\n adjustedValue = this.adjustMinMaxValue(adjustedValue)\r\n\r\n return adjustedValue\r\n }\r\n\r\n getPrecision(value: number) {\r\n const tmpValue = value.toString()\r\n if (tmpValue.indexOf(\".\") >= 0) {\r\n const splittedValue = tmpValue.split(\".\")\r\n const valueDecimals = splittedValue.last()\r\n return valueDecimals ? valueDecimals.length : 0\r\n }\r\n\r\n return 0\r\n }\r\n\r\n adjustMinMaxValue(value: string | number) {\r\n const { maximum, minimum } = this.props\r\n\r\n let fittedValue = typeof value == \"string\" ? parseFloat(value) : value\r\n\r\n if (maximum != undefined && fittedValue > maximum) {\r\n fittedValue = maximum\r\n }\r\n\r\n if (minimum != undefined && fittedValue < minimum) {\r\n fittedValue = minimum\r\n }\r\n\r\n return fittedValue\r\n }\r\n\r\n private replaceSeperator(value: number | string | null): string {\r\n if (value == null) {\r\n return \"\"\r\n }\r\n\r\n return value.toString().replace(\".\", \",\")\r\n }\r\n\r\n private parseValue(value: string): number | null {\r\n const stepSize = this.props.stepSize as number // typescript fix: stepSize gets assigned a default value and so could not be undefined\r\n const number = parseFloat(value)\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n\r\n return number\r\n }\r\n\r\n private setValueToModel(value: number | null): any {\r\n const { model, path } = this.props\r\n const clonedModel = clone(model)\r\n\r\n if (path) {\r\n setValue(clonedModel, path, value)\r\n }\r\n\r\n return clonedModel\r\n }\r\n\r\n private handleInputRef(ref: HTMLInputElement) {\r\n this.inputRef = ref\r\n\r\n const { onRef } = this.props\r\n onRef && onRef(ref)\r\n }\r\n\r\n private handleTooltipRef(ref: Tooltip | null) {\r\n this.tooltipRef = ref\r\n }\r\n\r\n private handleChange(e: ChangeEvent) {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n const match = e.target.value.match(/[-+]?[\\d]*[.,]?[\\d]*/g)\r\n const inputValue: string = match ? match.first() || \"\" : \"\"\r\n\r\n let parsedValue = this.parseValue(inputValue.replace(\",\", \".\"))\r\n parsedValue = parsedValue != null ? this.adjustValue(parsedValue) : this.state.parsedValue\r\n\r\n this.setState({\r\n parsedValue,\r\n inputValue: this.replaceSeperator(inputValue),\r\n dropDownOffset: 0,\r\n })\r\n\r\n const { onChange, model, path } = this.props\r\n if (onChange) {\r\n if (model && path) {\r\n onChange(this.setValueToModel(parsedValue), path)\r\n } else {\r\n onChange(parsedValue)\r\n }\r\n }\r\n\r\n this.tooltipRef && this.tooltipRef.hide()\r\n }\r\n\r\n private handleChangeConfirm(value: number | null) {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n const { model, path, onChangeConfirm, enforceDecimalDigits } = this.props\r\n\r\n if (onChangeConfirm) {\r\n if (model && path) {\r\n onChangeConfirm(this.setValueToModel(value), path)\r\n } else {\r\n onChangeConfirm(value)\r\n }\r\n }\r\n const inputValue = value && enforceDecimalDigits ? this.enforceDecimalDigits(value) : (value != null ? value : \"\").toString()\r\n\r\n this.setState({\r\n parsedValue: value,\r\n inputValue,\r\n dropDownOffset: 0,\r\n })\r\n }\r\n\r\n private handleChangeReset(value: number | null) {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n const { model, path, onChangeReset } = this.props\r\n\r\n if (onChangeReset) {\r\n if (model && path) {\r\n onChangeReset(model, path)\r\n } else {\r\n onChangeReset(value)\r\n }\r\n }\r\n }\r\n\r\n private handleFocus(e: React.FocusEvent) {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n this.setState({ edit: true })\r\n\r\n const { onFocus, selectValueOnFocus } = this.props\r\n onFocus && onFocus()\r\n\r\n if (selectValueOnFocus) {\r\n e.currentTarget.select()\r\n }\r\n }\r\n\r\n private handleBlur() {\r\n const { inputValue, parsedValue } = this.state\r\n let displayValue: string | null = null\r\n let returnValue: number | null = parsedValue\r\n\r\n if (inputValue == \"\" && this.props.nullable) {\r\n displayValue = inputValue\r\n returnValue = null\r\n } else {\r\n displayValue = this.replaceSeperator(parsedValue)\r\n }\r\n\r\n this.setState({\r\n edit: false,\r\n inputValue: displayValue,\r\n })\r\n\r\n this.handleChangeConfirm(returnValue)\r\n }\r\n\r\n private handleKeyDown(e: React.KeyboardEvent) {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n switch (e.key) {\r\n case ButtonKeyDefinition.Tab: {\r\n this.handleBlur()\r\n this.tooltipRef && this.tooltipRef.hide()\r\n break\r\n }\r\n case ButtonKeyDefinition.Escape: {\r\n const parsedValue = this.getPropsValue(this.props)\r\n\r\n this.setState({\r\n parsedValue,\r\n inputValue: this.replaceSeperator(parsedValue),\r\n })\r\n\r\n this.handleChangeReset(parsedValue)\r\n this.tooltipRef && this.tooltipRef.hide()\r\n\r\n break\r\n }\r\n case ButtonKeyDefinition.Enter: {\r\n this.handleBlur()\r\n this.tooltipRef && this.tooltipRef.hide()\r\n break\r\n }\r\n }\r\n\r\n const { onKeyDown } = this.props\r\n onKeyDown && onKeyDown(e)\r\n }\r\n\r\n private handleStepChange(direction: \"increment\" | \"decrement\") {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n // const { minimum, maximum, model, path, onChangeConfirm } = this.props\r\n const stepSize = this.props.stepSize as number // typescript fix: stepSize gets assigned a default value and so could not be undefined\r\n let { parsedValue } = this.state\r\n\r\n parsedValue = (parsedValue || 0).add(direction == \"increment\" ? stepSize : -stepSize)\r\n parsedValue = this.adjustValue(parsedValue)\r\n\r\n this.setState({\r\n parsedValue,\r\n inputValue: this.replaceSeperator(parsedValue),\r\n })\r\n\r\n this.handleChangeConfirm(parsedValue)\r\n }\r\n\r\n private handleIncrement(e: React.MouseEvent) {\r\n e.stopPropagation()\r\n this.handleStepChange(\"increment\")\r\n }\r\n\r\n private handleDecrement(e: React.MouseEvent) {\r\n e.stopPropagation()\r\n this.handleStepChange(\"decrement\")\r\n }\r\n\r\n private handleClear(ev?: SyntheticEvent) {\r\n ev && ev.preventDefault()\r\n const e = {\r\n target: {\r\n value: \"\",\r\n },\r\n }\r\n\r\n this.handleChange(e as ChangeEvent)\r\n }\r\n\r\n private handlePageDropDownValues(direction: \"increment\" | \"decrement\", prevDisabled: boolean, nextDisabled: boolean) {\r\n if ((direction == \"decrement\" && prevDisabled) || (direction == \"increment\" && nextDisabled)) {\r\n return\r\n }\r\n\r\n const stepSize = this.props.stepSize as number // typescript fix: stepSize gets assigned a default value and so could not be undefined\r\n\r\n this.setState((prevState) => {\r\n return {\r\n dropDownOffset: prevState.dropDownOffset + (direction == \"increment\" ? stepSize : -stepSize),\r\n }\r\n })\r\n }\r\n\r\n focus() {\r\n this.tooltipRef && this.tooltipRef.show()\r\n\r\n if (this.inputRef) {\r\n // reset the value so the value will be changed by the setState after focus\r\n // and the cursor will be at the end of input\r\n const { value } = this.inputRef\r\n this.inputRef.value = \"\"\r\n this.inputRef.value = value\r\n setTimeout(() => {\r\n this.inputRef && this.inputRef.focus()\r\n }, 0)\r\n }\r\n }\r\n\r\n private renderDropDownValue(value: number, idx?: number) {\r\n return (\r\n {\r\n this.handleChangeConfirm(value)\r\n this.tooltipRef && this.tooltipRef.hide()\r\n }}\r\n >\r\n {value}\r\n \r\n )\r\n }\r\n\r\n // TODO: fix this - handleBlur calls handleChangeConfirm, due to dropdown is not part of the input. So dropdown click handleChangeConfirm won't be executed\r\n private renderDropDown() {\r\n const { minimum, maximum } = this.props\r\n const stepSize = this.props.stepSize as number // typescript fix: stepSize gets assigned a default value and so could not be undefined\r\n const { parsedValue, dropDownOffset } = this.state\r\n const values: Array = []\r\n\r\n for (let i = 1; i <= 5; i++) {\r\n const value = (parsedValue || 0) + dropDownOffset + stepSize * i\r\n if (maximum != null && value > maximum) {\r\n break\r\n }\r\n values.push(value)\r\n }\r\n\r\n const itemClassName = \"input--numberfield__value\"\r\n const itemDisabledClassName = \"input--numberfield__value--disabled\"\r\n\r\n const firstValue = values.first()\r\n const lastValue = values.first()\r\n\r\n const prevDisabled = !!(minimum != null && firstValue && firstValue < minimum + stepSize)\r\n const nextDisabled = !!((maximum != null && lastValue && lastValue + stepSize > maximum) || !values.length)\r\n\r\n return (\r\n {\r\n e.preventDefault()\r\n this.handlePageDropDownValues(e.deltaY > 0 ? \"increment\" : \"decrement\", prevDisabled, nextDisabled)\r\n }}\r\n >\r\n \r\n \r\n \r\n {values.map(this.renderDropDownValue)}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n private renderContent() {\r\n const { readonly, showClear, disabled, placeholder, label, showButtons, showDropDown, enforceDecimalDigits } = this.props\r\n const { inputValue, id, errors } = this.state\r\n\r\n const labelElement = label ? (\r\n \r\n ) : (\r\n false\r\n )\r\n const tabIndex = readonly ? 0 : this.props.tabIndex\r\n\r\n return (\r\n
    \r\n {labelElement}\r\n \r\n\r\n
    \r\n {showClear && !readonly && (\r\n \r\n )}\r\n {showButtons && (\r\n \r\n )}\r\n {showButtons && (\r\n \r\n )}\r\n
    \r\n {!!errors && !!errors.length && this.outerContainerRef ? createErrorMessage(errors, this.outerContainerRef, \"bottom\") : null}\r\n
    \r\n )\r\n }\r\n\r\n enforceDecimalDigits = (inputValue: number | string) => {\r\n const { enforceZeroOnlyDecimalDigits } = this.props\r\n const stringValue = typeof inputValue != \"string\" ? inputValue.toString() : inputValue\r\n const value = enforceZeroOnlyDecimalDigits ? this.attachDoubleZero(stringValue) : stringValue\r\n return /[\\.,](\\d)$/.test(value) ? `${value}0` : value\r\n }\r\n\r\n attachDoubleZero(value: string) {\r\n return /[\\.,]/.test(value) ? value : `${value},00`\r\n }\r\n\r\n render() {\r\n const { readonly, showButtons, floatingLabel, showDropDown } = this.props\r\n const { errors, edit, value } = this.state\r\n\r\n let className = \"input input--textfield input--numberfield \"\r\n className += floatingLabel ? \"input--floating-label \" : \"\"\r\n className += readonly ? \"readonly \" : \"\"\r\n className += edit ? \"is-active \" : \"\"\r\n className += showButtons ? \"has-buttons \" : \"\"\r\n className += value != \"\" ? \"has-value \" : \"\"\r\n className += !!errors && !!errors.length ? \"has-error \" : \"\"\r\n className += this.props.className || \"\"\r\n\r\n const { layout } = this.props\r\n\r\n layout &&\r\n layout.forEach((element) => {\r\n if (element == \"dropshadow\") {\r\n className += ` has-${element}`\r\n } else {\r\n className += ` input--${element}`\r\n }\r\n })\r\n\r\n if (showDropDown && !readonly) {\r\n return (\r\n
    \r\n \r\n {this.renderContent()}\r\n \r\n
    \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n {this.renderContent()}\r\n
    \r\n )\r\n }\r\n\r\n handleOuterRef = (ref: HTMLElement | null) => {\r\n this.outerContainerRef = ref\r\n }\r\n}\r\n","import { Component, PropsWithChildren, ReactNode } from \"react\"\r\nimport type { Skins } from \"../../models\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport Icon from \"../icon\"\r\nimport Headline from \"../headline\"\r\nimport { Size } from \"../../models/skins\"\r\n\r\nexport type PanelSectionProps = PropsWithChildren<{\r\n title?: ReactNode\r\n className?: string\r\n darkMode?: boolean\r\n skin?: Skins\r\n collapsible?: boolean\r\n initiallyClosed?: boolean\r\n size?: Size\r\n id?: string\r\n}>\r\n\r\nexport type PanelSectionState = {\r\n opened: boolean\r\n}\r\n\r\nexport default class PanelSection extends Component {\r\n constructor(props: PanelSectionProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n\r\n this.state = {\r\n opened: !this.props.initiallyClosed ?? true,\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: PanelSectionProps) {\r\n if (prevProps.initiallyClosed !== this.props.initiallyClosed) {\r\n this.setState({ opened: !this.props.initiallyClosed })\r\n }\r\n }\r\n\r\n handleClick() {\r\n this.setState((prevState) => {\r\n return {\r\n opened: !prevState.opened,\r\n }\r\n })\r\n }\r\n\r\n render() {\r\n const { opened } = this.state\r\n const { size, id } = this.props\r\n\r\n let title = null\r\n let panelSectionContentClassName = \"panel__content\"\r\n let panelSectionClassName = \"panel\"\r\n\r\n if (this.props.darkMode) {\r\n panelSectionContentClassName += \" panel__content--dark\"\r\n }\r\n if (this.props.skin) {\r\n panelSectionContentClassName += ` ${this.props.skin} `\r\n }\r\n if (this.props.collapsible && this.props.title) {\r\n panelSectionClassName += \" panel__section--collapsible\"\r\n\r\n if (!this.state.opened) {\r\n panelSectionContentClassName += \" panel__content--closed\"\r\n }\r\n }\r\n if (this.props.title) {\r\n title = (\r\n \r\n
    {this.props.title}
    {\" \"}\r\n
    \r\n )\r\n }\r\n if (this.props.title && this.props.collapsible) {\r\n title = (\r\n
    \r\n {this.props.title}\r\n \r\n
    \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n {title}\r\n
    {this.props.children}
    \r\n
    \r\n )\r\n }\r\n}\r\n","import { getFieldErrors, clone, getValue, setValue } from \"@tm/utils\"\r\nimport { style } from \"typestyle\"\r\nimport { ChangeEvent, Component } from \"react\"\r\nimport { FormElementProps, PasswordAutoComplete } from \"../../models\"\r\nimport { elementId, bindMethodsToContext } from \"../../helper\"\r\nimport { Button } from \"..\"\r\n\r\nexport type PasswordFieldProps = FormElementProps & {\r\n autoComplete?: PasswordAutoComplete\r\n placeholder?: string\r\n maxLength?: number\r\n showClear?: boolean\r\n\r\n onChangeConfirm?: (model: any, path?: Array) => void\r\n onChangeReset?: (model: any, path?: Array) => void\r\n}\r\n\r\ntype State = {\r\n value: string\r\n inputValue: string\r\n id: string\r\n edit: boolean\r\n errors?: Array\r\n passwordShown: boolean\r\n showPasswordVisible: boolean\r\n}\r\n\r\nexport default class PasswordField extends Component {\r\n private _inputRef: HTMLInputElement\r\n\r\n constructor(props: PasswordFieldProps) {\r\n super(props)\r\n\r\n const value = this.getValue(props)\r\n this.state = {\r\n value,\r\n inputValue: value,\r\n id: elementId(),\r\n edit: false,\r\n passwordShown: false,\r\n showPasswordVisible: false,\r\n }\r\n\r\n bindMethodsToContext(this)\r\n this.handleInputEvent = this.handleInputEvent.bind(this)\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: PasswordFieldProps) {\r\n const value = this.getValue(nextProps)\r\n this.setState({ value, inputValue: value })\r\n if (value) {\r\n this._inputRef.value = value\r\n }\r\n\r\n if (nextProps.modelState && nextProps.path) {\r\n const errors = getFieldErrors(nextProps.modelState, nextProps.path)\r\n if (errors) {\r\n this.setState({ errors })\r\n }\r\n } else {\r\n this.setState({ errors: undefined })\r\n }\r\n }\r\n\r\n handleInputEvent(event: any) {\r\n if (event.inputType === \"insertReplacementText\" || !(\"data\" in event)) {\r\n this.autocomplete(event.target)\r\n }\r\n }\r\n\r\n autocomplete(element: any) {\r\n if (element.hasAttribute(\"autocompleted\")) {\r\n return\r\n }\r\n\r\n element.setAttribute(\"autocompleted\", \"\")\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.autoFocus) {\r\n this.focus()\r\n }\r\n\r\n document.addEventListener(\"input\", this.handleInputEvent, true)\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"input\", this.handleInputEvent, true)\r\n }\r\n\r\n componentDidUpdate(prevProps: PasswordFieldProps) {\r\n if (this.props.autoFocus && !prevProps.autoFocus) {\r\n this.focus()\r\n }\r\n }\r\n\r\n togglePasswordVisiblity = () => {\r\n this.setState({ passwordShown: !this.state.passwordShown })\r\n }\r\n\r\n getValue(props: PasswordFieldProps): string {\r\n const value = props.model && props.path ? getValue(props.model, props.path) : props.value\r\n return value != null ? value.toString() : \"\"\r\n }\r\n\r\n setValueToModel(value: any): any {\r\n const model = clone(this.props.model)\r\n\r\n // TODO: refactor, idk if this is fine\r\n if (!this.props.path) {\r\n return model\r\n }\r\n\r\n setValue(model, this.props.path, value)\r\n return model\r\n }\r\n\r\n handleRef(inputRef: HTMLInputElement) {\r\n this._inputRef = inputRef\r\n this.props.onRef?.(this)\r\n }\r\n\r\n handleChange(e?: ChangeEvent) {\r\n const value = e?.target.value || \"\"\r\n\r\n if (!value) {\r\n this.setState({ value, inputValue: value, showPasswordVisible: true })\r\n e?.target.removeAttribute(\"autocompleted\")\r\n } else if (e?.target.hasAttribute(\"autocompleted\")) {\r\n this.setState({\r\n value,\r\n inputValue: value,\r\n showPasswordVisible: false,\r\n passwordShown: false,\r\n })\r\n } else {\r\n this.setState({ value, inputValue: value, showPasswordVisible: true })\r\n }\r\n\r\n if (this.props.model && this.props.path) {\r\n const model = this.setValueToModel(value)\r\n this.props.onChange?.(model)\r\n } else {\r\n this.props.onChange?.(value)\r\n }\r\n }\r\n\r\n handleFocus() {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n this.setState({ edit: true })\r\n this.props.onFocus?.()\r\n }\r\n\r\n handleBlur() {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n this.setState({ edit: false })\r\n if (this.props.onChangeConfirm) {\r\n const { value } = this.state\r\n if (this.props.model && this.props.path) {\r\n const model = this.setValueToModel(value)\r\n this.props.onChangeConfirm(model)\r\n } else {\r\n this.props.onChangeConfirm(value)\r\n }\r\n }\r\n }\r\n\r\n handleKeyUp(e: React.KeyboardEvent) {\r\n const { readonly, model, path, value, onChangeReset } = this.props\r\n if (readonly) {\r\n return\r\n }\r\n\r\n switch (e.which) {\r\n case 13:\r\n this.handleBlur()\r\n break\r\n case 27:\r\n const originValue = model && path ? getValue(model, path) : value\r\n this.setState({\r\n value: originValue,\r\n inputValue: originValue,\r\n })\r\n if (onChangeReset) {\r\n if (model && path) {\r\n onChangeReset(model)\r\n } else {\r\n onChangeReset(value)\r\n }\r\n }\r\n break\r\n }\r\n }\r\n\r\n handleClear(ev?: React.SyntheticEvent) {\r\n ev && ev.preventDefault()\r\n this.handleChange()\r\n }\r\n\r\n focus() {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n\r\n if (!this.state.edit) {\r\n this.setState({ edit: true })\r\n }\r\n\r\n if (this._inputRef) {\r\n setTimeout(() => {\r\n this._inputRef.focus()\r\n }, 0)\r\n }\r\n }\r\n\r\n render() {\r\n let className = `input input--password${this.props.className ? ` ${this.props.className}` : \"\"}`\r\n let title = \"\"\r\n\r\n if (this.state.errors && this.state.errors.length > 0) {\r\n className += \" field-error\"\r\n title = this.state.errors.join(\"\\n\")\r\n }\r\n\r\n className += this.props.readonly ? \" readonly\" : \"\"\r\n className += this.state.edit ? \" is-active\" : \"\"\r\n className += this.state.inputValue != \"\" ? \" has-value\" : \"\"\r\n className += this.props.showClear && !this.props.readonly ? \" clearable\" : \"\"\r\n className += this.props.floatingLabel ? \" input--floating-label\" : \"\"\r\n\r\n let inputClassName = \"text input__field \"\r\n inputClassName += this.state.inputValue ? \" has-value\" : \"\"\r\n\r\n this.props.layout?.forEach((element) => {\r\n if (element == \"dropshadow\") {\r\n className += ` has-${element}`\r\n } else {\r\n className += ` input--${element}`\r\n }\r\n })\r\n\r\n const label = this.props.label ? (\r\n \r\n ) : (\r\n false\r\n )\r\n const { disabled, readonly, placeholder, maxLength } = this.props\r\n const tabIndex = readonly ? 0 : this.props.tabIndex\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {label}\r\n \r\n {this.props.showClear && !this.props.readonly ?
    \r\n {this.state.showPasswordVisible && (\r\n \r\n )}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n","import { FunctionComponent, useCallback, useEffect, memo, useRef, PropsWithChildren } from \"react\"\r\n\r\nimport { Positioning } from \"../../models/SharedModels\"\r\nimport { GrayishSkins } from \"../../models/skins\"\r\n\r\nexport type PopoverProps = PropsWithChildren<{\r\n alignArrow?: Positioning\r\n skin?: GrayishSkins\r\n active?: boolean\r\n className?: string\r\n popupModifierClass?: string\r\n onElementRef?: (el: HTMLElement) => void\r\n onOutsideInteraction?: (el: Event) => void\r\n}>\r\n\r\nconst baseName = `popover`\r\n\r\n/**\r\n * If you want to use a popover in combination with a button, use the appendItem property of the button\r\n */\r\nconst Popover: FunctionComponent = memo(\r\n ({ children, alignArrow, skin, active, className, popupModifierClass, onElementRef, onOutsideInteraction }) => {\r\n const ref = useRef(null)\r\n\r\n useEffect(() => {\r\n if (onElementRef && ref.current) {\r\n onElementRef(ref.current)\r\n }\r\n }, [ref, onElementRef])\r\n\r\n useEffect(() => {\r\n if (!ref.current || !onOutsideInteraction || !active) {\r\n return\r\n }\r\n\r\n const handleOutsideInteraction = (e: Event): void => {\r\n if (!(ref.current as any).contains(e.target)) {\r\n onOutsideInteraction(e)\r\n }\r\n }\r\n\r\n document.addEventListener(\"mousedown\", handleOutsideInteraction)\r\n document.addEventListener(\"wheel\", handleOutsideInteraction)\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleOutsideInteraction)\r\n document.removeEventListener(\"wheel\", handleOutsideInteraction)\r\n }\r\n }, [ref, onOutsideInteraction])\r\n\r\n const getArrowPositionClassname = useCallback((): string => {\r\n let arrowPositionClassName = `${baseName}__arrow`\r\n\r\n if (Array.isArray(alignArrow)) {\r\n alignArrow.forEach((arrow) => {\r\n arrowPositionClassName += ` ${baseName}__arrow--${arrow}`\r\n })\r\n } else {\r\n if (!alignArrow || alignArrow != \"bottom\") {\r\n arrowPositionClassName += ` ${baseName}__arrow--top`\r\n }\r\n\r\n if (alignArrow && alignArrow != \"top\") {\r\n arrowPositionClassName += ` ${baseName}__arrow--${alignArrow}`\r\n }\r\n }\r\n\r\n return arrowPositionClassName\r\n }, [alignArrow])\r\n const arrowClassName = getArrowPositionClassname()\r\n const arrowBottom = arrowClassName.indexOf(\"bottom\") >= 0\r\n const popoverClassname = `${baseName} ${active ? `is-active` : \"\"} ${skin ? `${baseName}--${skin}` : \"\"} ${className || \"\"} ${\r\n arrowBottom ? `${baseName}--top` : \"\"\r\n } ${popupModifierClass || \"\"}`\r\n\r\n return (\r\n
    \r\n {!arrowBottom &&
    }\r\n
    {children}
    \r\n {arrowBottom &&
    }\r\n
    \r\n )\r\n }\r\n)\r\n\r\nexport default Popover\r\n","import { Component } from \"react\"\r\nimport { bindMethodsToContext, elementId } from \"../../helper\"\r\nimport { Size } from \"../../models/skins\"\r\nimport cx from \"bem-classnames\"\r\n\r\nexport type RadioProps = {\r\n checked: boolean\r\n value?: any\r\n group?: string\r\n label?: string\r\n id?: string\r\n disabled?: boolean\r\n onCheck(value?: any): void\r\n /** size of the radio button, Size */\r\n size?: Size\r\n}\r\n\r\nconst bemConfig = {\r\n name: \"radio\",\r\n modifiers: [\"size\", \"disabled\"],\r\n}\r\n\r\nexport default class Radio extends Component {\r\n private elementId = elementId()\r\n\r\n constructor(props: RadioProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n static get defaultProps(): Partial {\r\n return {\r\n size: \"m\",\r\n }\r\n }\r\n\r\n handleChange() {\r\n const { checked, value, onCheck, disabled } = this.props\r\n if (disabled || checked) {\r\n return\r\n }\r\n onCheck(value)\r\n }\r\n\r\n render() {\r\n const { checked, label, group, size, disabled, id } = this.props\r\n\r\n return (\r\n \r\n \r\n \r\n {checked && }\r\n \r\n {!!label && (\r\n \r\n )}\r\n \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\n\r\nexport type RangeProps = {\r\n value: number\r\n state?: \"danger\" | \"success\" | \"warning\"\r\n min: number\r\n max: number\r\n showValue?: boolean\r\n onChange?(newValue: number): void\r\n}\r\n\r\nexport default class RangeSlider extends Component {\r\n constructor(props: RangeProps) {\r\n super(props)\r\n this.onChange = this.onChange.bind(this)\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n this.setState({ value: this.props.value })\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(props: RangeProps) {\r\n if (props.value != this.state.value) {\r\n this.setState({ value: props.value })\r\n }\r\n }\r\n\r\n /**\r\n * Calculates the position of the slider as percentage. Can be used as width of the \".range-slider__bar\" or the offset of \"range-slider__value\".\r\n * @return number\r\n */\r\n calculateSliderPosition() {\r\n return ((this.state.value - this.props.min) / (this.props.max - this.props.min)) * 100\r\n }\r\n\r\n onChange(e: any) {\r\n this.setState({ value: e.target.value })\r\n\r\n if (this.props.onChange) {\r\n this.props.onChange(e.target.value)\r\n }\r\n }\r\n\r\n render() {\r\n let className = \"range-slider\"\r\n const sliderPosition = `${this.calculateSliderPosition()}%`\r\n let value = null\r\n\r\n if (this.props.showValue) {\r\n value = (\r\n \r\n {this.state.value}\r\n \r\n )\r\n className += \" has-value\"\r\n }\r\n\r\n return (\r\n
    \r\n {value}\r\n \r\n
    \r\n )\r\n }\r\n}\r\n","import VendorScrollbar from \"react-custom-scrollbars-2\"\r\nimport { style } from \"typestyle\"\r\nimport { Component, ComponentClass, ReactElement, ReactNode } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport Scrollbar from \"../scrollbar/index\"\r\n\r\nexport type RealTableProps = {\r\n /**\r\n * Array of columns. Defines what should be displayed in the table header.\r\n */\r\n columns: Array | false | undefined | null>\r\n /**\r\n * Array with data for each row that should be displayed.\r\n * Gets transferred to the renderItemContent function in the TableColumn props.\r\n * So that function has to create a TableCell, which contains children that should be displayed\r\n * in that row (to be decided by the rowdata) and column (depending on which TableColumn.renderItemContent function is called).\r\n */\r\n data?: Array\r\n scrollable?: boolean\r\n className?: string\r\n height?: string\r\n tableHeadBackground?: string\r\n size?: string\r\n /**\r\n * Gets the data of one row, to give a custom class name for that row.\r\n */\r\n getRowClassName?(rowData: T, rowIndex: number): string\r\n onClickRow?(item: T): void\r\n onDoubleClickRow?(item: T): void\r\n\r\n onScrollBottom?(): void\r\n}\r\n\r\nexport type RealTableColumnProps = {\r\n /**\r\n * The element in children will be displayed as Table Header for the column.\r\n */\r\n children?: ReactNode\r\n className?: string\r\n /**\r\n * This function has to create a TableCell, which contains children that should be displayed\r\n * in that row (to be decided by the rowdata) and column (depending on which TableColumn.renderItemContent function is called).\r\n */\r\n renderItemContent(rowData: any, rowIndex: number): ReactElement\r\n}\r\n\r\nexport type RealTableCellProps = {\r\n /**\r\n * The element in children will be displayed as content for the cell.\r\n */\r\n children?: ReactNode\r\n className?: string\r\n title?: string\r\n}\r\n\r\nclass RealTableColumn extends Component {}\r\nclass RealTableCell extends Component {}\r\n\r\nexport default class RealTable extends Component, any> {\r\n static Column: ComponentClass = RealTableColumn\r\n\r\n static Cell: ComponentClass = RealTableCell\r\n\r\n private _scrollBarRef: VendorScrollbar | null\r\n\r\n constructor(props: RealTableProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n handleClickRow(data: T, e: React.MouseEvent) {\r\n e && e.stopPropagation()\r\n this.props.onClickRow?.(data)\r\n }\r\n\r\n handleDoubleClickRow(data: T, e: React.MouseEvent) {\r\n e && e.stopPropagation()\r\n this.props.onDoubleClickRow?.(data)\r\n }\r\n\r\n handleScroll(e: any) {\r\n const { onScrollBottom } = this.props\r\n if (!onScrollBottom) {\r\n return\r\n }\r\n\r\n const el = e.target || e.view\r\n\r\n if (el.clientHeight + el.scrollTop >= el.scrollHeight - 20) {\r\n onScrollBottom()\r\n }\r\n }\r\n\r\n renderHead() {\r\n const { columns } = this.props\r\n\r\n if (!columns.some((c) => !!c && !!c.props.children)) {\r\n return null\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {columns.map((column, idx) => {\r\n if (!column) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n }\r\n\r\n renderBody() {\r\n const { data } = this.props\r\n\r\n return {data ? data.map(this.renderRow.bind(this)) : null}\r\n }\r\n\r\n renderRow(data: T, rowIndex: number) {\r\n const { columns, getRowClassName } = this.props\r\n const rowClassName = `real-table__row ${getRowClassName?.(data, rowIndex) || \"\"}`\r\n\r\n const rowChildren = columns.map((column, colIdx) => {\r\n if (!column) {\r\n return null\r\n }\r\n\r\n const cellElement = column.props.renderItemContent(data, rowIndex)\r\n const cellClassName = `real-table__cell ${column.props.className || \"\"} ${cellElement.props.className || \"\"}`\r\n\r\n return (\r\n \r\n )\r\n })\r\n\r\n return (\r\n \r\n {rowChildren}\r\n \r\n )\r\n }\r\n\r\n render() {\r\n const scrollable = style({\r\n borderCollapse: \"initial\",\r\n height: this.props.height ? this.props.height : \"100%\",\r\n $nest: {\r\n table: {\r\n width: \"100%\",\r\n },\r\n \"thead th\": {\r\n position: \"sticky\",\r\n top: \"4px\",\r\n zIndex: 99,\r\n background: this.props.tableHeadBackground ? this.props.tableHeadBackground : \"#ffffff\",\r\n overflow: \"initial !important\",\r\n $nest: {\r\n \"&::before\": {\r\n background: this.props.tableHeadBackground ? this.props.tableHeadBackground : \"#ffffff\",\r\n position: \"absolute\",\r\n content: \"''\",\r\n width: \"2px\",\r\n left: \"-2px\",\r\n top: \"-1px\",\r\n bottom: 0,\r\n },\r\n \"&::after\": {\r\n background: this.props.tableHeadBackground ? this.props.tableHeadBackground : \"#ffffff\",\r\n position: \"absolute\",\r\n content: \"''\",\r\n height: \"4px\",\r\n left: \"-2px\",\r\n right: 0,\r\n top: \"-5px\",\r\n },\r\n },\r\n },\r\n },\r\n })\r\n\r\n if (this.props.scrollable) {\r\n return (\r\n
    \r\n {column.props.children}\r\n
    \r\n {cellElement.props.children}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n (this._scrollBarRef = el)}>\r\n
    \r\n \r\n {this.renderHead()}\r\n {this.renderBody()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n return (\r\n \r\n {this.renderHead()}\r\n {this.renderBody()}\r\n
    \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport Scrollspy from \"react-scrollspy\"\r\nimport { bindSpecialReactMethods, getUIA } from \"@tm/utils\"\r\n\r\nexport type ScrollMenuProps = {\r\n ids: { [key: string]: string }\r\n scrollbarViewQuerySelector: string\r\n}\r\n\r\nclass ScrollMenu extends Component {\r\n constructor(props: ScrollMenuProps) {\r\n super(props)\r\n bindSpecialReactMethods(this)\r\n }\r\n\r\n handleMenuClick(id: string) {\r\n const scrollbarView = document.querySelector(this.props.scrollbarViewQuerySelector)\r\n const element = document.getElementById(id)\r\n\r\n if (element && scrollbarView) {\r\n if (scrollbarView.scrollTo) {\r\n scrollbarView.scrollTo(0, element.offsetTop)\r\n } else {\r\n scrollbarView.scrollTop = element.offsetTop\r\n }\r\n }\r\n }\r\n\r\n renderTabs() {\r\n const { ids } = this.props\r\n\r\n return Object.keys>(ids).map((id) => {\r\n return (\r\n {\r\n this.handleMenuClick(id)\r\n }}\r\n {...getUIA(\"Tabs\", id)}\r\n >\r\n
    {ids[id]}
    \r\n \r\n )\r\n })\r\n }\r\n\r\n render() {\r\n const { ids, scrollbarViewQuerySelector } = this.props\r\n\r\n return (\r\n \r\n {this.renderTabs()}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ScrollMenu\r\n","import React, { PropsWithChildren, UIEventHandler, Component } from \"react\"\r\nimport VendorScrollbar from \"react-custom-scrollbars-2\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\n\r\nexport type ScrollbarProps = PropsWithChildren<{\r\n onScroll?: UIEventHandler\r\n onRef?(e: VendorScrollbar | null): void\r\n className?: string\r\n}>\r\n\r\nexport default class Scrollbar extends Component {\r\n private __refElement: VendorScrollbar | null\r\n\r\n /**\r\n *\r\n */\r\n constructor(props: ScrollbarProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n handleScroll(e: any) {\r\n const { onScroll } = this.props\r\n\r\n if (onScroll) {\r\n onScroll(e)\r\n }\r\n }\r\n\r\n handleRef(el: VendorScrollbar | null) {\r\n this.__refElement = el\r\n const { onRef } = this.props\r\n if (onRef) {\r\n onRef(el)\r\n }\r\n }\r\n\r\n render() {\r\n let className = \"scrollbar__view\"\r\n\r\n if (this.props.className) {\r\n className += ` ${this.props.className}`\r\n }\r\n\r\n return (\r\n
    }\r\n renderTrackHorizontal={(props: ScrollbarProps) =>
    }\r\n renderTrackVertical={(props: ScrollbarProps) =>
    }\r\n >\r\n {this.props.children}\r\n \r\n )\r\n }\r\n}\r\n","import Icon from \"../icon\"\r\nimport Text from \"../text\"\r\n\r\nexport function ExternalTooltip(props: { tooltip?: string }) {\r\n if (!props.tooltip) {\r\n return null\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {props.tooltip}\r\n
    \r\n )\r\n}\r\n","import { clone, getValue, setValue, getFieldErrors, Overwrite } from \"@tm/utils\"\r\nimport { Component, CSSProperties, ReactNode } from \"react\"\r\nimport { createErrorMessage, FormElementProps, TextAutoComplete } from \"../../models\"\r\nimport Icon from \"../icon\"\r\nimport Tooltip from \"../tooltip\"\r\nimport { elementId, bindMethodsToContext } from \"../../helper\"\r\nimport { Button, Loader } from \"..\"\r\n\r\nexport type DefaultSearchFieldProps = Overwrite<\r\n FormElementProps,\r\n {\r\n autoComplete?: TextAutoComplete\r\n value?: string\r\n pattern?: RegExp\r\n placeholder?: string\r\n maxLength?: number\r\n showClear?: boolean\r\n showClearTooltip?: string\r\n showSearch?: boolean\r\n tooltip?: string\r\n loading?: boolean\r\n additionalInputIcons?: ReactNode\r\n buttonIcon?: string\r\n\r\n onChangeConfirm?(model: any, path?: Array): void\r\n onChangeReset?(): void\r\n onInputClick?(): void\r\n }\r\n>\r\n\r\nexport type DefaultSearchFieldState = {\r\n value?: any\r\n inputValue?: any\r\n id?: any\r\n edit?: any\r\n errors?: Array\r\n shouldConfirmChange: boolean\r\n}\r\n\r\nexport default class DefaultSearchField extends Component {\r\n private _inputRef: HTMLElement\r\n\r\n private _isMounted = false\r\n\r\n private outerContainerRef: HTMLElement | null\r\n\r\n /**\r\n *\r\n */\r\n constructor(props: DefaultSearchFieldProps) {\r\n super(props)\r\n const { value } = props\r\n\r\n this.state = {\r\n value,\r\n inputValue: value || \"\",\r\n id: elementId(),\r\n shouldConfirmChange: false,\r\n }\r\n\r\n bindMethodsToContext(this)\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n const value = this.getValue(this.props)\r\n this.checkErrors(this.props)\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: DefaultSearchFieldProps) {\r\n const nextValue = this.getValue(nextProps)\r\n const value = this.getValue(this.props)\r\n\r\n if (value != nextValue) {\r\n this.setState({\r\n value: nextValue,\r\n inputValue: nextValue,\r\n })\r\n this.checkErrors(nextProps)\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true\r\n if (this.props.autoFocus) {\r\n this.focus()\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: any, prevState: any) {\r\n if (this.props.autoFocus) {\r\n this.focus()\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false\r\n }\r\n\r\n checkErrors(props: DefaultSearchFieldProps) {\r\n if (props.modelState && props.path) {\r\n const errors = getFieldErrors(props.modelState, props.path)\r\n if (errors) {\r\n this.setState({\r\n errors,\r\n })\r\n }\r\n } else {\r\n this.setState({\r\n errors: [],\r\n })\r\n }\r\n }\r\n\r\n getValue(props: DefaultSearchFieldProps): string {\r\n const value = props.model && props.path ? getValue(props.model, props.path) : props.value\r\n return value != null ? value.toString() : \"\"\r\n }\r\n\r\n setValueToModel(value: any): any {\r\n const model = clone(this.props.model)\r\n if (this.props.path) {\r\n setValue(model, this.props.path, value)\r\n }\r\n return model\r\n }\r\n\r\n handleRef(inputRef: HTMLInputElement) {\r\n this._inputRef = inputRef\r\n if (this.props.onRef) {\r\n this.props.onRef(this)\r\n }\r\n }\r\n\r\n handleChange(e: any) {\r\n let targetValue: string = e.target.value\r\n const currentValue = this.getValue(this.props)\r\n const inputValue = targetValue != null ? targetValue : \"\"\r\n\r\n if (this.props.pattern) {\r\n const test = this.props.pattern.exec(targetValue)\r\n if (test == null) {\r\n return\r\n }\r\n targetValue = test[0]\r\n }\r\n\r\n this.setState({\r\n value: targetValue,\r\n inputValue,\r\n shouldConfirmChange: true,\r\n })\r\n\r\n if (currentValue == targetValue) {\r\n this.setState({ shouldConfirmChange: false })\r\n return\r\n }\r\n\r\n if (this.props.model && this.props.path) {\r\n targetValue = this.setValueToModel(targetValue)\r\n }\r\n\r\n if (this.props.onChange) {\r\n this.props.onChange(targetValue)\r\n }\r\n }\r\n\r\n handleFocus() {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n this.setState({ edit: true })\r\n\r\n const { onFocus } = this.props\r\n onFocus && onFocus()\r\n }\r\n\r\n handleBlur() {\r\n if (this.props.readonly) {\r\n return\r\n }\r\n this.setState({ edit: false })\r\n\r\n const { onBlur } = this.props\r\n onBlur && onBlur()\r\n }\r\n\r\n handleChangeConfirm() {\r\n if (!this.state.shouldConfirmChange) {\r\n return\r\n }\r\n if (this.props.onChangeConfirm) {\r\n let { value } = this.state\r\n\r\n if (this.props.model && this.props.path) {\r\n value = this.setValueToModel(value)\r\n }\r\n\r\n this.setState({ shouldConfirmChange: false })\r\n this.props.onChangeConfirm(value)\r\n }\r\n }\r\n\r\n handleKeyUp(e: React.KeyboardEvent) {\r\n const { readonly } = this.props\r\n if (readonly) {\r\n return\r\n }\r\n switch (e.which) {\r\n case 13: {\r\n this.handleChangeConfirm()\r\n break\r\n }\r\n case 27: {\r\n this.handleClear()\r\n break\r\n }\r\n }\r\n }\r\n\r\n handleClear(ev?: React.SyntheticEvent) {\r\n ev && ev.preventDefault()\r\n const e = {\r\n target: {\r\n value: \"\",\r\n },\r\n }\r\n this.focus()\r\n this.handleChange(e)\r\n if (this.props.onChangeReset) {\r\n this.props.onChangeReset()\r\n }\r\n }\r\n\r\n focus() {\r\n if (!this._isMounted || this.props.readonly) {\r\n return\r\n }\r\n if (!this.state.edit) {\r\n this.setState({ edit: true })\r\n }\r\n setTimeout(() => {\r\n this._inputRef && this._inputRef.focus()\r\n }, 0)\r\n }\r\n\r\n render() {\r\n const {\r\n autoComplete,\r\n label,\r\n className,\r\n readonly,\r\n placeholder,\r\n maxLength,\r\n showClear,\r\n disabled,\r\n tooltip,\r\n showSearch,\r\n showClearTooltip,\r\n loading,\r\n buttonIcon,\r\n onInputClick,\r\n } = this.props\r\n const hasErrors = this.state.errors != null && this.state.errors.length > 0\r\n let elClassName = \"input input--textfield has-icons\"\r\n\r\n elClassName += className ? ` ${className}` : \"\"\r\n elClassName += hasErrors ? \" has-error\" : \"\"\r\n elClassName += readonly ? \" readonly\" : \"\"\r\n elClassName += this.state.edit ? \" is-active\" : \"\"\r\n elClassName += this.props.size ? ` input--${this.props.size}` : \"\"\r\n\r\n const inputClassName = \"input__field\"\r\n\r\n const labelElement = label ? (\r\n \r\n ) : (\r\n false\r\n )\r\n const tabIndex = readonly ? 0 : this.props.tabIndex\r\n\r\n return (\r\n
    \r\n
    \r\n {labelElement}\r\n {\r\n onInputClick && onInputClick()\r\n }}\r\n />\r\n\r\n
    \r\n \r\n {showClear && !readonly ? (\r\n \r\n \r\n \r\n ) : null}\r\n {showSearch ? (\r\n \r\n ) : null}\r\n {tooltip ? (\r\n
    \r\n \r\n \r\n \r\n
    \r\n ) : null}\r\n {this.props.additionalInputIcons}\r\n
    \r\n\r\n {hasErrors && this.outerContainerRef && createErrorMessage(this.state.errors, this.outerContainerRef, \"bottom\")}\r\n
    \r\n
    \r\n )\r\n }\r\n\r\n handleOuterRef = (ref: HTMLElement | null) => {\r\n this.outerContainerRef = ref\r\n }\r\n\r\n getVisibility = (): CSSProperties => {\r\n return { display: this.state.inputValue ? \"unset\" : \"none\" }\r\n }\r\n}\r\n","import { Component, createRef, RefObject } from \"react\"\r\nimport DefaultSearchField, { DefaultSearchFieldProps } from \"./index.default\"\r\nimport { ExternalTooltip } from \"./external-hint\"\r\n\r\nexport default class SearchFieldWithExternalHintField extends Component {\r\n private _inputRef: RefObject\r\n\r\n constructor(props: DefaultSearchFieldProps) {\r\n super(props)\r\n this._inputRef = createRef()\r\n }\r\n\r\n focus() {\r\n this._inputRef.current && this._inputRef.current.focus && this._inputRef.current.focus()\r\n }\r\n\r\n render() {\r\n const { tooltip, ...rest } = this.props\r\n return (\r\n <>\r\n \r\n {tooltip && }\r\n \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { Overwrite } from \"@tm/utils\"\r\nimport { FormElementProps, TextAutoComplete } from \"../../models\"\r\nimport { ControlsConfig } from \"../../configuration\"\r\nimport DefaultSearchField from \"./index.default\"\r\nimport SearchFieldWithExternalHintField from \"./index.external-hint\"\r\n\r\nexport { ExternalTooltip } from \"./external-hint\"\r\n\r\nexport type SearchFieldProps = Overwrite<\r\n FormElementProps,\r\n {\r\n autoComplete?: TextAutoComplete\r\n value?: string\r\n pattern?: RegExp\r\n placeholder?: string\r\n maxLength?: number\r\n showClear?: boolean\r\n showClearTooltip?: string\r\n showSearch?: boolean\r\n tooltip?: string\r\n loading?: boolean\r\n forceShowTooltipOnHover?: boolean\r\n\r\n onInputClick?(): void\r\n onChangeConfirm?(model: any, path?: Array): void\r\n onChangeReset?(): void\r\n }\r\n>\r\n\r\nexport type SearchFieldConfig = {\r\n showHintAsTooltip?: boolean\r\n}\r\n\r\nexport type SearchFieldState = {\r\n props: SearchFieldProps\r\n}\r\n\r\nexport default class SearchField extends Component {\r\n private searchField: any\r\n\r\n private searchFieldRef: any\r\n\r\n constructor(props: SearchFieldProps) {\r\n super(props)\r\n\r\n this.state = {\r\n props: ControlsConfig.get(\"SearchField\"),\r\n }\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n this.searchField =\r\n this.props.forceShowTooltipOnHover || this.state.props.showHintAsTooltip ? DefaultSearchField : SearchFieldWithExternalHintField\r\n }\r\n\r\n focus = () => {\r\n const ref = this.searchFieldRef.current || this.searchFieldRef\r\n ref && ref.focus && ref.focus()\r\n }\r\n\r\n onRef = (ref: SearchField) => {\r\n this.props.onRef && this.props.onRef(ref)\r\n this.searchFieldRef = ref\r\n }\r\n\r\n render() {\r\n const SearchField = this.searchField\r\n return \r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { LocalizationProps } from \"@tm/localization\"\r\nimport { bindMethodsToContext } from \"../../../helper\"\r\nimport { Icon, Text } from \"../..\"\r\nimport { ListItemGroup, ListItem } from \"..\"\r\nimport SelectionListItem from \"./selection-list-item\"\r\n\r\nexport type Props = LocalizationProps & {\r\n group: ListItemGroup\r\n containsSelectedItems: boolean\r\n initiallyOpened?: boolean\r\n initiallyShowOthers?: boolean\r\n onItemToggle(item: ListItem, exclusive: boolean): void\r\n isItemSelected(item: ListItem): boolean\r\n canCollapse?: boolean\r\n itemSize?: \"s\" | \"m\"\r\n onToggleCollapseGroup?(): void\r\n onToggleShowOthers?(): void\r\n}\r\n\r\nexport type State = {\r\n prioritizedItems: PrioritizedItems\r\n isCollapsed: boolean\r\n showOthers: boolean\r\n}\r\n\r\nexport type PrioritizedItems = {\r\n high: Array\r\n normal: Array\r\n low: Array\r\n}\r\n\r\nconst DEFAULT_SORT_NUMBER = 999999\r\n\r\nexport default class SelectionListGroup extends Component {\r\n constructor(props: Props) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n\r\n const { group, containsSelectedItems, canCollapse, initiallyOpened, initiallyShowOthers } = this.props\r\n\r\n this.state = {\r\n prioritizedItems: this.getPrioritizedItems(group.items),\r\n isCollapsed: this.checkCollapsedState(props),\r\n showOthers: initiallyShowOthers ?? false,\r\n }\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\r\n this.setState({\r\n prioritizedItems: this.getPrioritizedItems(nextProps.group.items),\r\n })\r\n }\r\n\r\n checkCollapsedState = (props: Props) => {\r\n return !!props.canCollapse && !props.containsSelectedItems && (props.initiallyOpened === false || props.group.priority != \"high\")\r\n }\r\n\r\n public toggleOthers() {\r\n this.handleToggleShowOthers()\r\n }\r\n\r\n public showOthers() {\r\n this.setState({ showOthers: true })\r\n }\r\n\r\n public hideOthers() {\r\n this.setState({ showOthers: false })\r\n }\r\n\r\n private getPrioritizedItems(items: Array): PrioritizedItems {\r\n return {\r\n high: items.filter((x) => x.priority == \"high\" || x.priority == \"high-normal\").orderBy((x) => x.sortNumber || DEFAULT_SORT_NUMBER),\r\n normal: items.filter((x) => x.priority == \"normal\" || x.priority == \"normal-high\").orderBy((x) => x.sortNumber || DEFAULT_SORT_NUMBER),\r\n low: items.filter((x) => x.priority == \"low\" || !x.priority).orderBy((x) => x.sortNumber || DEFAULT_SORT_NUMBER),\r\n }\r\n }\r\n\r\n private handleToggleCollapse() {\r\n this.setState((prevState) => {\r\n return {\r\n isCollapsed: !prevState.isCollapsed,\r\n }\r\n })\r\n this.props.onToggleCollapseGroup?.()\r\n }\r\n\r\n private handleToggleShowOthers() {\r\n this.setState((prevState) => {\r\n return {\r\n showOthers: !prevState.showOthers,\r\n }\r\n })\r\n this.props.onToggleShowOthers?.()\r\n }\r\n\r\n private renderItem(item: ListItem, idx: number) {\r\n const { isItemSelected, onItemToggle, itemSize, localization } = this.props\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n private renderShowOthersButton() {\r\n return (\r\n
  • \r\n {this.props.localization.translate(this.state.showOthers ? 169 : 168)}\r\n
  • \r\n )\r\n }\r\n\r\n private renderItems() {\r\n const { isCollapsed, showOthers, prioritizedItems } = this.state\r\n\r\n if (isCollapsed) {\r\n return\r\n }\r\n\r\n const { high, normal, low } = prioritizedItems\r\n\r\n const hasPriorityItems = !!high.length\r\n const hasOtherItems = !!normal.length || !!low.length\r\n\r\n return (\r\n <>\r\n {high.map(this.renderItem)}\r\n
    \r\n {hasPriorityItems && hasOtherItems && this.renderShowOthersButton()}\r\n {(showOthers || !hasPriorityItems) && (\r\n <>\r\n {normal.map(this.renderItem)}\r\n {!!normal.length && !!low.length &&
  • }\r\n {low.map(this.renderItem)}\r\n \r\n )}\r\n
  • \r\n \r\n )\r\n }\r\n\r\n render() {\r\n const { itemSize, group, canCollapse } = this.props\r\n\r\n let groupClassName = \"selection-list__group-name\"\r\n groupClassName += canCollapse ? \" is-clickable\" : \"\"\r\n\r\n return (\r\n
      \r\n {group.name && (\r\n
    • \r\n {canCollapse && }\r\n \r\n {group.name}\r\n \r\n
    • \r\n )}\r\n {this.renderItems()}\r\n
    \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { IWithLocalization } from \"@tm/localization\"\r\nimport { bindMethodsToContext } from \"../../../helper\"\r\nimport { Checkbox, Text } from \"../..\"\r\nimport { ListItem } from \"..\"\r\nimport { getUIA } from \"@tm/utils\"\r\n\r\nexport type Props = {\r\n item: ListItem\r\n isSelected: boolean\r\n onToggle(item: ListItem, exlusive: boolean): void\r\n localization: IWithLocalization\r\n size?: \"s\" | \"m\"\r\n}\r\n\r\nexport default class SelectionListItem extends Component {\r\n constructor(props: Props) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n handleToggle() {\r\n this.props.onToggle(this.props.item, false)\r\n }\r\n\r\n handleToggleExclusive() {\r\n this.props.onToggle(this.props.item, true)\r\n }\r\n\r\n renderValue() {\r\n const {\r\n item,\r\n size,\r\n localization: { translateText },\r\n } = this.props\r\n\r\n return (\r\n \r\n
    \r\n {item.name} {item.resultCount != undefined && `(${item.resultCount})`}\r\n
    \r\n \r\n )\r\n }\r\n\r\n renderDescription() {\r\n const { item } = this.props\r\n\r\n if (!item.description) {\r\n return\r\n }\r\n\r\n return (\r\n \r\n {item.description}\r\n \r\n )\r\n }\r\n\r\n render() {\r\n const { item, isSelected, size } = this.props\r\n\r\n let className = \"is-clickable selection-list__item\"\r\n className += ` selection-list__item--${item.priority || \"normal\"}-priority`\r\n\r\n return (\r\n
  • \r\n \r\n\r\n
    \r\n {this.renderValue()}\r\n {this.renderDescription()}\r\n
    \r\n
  • \r\n )\r\n }\r\n}\r\n","import { LocalizationProps } from \"@tm/localization\"\r\nimport { getUIA } from \"@tm/utils\"\r\nimport { Component, createRef, RefObject } from \"react\"\r\nimport { Text } from \"..\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport SelectionListGroup from \"./components/selection-list-group\"\r\n\r\nexport type ListItemGroup = {\r\n name?: string\r\n priority?: \"high\" | \"low\"\r\n sortNumber?: number\r\n items: Array\r\n}\r\n\r\nexport type ListItem = {\r\n name: string\r\n query: string\r\n priority?: \"high\" | \"high-normal\" | \"normal\" | \"normal-high\" | \"low\"\r\n sortNumber?: number\r\n groupName?: string\r\n description?: string\r\n resultCount?: number\r\n}\r\n\r\nexport type Props = LocalizationProps & {\r\n groups: Array\r\n selected: Array\r\n onToggleCollapseGroup?(): void\r\n onToggleOthers?(): void\r\n onToggleShowOthers?(): void\r\n onChange(items: Array): void\r\n className?: string\r\n canCollapseGroups?: boolean\r\n size?: \"s\" | \"m\"\r\n noExclusiveToggle?: boolean\r\n initiallyShowOthers?: boolean\r\n initiallyOpened?: boolean\r\n\r\n showOthersText?: string\r\n hideOthersText?: string\r\n}\r\n\r\nexport type State = {\r\n showOthers: boolean\r\n}\r\n\r\nexport default class SelectionList extends Component {\r\n private groupRefs: Array> = []\r\n\r\n static defaultProps: Partial = {\r\n size: \"s\",\r\n }\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n this.isSelected = this.isSelected.bind(this)\r\n\r\n this.state = {\r\n showOthers: props.initiallyShowOthers ?? false,\r\n }\r\n }\r\n\r\n public toggleOthers(groupsToo?: boolean) {\r\n this.handleToggleShowOthers()\r\n groupsToo && this.groupRefs.forEach((ref) => ref.current && ref.current.toggleOthers())\r\n }\r\n\r\n public showOthers(groupsToo?: boolean) {\r\n this.setState({ showOthers: true })\r\n groupsToo && this.groupRefs.forEach((ref) => ref.current && ref.current.showOthers())\r\n this.props.onToggleOthers?.()\r\n }\r\n\r\n public hideOthers(groupsToo?: boolean) {\r\n this.setState({ showOthers: false })\r\n groupsToo && this.groupRefs.forEach((ref) => ref.current && ref.current.hideOthers())\r\n this.props.onToggleOthers?.()\r\n }\r\n\r\n private isSelected(item: ListItem): boolean {\r\n return this.props.selected.some((y) => y.query == item.query)\r\n }\r\n\r\n private handleToggleShowOthers() {\r\n this.setState((prevState) => {\r\n return {\r\n showOthers: !prevState.showOthers,\r\n }\r\n })\r\n this.props.onToggleOthers?.()\r\n }\r\n\r\n private handleItemToggle(item: ListItem, exclusive: boolean) {\r\n const { selected, onChange, noExclusiveToggle } = this.props\r\n\r\n if (!noExclusiveToggle && exclusive) {\r\n if (this.isSelected(item)) {\r\n onChange(selected.filter((x) => x.query != item.query))\r\n } else {\r\n onChange(selected.filter((x) => x.groupName != item.groupName).concat([item]))\r\n }\r\n } else if (this.isSelected(item)) {\r\n onChange(selected.filter((x) => x.query != item.query))\r\n } else {\r\n onChange([...selected, item])\r\n }\r\n }\r\n\r\n private renderGroup(group: ListItemGroup, idx: number) {\r\n const { size, canCollapseGroups, localization, initiallyOpened, initiallyShowOthers } = this.props\r\n\r\n if (this.groupRefs.length <= idx) {\r\n this.groupRefs.push(createRef())\r\n }\r\n\r\n const containsSelectedItems = group.items.some(this.isSelected)\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n private renderShowOthersButton() {\r\n const { translateText } = this.props.localization\r\n\r\n let text = \"\"\r\n\r\n if (this.state.showOthers) {\r\n text = this.props.hideOthersText || translateText(169)\r\n } else {\r\n text = this.props.showOthersText || translateText(168)\r\n }\r\n\r\n return (\r\n
    \r\n {text}\r\n
    \r\n )\r\n }\r\n\r\n render() {\r\n const { groups, size } = this.props\r\n\r\n let className = \"selection-list \"\r\n className += ` selection-list--${size} `\r\n if (this.props.className) {\r\n className += this.props.className\r\n }\r\n\r\n const priorityGroups = groups.filter((x) => x.priority == \"high\")\r\n const otherGroups = groups.filter((x) => x.priority == \"low\" || !x.priority)\r\n\r\n const hasPriorityGroups = !!priorityGroups.length\r\n const hasOtherGroups = !!otherGroups.length\r\n\r\n return (\r\n
    \r\n {priorityGroups.map(this.renderGroup)}\r\n {hasPriorityGroups && hasOtherGroups && this.renderShowOthersButton()}\r\n
    \r\n {(this.state.showOthers || !hasPriorityGroups) && otherGroups.map(this.renderGroup)}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\n\r\nexport type ListItem = {\r\n [key: string]: any // each list item can contain any additional properties\r\n label?: string\r\n value?: string\r\n}\r\n\r\nexport type Props = {\r\n items: Array\r\n className?: string\r\n onRef?(ref: HTMLElement): void\r\n onValueSelect?(item: ListItem): void\r\n renderItem?(item: ListItem): JSX.Element\r\n}\r\n\r\nexport default class SeparatorList extends Component {\r\n constructor(props: Props) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n handleListRef(el: HTMLElement | null) {\r\n const { onRef } = this.props\r\n el && onRef && onRef(el)\r\n }\r\n\r\n handleValueSelect(item: ListItem) {\r\n const { onValueSelect } = this.props\r\n onValueSelect && onValueSelect(item)\r\n }\r\n\r\n renderItemContent(item: ListItem) {\r\n return (\r\n <>\r\n {!!item.label && {item.label}}\r\n {!!item.value && (\r\n this.handleValueSelect(item)}>\r\n {item.value}\r\n \r\n )}\r\n \r\n )\r\n }\r\n\r\n renderItem(item: ListItem, idx: number, items: Array) {\r\n const { renderItem } = this.props\r\n\r\n if (!item.label && !item.value && !renderItem) {\r\n return\r\n }\r\n\r\n return (\r\n
  • \r\n {renderItem ? renderItem(item) : this.renderItemContent(item)}\r\n
  • \r\n )\r\n }\r\n\r\n render() {\r\n const { items } = this.props\r\n if (!items.length) {\r\n return null\r\n }\r\n\r\n let className = \"separator-list \"\r\n className += this.props.className || \"\"\r\n\r\n return (\r\n
      \r\n {items.map(this.renderItem)}\r\n
    \r\n )\r\n }\r\n}\r\n","import { FunctionComponent, PropsWithChildren, memo } from \"react\"\r\nimport { style, keyframes } from \"typestyle\"\r\n\r\nconst SkeletonKeyFrame = keyframes({\r\n \"0%\": {\r\n opacity: 1,\r\n },\r\n \"50%\": {\r\n opacity: 0.4,\r\n },\r\n \"100%\": {\r\n opacity: 1,\r\n },\r\n})\r\n\r\nconst SkeletonStyles = style({\r\n display: \"block\",\r\n backgroundColor: \"rgba(0, 0, 0, 0.11)\",\r\n\r\n $nest: {\r\n \"&:empty::before\": {\r\n content: \"'\\\\00a0'\",\r\n },\r\n\r\n \"&.pulse\": {\r\n animationName: SkeletonKeyFrame,\r\n animationDuration: \"1.5s\",\r\n animationTimingFunction: \"ease-in-out\",\r\n animationIterationCount: \"infinite\",\r\n },\r\n \"&.text\": {\r\n height: \"auto\",\r\n transform: \"scale(1, 0.60)\",\r\n marginTop: 0,\r\n borderRadius: \"4px\",\r\n marginBottom: 0,\r\n transformOrigin: \"0 60%\",\r\n },\r\n \"&.circle\": {\r\n borderRadius: \"50%\",\r\n },\r\n },\r\n})\r\n\r\ntype SkeletonProps = PropsWithChildren<{\r\n variant?: \"text\" | \"circle\" | \"rect\"\r\n height?: string\r\n width?: string\r\n}>\r\n\r\nexport const Skeleton: FunctionComponent = memo(({ children, variant, width, height }) => (\r\n \r\n {children}\r\n \r\n))\r\n","import { Component, PropsWithChildren } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport Text from \"../text\"\r\nimport Button from \"../button\"\r\n\r\nexport type StepProps = PropsWithChildren<{\r\n id?: any\r\n checked?: boolean\r\n current?: boolean\r\n disabled?: boolean\r\n hideIcon?: boolean\r\n title: string\r\n description?: string\r\n onClick?: (name: string, id?: string | number) => void\r\n onCloseClick?: (name: string, id?: string | number) => void\r\n}>\r\n\r\nexport type StepState = {\r\n stepIcon: \"check\" | \"error\"\r\n}\r\n\r\nexport class StepsContainer extends Component {\r\n render() {\r\n return
    {this.props.children}
    \r\n }\r\n}\r\n\r\nexport default class Step extends Component {\r\n static Container = StepsContainer\r\n\r\n constructor(props: StepProps) {\r\n super(props)\r\n bindMethodsToContext(this, [\"get\", \"stop\"])\r\n\r\n this.state = {\r\n stepIcon: \"check\",\r\n }\r\n }\r\n\r\n render() {\r\n const { hideIcon, checked, current, title, description } = this.props\r\n const { stepIcon } = this.state\r\n\r\n const baseName = \"step\"\r\n const qualifiedClass = this.getQualifiedClass(baseName)\r\n\r\n const headModifiers: any = []\r\n const textModifiers: any = []\r\n\r\n if (current) {\r\n headModifiers.push(\"light\")\r\n textModifiers.push(\"light\")\r\n } else {\r\n headModifiers.push(\"strong\")\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.props.children && this.props.children}\r\n {!this.props.children && (\r\n <>\r\n \r\n {title}\r\n \r\n {description && (\r\n \r\n {description}\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n {!hideIcon && checked &&
    \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n handleCloseIconClick(e: React.MouseEvent) {\r\n const { disabled, onCloseClick, id } = this.props\r\n if (disabled) {\r\n return\r\n }\r\n\r\n // icon has no function, so it has to bubble\r\n this.stopPropagation(e)\r\n\r\n onCloseClick && onCloseClick(id)\r\n }\r\n\r\n handleStepClick(e: React.MouseEvent) {\r\n this.stopPropagation(e)\r\n const { disabled, onClick, id } = this.props\r\n if (disabled) {\r\n return\r\n }\r\n\r\n onClick && onClick(id)\r\n }\r\n\r\n stopPropagation(e: React.MouseEvent) {\r\n e.stopPropagation()\r\n e.preventDefault()\r\n e.bubbles = false\r\n }\r\n\r\n handleMouseOver() {\r\n const { disabled, onCloseClick } = this.props\r\n if (disabled || !onCloseClick) {\r\n return\r\n }\r\n\r\n this.setState((prevState: StepState) => {\r\n const stepIcon = prevState.stepIcon === \"check\" ? \"error\" : \"check\"\r\n return { stepIcon }\r\n })\r\n }\r\n\r\n getQualifiedClass(baseName: string) {\r\n let qualifiedClass = `${baseName}`\r\n const { current, checked, disabled, description } = this.props\r\n\r\n if (checked) {\r\n qualifiedClass = `${qualifiedClass} ${baseName}--checked`\r\n }\r\n\r\n if (current) {\r\n qualifiedClass = `${qualifiedClass} ${baseName}--current`\r\n }\r\n\r\n if (disabled || (!current && !checked)) {\r\n qualifiedClass = `${qualifiedClass} ${baseName}--disabled`\r\n }\r\n\r\n if (!description) {\r\n qualifiedClass = `${qualifiedClass} ${baseName}--no-description`\r\n }\r\n\r\n return qualifiedClass\r\n }\r\n}\r\n","import { Component, ReactNode, Fragment, PropsWithChildren, Children } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { SizedProps } from \"../../models/SharedModels\"\r\n\r\nexport type SubTitleProps = PropsWithChildren\r\n\r\nexport default class SubTitle extends Component {\r\n constructor(props: SubTitleProps) {\r\n super(props)\r\n bindMethodsToContext(this, [\"get\"])\r\n }\r\n\r\n render() {\r\n const fullClassName = this.getClassName()\r\n\r\n return
    {Children.map(this.props.children, this.renderChildren)}
    \r\n }\r\n\r\n renderChildren(child: ReactNode, index: number): ReactNode {\r\n return {child}\r\n }\r\n\r\n getClassName() {\r\n const { size, className } = this.props\r\n const baseName = \"subtitle\"\r\n let fullClassName = `${baseName}`\r\n\r\n if (size) {\r\n fullClassName += ` ${baseName}--${size}`\r\n }\r\n\r\n if (className) {\r\n fullClassName += ` ${className}`\r\n }\r\n\r\n return fullClassName\r\n }\r\n}\r\n","import { bindSpecialReactMethods, ButtonKeyDefinition, Omit, Overwrite, registerOutsideClick } from \"@tm/utils\"\r\n\r\nimport { Component, createRef, ReactNode, RefObject } from \"react\"\r\nimport { Scrollbar, SearchFieldProps, Table } from \"..\"\r\nimport { ControlsConfig } from \"../../configuration\"\r\nimport { SearchFieldConfig } from \"../search-field\"\r\nimport { ExternalTooltip } from \"../search-field/external-hint\"\r\nimport DefaultSearchField from \"../search-field/index.default\"\r\n\r\nexport type Props = Overwrite<\r\n Omit,\r\n {\r\n value: string // value can just be a string, model and path are not available\r\n\r\n loading?: boolean\r\n suggestions: Array\r\n requestSuggestions(value: string): void\r\n\r\n onChange(value: string): void // overwrite to only support value\r\n onChangeConfirm(value: string): void // overwrite to only support value\r\n onSuggestionSelect?(suggestion: TSuggestion): void\r\n onClose?(): void\r\n\r\n renderTableColumns?(): Array\r\n\r\n additionalInputIcons?: ReactNode\r\n appendix?: JSX.Element | Array\r\n dropdownPrefix?: ReactNode\r\n\r\n maxHeight?: number\r\n suggestDelay?: number\r\n modifier?: \"active\" | \"highlight\"\r\n enableLeadingTrim?: boolean\r\n minCharactersToSuggest?: number\r\n\r\n ignoreConfig?: Array\r\n forceShowTooltipOnHover?: boolean\r\n\r\n buttonIcon?: string\r\n }\r\n>\r\n\r\nexport type State = {\r\n open?: boolean\r\n markedIndex?: number\r\n props: SearchFieldConfig\r\n}\r\n\r\nconst SELECTED_ITEM_CLASSNAME = \"is-selected\"\r\n\r\ntype ScrollbarRef = {\r\n container?: HTMLElement\r\n view?: HTMLElement\r\n}\r\n\r\nexport default class SuggestionField extends Component, State> {\r\n private suggestionTimeoutId: number | undefined\r\n\r\n private scrollBoxRef: RefObject = createRef()\r\n\r\n private searchFieldRef: RefObject = createRef()\r\n\r\n private scrollbarRef: ScrollbarRef | undefined\r\n\r\n private unregisterOutsideClick?: () => void\r\n\r\n private loadSuggestionsAfterFocus = true\r\n\r\n static defaultProps = {\r\n suggestionTimeout: 250,\r\n }\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n bindSpecialReactMethods(this)\r\n\r\n this.state = {\r\n open: false,\r\n markedIndex: undefined,\r\n props: ControlsConfig.get(\"SearchField\"),\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.clearTimeout(this.suggestionTimeoutId)\r\n this.unregisterOutsideClick && this.unregisterOutsideClick()\r\n }\r\n\r\n componentDidUpdate() {\r\n const { maxHeight } = this.props\r\n\r\n if (!this.scrollbarRef || !maxHeight) {\r\n return\r\n }\r\n\r\n const { view } = this.scrollbarRef\r\n if (!view) {\r\n return\r\n }\r\n\r\n const list: HTMLElement | null = view.querySelector(\".fancy-list\")\r\n if (!list) {\r\n return\r\n }\r\n\r\n let { height } = list.getBoundingClientRect()\r\n\r\n if (height > maxHeight) {\r\n height = maxHeight\r\n const scrollerWidth = 12\r\n list.style.paddingRight = `${scrollerWidth}px`\r\n } else {\r\n list.style.paddingRight = \"\"\r\n }\r\n\r\n const { container } = this.scrollbarRef\r\n if (!container) {\r\n return\r\n }\r\n container.style.height = `${height}px`\r\n }\r\n\r\n public focus(loadSuggestions = true) {\r\n this.loadSuggestionsAfterFocus = loadSuggestions\r\n this.searchFieldRef.current && this.searchFieldRef.current.focus()\r\n }\r\n\r\n private loadSuggestions(query: string, instant = false) {\r\n if (query.length < (this.props.minCharactersToSuggest || 2)) {\r\n return\r\n }\r\n\r\n const { requestSuggestions } = this.props\r\n\r\n this.setState({\r\n open: true,\r\n markedIndex: undefined,\r\n })\r\n\r\n if (this.scrollBoxRef.current) {\r\n this.unregisterOutsideClick = registerOutsideClick(this.scrollBoxRef.current, this.handleClose)\r\n }\r\n\r\n if (instant) {\r\n requestSuggestions(query)\r\n } else {\r\n window.clearTimeout(this.suggestionTimeoutId)\r\n this.suggestionTimeoutId = window.setTimeout(() => requestSuggestions(query), this.props.suggestDelay)\r\n }\r\n }\r\n\r\n private handleScrollbarRef(ref: any) {\r\n if (!ref) {\r\n return\r\n }\r\n\r\n // Scrollbar component has changed\r\n if (!(ref as ScrollbarRef).view || !(ref as ScrollbarRef).container) {\r\n console.warn(\"Some functions (height of suggestions, automated scrolling) are not possible due to changes in the Scrollbar component\")\r\n return\r\n }\r\n\r\n this.scrollbarRef = ref\r\n }\r\n\r\n private handleClose() {\r\n const { onClose } = this.props\r\n\r\n this.setState({\r\n open: false,\r\n markedIndex: undefined,\r\n })\r\n\r\n onClose && onClose()\r\n }\r\n\r\n private handleKeyStroke(e: React.KeyboardEvent) {\r\n const { markedIndex } = this.state\r\n\r\n switch (e.key) {\r\n case ButtonKeyDefinition.ArrowUp: {\r\n e.preventDefault()\r\n this.handleMarkPreviousSuggestion()\r\n break\r\n }\r\n case ButtonKeyDefinition.ArrowDown: {\r\n e.preventDefault()\r\n this.handleMarkNextSuggestion()\r\n break\r\n }\r\n }\r\n }\r\n\r\n private handleKeyUp(e: React.KeyboardEvent) {\r\n const { markedIndex } = this.state\r\n\r\n switch (e.key) {\r\n case ButtonKeyDefinition.Escape:\r\n case ButtonKeyDefinition.Tab: {\r\n this.handleClose()\r\n break\r\n }\r\n case ButtonKeyDefinition.Enter: {\r\n e.preventDefault()\r\n\r\n if (markedIndex != undefined) {\r\n this.handleSuggestionSelect(this.props.suggestions[markedIndex])\r\n } else {\r\n this.props.onChangeConfirm(this.props.value)\r\n this.handleClose()\r\n }\r\n\r\n break\r\n }\r\n }\r\n }\r\n\r\n private handleMarkNextSuggestion() {\r\n const { suggestions } = this.props\r\n if (!suggestions.length) {\r\n return\r\n }\r\n\r\n this.setState(\r\n (prevState) => {\r\n let { markedIndex = -1 } = prevState\r\n markedIndex++\r\n\r\n if (markedIndex < suggestions.length) {\r\n return { markedIndex }\r\n }\r\n\r\n return { markedIndex: undefined }\r\n },\r\n () => this.handleScrolling()\r\n )\r\n }\r\n\r\n private handleMarkPreviousSuggestion() {\r\n const { suggestions } = this.props\r\n if (!suggestions.length) {\r\n return\r\n }\r\n\r\n this.setState(\r\n (prevState) => {\r\n let { markedIndex = suggestions.length } = prevState\r\n markedIndex--\r\n\r\n if (markedIndex >= 0) {\r\n return { markedIndex }\r\n }\r\n\r\n return { markedIndex: undefined }\r\n },\r\n () => this.handleScrolling()\r\n )\r\n }\r\n\r\n private handleScrolling() {\r\n const { suggestions } = this.props\r\n const { markedIndex } = this.state\r\n if (markedIndex == undefined || !suggestions.length || suggestions.length == 1 || !this.scrollbarRef || !this.scrollbarRef.container) {\r\n return\r\n }\r\n\r\n const selectedItem = this.scrollbarRef.container.querySelector(`.fancy-list__item.${SELECTED_ITEM_CLASSNAME}`)\r\n if (!selectedItem) {\r\n return\r\n }\r\n\r\n selectedItem.scrollIntoView({ behavior: \"smooth\", block: \"end\" })\r\n }\r\n\r\n private handleChange(query: string) {\r\n const { onChange } = this.props\r\n onChange && onChange(query)\r\n\r\n const value = this.prepareSuggestValue(query)\r\n\r\n if (value.length >= (this.props.minCharactersToSuggest || 2)) {\r\n this.loadSuggestions(value)\r\n }\r\n }\r\n\r\n prepareSuggestValue = (value: string): string => {\r\n const checkLeadingOrOnlyWhitespaces = /(\\s+)\\w+|^\\s+/\r\n const leadingWhitespaces = /^\\s/\r\n\r\n if (this.props.enableLeadingTrim && checkLeadingOrOnlyWhitespaces.test(value)) {\r\n value = value.replace(leadingWhitespaces, \"\")\r\n }\r\n\r\n return value\r\n }\r\n\r\n private handleChangeConfirm(value: string) {\r\n const { onChangeConfirm } = this.props\r\n onChangeConfirm && onChangeConfirm(value)\r\n this.handleClose()\r\n }\r\n\r\n private handleSuggestionSelect(suggestion: TSuggestion) {\r\n const { onSuggestionSelect } = this.props\r\n onSuggestionSelect && onSuggestionSelect(suggestion)\r\n\r\n this.focus(false)\r\n\r\n this.setState({\r\n markedIndex: undefined,\r\n })\r\n }\r\n\r\n private handleFocus() {\r\n const { value, onFocus } = this.props\r\n onFocus && onFocus()\r\n\r\n if (!this.loadSuggestionsAfterFocus) {\r\n this.loadSuggestionsAfterFocus = true\r\n return\r\n }\r\n\r\n // don't reload suggestions if the suggest box is already opened and the input gets focus\r\n // e.g. the user selects a suggestion, the input box is focused again\r\n if (this.state.open) {\r\n return\r\n }\r\n\r\n this.loadSuggestions(value, true)\r\n }\r\n\r\n private renderTableColumns() {\r\n const { renderTableColumns } = this.props\r\n if (renderTableColumns) {\r\n return renderTableColumns()\r\n }\r\n\r\n return [ {item}} />]\r\n }\r\n\r\n private renderSuggestions() {\r\n const { suggestions } = this.props\r\n const { markedIndex } = this.state\r\n\r\n if (!suggestions.length) {\r\n return\r\n }\r\n\r\n return (\r\n \r\n (idx == markedIndex ? SELECTED_ITEM_CLASSNAME : \"\")}\r\n getFocusedRowIndex={() => markedIndex || 0}\r\n />\r\n \r\n )\r\n }\r\n\r\n render() {\r\n const { suggestions, appendix, size, dropdownPrefix, modifier, tooltip, ignoreConfig, buttonIcon } = this.props\r\n const {\r\n open,\r\n props: { showHintAsTooltip },\r\n } = this.state\r\n\r\n const showSuggestions = open && (suggestions.length || dropdownPrefix)\r\n\r\n const tooltipText = showHintAsTooltip ? tooltip : this.props.forceShowTooltipOnHover ? tooltip : undefined\r\n const ignoreHintAsTooltip = ignoreConfig && ignoreConfig.indexOf(\"showHintAsTooltip\") >= 0\r\n\r\n let className = \"suggest suggest--new \"\r\n if (showSuggestions) {\r\n className += \"suggest--open \"\r\n }\r\n if (modifier) {\r\n className += `suggest--${modifier} `\r\n }\r\n if (this.props.className) {\r\n className += this.props.className\r\n }\r\n\r\n let boxClassName = \"suggest__box \"\r\n if (size) {\r\n boxClassName += `suggest__box--${size} `\r\n }\r\n if (showSuggestions) {\r\n boxClassName += \"is-visible \"\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n {dropdownPrefix}\r\n {this.renderSuggestions()}\r\n
    \r\n\r\n \r\n\r\n
    {appendix}
    \r\n
    \r\n {!this.props.forceShowTooltipOnHover && !ignoreHintAsTooltip && !showHintAsTooltip && }\r\n \r\n )\r\n }\r\n}\r\n","import { bindSpecialReactMethods, Overwrite, Omit } from \"@tm/utils\"\r\nimport { Component, createRef, ReactNode, RefObject } from \"react\"\r\nimport { SearchFieldProps, InputGroup, SuggestionField, Button } from \"..\"\r\nimport { InputGroupSizes } from \"../inputgroup\"\r\nimport { Size } from \"../../models/skins\"\r\nimport { ExternalTooltip } from \"../search-field/external-hint\"\r\nimport { SearchFieldConfig } from \"../search-field\"\r\nimport { ControlsConfig } from \"../../configuration\"\r\n\r\nexport type Props = Overwrite<\r\n Omit,\r\n {\r\n value: string // value can just be a string, model and path are not available\r\n\r\n loading?: boolean\r\n suggestions: Array\r\n requestSuggestions(value: string): void\r\n\r\n onChange(value: string): void // overwrite to only support value\r\n onChangeConfirm(value: string): void // overwrite to only support value\r\n onSuggestionSelect?(suggestion: TSuggestion): void\r\n\r\n renderTableColumns?(): Array\r\n\r\n additionalInputIcons?: ReactNode\r\n appendix?: JSX.Element | Array\r\n dropdownPrefix?: ReactNode\r\n\r\n maxHeight?: number\r\n suggestDelay?: number\r\n modifier?: \"active\" | \"highlight\"\r\n\r\n handleSearchButtonClick: () => void\r\n extraButton?: JSX.Element\r\n size?: InputGroupSizes\r\n suggestBoxSize?: Size\r\n buttonTitle?: string\r\n enableLeadingTrim?: boolean\r\n minCharactersToSuggest?: number\r\n ignoreConfig?: Array\r\n forceShowTooltipOnHover?: boolean\r\n placeholder?: string\r\n buttonIcon?: string\r\n }\r\n>\r\n\r\nexport type State = {\r\n isFocused: boolean\r\n props: SearchFieldConfig\r\n}\r\n\r\nexport default class SuggestionFieldButtonGroup extends Component, State> {\r\n suggestionFieldRef: RefObject>\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n bindSpecialReactMethods(this)\r\n this.suggestionFieldRef = createRef()\r\n this.state = {\r\n isFocused: false,\r\n props: ControlsConfig.get(\"SearchField\"),\r\n }\r\n }\r\n\r\n handleFocus(e?: React.FocusEvent) {\r\n this.setState({ isFocused: true })\r\n this.props.onFocus && this.props.onFocus(e)\r\n }\r\n\r\n handleBlur(e?: React.FocusEvent) {\r\n this.setState({ isFocused: false })\r\n this.props.onBlur && this.props.onBlur(e)\r\n }\r\n\r\n focus(loadSuggestions?: boolean) {\r\n if (this.suggestionFieldRef && this.suggestionFieldRef.current) {\r\n this.suggestionFieldRef.current.focus(loadSuggestions)\r\n }\r\n }\r\n\r\n render() {\r\n const { handleSearchButtonClick, extraButton, size, suggestBoxSize, buttonTitle, tooltip, buttonIcon, ...otherProps } = this.props\r\n const { isFocused } = this.state\r\n\r\n let className = isFocused ? \"is-active\" : \"\"\r\n className += size ? `${className != \"\" ? \" \" : \"\"}inputgroup--${size}` : \"\"\r\n\r\n const modifier: undefined | \"active\" | \"highlight\" = this.props.modifier\r\n ? this.props.modifier != \"highlight\"\r\n ? this.props.modifier\r\n : \"highlight\"\r\n : isFocused\r\n ? \"active\"\r\n : undefined\r\n const showTooltip = this.state.props.showHintAsTooltip ? tooltip : this.props.forceShowTooltipOnHover ? tooltip : undefined\r\n\r\n return (\r\n <>\r\n \r\n 0 ? tooltip : showTooltip}\r\n ref={this.suggestionFieldRef}\r\n modifier={modifier}\r\n size={suggestBoxSize}\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n ignoreConfig={this.props.ignoreConfig || [\"showHintAsTooltip\"]}\r\n />\r\n \r\n {extraButton || <>}\r\n \r\n {!this.props.forceShowTooltipOnHover && !this.state.props.showHintAsTooltip && }\r\n \r\n )\r\n }\r\n}\r\n","import { registerOutsideClick, ButtonKeyDefinition } from \"@tm/utils\"\r\n\r\nimport ReactDOM from \"react-dom\"\r\nimport { Component, createRef, ReactElement } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { Table, Loader, Scrollbar, ButtonProps } from \"..\"\r\nimport DefaultSearchField, { DefaultSearchFieldProps } from \"../search-field/index.default\"\r\nimport { ControlsConfig } from \"../../configuration\"\r\nimport { SearchFieldConfig } from \"../search-field\"\r\nimport { ExternalTooltip } from \"../search-field/external-hint\"\r\n\r\nexport type SuggestionSearchFieldProps = DefaultSearchFieldProps & {\r\n tooltip?: string\r\n getSuggestionData?: (query: string) => Array\r\n getSuggestionDataAsync?: (query: string) => Promise>\r\n renderTableColumns?: () => Array\r\n onSuggestionSelect: (suggestion: any) => void\r\n onSingleSuggestionSelect?: (suggestion: any) => void\r\n onToLessCharacters?: (query: string) => void\r\n button?: ReactElement\r\n usePortal?: boolean\r\n forceShowTooltipOnHover?: boolean\r\n\r\n maxHeight?: number\r\n enableLeadingTrim?: boolean\r\n minCharactersToSuggest?: number\r\n minCharactersToSearch?: number\r\n}\r\n\r\ntype State = {\r\n isOpen?: boolean\r\n query: string\r\n suggestions: Array\r\n marked?: any\r\n loading?: boolean\r\n requestCount?: number\r\n props: SearchFieldConfig\r\n}\r\n\r\n// TODO: refactor this.state.marked to be the index of the given items\r\nexport default class SuggestionSearchField extends Component {\r\n private suggestionTimeoutId: number\r\n\r\n private showSuggestionsAfterFocus = true\r\n\r\n private suggestionFieldIsMounted = false\r\n\r\n private inputRef: any\r\n\r\n private _scrollbar: any\r\n\r\n private _element: HTMLDivElement | undefined\r\n\r\n private _unregisterOutsideClick?: () => void\r\n\r\n suggestionBoxRef = createRef()\r\n\r\n static defaultProps: Partial = {\r\n enableLeadingTrim: true,\r\n minCharactersToSearch: 1,\r\n minCharactersToSuggest: 2,\r\n maxHeight: 200,\r\n }\r\n\r\n constructor(props: SuggestionSearchFieldProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n\r\n this.state = {\r\n isOpen: false,\r\n query: props.value || \"\",\r\n suggestions: [],\r\n marked: null,\r\n loading: false,\r\n requestCount: 0,\r\n props: ControlsConfig.get(\"SearchField\"),\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.suggestionFieldIsMounted = true\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: SuggestionSearchFieldProps) {\r\n if (nextProps.value != undefined && this.props.value != nextProps.value) {\r\n this.setState({ query: nextProps.value })\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n clearTimeout(this.suggestionTimeoutId)\r\n this.suggestionFieldIsMounted = false\r\n this._unregisterOutsideClick?.()\r\n }\r\n\r\n componentDidUpdate(prevProps: SuggestionSearchFieldProps, prevState: State) {\r\n const { maxHeight } = this.props\r\n // Returns if maxHeight is negative 1 (no max height)\r\n if (!this._scrollbar || maxHeight == -1) {\r\n return\r\n }\r\n\r\n let { height } = this._scrollbar.view.children[0].getBoundingClientRect()\r\n\r\n if (height > maxHeight!) {\r\n height = maxHeight\r\n const scrollerWidth = 12\r\n this._scrollbar.view.children[0].style.marginRight = `${scrollerWidth}px`\r\n } else {\r\n this._scrollbar.view.children[0].style.marginRight = undefined\r\n }\r\n\r\n this._scrollbar.container.style.height = `${height}px`\r\n\r\n if (!prevState.isOpen && this.state.isOpen && this._element && this.suggestionBoxRef.current) {\r\n const { top, left, width } = this._element.getBoundingClientRect()\r\n this.suggestionBoxRef.current.style.position = \"absolute\"\r\n this.suggestionBoxRef.current.style.top = `${top}px`\r\n this.suggestionBoxRef.current.style.left = `${left}px`\r\n this.suggestionBoxRef.current.style.minWidth = `${width}px`\r\n }\r\n }\r\n\r\n closeSuggestions() {\r\n this.setState({ isOpen: false })\r\n }\r\n\r\n loadSuggestions(query: string) {\r\n const { getSuggestionData, getSuggestionDataAsync } = this.props\r\n const { requestCount } = this.state\r\n\r\n if (getSuggestionDataAsync && requestCount !== undefined && requestCount >= 0) {\r\n const currentRequestCount = requestCount + 1\r\n\r\n this.setState({\r\n isOpen: true,\r\n query,\r\n loading: true,\r\n requestCount: currentRequestCount,\r\n marked: null,\r\n })\r\n\r\n if (this._element) {\r\n this._unregisterOutsideClick = registerOutsideClick(this._element, this.handleClose)\r\n }\r\n\r\n window.clearTimeout(this.suggestionTimeoutId)\r\n this.suggestionTimeoutId = window.setTimeout(\r\n () =>\r\n getSuggestionDataAsync(query).then(\r\n (data) => {\r\n if (this.suggestionFieldIsMounted && currentRequestCount == this.state.requestCount) {\r\n this.setState({\r\n suggestions: data || [],\r\n loading: false,\r\n })\r\n }\r\n },\r\n () => {\r\n if (this.suggestionFieldIsMounted) {\r\n this.setState({\r\n suggestions: [],\r\n loading: false,\r\n })\r\n }\r\n }\r\n ),\r\n 250\r\n )\r\n } else if (getSuggestionData) {\r\n if (this.suggestionFieldIsMounted) {\r\n this.setState({\r\n isOpen: true,\r\n query,\r\n suggestions: getSuggestionData(query) || [],\r\n marked: null,\r\n })\r\n }\r\n\r\n this._element && (this._unregisterOutsideClick = registerOutsideClick(this._element, this.handleClose))\r\n }\r\n }\r\n\r\n focus(showSuggestions = true) {\r\n if (this.inputRef) {\r\n this.showSuggestionsAfterFocus = showSuggestions\r\n\r\n setTimeout(() => {\r\n this.inputRef.focus()\r\n }, 0)\r\n }\r\n }\r\n\r\n checkSearchConditions(query: string): boolean {\r\n return query.length >= this.props.minCharactersToSearch!\r\n }\r\n\r\n checkSuggestConditions(query: string): boolean {\r\n return query.length >= this.props.minCharactersToSuggest!\r\n }\r\n\r\n checkSingleSuggestion() {\r\n return this.props.onSingleSuggestionSelect && this.state.suggestions.length == 1\r\n }\r\n\r\n prepareSuggestValue(value: string): string {\r\n const checkLeadingOrOnlyWhitespaces = /(\\s+)\\w+|^\\s+/\r\n const leadingWhitespaces = /^\\s/\r\n\r\n if (this.props.enableLeadingTrim && checkLeadingOrOnlyWhitespaces.test(value)) {\r\n value = value.replace(leadingWhitespaces, \"\")\r\n }\r\n\r\n return value\r\n }\r\n\r\n handleInputRef(ref: any) {\r\n this.inputRef = ref\r\n this.props.onRef?.(ref)\r\n }\r\n\r\n handleClose() {\r\n this.setState({\r\n isOpen: false,\r\n marked: null,\r\n suggestions: [],\r\n })\r\n }\r\n\r\n handleKeyStroke(e: any) {\r\n // const { query, marked } = this.state\r\n\r\n switch (e.key) {\r\n case ButtonKeyDefinition.ArrowUp: {\r\n this.handleMarkPreviousSuggestion()\r\n e.preventDefault()\r\n break\r\n }\r\n case ButtonKeyDefinition.ArrowDown: {\r\n this.handleMarkNextSuggestion()\r\n e.preventDefault()\r\n break\r\n }\r\n case ButtonKeyDefinition.Escape:\r\n case ButtonKeyDefinition.Tab: {\r\n this.handleClose()\r\n break\r\n }\r\n }\r\n }\r\n\r\n handleMarkNextSuggestion() {\r\n const { suggestions, marked } = this.state\r\n\r\n if (suggestions.length) {\r\n this.setState({ marked: suggestions.next(marked) })\r\n this.handleScrollDown()\r\n }\r\n }\r\n\r\n handleMarkPreviousSuggestion() {\r\n const { suggestions, marked } = this.state\r\n\r\n if (suggestions.length) {\r\n this.setState({ marked: suggestions.previous(marked) || null })\r\n this.handleScrollUp()\r\n }\r\n }\r\n\r\n handleScrollDown() {\r\n this.handleScrolling(1)\r\n }\r\n\r\n handleScrollUp() {\r\n this.handleScrolling(-1)\r\n }\r\n\r\n handleScrolling(direction: 1 | -1) {\r\n const { marked, suggestions } = this.state\r\n if (!marked || !suggestions.length || this.checkSingleSuggestion()) {\r\n return\r\n }\r\n\r\n // TODO: refactor this\r\n const containerHeight = this._scrollbar.container.offsetHeight\r\n // container > scrollbar__view > fancy-list > fancy-list__body > first child, if there are suggestions a child should always exists\r\n const item = this._scrollbar.container.children[0].children[0].children[0].children.item(0)\r\n\r\n const marginBottom = parseInt(window.getComputedStyle(item).marginBottom || \"0\")\r\n const marginTop = parseInt(window.getComputedStyle(item).marginTop || \"0\")\r\n\r\n const itemHeight = item.offsetHeight + marginBottom + marginTop\r\n const itemsPerView = Math.round(containerHeight / itemHeight)\r\n\r\n const minIndexOfItem = Math.round((itemsPerView + 0.5) / 2)\r\n const maxIndexOfItem = suggestions.length - Math.round((itemsPerView + 0.5) / 2)\r\n\r\n if (suggestions.indexOf(marked) >= minIndexOfItem && suggestions.indexOf(marked) <= maxIndexOfItem) {\r\n const currentScrollTop = this._scrollbar.getValues().scrollTop\r\n const nextScrollStep = itemHeight * direction\r\n\r\n const scrollPosition = currentScrollTop + nextScrollStep\r\n this._scrollbar.scrollTop(scrollPosition)\r\n }\r\n }\r\n\r\n handleSingleSuggestion() {\r\n const { onSingleSuggestionSelect } = this.props\r\n if (!onSingleSuggestionSelect) {\r\n return\r\n }\r\n\r\n const { suggestions, marked } = this.state\r\n\r\n this.handleMarkNextSuggestion()\r\n\r\n if (suggestions.length) {\r\n onSingleSuggestionSelect(suggestions.next(marked))\r\n }\r\n }\r\n\r\n handleNotEnoughCharacters(query: string) {\r\n // call action to dispatch SEARCH_NOT_ENOUGH_CHARACTERS\r\n this.props.onToLessCharacters?.(query)\r\n }\r\n\r\n handleSuggestionSelect(suggestion: any) {\r\n this.props.onSuggestionSelect(suggestion)\r\n this.handleClose()\r\n }\r\n\r\n handleChange(value: string) {\r\n this.props.onChange?.(value)\r\n\r\n const preparedQuery = this.prepareSuggestValue(value)\r\n\r\n if (this.checkSuggestConditions(preparedQuery)) {\r\n this.loadSuggestions(preparedQuery)\r\n } else {\r\n this.setState({ query: preparedQuery })\r\n this.handleClose()\r\n }\r\n }\r\n\r\n handleChangeConfirm(value: string) {\r\n const { query, marked } = this.state\r\n\r\n if (this.checkSingleSuggestion()) {\r\n this.handleSingleSuggestion()\r\n } else if (marked) {\r\n this.handleSuggestionSelect(marked)\r\n } else if (!this.checkSearchConditions(query)) {\r\n this.handleNotEnoughCharacters(query)\r\n } else {\r\n this.props.onChangeConfirm?.(value)\r\n this.handleClose()\r\n }\r\n }\r\n\r\n handleFocus() {\r\n this.props.onFocus?.()\r\n\r\n if (!this.showSuggestionsAfterFocus) {\r\n this.showSuggestionsAfterFocus = true\r\n return\r\n }\r\n\r\n const preparedQuery = this.prepareSuggestValue(this.state.query)\r\n\r\n if (this.checkSuggestConditions(preparedQuery)) {\r\n this.loadSuggestions(preparedQuery)\r\n }\r\n\r\n this.setState({ marked: null })\r\n }\r\n\r\n handleRef(div: HTMLDivElement) {\r\n this._element = div\r\n }\r\n\r\n renderTableColumns() {\r\n const { renderTableColumns } = this.props\r\n\r\n if (!renderTableColumns) {\r\n return [ {data}} />]\r\n }\r\n\r\n return renderTableColumns()\r\n }\r\n\r\n renderSuggestBox() {\r\n const { usePortal, size } = this.props\r\n const { isOpen, marked, suggestions, loading } = this.state\r\n\r\n let className = \"suggest__box \"\r\n if (size) {\r\n className += ` suggest__box--${size}`\r\n }\r\n if (isOpen && suggestions.length) {\r\n className += \" is-visible\"\r\n }\r\n\r\n const suggestBox = (\r\n
    \r\n (this._scrollbar = ref)}>\r\n (data == marked ? \"is-selected\" : \"\")}\r\n onClickRow={this.handleSuggestionSelect.bind(this)}\r\n // scrollable\r\n getFocusedRowIndex={() => suggestions.indexOf(marked)}\r\n />\r\n \r\n \r\n
    \r\n )\r\n\r\n if (usePortal) {\r\n return ReactDOM.createPortal(\r\n
    \r\n {suggestBox}\r\n
    ,\r\n document.body\r\n )\r\n }\r\n\r\n return suggestBox\r\n }\r\n\r\n render() {\r\n const { button, tooltip, forceShowTooltipOnHover, ...otherProps } = this.props\r\n const {\r\n isOpen,\r\n suggestions,\r\n query,\r\n props: { showHintAsTooltip },\r\n } = this.state\r\n\r\n let className = \"suggest \"\r\n if (isOpen && suggestions.length) {\r\n className += \"suggest--open \"\r\n }\r\n if (this.props.className) {\r\n className += this.props.className\r\n }\r\n const tooltipAsHint = showHintAsTooltip ? tooltip : forceShowTooltipOnHover ? tooltip : undefined\r\n return (\r\n <>\r\n
    \r\n {this.renderSuggestBox()}\r\n\r\n 0 ? tooltip : !showHintAsTooltip ? tooltipAsHint : tooltip} // show i icon always if suggestion box is open, otherwise it's not readable\r\n />\r\n\r\n {button}\r\n
    \r\n {!forceShowTooltipOnHover && !tooltipAsHint && }\r\n \r\n )\r\n }\r\n}\r\n","import { VrmLookupTextIds } from \"@tm/models\"\r\nimport { ButtonKeyDefinition, clone, getValue, registerOutsideClick, setValue } from \"@tm/utils\"\r\nimport { createRef, Component } from \"react\"\r\nimport ReactDOM from \"react-dom\"\r\nimport { Badge, Button, Icon, SubTitle, Text } from \"..\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport Loader from \"../loader\"\r\nimport Scrollbar from \"../scrollbar\"\r\nimport Table from \"../table\"\r\nimport TextField, { TextFieldProps } from \"../text-field\"\r\n\r\nexport type SuggestionTextFieldProps = TextFieldProps & {\r\n getSuggestionData?: (query: string) => Array\r\n getSuggestionDataAsync?: (query: string) => Promise>\r\n renderTableColumns?: () => Array\r\n translateText?(key: string | number): string\r\n validateVin?(): void\r\n maxHeight?: number\r\n usePortal?: boolean\r\n vinSearchRequired?: boolean\r\n vinSearchOptional?: boolean\r\n datVinSearchIsValid?: boolean\r\n datPricePerRequest?: string\r\n vinSearchInformalMessage?: VrmLookupTextIds\r\n checkVinLoading?: boolean\r\n}\r\n\r\nexport type SuggestionTextFieldState = {\r\n isOpen?: boolean\r\n suggestions?: Array\r\n marked?: any\r\n loading?: boolean\r\n requestCount?: number\r\n showVinSearchArea?: boolean\r\n}\r\n\r\nexport default class SuggestionTextField extends Component {\r\n private _suggestionTimeout: any\r\n\r\n private _scrollbar: any\r\n\r\n private _element: HTMLDivElement | undefined\r\n\r\n private _unregisterOutsideClickHandler?: () => void\r\n\r\n suggestionBoxRef = createRef()\r\n\r\n /**\r\n *\r\n */\r\n constructor(props: SuggestionTextFieldProps) {\r\n super(props)\r\n\r\n this.state = {\r\n isOpen: false,\r\n suggestions: [],\r\n marked: null,\r\n loading: false,\r\n requestCount: 0,\r\n showVinSearchArea: false,\r\n }\r\n bindMethodsToContext(this)\r\n }\r\n\r\n componentWillUnmount() {\r\n clearTimeout(this._suggestionTimeout)\r\n this._unregisterOutsideClickHandler && this._unregisterOutsideClickHandler()\r\n }\r\n\r\n componentDidUpdate(prevProps: SuggestionTextFieldProps, prevState: SuggestionTextFieldState) {\r\n // Returns if maxHeight is negative 1 (no max height)\r\n if (!this._scrollbar || this.props.maxHeight == -1) {\r\n return\r\n }\r\n const maxHeight = this.props.maxHeight || 200\r\n let { height } = this._scrollbar.view.children[0].getBoundingClientRect()\r\n\r\n if (this.state.suggestions && this.state.suggestions.length) {\r\n // Every row should have a min height of 36px to not be invisible\r\n const totalHeight = this.state.suggestions.length * 36\r\n if (height < totalHeight) {\r\n height = totalHeight\r\n }\r\n }\r\n\r\n if (height > maxHeight) {\r\n height = maxHeight\r\n const scrollerWidth = 12\r\n this._scrollbar.view.children[0].style.marginRight = `${scrollerWidth}px`\r\n } else {\r\n this._scrollbar.view.children[0].style.marginRight = undefined\r\n }\r\n this._scrollbar.container.style.height = `${height}px`\r\n\r\n if (!prevState.isOpen && this.state.isOpen && this._element && this.suggestionBoxRef.current) {\r\n const { top, left, width } = this._element.getBoundingClientRect()\r\n this.suggestionBoxRef.current.style.position = \"absolute\"\r\n this.suggestionBoxRef.current.style.top = `${top}px`\r\n this.suggestionBoxRef.current.style.left = `${left}px`\r\n this.suggestionBoxRef.current.style.minWidth = `${width}px`\r\n }\r\n }\r\n\r\n getQuery(props: SuggestionTextFieldProps): string {\r\n const { model, path, value } = props\r\n return (model && path ? getValue(model, path) : value) || null\r\n }\r\n\r\n loadSuggestions(query: string) {\r\n const { getSuggestionData, getSuggestionDataAsync } = this.props\r\n\r\n if (getSuggestionDataAsync) {\r\n const requestCount = this.state.requestCount ? this.state.requestCount + 1 : 0\r\n\r\n this.setState({\r\n isOpen: true,\r\n loading: true,\r\n requestCount,\r\n marked: null,\r\n })\r\n\r\n this._element && (this._unregisterOutsideClickHandler = registerOutsideClick(this._element, this.handleClose))\r\n\r\n clearTimeout(this._suggestionTimeout)\r\n\r\n this._suggestionTimeout = setTimeout(\r\n () =>\r\n getSuggestionDataAsync(query).then(\r\n (data: any) => {\r\n if (requestCount == this.state.requestCount) {\r\n this.setState({\r\n suggestions: data || [],\r\n loading: false,\r\n })\r\n }\r\n },\r\n () => {\r\n this.setState({\r\n suggestions: [],\r\n loading: false,\r\n })\r\n }\r\n ),\r\n 250\r\n )\r\n } else if (getSuggestionData) {\r\n this.setState({\r\n isOpen: true,\r\n suggestions: getSuggestionData(query) || [],\r\n marked: null,\r\n })\r\n\r\n this._element && (this._unregisterOutsideClickHandler = registerOutsideClick(this._element, this.handleClose))\r\n }\r\n }\r\n\r\n handleRef(div: HTMLDivElement) {\r\n this._element = div\r\n }\r\n\r\n handleClose() {\r\n this.setState({\r\n isOpen: false,\r\n marked: null,\r\n suggestions: [],\r\n showVinSearchArea: false,\r\n })\r\n }\r\n\r\n handleKeyDown(e: any) {\r\n switch (e.key) {\r\n case ButtonKeyDefinition.ArrowUp: {\r\n this.handleMarkPreviousSuggestion()\r\n e.preventDefault()\r\n break\r\n }\r\n case ButtonKeyDefinition.ArrowDown: {\r\n this.handleMarkNextSuggestion()\r\n e.preventDefault()\r\n break\r\n }\r\n }\r\n }\r\n\r\n handleKeyUp(e: any) {\r\n const { marked } = this.state\r\n\r\n switch (e.key) {\r\n case ButtonKeyDefinition.Escape:\r\n case ButtonKeyDefinition.Tab: {\r\n this.handleClose()\r\n break\r\n }\r\n case ButtonKeyDefinition.Enter: {\r\n if (marked) {\r\n this.handleSuggestionSelect(marked)\r\n } else {\r\n this.handleClose()\r\n }\r\n\r\n break\r\n }\r\n }\r\n }\r\n\r\n handleMarkNextSuggestion() {\r\n const { suggestions, marked } = this.state\r\n if (suggestions) {\r\n this.setState({ marked: suggestions.next(marked) })\r\n this.handleScrollDown()\r\n }\r\n }\r\n\r\n handleMarkPreviousSuggestion() {\r\n const { suggestions, marked } = this.state\r\n if (suggestions) {\r\n this.setState({ marked: suggestions.previous(marked) || null })\r\n this.handleScrollUp()\r\n }\r\n }\r\n\r\n handleScrollDown() {\r\n this.handleScrolling(1)\r\n }\r\n\r\n handleScrollUp() {\r\n this.handleScrolling(-1)\r\n }\r\n\r\n handleScrolling(direction: 1 | -1) {\r\n const { marked, suggestions } = this.state\r\n\r\n if (!marked || !suggestions) {\r\n return\r\n }\r\n\r\n // TODO: refactor this\r\n const containerHeight = this._scrollbar.container.offsetHeight\r\n // container > scrollbar__view > fancy-list > fancy-list__body > first child, if there are suggestions a child should always exists\r\n const item = this._scrollbar.container.children[0].children[0].children[0].children.item(0)\r\n\r\n const marginBottom = parseInt(window.getComputedStyle(item).marginBottom || \"0\", 10)\r\n const marginTop = parseInt(window.getComputedStyle(item).marginTop || \"0\", 10)\r\n\r\n const itemHeight = item.offsetHeight + marginBottom + marginTop\r\n const itemsPerView = Math.round(containerHeight / itemHeight)\r\n\r\n const minIndexOfItem = Math.round((itemsPerView + 0.5) / 2)\r\n const maxIndexOfItem = suggestions.length - Math.round((itemsPerView + 0.5) / 2)\r\n\r\n if (suggestions.indexOf(marked) >= minIndexOfItem && suggestions.indexOf(marked) <= maxIndexOfItem) {\r\n const currentScrollTop = this._scrollbar.getValues().scrollTop\r\n const nextScrollStep = itemHeight * direction\r\n\r\n const scrollPosition = currentScrollTop + nextScrollStep\r\n this._scrollbar.scrollTop(scrollPosition)\r\n }\r\n }\r\n\r\n handleSuggestionSelect(value: any) {\r\n const { model, path, onChangeConfirm } = this.props\r\n\r\n if (model && path) {\r\n const changedModel = clone(model)\r\n setValue(changedModel, path, value || null)\r\n\r\n if (onChangeConfirm) {\r\n onChangeConfirm(changedModel, path)\r\n }\r\n } else if (onChangeConfirm) {\r\n onChangeConfirm(value)\r\n }\r\n\r\n this.setShowVinSearchArea(value)\r\n this.handleClose()\r\n }\r\n\r\n handleChange(model: any, path?: Array) {\r\n const { onChange } = this.props\r\n if (onChange) {\r\n onChange(model, path)\r\n }\r\n\r\n const value = model && path ? getValue(model, path) : model\r\n\r\n this.setShowVinSearchArea(value)\r\n this.loadSuggestions(value || null)\r\n }\r\n\r\n handleChangeConfirm(value: string, path?: Array) {\r\n const { onChangeConfirm } = this.props\r\n if (onChangeConfirm) {\r\n onChangeConfirm(value, path)\r\n }\r\n\r\n this.setShowVinSearchArea(value)\r\n }\r\n\r\n handleFocus() {\r\n const { onFocus, value } = this.props\r\n if (onFocus) {\r\n onFocus()\r\n }\r\n\r\n this.setShowVinSearchArea(value)\r\n this.loadSuggestions(this.getQuery(this.props))\r\n }\r\n\r\n setShowVinSearchArea(value: any) {\r\n const { path } = this.props\r\n\r\n if (path?.first() == \"vin\") {\r\n const { vinSearchRequired, vinSearchOptional } = this.props\r\n const displayVinArea = (value as string)?.length == 17 && (vinSearchRequired || vinSearchOptional)\r\n\r\n this.setState({\r\n showVinSearchArea: displayVinArea,\r\n })\r\n }\r\n }\r\n\r\n renderTableColumns() {\r\n const { renderTableColumns } = this.props\r\n\r\n if (!renderTableColumns) {\r\n return [ {data}} />]\r\n }\r\n\r\n return renderTableColumns()\r\n }\r\n\r\n renderSuggestBox() {\r\n const { usePortal, size, modelState, path } = this.props\r\n const {\r\n vinSearchOptional,\r\n vinSearchRequired,\r\n datVinSearchIsValid,\r\n vinSearchInformalMessage,\r\n translateText,\r\n validateVin,\r\n datPricePerRequest,\r\n checkVinLoading,\r\n } = this.props\r\n const { marked, suggestions, loading, isOpen, showVinSearchArea } = this.state\r\n\r\n let className = \"suggest__box \"\r\n if (size) {\r\n className += ` suggest__box--${size}`\r\n }\r\n\r\n if (showVinSearchArea || (isOpen && suggestions && suggestions.length)) {\r\n className += \" is-visible\"\r\n }\r\n\r\n if (((vinSearchOptional || vinSearchRequired) && !datVinSearchIsValid) || (modelState && path && getValue(modelState, path)?.length)) {\r\n className += ` suggest__box--error`\r\n }\r\n\r\n const vinSearchInformalMessageStyle = vinSearchInformalMessage != VrmLookupTextIds.ResultSuccess ? \"danger\" : \"success\"\r\n\r\n const suggestBox = (\r\n
    \r\n {(vinSearchOptional || vinSearchRequired) && !datVinSearchIsValid && !!validateVin && !!translateText && (\r\n
    \r\n validateVin()}\r\n disabled={checkVinLoading}\r\n icon=\"dat-vin-data\"\r\n size=\"l\"\r\n >\r\n {checkVinLoading && } />}\r\n {translateText(1259)}\r\n\r\n {!!datPricePerRequest && (\r\n <>\r\n
    \r\n {translateText(1260).replace(\"{0}\", datPricePerRequest || \"2€\")}\r\n \r\n )}\r\n \r\n
    \r\n )}\r\n\r\n {(vinSearchOptional || vinSearchRequired) && vinSearchInformalMessage && translateText && (\r\n
    \r\n \r\n \r\n {translateText(vinSearchInformalMessage)}\r\n \r\n
    \r\n )}\r\n\r\n (this._scrollbar = ref)}>\r\n (data == marked ? \"is-selected\" : \"\")}\r\n onClickRow={this.handleSuggestionSelect}\r\n getFocusedRowIndex={() => (suggestions || []).indexOf(marked)}\r\n />\r\n \r\n \r\n
    \r\n )\r\n\r\n if (usePortal) {\r\n return ReactDOM.createPortal(\r\n
    \r\n {suggestBox}\r\n
    ,\r\n document.body\r\n )\r\n }\r\n\r\n return suggestBox\r\n }\r\n\r\n render() {\r\n const { layout } = this.props\r\n const { isOpen, suggestions, showVinSearchArea } = this.state\r\n\r\n let className = \"suggest \"\r\n if (showVinSearchArea || (isOpen && suggestions && suggestions.length)) {\r\n className += \"suggest--open \"\r\n }\r\n className += this.props.className || \"\"\r\n\r\n layout &&\r\n layout.forEach((element) => {\r\n if (element == \"dropshadow\") {\r\n className += ` has-${element}`\r\n } else {\r\n className += ` suggest--${element}`\r\n }\r\n })\r\n\r\n return (\r\n
    \r\n {this.renderSuggestBox()}\r\n\r\n \r\n
    \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { Text, Icon, IconProps } from \"..\"\r\nimport { bindMethodsToContext, elementId } from \"../../helper\"\r\nimport { BaseDisableableProps } from \"../../models/SharedModels\"\r\n\r\nexport type StatusOptions = \"checked\" | \"checked-not-equal\" | \"unchecked\" | \"unchecked-not-equal\"\r\n\r\nexport type StatusSwitchProps = BaseDisableableProps & {\r\n status: StatusOptions\r\n label?: string\r\n alignLabel?: \"left\" | \"right\"\r\n onChange?(state: boolean): void\r\n}\r\n\r\nexport type StatusSwitchState = {\r\n checked: boolean\r\n status: StatusOptions\r\n disabled: boolean\r\n}\r\n\r\nexport default class StatusSwitch extends Component {\r\n private elementId = elementId(`switch`)\r\n\r\n constructor(props: StatusSwitchProps) {\r\n super(props)\r\n this.state = {\r\n checked: props.status.indexOf(\"checked\") == 0,\r\n status: props.status,\r\n disabled: !!props.disabled,\r\n }\r\n\r\n bindMethodsToContext(this)\r\n this.getClassName = this.getClassName.bind(this)\r\n this.getSymbolElements = this.getSymbolElements.bind(this)\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps: StatusSwitchProps, prevState: StatusSwitchState) {\r\n let newState: StatusSwitchState | null = null\r\n if (nextProps.status != prevState.status || !!nextProps.disabled != prevState.disabled) {\r\n newState = {\r\n checked: nextProps.status.indexOf(\"checked\") == 0,\r\n status: nextProps.status,\r\n disabled: !!nextProps.disabled,\r\n }\r\n }\r\n\r\n return newState\r\n }\r\n\r\n handleChange(e: any) {\r\n const checked = !this.state.checked\r\n this.setState({ checked })\r\n if (this.props.onChange) {\r\n this.props.onChange(checked)\r\n }\r\n }\r\n\r\n render() {\r\n const { label, alignLabel, disabled } = this.props\r\n const { checked } = this.state\r\n const baseName = \"status-switch\"\r\n const className = this.getClassName(baseName)\r\n\r\n const LabelElement = {label}\r\n\r\n const SymbolElements: {\r\n Back: any\r\n Button: any\r\n } = this.getSymbolElements(baseName)\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n getClassName(baseName: string) {\r\n const { alignLabel, disabled } = this.props\r\n let className = `${baseName}`\r\n\r\n if (alignLabel) {\r\n className += ` ${baseName}--label-${alignLabel}`\r\n }\r\n\r\n if (disabled) {\r\n className += ` ${baseName}--disabled`\r\n }\r\n\r\n return className\r\n }\r\n\r\n getSymbolElements(baseName: string) {\r\n const iconProps: IconProps = {\r\n size: \"xs\",\r\n name: \"check\",\r\n }\r\n\r\n // initial unchecked values\r\n let ButtonSymbolElement: any = null\r\n let BackSymbolElement: any = (\r\n \r\n 0\r\n \r\n )\r\n\r\n const { checked, status } = this.state\r\n if (checked) {\r\n BackSymbolElement = \r\n }\r\n\r\n const notEqual = status.indexOf(\"not-equal\") > 0\r\n if (notEqual) {\r\n ButtonSymbolElement = \r\n BackSymbolElement = (\r\n \r\n ≠\r\n \r\n )\r\n\r\n if (checked) {\r\n ButtonSymbolElement = \r\n }\r\n }\r\n\r\n return {\r\n Back: BackSymbolElement,\r\n Button: ButtonSymbolElement,\r\n }\r\n }\r\n}\r\n","import { useEffect, useState } from \"react\"\r\nimport { Text, Icon } from \"..\"\r\nimport { elementId } from \"../../helper\"\r\n\r\nexport type SwitchProps = {\r\n label?: string\r\n status?: boolean\r\n alignLabel?: \"left\" | \"right\"\r\n disabled?: boolean\r\n onChange?(state: boolean): void\r\n onClick?(e: React.MouseEvent): void\r\n}\r\n\r\nexport default function SwitchComponent({ label, status, alignLabel, disabled, onChange, onClick }: SwitchProps) {\r\n const id = elementId(\"switch\")\r\n const [checked, setChecked] = useState(!!status)\r\n\r\n useEffect(() => {\r\n if (checked !== !!status) {\r\n setChecked(!!status)\r\n }\r\n }, [status])\r\n\r\n function handleChange(e: any) {\r\n setChecked(!checked)\r\n onChange?.(!checked)\r\n }\r\n\r\n function handleClick(e: React.MouseEvent) {\r\n onClick?.(e)\r\n }\r\n\r\n let className = \"switch\"\r\n if (alignLabel) {\r\n className += ` switch--label-${alignLabel}`\r\n }\r\n if (disabled) {\r\n className += \" switch--disabled\"\r\n }\r\n\r\n const mainLabelElement = {label}\r\n\r\n return (\r\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\r\n \r\n )\r\n}\r\n","import { elementId } from \"@tm/utils\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { Text } from \"../..\"\r\n\r\nexport type DoubleLabelSwitchProps = {\r\n leftLabel: string\r\n rightLabel: string\r\n rightActive?: boolean\r\n disabled?: boolean\r\n onChange?(leftActive: boolean): void\r\n onClick?(e: React.MouseEvent): void\r\n}\r\n\r\nexport default function DoubleLabelSwitchComponent({ leftLabel, rightActive, rightLabel, disabled, onChange, onClick }: DoubleLabelSwitchProps) {\r\n const id = elementId(\"switch\")\r\n const [leftActive, setLeftAcitve] = useState(!!rightActive)\r\n\r\n useEffect(() => {\r\n if (leftActive !== !!rightActive) {\r\n setLeftAcitve(!!rightActive)\r\n }\r\n }, [rightActive])\r\n\r\n function handleChange(e: any) {\r\n setLeftAcitve(!leftActive)\r\n onChange?.(!leftActive)\r\n }\r\n\r\n function handleClick(e: React.MouseEvent) {\r\n onClick?.(e)\r\n }\r\n\r\n let className = \"switch switch-double-label\"\r\n if (disabled) {\r\n className += \" switch--disabled\"\r\n }\r\n\r\n return (\r\n
    \r\n )\r\n }\r\n\r\n return
    {this.renderRows()}
    \r\n }\r\n\r\n renderRows() {\r\n const { data, groupBy, renderGroupHead, renderGroupFooter } = this.props\r\n\r\n if (!data) {\r\n return\r\n }\r\n\r\n if (!groupBy) {\r\n return data.map(this.renderRow.bind(this))\r\n }\r\n\r\n const groups: Array<{ item: ReactText; list: Array }> = []\r\n data.forEach((item) => {\r\n const group = groupBy(item)\r\n let entry = groups.findFirst((x) => equals(x.item, group))\r\n if (!entry) {\r\n entry = { item: group, list: [] }\r\n groups.push(entry)\r\n }\r\n entry.list.push(item)\r\n })\r\n\r\n // const groups = data.groupBy(groupBy)\r\n return groups.map((group, idx) => {\r\n return (\r\n
    \r\n {renderGroupHead ? renderGroupHead(group.item) : group.item}\r\n {group.list.map(this.renderRow.bind(this))}\r\n {!!renderGroupFooter && {renderGroupFooter(group.item)}}\r\n
    \r\n )\r\n })\r\n }\r\n\r\n handleClickRow(data: T, e: MouseEvent) {\r\n e && e.stopPropagation()\r\n this.props.onClickRow?.(data)\r\n }\r\n\r\n handleDoubleClickRow(data: T, e: MouseEvent) {\r\n e && e.stopPropagation()\r\n this.props.onDoubleClickRow?.(data)\r\n }\r\n\r\n renderRow(data: T, rowIndex: number): any {\r\n const { columns, getRowClassName, getRowLink, getRowStyle, getRowKey } = this.props\r\n\r\n const key = getRowKey ? getRowKey(data, rowIndex) : rowIndex\r\n const className = `fancy-list__item ${getRowClassName ? getRowClassName(data, rowIndex) || \"\" : \"\"}`\r\n const onClick = this.handleClickRow.bind(this, data)\r\n const onDoubleClick = this.handleDoubleClickRow.bind(this, data)\r\n const style = getRowStyle ? (getRowStyle(data, rowIndex) as any) : undefined\r\n\r\n const rowChildren = columns.map((col, colIdx) => {\r\n const { renderItemContent } = col.props\r\n const cellElement = renderItemContent(data, rowIndex)\r\n const cellTitle = cellElement.props.title || \"\"\r\n const overflowClass = cellTitle ? \"fancy-list__block-overflow\" : \"\"\r\n const cellClassName = `fancy-list__block ${col.props.className || \"\"} ${cellElement.props.className || \"\"} ${overflowClass}`\r\n\r\n return (\r\n \r\n {cellElement.props.children}\r\n \r\n )\r\n })\r\n\r\n if (getRowLink) {\r\n return (\r\n \r\n {rowChildren}\r\n \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n {rowChildren}\r\n
    \r\n )\r\n }\r\n\r\n render() {\r\n const className = `fancy-list ${this.props.scrollable ? \"fancy-list--scrollable\" : \"\"} ${this.props.className || \"\"}`\r\n return (\r\n
    \r\n {this.renderHead()}\r\n {this.renderBody()}\r\n
    \r\n )\r\n }\r\n}\r\n","import { Component } from \"react\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { Text, Button, Tooltip, Icon } from \"..\"\r\nimport { TextModifiers } from \"../text\"\r\n\r\nexport type TagLayout = \"holo\" | \"ghost\" | \"bordered\"\r\nexport type TagSkin = \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"danger\" | \"highlight\"\r\n\r\nexport type TagProps = {\r\n label?: string\r\n value?: string | TagValue | Array\r\n icons?: Array\r\n buttons?: Array\r\n tooltip?: string | JSX.Element\r\n className?: string\r\n layout?: TagLayout\r\n skin?: TagSkin\r\n size?: \"s\" | \"m\"\r\n onClick?(value: string): void\r\n onCloseClick?(): void\r\n}\r\n\r\nexport type TagValue = {\r\n value: string\r\n icons?: Array\r\n tooltip?: string\r\n className?: string\r\n textModifiers?: TextModifiers | Array\r\n}\r\n\r\nexport type TagIcon = {\r\n name: string\r\n tooltip?: string\r\n}\r\n\r\nexport type TagButton = {\r\n buttonIcon: string\r\n onClick(): void\r\n}\r\n\r\nexport default class Tag extends Component {\r\n private ignoreClick: boolean\r\n\r\n static defaultProps: TagProps = {\r\n size: \"s\",\r\n }\r\n\r\n constructor(props: TagProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n }\r\n\r\n getValues(): Array {\r\n const { value } = this.props\r\n const values: Array = []\r\n const textModifiers: Array = [\"strong\"]\r\n\r\n if (typeof value == \"string\") {\r\n values.push({ value, textModifiers })\r\n } else if (Array.isArray(value)) {\r\n return value.map((x) => (typeof x == \"string\" ? { value: x, textModifiers } : x))\r\n } else if (value != undefined) {\r\n values.push(value)\r\n }\r\n\r\n return values\r\n }\r\n\r\n handleClick(e: React.MouseEvent) {\r\n if (this.ignoreClick) {\r\n this.ignoreClick = false\r\n return\r\n }\r\n\r\n const { onClick } = this.props\r\n const values = this.getValues()\r\n onClick && values.length == 1 && onClick(values[0].value)\r\n }\r\n\r\n handleValueSelect(value: TagValue) {\r\n this.ignoreClick = true\r\n const { onClick } = this.props\r\n onClick && onClick(value.value)\r\n }\r\n\r\n handleCloseClick() {\r\n this.ignoreClick = true\r\n const { onCloseClick } = this.props\r\n onCloseClick && onCloseClick()\r\n }\r\n\r\n handleButtonClick(onClick: () => void) {\r\n this.ignoreClick = true\r\n onClick()\r\n }\r\n\r\n renderIcons(icons: Array | undefined) {\r\n if (!icons) {\r\n return\r\n }\r\n\r\n return icons.map((x, idx) => {\r\n const icon = \r\n if (!x.tooltip) {\r\n return icon\r\n }\r\n\r\n return (\r\n \r\n {icon}\r\n \r\n )\r\n })\r\n }\r\n\r\n renderValue(value: TagValue, idx: number) {\r\n const { onClick } = this.props\r\n\r\n if (typeof value == \"string\") {\r\n value = { value }\r\n }\r\n\r\n let className = \"tag__value \"\r\n if (onClick) {\r\n className += \"is-clickable \"\r\n }\r\n if (value.className) {\r\n className += value.className\r\n }\r\n\r\n let content = (\r\n this.handleValueSelect(value)}\r\n >\r\n {value.value}\r\n \r\n )\r\n\r\n if (value.tooltip) {\r\n content = (\r\n \r\n {content}\r\n \r\n )\r\n }\r\n\r\n if (value.icons) {\r\n return (\r\n <>\r\n {this.renderIcons(value.icons)}\r\n {content}\r\n \r\n )\r\n }\r\n\r\n return content\r\n }\r\n\r\n renderValues() {\r\n return this.getValues().map(this.renderValue)\r\n }\r\n\r\n renderButtons() {\r\n const { buttons } = this.props\r\n\r\n if (!buttons) {\r\n return\r\n }\r\n\r\n return buttons.map((x, idx) => (\r\n
    \r\n )\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n size,\r\n layout,\r\n label,\r\n className,\r\n readonly,\r\n showClear,\r\n disabled,\r\n onKeyDown,\r\n name,\r\n autoComplete,\r\n placeholder,\r\n forceShowError,\r\n inputMode,\r\n } = this.props\r\n\r\n const id = this.props.id || this.id\r\n const errors = this.checkErrors()\r\n const hasErrors = !!errors.length\r\n const { showErrorMessage } = this.state\r\n const inputSize = size || \"m\"\r\n\r\n let elClassName = \"input input--textfield\"\r\n elClassName += ` input--${inputSize}`\r\n elClassName += hasErrors || this.props.forceShowErrorBorder ? \" field-error\" : \"\"\r\n elClassName += hasErrors && (showErrorMessage || forceShowError) ? \" field-error--show-message has-error\" : \"\"\r\n elClassName += readonly ? \" readonly\" : \"\"\r\n elClassName += className ? ` ${className}` : \"\"\r\n elClassName += this.state.edit ? \" is-active\" : \"\"\r\n elClassName += showClear && !readonly ? \" clearable\" : \"\"\r\n elClassName += this.state.inputValue != \"\" ? \" has-value\" : \"\"\r\n elClassName += this.props.floatingLabel ? \" input--floating-label\" : \"\"\r\n\r\n layout &&\r\n layout.forEach((element) => {\r\n if (element == \"dropshadow\") {\r\n elClassName += ` has-${element}`\r\n } else {\r\n elClassName += ` input--${element}`\r\n }\r\n })\r\n\r\n const labelElement = label ? (\r\n \r\n ) : (\r\n false\r\n )\r\n const tabIndex = readonly ? 0 : this.props.tabIndex\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {labelElement}\r\n {this.props.multiline ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {this.props.tooltip ? (\r\n
    \r\n \r\n \r\n \r\n
    \r\n ) : null}\r\n\r\n {!readonly && showClear && (\r\n
    \r\n \r\n {this.props.additionalInputIcons}\r\n
    \r\n )}\r\n {this.props.showLength && this.state.inputValue ? this.renderLengthCounter() : null}\r\n
    \r\n {showErrorMessage && this.renderErrors(errors)}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n","import { Component, HTMLAttributes } from \"react\"\r\nimport { Size } from \"../../models/skins\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\n\r\nexport type TextModifiers =\r\n | \"right\"\r\n | \"strong\"\r\n | \"highlight\"\r\n | \"serif\"\r\n | \"light\"\r\n | \"sub\"\r\n | \"block\"\r\n | \"strikethrough\"\r\n | \"danger\"\r\n | \"warning\"\r\n | \"success\"\r\n\r\nexport type TextProps = HTMLAttributes & {\r\n size?: Size\r\n className?: string\r\n modifiers?: TextModifiers | Array\r\n title?: string\r\n}\r\n\r\nexport default class Text extends Component {\r\n constructor(props: TextProps) {\r\n super(props)\r\n bindMethodsToContext(this, [\"build\"])\r\n }\r\n\r\n render() {\r\n const { /* title, */ size, modifiers, className, ...rest } = this.props\r\n // let childToTitle = typeof(this.props.children) === \"string\" ? this.props.children : undefined // MLE 12.03.2020 - Removed. Tooltips/Titles should rather be set explicit!\r\n const props = {\r\n className: this.buildClassName(),\r\n // title: title ? title : childToTitle,\r\n ...rest,\r\n }\r\n\r\n return
    {this.props.children}
    \r\n }\r\n\r\n buildClassName() {\r\n const { modifiers, className, size } = this.props\r\n const baseName = \"text\"\r\n let fullClassName = `${baseName}`\r\n\r\n fullClassName = `${fullClassName} ${fullClassName}--${size || \"m\"}`\r\n\r\n if (className) {\r\n fullClassName = `${fullClassName} ${className}`\r\n }\r\n\r\n if (modifiers) {\r\n if (typeof modifiers == \"string\") {\r\n fullClassName = `${fullClassName} ${baseName}--${modifiers as string}`\r\n } else {\r\n ;(modifiers as Array).forEach((modifier) => {\r\n fullClassName = `${fullClassName} ${baseName}--${modifier}`\r\n })\r\n }\r\n }\r\n\r\n return fullClassName\r\n }\r\n}\r\n","import { Component, PropsWithChildren } from \"react\"\r\n\r\nexport default class ToolbarContent extends Component {\r\n constructor(props: any) {\r\n super(props)\r\n }\r\n\r\n render() {\r\n const baseName = \"toolbar__content\"\r\n const className = `${baseName}`\r\n\r\n return
    {this.props.children}
    \r\n }\r\n}\r\n","import { PropsWithChildren, PureComponent } from \"react\"\r\nimport SubTitle from \"../../subtitle\"\r\n\r\nexport default class ToolbarTitle extends PureComponent> {\r\n render() {\r\n const baseName = \"toolbar__title\"\r\n const className = `${baseName}`\r\n\r\n return (\r\n \r\n {this.props.children}\r\n \r\n )\r\n }\r\n}\r\n","import { Component, PropsWithChildren } from \"react\"\r\nimport ToolbarTitle from \"./components/toolbar-title\"\r\nimport ToolbarContent from \"./components/toolbar-content\"\r\n\r\nexport type ToolbarProps = PropsWithChildren<{\r\n fixed?: boolean\r\n title?: string\r\n modifiers?: Array<\"no-border\" | \"border-left\" | \"align-right\" | \"title-before\" | \"title-bottom\" | \"stretch\" | \"highlight\">\r\n className?: string\r\n}>\r\n\r\n/**\r\n * @description Use this to force a vertical toolbar group layout\r\n */\r\nexport default class Toolbar extends Component {\r\n render() {\r\n const baseName = `toolbar`\r\n const { title, className, modifiers, fixed } = this.props\r\n let fullClassName = `${baseName}`\r\n\r\n if (modifiers) {\r\n modifiers.forEach((modifier: string) => {\r\n fullClassName = `${fullClassName} ${baseName}--${modifier}`\r\n })\r\n }\r\n\r\n if (className) {\r\n fullClassName = `${fullClassName} ${className}`\r\n }\r\n\r\n let ToolbarElement = (\r\n
    \r\n
    \r\n {title && {title}}\r\n {this.props.children}\r\n
    \r\n
    \r\n )\r\n\r\n if (fixed) {\r\n ToolbarElement = {ToolbarElement}\r\n }\r\n\r\n return ToolbarElement\r\n }\r\n}\r\n\r\nfunction FixedToolbar(props: any) {\r\n return
    {props.children}
    \r\n}\r\n","import { CSSProperties, Children, Component, ReactChild, cloneElement } from \"react\"\r\nimport * as ReactDOM from \"react-dom\"\r\nimport { equals, registerOutsideClick } from \"@tm/utils\"\r\nimport cx from \"bem-classnames\"\r\nimport { Size } from \"../../models/skins\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport Text from \"../text\"\r\n\r\nexport type TooltipPositions = \"top\" | \"right\" | \"bottom\" | \"left\"\r\nexport type TooltipEvents = \"hover\" | \"click\"\r\nexport type TooltipStyle = \"dark\" | \"light\" | \"primary\" | \"highlight\" | \"highlight-filled\"\r\n\r\nexport type Props = {\r\n content?: string | JSX.Element\r\n textSize?: Size\r\n position?: TooltipPositions\r\n event?: TooltipEvents\r\n hideDelay?: number\r\n style?: TooltipStyle\r\n hideOnOutsideClick?: boolean\r\n resizable?: boolean\r\n disabled?: boolean\r\n className?: string\r\n children?: ReactChild\r\n showOnlyOnOverflow?: boolean\r\n onChangeVisibility?(open: boolean): void\r\n preventCloseOnScroll?: boolean\r\n forcePosition?: boolean\r\n}\r\n\r\nexport type State = {\r\n isVisible: boolean\r\n position: TooltipPositions\r\n}\r\n\r\nconst bemConfig = {\r\n name: \"tooltip\",\r\n modifiers: [\"style\"],\r\n\r\n wrapper: {\r\n name: \"tooltip__wrapper\",\r\n modifiers: [\"position\"],\r\n states: [\"visible\"],\r\n },\r\n\r\n arrow: {\r\n name: \"tooltip__arrow\",\r\n },\r\n\r\n content: {\r\n name: \"tooltip__content\",\r\n states: [\"resizable\"],\r\n },\r\n}\r\n\r\nexport default class Tooltip extends Component {\r\n private tooltipRef: HTMLElement | null = null\r\n\r\n private wrapperRef: HTMLElement | null = null\r\n\r\n private contentRef: HTMLElement | null = null\r\n\r\n private childRef: HTMLElement | null = null\r\n\r\n private tooltipsRef: HTMLElement | null = document.getElementById(\"tooltips\")\r\n\r\n private removeOutsideClick?: () => void\r\n\r\n private showTooltipTimeout: number\r\n\r\n static get defaultProps(): Partial {\r\n return {\r\n position: \"bottom\",\r\n event: \"hover\",\r\n hideDelay: 0,\r\n style: \"dark\",\r\n hideOnOutsideClick: true,\r\n resizable: false,\r\n }\r\n }\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n\r\n this.tooltipsRef = document.getElementById(\"tooltips\")\r\n\r\n this.state = {\r\n isVisible: false,\r\n position: this.props.position!,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (window.addEventListener) {\r\n if (!this.props.preventCloseOnScroll) {\r\n window.addEventListener(\"wheel\", this.scrollEventHandler)\r\n }\r\n this.addEventsToRef()\r\n }\r\n }\r\n\r\n scrollEventHandler = () => {\r\n if (this.state.isVisible) {\r\n this.handleHideTooltip()\r\n }\r\n }\r\n\r\n addEventsToRef = () => {\r\n if (this.childRef) {\r\n const { event } = this.props\r\n const handlers = this.getChildHandler(event)\r\n\r\n for (const key in handlers) {\r\n if (handlers.hasOwnProperty(key)) {\r\n this.childRef.addEventListener(key, (handlers as any)[key])\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeEventsFromRef = () => {\r\n if (this.childRef) {\r\n const { event } = this.props\r\n const handlers = this.getChildHandler(event)\r\n\r\n for (const key in handlers) {\r\n if (handlers.hasOwnProperty(key)) {\r\n this.childRef.removeEventListener(key, (handlers as any)[key])\r\n }\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.removeOutsideClick) {\r\n this.removeOutsideClick()\r\n this.removeOutsideClick = undefined\r\n }\r\n\r\n window.removeEventListener(\"wheel\", this.scrollEventHandler)\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\r\n if (nextProps.position != this.state.position) {\r\n this.setState({\r\n position: nextProps.position!,\r\n })\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Props, prevState: State) {\r\n // if tooltip was hidden clear resized styles\r\n if (prevState.isVisible && !this.state.isVisible) {\r\n this.resetContentSize()\r\n }\r\n\r\n // handle offscreen if tooltip was shown or got different content\r\n if ((!prevState.isVisible || !equals(prevProps.content, this.props.content)) && this.state.isVisible) {\r\n this.handleOffscreen()\r\n }\r\n }\r\n\r\n private resetContentSize() {\r\n if (!this.contentRef) {\r\n return\r\n }\r\n\r\n this.contentRef.removeAttribute(\"style\")\r\n }\r\n\r\n private handleOffscreen() {\r\n if (!this.wrapperRef) {\r\n return\r\n }\r\n\r\n const { position } = this.state\r\n const { forcePosition } = this.props\r\n\r\n const el = this.wrapperRef\r\n el.removeAttribute(\"style\")\r\n const rect = el.getBoundingClientRect()\r\n const parent = this.getFirstOverflowParent(el) || document.body\r\n const parentRect = parent.getBoundingClientRect()\r\n\r\n // This value will be added to the overflows,\r\n // to have a little gap bewteen the tooltip and the\r\n // the overflowing parent or the document body\r\n const gap = 2\r\n\r\n const overflows = {\r\n top: -(rect.top - parentRect.top) + gap,\r\n right: rect.right - parentRect.right + gap,\r\n bottom: rect.bottom - parentRect.bottom + gap,\r\n left: -(rect.left - parentRect.left) + gap,\r\n }\r\n\r\n // move tooltip to opposite position if offscreen\r\n if (!forcePosition) {\r\n switch (position) {\r\n case \"top\":\r\n overflows.top += window.pageYOffset\r\n if (overflows.top > 0) {\r\n this.setState({ position: \"bottom\" })\r\n }\r\n break\r\n case \"right\":\r\n if (overflows.right > 0) {\r\n this.setState({ position: \"left\" })\r\n }\r\n break\r\n case \"bottom\":\r\n overflows.bottom -= window.pageYOffset\r\n if (overflows.bottom > 0) {\r\n this.setState({ position: \"top\" })\r\n }\r\n break\r\n case \"left\":\r\n if (overflows.left > 0) {\r\n this.setState({ position: \"right\" })\r\n }\r\n break\r\n }\r\n }\r\n\r\n const arrow = el.firstElementChild as HTMLElement\r\n arrow.removeAttribute(\"style\")\r\n const arrowRect = arrow.getBoundingClientRect()\r\n\r\n let offset: number | undefined\r\n let arrowOffset: number | undefined\r\n\r\n // move tooltip horizontally if positioned top or bottom and offscreen\r\n // or vertically if position right or left and offscreen\r\n if (position == \"top\" || position == \"bottom\") {\r\n const halfWrapperWidth = rect.width / 2\r\n const halfArrowWidth = arrowRect.width / 2\r\n\r\n if (overflows.right > 0) {\r\n offset = -halfWrapperWidth - overflows.right\r\n arrowOffset = Math.min(-halfArrowWidth + overflows.right, halfWrapperWidth - arrowRect.width)\r\n } else if (overflows.left > 0) {\r\n offset = -halfWrapperWidth + overflows.left\r\n arrowOffset = Math.max(-halfArrowWidth - overflows.left, -halfWrapperWidth)\r\n }\r\n\r\n if (offset != undefined) {\r\n el.style.transform = `translateX(${offset}px)`\r\n }\r\n if (arrowOffset != undefined) {\r\n arrow.style.transform = `translateX(${arrowOffset}px)`\r\n }\r\n } else if (position == \"right\" || position == \"left\") {\r\n const halfWrapperHeight = rect.height / 2\r\n const halfArrowHeight = arrowRect.height / 2\r\n\r\n if (overflows.top > 0) {\r\n offset = -halfWrapperHeight + overflows.top\r\n arrowOffset = Math.max(-halfArrowHeight - overflows.top, -halfWrapperHeight)\r\n } else if (overflows.bottom > 0) {\r\n offset = -halfWrapperHeight - overflows.bottom\r\n arrowOffset = Math.min(-halfArrowHeight + overflows.bottom, halfWrapperHeight - arrowRect.height)\r\n }\r\n\r\n if (offset != undefined) {\r\n el.style.transform = `translateY(${offset}px)`\r\n }\r\n if (arrowOffset != undefined) {\r\n arrow.style.transform = `translateY(${arrowOffset}px)`\r\n }\r\n }\r\n }\r\n\r\n private getFirstOverflowParent(el: HTMLElement): HTMLElement | undefined {\r\n if (!el || !el.parentElement) {\r\n return\r\n }\r\n\r\n const { parentElement } = el\r\n const style = window.getComputedStyle(parentElement)\r\n\r\n if (style.overflowX == \"hidden\" || style.overflowY == \"hidden\") {\r\n return parentElement\r\n }\r\n\r\n return this.getFirstOverflowParent(parentElement)\r\n }\r\n\r\n private handleTooltipRef(ref: HTMLElement | null) {\r\n this.tooltipRef = ref\r\n }\r\n\r\n private handleWrapperRef(ref: HTMLElement | null) {\r\n this.wrapperRef = ref\r\n\r\n this.registerOutsideClick()\r\n }\r\n\r\n private handleContentRef(ref: HTMLElement | null) {\r\n this.contentRef = ref\r\n }\r\n\r\n private handleChildRef(ref: HTMLElement | null) {\r\n if (ref !== this.childRef) {\r\n this.removeEventsFromRef()\r\n this.childRef = ref as HTMLElement\r\n this.addEventsToRef()\r\n }\r\n }\r\n\r\n /*\r\n * Show/Hide the tooltip\r\n * return void\r\n */\r\n private handleToggleTooltip(e: React.MouseEvent) {\r\n // e.stopPropagation()\r\n\r\n // ignore clicks inside the tooltip content\r\n if (this.wrapperRef && this.wrapperRef.contains(e.target as Node)) {\r\n return\r\n }\r\n\r\n if (this.state.isVisible) {\r\n this.handleHideTooltip()\r\n } else {\r\n this.handleShowTooltip()\r\n }\r\n }\r\n\r\n private handleShowTooltipDelayed(e?: React.MouseEvent) {\r\n this.showTooltipTimeout = window.setTimeout(() => {\r\n this.handleShowTooltip(e)\r\n }, 500)\r\n }\r\n\r\n /*\r\n * Change the state to show the tooltip\r\n * @return void\r\n */\r\n private handleShowTooltip(e?: React.MouseEvent) {\r\n const { disabled, onChangeVisibility, showOnlyOnOverflow } = this.props\r\n\r\n if (disabled) {\r\n return\r\n }\r\n\r\n if (showOnlyOnOverflow && e) {\r\n if (e.currentTarget.offsetWidth > e.currentTarget.scrollWidth + 1) {\r\n return\r\n }\r\n }\r\n\r\n this.setState({ isVisible: true })\r\n\r\n this.registerOutsideClick()\r\n\r\n onChangeVisibility && onChangeVisibility(true)\r\n }\r\n\r\n /**\r\n * registering outside click in a timeout to prevent the outsideclick to be triggered by the body\r\n */\r\n registerOutsideClick = () => {\r\n setTimeout(() => {\r\n if (!this.removeOutsideClick && this.wrapperRef && this.props.hideOnOutsideClick) {\r\n this.removeOutsideClick = registerOutsideClick(this.wrapperRef, this.handleHideTooltip)\r\n }\r\n }, 0)\r\n }\r\n\r\n /*\r\n * Change the state to hide the tooltip\r\n * @return void\r\n */\r\n private handleHideTooltip() {\r\n const hide = () => {\r\n window.clearTimeout(this.showTooltipTimeout)\r\n\r\n this.setState({\r\n isVisible: false,\r\n position: this.props.position!,\r\n })\r\n\r\n if (this.wrapperRef) {\r\n this.wrapperRef.style.transform = \"\"\r\n ;(this.wrapperRef.firstElementChild as HTMLElement).style.transform = \"\"\r\n }\r\n\r\n if (this.removeOutsideClick && this.props.hideOnOutsideClick) {\r\n this.removeOutsideClick()\r\n this.removeOutsideClick = undefined\r\n }\r\n\r\n const { onChangeVisibility } = this.props\r\n onChangeVisibility && onChangeVisibility(false)\r\n }\r\n\r\n const { hideDelay } = this.props\r\n\r\n if (hideDelay && hideDelay > 0) {\r\n window.setTimeout(() => hide(), hideDelay)\r\n } else {\r\n hide()\r\n }\r\n }\r\n\r\n show() {\r\n this.handleShowTooltip()\r\n }\r\n\r\n hide() {\r\n this.handleHideTooltip()\r\n }\r\n\r\n private renderContent() {\r\n const { content, style, textSize } = this.props\r\n\r\n if (typeof content == \"string\") {\r\n return (\r\n \r\n {content}\r\n \r\n )\r\n }\r\n\r\n return content\r\n }\r\n\r\n private renderWrapper() {\r\n const { resizable, content } = this.props\r\n const { position } = this.state\r\n\r\n if (!content) {\r\n return\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.renderContent()}\r\n
    \r\n
    \r\n )\r\n }\r\n\r\n private renderToolTipWrapper() {\r\n const { style, className } = this.props\r\n\r\n const wrapperPositioning = this.getWrapperBoundingRect()\r\n\r\n if (!wrapperPositioning || !this.tooltipsRef) {\r\n return null\r\n }\r\n\r\n const portal = ReactDOM.createPortal(\r\n
    \r\n {this.renderWrapper()}\r\n
    ,\r\n this.tooltipsRef\r\n )\r\n\r\n return portal\r\n }\r\n\r\n private getWrapperBoundingRect = () => {\r\n let boundingRect: DOMRect | null = null\r\n const child = this.childRef\r\n if (child && typeof child !== \"string\" && typeof child !== \"function\" && child) {\r\n boundingRect = child.getBoundingClientRect() as DOMRect\r\n }\r\n\r\n if (!boundingRect) {\r\n return null\r\n }\r\n const { position } = this.state\r\n\r\n const { height, top, left, x: xbr, y: ybr } = boundingRect\r\n const y = ybr || top\r\n const x = xbr || left\r\n\r\n const positions = {\r\n top: {\r\n top: y + window.pageYOffset,\r\n left: x,\r\n },\r\n left: {\r\n top: y + height / 2,\r\n left: x,\r\n },\r\n bottom: {\r\n top: y + height + window.pageYOffset,\r\n left: x,\r\n },\r\n right: {\r\n top: y + height / 2 + window.pageYOffset,\r\n left: x,\r\n },\r\n }\r\n\r\n const wrapperPositioning: CSSProperties = {\r\n minWidth: boundingRect.width,\r\n height: 0, // boundingRect.height,\r\n position: \"absolute\",\r\n ...positions[position || \"top\"],\r\n }\r\n\r\n return wrapperPositioning\r\n }\r\n\r\n getChildHandler(event?: \"hover\" | \"click\") {\r\n return event == \"hover\"\r\n ? {\r\n mouseenter: this.handleShowTooltipDelayed,\r\n mouseleave: this.handleHideTooltip,\r\n }\r\n : {\r\n click: this.handleToggleTooltip,\r\n }\r\n }\r\n\r\n render() {\r\n cx.prefixes.states = \"is-\"\r\n const { event, children } = this.props\r\n let childrenWithRefAndHandlers = children\r\n\r\n if (children) {\r\n let content: any | null = null\r\n switch (typeof children) {\r\n case \"string\":\r\n case \"number\": {\r\n content =
    {children}
    \r\n break\r\n }\r\n\r\n default: {\r\n content = children\r\n break\r\n }\r\n }\r\n\r\n ;(childrenWithRefAndHandlers as any) = Children.map(content, (child) => {\r\n return cloneElement(content, {\r\n ref: (ref: HTMLElement | null) => {\r\n let hoverableRef = ref\r\n\r\n if (hoverableRef && !hoverableRef.getBoundingClientRect) {\r\n hoverableRef = ReactDOM.findDOMNode(hoverableRef) as any\r\n }\r\n this.handleChildRef(hoverableRef)\r\n\r\n // Call the original ref, if any\r\n const originRefHandler = child.ref\r\n if (typeof originRefHandler === \"function\") {\r\n originRefHandler(hoverableRef)\r\n }\r\n },\r\n })\r\n })\r\n }\r\n\r\n return event ? (\r\n <>\r\n {this.state.isVisible && this.renderToolTipWrapper()}\r\n {childrenWithRefAndHandlers}\r\n \r\n ) : null\r\n }\r\n}\r\n","import { VrmLookupTextIds } from \"@tm/models\"\r\nimport { formatVin, getValue, Overwrite, setValue } from \"@tm/utils\"\r\nimport { Component } from \"react\"\r\nimport { SuggestionTextField, SuggestionTextFieldProps } from \"..\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\n\r\nexport type Props = Overwrite<\r\n SuggestionTextFieldProps,\r\n {\r\n coloredBorder?: boolean\r\n value?: string\r\n onChange?(model: any, path?: Array, validVin?: boolean): void\r\n tecDocManufacturerId?: number\r\n }\r\n> & {\r\n datVinSearchIsValid?: boolean\r\n vinSearchRequired?: boolean\r\n vinSearchOptional?: boolean\r\n datPricePerRequest?: string\r\n vinSearchInformalMessage?: VrmLookupTextIds\r\n checkVinLoading?: boolean\r\n translateText?(key: string | number): string\r\n validateVin?(): void\r\n}\r\n\r\nexport type State = {\r\n validVin?: boolean\r\n}\r\n\r\nconst VIN_LENGTH = 17\r\nconst VIN_LENGTH_SMALL = 7\r\nconst BMW_TecDoc_Id = 16\r\nlet willUnmount = false\r\nclass VinField extends Component {\r\n private suggestionTimeoutId: number\r\n\r\n private requestCount: number = 0\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n this.state = {\r\n validVin: this.validateVin(props.value ?? props?.model?.vin),\r\n }\r\n bindMethodsToContext(this)\r\n }\r\n\r\n componentWillUnmount() {\r\n window.clearTimeout(this.suggestionTimeoutId)\r\n }\r\n\r\n componentDidMount() {\r\n willUnmount = false\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n willUnmount = true\r\n }\r\n\r\n getSuggestions(query: string): Promise> {\r\n const { getSuggestionData, getSuggestionDataAsync } = this.props\r\n\r\n if (getSuggestionDataAsync) {\r\n return new Promise>((resolve, reject) => {\r\n const requestCount = ++this.requestCount\r\n\r\n window.clearTimeout(this.suggestionTimeoutId)\r\n\r\n // not sure if the promise will be cleared on unmount,\r\n // what currently is happing, the vin field sends an async call due to a default value\r\n // gets unmounted (251ms later) and the promise will try to update an unmounted component\r\n this.suggestionTimeoutId = window.setTimeout(\r\n () =>\r\n getSuggestionDataAsync(query).then(\r\n (data: any) => {\r\n if (requestCount == this.requestCount) {\r\n if (!willUnmount) {\r\n resolve(data || [])\r\n }\r\n }\r\n },\r\n () => {\r\n reject([])\r\n }\r\n ),\r\n 250\r\n )\r\n })\r\n }\r\n if (getSuggestionData) {\r\n return Promise.resolve(getSuggestionData(query) || [])\r\n }\r\n return Promise.resolve([])\r\n }\r\n\r\n handleChange(model: any, path?: Array) {\r\n const { onChange } = this.props\r\n let value: string | undefined = model && path ? getValue(model, path) : model\r\n\r\n if (!value) {\r\n this.setState({ validVin: undefined })\r\n onChange && onChange(model, path, undefined)\r\n return\r\n }\r\n\r\n const isValid = this.validateVin(value)\r\n\r\n if (!isValid) {\r\n this.setState({ validVin: false })\r\n onChange && onChange(model, path, false)\r\n return\r\n }\r\n\r\n value = formatVin(value)\r\n\r\n if (model && path) {\r\n model = setValue(model, path, value)\r\n } else {\r\n model = value\r\n }\r\n\r\n this.setState({ validVin: true })\r\n onChange && onChange(model, path, true)\r\n\r\n if (value.match(/(\\d|[a-zA-Z])\\1{9,}/)) {\r\n this.setState({ validVin: false })\r\n onChange && onChange(model, path, false)\r\n }\r\n }\r\n\r\n handleChangeConfirm(model: any, path?: Array) {\r\n this.handleChange(model, path)\r\n\r\n const value: string | undefined = model && path ? getValue(model, path) : model\r\n const isValid = this.validateVin(value)\r\n\r\n if (this.props.onChangeConfirm) {\r\n this.props.onChangeConfirm(model, path, isValid)\r\n }\r\n }\r\n\r\n validateVin(value?: string) {\r\n const { tecDocManufacturerId } = this.props\r\n let isValid = value?.length == VIN_LENGTH\r\n\r\n if (!isValid && tecDocManufacturerId == BMW_TecDoc_Id) {\r\n isValid = value?.length == VIN_LENGTH_SMALL\r\n }\r\n\r\n return isValid\r\n }\r\n\r\n render() {\r\n const { coloredBorder, ...rest } = this.props\r\n const { validVin } = this.state\r\n\r\n let className = \"vin-field \"\r\n\r\n if (coloredBorder && (!!rest.value?.length || !!rest?.model?.vin?.length)) {\r\n if (this.props.vinSearchRequired) {\r\n className += this.props.datVinSearchIsValid ? \"vin-field--success \" : \"vin-field--danger \"\r\n } else {\r\n className += validVin ? \"vin-field--success \" : \"vin-field--danger \"\r\n }\r\n }\r\n\r\n if (this.props.className) {\r\n className += this.props.className\r\n }\r\n\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default VinField\r\n","import { Component } from \"react\"\r\nimport Icon from \"../icon\"\r\nimport Image from \"../image\"\r\n\r\nexport function WidgetTitleText(props: any) {\r\n return
    {props.children}
    \r\n}\r\n\r\nexport function WidgetOptions(props: any) {\r\n return
    {props.children}
    \r\n}\r\n\r\nexport function WidgetIcon(props: any) {\r\n const { iconName } = props\r\n return iconName && \r\n}\r\n\r\nexport function WidgetImage(props: any) {\r\n const { imageUrl } = props\r\n return imageUrl && \r\n}\r\n\r\nexport class WidgetTitle extends Component {\r\n public static Text = WidgetTitleText\r\n\r\n public static Options = WidgetOptions\r\n\r\n render() {\r\n const { className } = this.props\r\n\r\n return
    {this.props.children}
    \r\n }\r\n}\r\n\r\nexport class WidgetHeader extends Component {\r\n public static Title = WidgetTitle\r\n\r\n public static Icon = WidgetIcon\r\n\r\n render() {\r\n const { className } = this.props\r\n\r\n return
    {this.props.children}
    \r\n }\r\n}\r\n\r\nexport function WidgetContent(props: any) {\r\n return
    {props.children}
    \r\n}\r\n\r\nexport function WidgetFooter(props: any) {\r\n return
    {props.children}
    \r\n}\r\n\r\nexport function WidgetCover(props: any) {\r\n return
    {props.children}
    \r\n}\r\n","import { style } from \"typestyle\"\r\nimport { Component, MouseEventHandler, MutableRefObject, PropsWithChildren, ReactNode } from \"react\"\r\nimport Icon from \"../icon\"\r\nimport { WidgetHeader, WidgetContent, WidgetFooter, WidgetTitle, WidgetCover, WidgetTitleText, WidgetImage, WidgetIcon } from \"./components\"\r\nimport { bindMethodsToContext } from \"../../helper\"\r\nimport { Demo, Text } from \"..\"\r\n\r\nexport * from \"./components\"\r\n\r\nexport type WidgetSizes =\r\n | \"1x1\"\r\n | \"1x2\"\r\n | \"1x3\"\r\n | \"1x4\"\r\n | \"1x5\"\r\n | \"2x1\"\r\n | \"2x2\"\r\n | \"2x3\"\r\n | \"2x4\"\r\n | \"2x5\"\r\n | \"3x1\"\r\n | \"3x2\"\r\n | \"3x3\"\r\n | \"3x4\"\r\n | \"3x5\"\r\n | \"4x1\"\r\n | \"4x2\"\r\n | \"4x3\"\r\n | \"4x4\"\r\n | \"4x5\"\r\n | \"5x1\"\r\n | \"5x2\"\r\n | \"5x3\"\r\n | \"5x4\"\r\n | \"5x5\"\r\n | \"6x1\"\r\n | \"6x2\"\r\n | \"6x3\"\r\n | \"6x4\"\r\n | \"6x5\"\r\n | \"12x1\"\r\n | \"12x2\"\r\n | \"12x3\"\r\n | \"12x4\"\r\n | \"12x5\"\r\n\r\nexport type WidgetProps = PropsWithChildren<{\r\n size?: WidgetSizes\r\n height?: number\r\n variableHeight?: boolean\r\n className?: string\r\n collapsible?: boolean\r\n tinyWidget?: boolean\r\n title?: string | ReactNode\r\n iconName?: string\r\n imageUrl?: string\r\n active?: boolean\r\n highlight?: boolean\r\n indicator?: boolean\r\n cover?: JSX.Element\r\n header?: JSX.Element\r\n footer?: JSX.Element\r\n hideCover?: boolean\r\n blockedByCondition?: boolean\r\n onClick?: MouseEventHandler\r\n onDoubleClick?: MouseEventHandler\r\n tooltip?: string\r\n notAvailableMsg?: string\r\n notAvailableIcon?: string\r\n id?: string\r\n forwardedRef?: MutableRefObject | ((instance: HTMLDivElement | null) => void)\r\n displayDemoBadge?: boolean\r\n fullHeight?: boolean\r\n appendToHeader?: JSX.Element\r\n hidePlaceholders?: boolean\r\n target?: {\r\n icon?: string\r\n }\r\n}>\r\n\r\nexport type WidgetStates = {\r\n collapsed: boolean\r\n}\r\n\r\nexport type WidgetElements = {\r\n Header?: JSX.Element\r\n Footer?: JSX.Element\r\n Cover?: JSX.Element\r\n}\r\n\r\n/**\r\n * Class Widget will set the frame for a widget, which are used e.g. by the dashboard\r\n */\r\nexport default class Widget extends Component {\r\n public static Cover = WidgetCover\r\n\r\n public static Content = WidgetContent\r\n\r\n public static Header = WidgetHeader\r\n\r\n public static Footer = WidgetFooter\r\n\r\n private internalComponents: WidgetElements\r\n\r\n private defaultWidgetSize: string\r\n\r\n constructor(props: WidgetProps) {\r\n super(props)\r\n bindMethodsToContext(this)\r\n\r\n this.internalComponents = {\r\n Cover: props.cover,\r\n Footer: props.footer,\r\n Header: props.header,\r\n }\r\n\r\n this.state = {\r\n collapsed: false,\r\n }\r\n\r\n this.getSizeClassnames = this.getSizeClassnames.bind(this)\r\n this.defaultWidgetSize = this.getSizeClassnames(\"4x2\")\r\n }\r\n\r\n handleChange(e: any) {\r\n this.setState((state) => ({ collapsed: !state.collapsed }))\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(props: WidgetProps) {\r\n this.internalComponents = {\r\n Cover: props.cover,\r\n Footer: props.footer,\r\n Header: props.header,\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n className,\r\n collapsible,\r\n size,\r\n active,\r\n highlight,\r\n indicator,\r\n tooltip,\r\n notAvailableMsg,\r\n blockedByCondition,\r\n notAvailableIcon,\r\n height,\r\n id,\r\n fullHeight,\r\n } = this.props\r\n const { collapsed } = this.state\r\n\r\n const widgetClassname = `${collapsed ? \" widget--collapsed\" : \"\"}${highlight ? \" widget--highlight\" : \"\"}${\r\n indicator ? \" widget--indicator\" : \"\"\r\n }${` ${size ? this.getSizeClassnames(size) : this.defaultWidgetSize}`}${active ? \" is-open\" : \"\"}`\r\n\r\n let widgetStyle = height ? { height: `${height}em` } : undefined\r\n widgetStyle = fullHeight ? { height: \"100%\" } : widgetStyle\r\n\r\n return (\r\n \r\n
    \r\n {(!active || blockedByCondition) && notAvailableMsg && (\r\n
    \r\n \r\n \r\n {notAvailableMsg}\r\n \r\n {notAvailableIcon && (\r\n <>\r\n
    \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n {collapsible ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n {active ?
    {this.renderOpenWidget()}
    : this.renderCover()}\r\n
    \r\n
    \r\n )\r\n }\r\n\r\n renderOpenWidget() {\r\n return (\r\n <>\r\n {this.renderHeader()}\r\n {this.renderContent()}\r\n {this.renderFooter()}\r\n \r\n )\r\n }\r\n\r\n renderHeader() {\r\n return this.internalComponents.Header || defaultHeader({ ...this.props })\r\n }\r\n\r\n renderContent() {\r\n return {this.props.children}\r\n }\r\n\r\n renderFooter() {\r\n return
    {this.internalComponents.Footer}
    \r\n }\r\n\r\n renderCover() {\r\n if (this.props.hideCover) {\r\n return null\r\n }\r\n\r\n return this.internalComponents.Cover || defaultCover({ ...this.props })\r\n }\r\n\r\n handleClick(e: any) {\r\n this.props.onClick?.(e)\r\n }\r\n\r\n handleDoubleClick(e: any) {\r\n this.props.onDoubleClick?.(e)\r\n }\r\n\r\n getSizeClassnames(widgetSize: WidgetSizes): string {\r\n const size = /(\\d+)x(\\d+)/.test(widgetSize) ? widgetSize : this.defaultWidgetSize\r\n const dimension = /(?\\d+)x(?\\d+)/.exec(size)?.groups\r\n\r\n if (dimension) {\r\n return `widget--w${dimension.width} ${!this.props.variableHeight ? `widget--h${dimension.height}` : \"\"}`\r\n }\r\n\r\n return `widget--w4${!this.props.variableHeight ? ` widget--h2 ` : \" \"}`\r\n }\r\n}\r\n\r\nconst defaultImageOrIcon = (props: any) => {\r\n const { iconName, imageUrl } = props\r\n let IconOrImage = iconName ? : null\r\n IconOrImage = imageUrl ? : IconOrImage\r\n return IconOrImage\r\n}\r\n\r\nconst defaultCoverImageOrIcon = (props: any) => {\r\n const { iconName, imageUrl } = props\r\n let IconOrImage = iconName ? : null\r\n IconOrImage = imageUrl ? : IconOrImage\r\n return IconOrImage\r\n}\r\n\r\nconst defaultHeader = (props: any) => {\r\n const { title } = props\r\n const HeaderAppendix = props.appendToHeader ? props.appendToHeader : null\r\n return (\r\n \r\n \r\n {defaultImageOrIcon(props)}\r\n {title && {title}}\r\n \r\n {HeaderAppendix}\r\n \r\n )\r\n}\r\n\r\nconst defaultCover = (props: any) => (\r\n \r\n {props.displayDemoBadge && }\r\n {defaultCoverImageOrIcon(props)}\r\n
    {props.title}
    \r\n {props.target?.icon && }\r\n
    \r\n)\r\n\r\nconst vehicleCover = style({\r\n position: \"absolute\",\r\n zIndex: 9,\r\n backgroundColor: \"rgba(0,0,0,0.6)\",\r\n color: \"#fff\",\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n opacity: 0,\r\n $nest: {\r\n \"&:hover\": {\r\n opacity: 1,\r\n },\r\n span: {\r\n maxWidth: \"100px\",\r\n },\r\n \".text\": {\r\n color: \"#fff\",\r\n },\r\n \".icon\": {\r\n fill: \"#fff\",\r\n opacity: \"1\",\r\n marginTop: \"5px\",\r\n },\r\n },\r\n})\r\n\r\nconst demoBadge = style({\r\n position: \"absolute\",\r\n top: 0,\r\n right: 0,\r\n height: \"32px\",\r\n width: \"32px\",\r\n})\r\n","import { PropsWithChildren } from \"react\"\r\nimport Icon from \"../icon\"\r\n\r\nexport type SidebarWidgetProps = PropsWithChildren<{\r\n title: string\r\n icon: string\r\n className?: string\r\n id?: string\r\n}>\r\n\r\nexport default function SidebarWidget(props: SidebarWidgetProps) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {props.title}
    \r\n
    \r\n
    {props.children}
    \r\n
    \r\n )\r\n}\r\n","export class ControlsConfig {\r\n private constructor() {}\r\n\r\n static config: {\r\n [key: string]: {\r\n [key: string]: string\r\n }\r\n }\r\n\r\n static get(control: string): Partial {\r\n return (ControlsConfig.config[control.toLowerCase()] as any as Partial) || {}\r\n }\r\n}\r\n\r\nControlsConfig.config = {}\r\n\r\n/** *\r\n * @param appConfig {AppConfig} required, parsed AppConfig, if not parsed it will try to parse\r\n */\r\nexport function appendControlsConfig(appConfig: any) {\r\n let config = appConfig\r\n\r\n if (typeof config === \"string\") {\r\n try {\r\n config = JSON.parse(config)\r\n } catch (e) {\r\n console.warn(\"controls, parsing config failed\")\r\n }\r\n }\r\n\r\n if (config.controls) {\r\n ControlsConfig.config = config.controls\r\n ;(window as any).__NEXT_CONTROLS__ = config.controls\r\n }\r\n}\r\n","import { Component } from \"react\"\r\n\r\nexport function bindMethodsToContext(component: Component, conditions: Array = []) {\r\n const comp = component as any\r\n conditions.push(\"render\", \"handle\")\r\n Object.getOwnPropertyNames(comp.__proto__).forEach((key) => {\r\n conditions.forEach((condition) => {\r\n if (key.indexOf(condition) == 0 && typeof comp[key] == \"function\") {\r\n comp[key] = comp[key].bind(comp)\r\n }\r\n })\r\n })\r\n}\r\n","function convertDateNumbers(value: number): string {\r\n const charCount = value.toString().length\r\n let returnValue = value.toString()\r\n\r\n if (charCount < 2) {\r\n returnValue = `0${value}`\r\n }\r\n\r\n return returnValue\r\n}\r\n\r\nexport function getTime(date: Date) {\r\n const hours = convertDateNumbers(date.getHours())\r\n const minutes = convertDateNumbers(date.getMinutes())\r\n const seconds = convertDateNumbers(date.getSeconds())\r\n\r\n return `${hours}:${minutes}:${seconds}`\r\n}\r\n","let lastId = 0\r\nexport function elementId(prefix: string = \"el\") {\r\n const id = Math.floor(Math.random() * (10000 * lastId - 1 * lastId) + lastId)\r\n lastId++\r\n return `${prefix}${id}`\r\n}\r\n","export const fileTypeMapping = {\r\n jpg: { accept: [\".jpg\", \".jpeg\"], mime: [\"image/jpeg\"] },\r\n png: { accept: [\".png\"], mime: [\"image/png\"] },\r\n gif: { accept: [\".gif\"], mime: [\"image/gif\"] },\r\n pdf: { accept: [\".pdf\"], mime: [\"application/pdf\"] },\r\n audioMP3: { accept: [\".mp3\"], mime: [\"audio/mpeg\"] },\r\n audioOgg: { accept: [\".ogg\"], mime: [\"audio/ogg\"] },\r\n audioWAV: { accept: [\".wav\"], mime: [\"audio/wav\"] },\r\n videoMP4: { accept: [\".mp4\"], mime: [\"video/mp4\"] },\r\n videoWebM: { accept: [\".webm\"], mime: [\"video/webm\"] },\r\n videoOgg: { accept: [\".ogg\"], mime: [\"video/ogg\"] },\r\n textTxt: { accept: [\".txt\"], mime: [\"text/plain\"] },\r\n textCsv: { accept: [\".csv\"], mime: [\"text/csv\"] },\r\n blobBin: { accept: [\".bin\"], mime: [\"application/octet-stream\"] },\r\n}\r\n\r\ntype PartialRecord = {\r\n [P in K]?: T\r\n}\r\n\r\nexport type FileTypeMaxSize = PartialRecord\r\n\r\nexport type AllowedFileSelectionTypes = Array\r\n\r\nexport const getAcceptAttribute = (allowedFileTypes: AllowedFileSelectionTypes) => {\r\n const accept: Array = []\r\n allowedFileTypes.forEach((type) => accept.push(...fileTypeMapping[type].accept))\r\n return accept.join(\", \")\r\n}\r\n\r\nexport const getMimeTypes = (allowedFileTypes: AllowedFileSelectionTypes) => {\r\n const mime: Array = []\r\n allowedFileTypes.forEach((type) => mime.push(...fileTypeMapping[type].mime))\r\n return mime\r\n}\r\n\r\nexport const getMaxFileSizeByType = (maxFileSizesByType?: FileTypeMaxSize): undefined | Array<{ mime: string[]; size: number }> => {\r\n if (!maxFileSizesByType) {\r\n return\r\n }\r\n\r\n const normalizedMimeType: Array<{ mime: string[]; size: number }> = []\r\n\r\n Object.keys>(fileTypeMapping).forEach((fileTypeKey) => {\r\n const fileSize = maxFileSizesByType[fileTypeKey]\r\n if (fileSize) {\r\n normalizedMimeType.push({\r\n mime: fileTypeMapping[fileTypeKey].mime,\r\n size: fileSize.size,\r\n })\r\n }\r\n })\r\n\r\n return normalizedMimeType\r\n}\r\n\r\nexport type FileSelectError = \"WRONG_FILE_TYPE\" | \"FILE_TOO_BIG\"\r\n","import { createElement, CSSProperties, FocusEvent } from \"react\"\r\nimport { ModelState } from \"@tm/utils\"\r\nimport ReactDOM from \"react-dom\"\r\nimport { Size } from \"./models/skins\"\r\nimport type { TooltipPositions } from \"./components/tooltip\"\r\n\r\nexport type FormElementLayouts = \"Default\" | \"holo\" | \"description\" | \"readonly\" | \"shortfield\" | \"dropshadow\"\r\n\r\nexport interface FormElementProps {\r\n className?: string\r\n value?: string | number | Date\r\n model?: any\r\n path?: Array\r\n readonly?: boolean\r\n modelState?: ModelState\r\n label?: string | JSX.Element\r\n tabIndex?: number\r\n disabled?: boolean\r\n autoFocus?: boolean\r\n layout?: Array\r\n floatingLabel?: boolean\r\n name?: string\r\n size?: Size\r\n\r\n onRef?(ref: any): void\r\n onChange?(model: any, path?: Array): void\r\n onFocus?(e?: FocusEvent): void\r\n onBlur?(e?: FocusEvent): void\r\n}\r\n\r\nexport type TextAutoComplete = \"name\" | \"username\" | \"on\" | \"off\" | string\r\nexport type PasswordAutoComplete = \"current-password\" | \"new-password\"\r\n\r\nexport interface FormElementState {\r\n value?: string\r\n errors?: Array\r\n active?: boolean\r\n id?: string\r\n}\r\n\r\nexport type Skins = \"warning\" | \"danger\" | \"success\"\r\n\r\nexport function createErrorMessage(errors: Array, positionToElement: HTMLElement, position: TooltipPositions) {\r\n const tooltipsRef: HTMLElement | null = document.getElementById(\"tooltips\")\r\n if (!tooltipsRef) {\r\n return createErrorElements(errors)\r\n }\r\n\r\n return createPortal(tooltipsRef, positionToElement, position, errors)\r\n}\r\n\r\nexport function createErrorElements(errors: Array, styles?: CSSProperties): JSX.Element {\r\n let i = 0\r\n const tokens: Array = []\r\n\r\n errors.forEach((text) => {\r\n tokens.push(createElement(\"li\", { key: i++ }, text))\r\n })\r\n\r\n return createElement(\"ul\", { className: \"error-message error-message--slide-down\", ref: handleErrorMessageRef, style: styles }, tokens)\r\n}\r\n\r\nfunction handleErrorMessageRef(ref: HTMLElement | null) {\r\n if (!ref) {\r\n return\r\n }\r\n setTimeout(() => {\r\n ref.classList.remove(\"error-message--slide-down\")\r\n }, 10)\r\n}\r\n\r\nfunction createPortal(tooltipsRef: HTMLElement, positionToElement: HTMLElement, position: TooltipPositions, errors: Array) {\r\n // const { style, className } = this.props\r\n\r\n const wrapperPositioning = getStylePosition(positionToElement, position)\r\n\r\n if (!wrapperPositioning || !tooltipsRef) {\r\n return null\r\n }\r\n\r\n const portal = ReactDOM.createPortal(createErrorElements(errors, wrapperPositioning), tooltipsRef)\r\n\r\n return portal\r\n}\r\n\r\nfunction getStylePosition(child: HTMLElement, position: TooltipPositions): CSSProperties | null {\r\n let boundingRect: DOMRect | null = null\r\n\r\n if (child && typeof child !== \"string\" && typeof child !== \"function\" && child) {\r\n boundingRect = child.getBoundingClientRect() as DOMRect\r\n }\r\n\r\n if (!boundingRect) {\r\n return null\r\n }\r\n\r\n const { height, top, left, x: xbr, y: ybr } = boundingRect\r\n const y = ybr || top\r\n const x = xbr || left\r\n\r\n const positions = {\r\n top: {\r\n top: y + window.pageYOffset,\r\n left: x,\r\n },\r\n left: {\r\n top: y + height / 2,\r\n left: x,\r\n },\r\n bottom: {\r\n top: y + height + window.pageYOffset,\r\n left: x,\r\n },\r\n right: {\r\n top: y + height / 2 + window.pageYOffset,\r\n left: x,\r\n },\r\n }\r\n\r\n const wrapperPositioning: CSSProperties = {\r\n minWidth: boundingRect.width,\r\n // height: 0, //boundingRect.height,\r\n position: \"absolute\",\r\n // visibility: \"\",\r\n ...positions[position || \"top\"],\r\n }\r\n\r\n return wrapperPositioning\r\n}\r\n","import * as uuid from \"uuid\"\r\n\r\nimport { MessageBus } from \"./messageBus\"\r\nimport { Channel } from \"./models\"\r\nimport { ChannelConfig, Message, MessageContentType, Subscription, SubscriptionHandler, TMessageKeys } from \"./models/internal\"\r\n\r\nexport class ChannelClass implements Channel {\r\n messages: Array>> = []\r\n\r\n groupedMessages: { [key: string]: Array>> } = {}\r\n\r\n subscriptions: Array> = []\r\n\r\n config: ChannelConfig = {\r\n // countOverall: 50,\r\n countPerType: 3,\r\n }\r\n\r\n type: C\r\n\r\n messageBus: MessageBus\r\n\r\n constructor(type: C, messageBus: MessageBus) {\r\n this.type = type\r\n this.messageBus = messageBus\r\n }\r\n\r\n add>(topic: M, content: MessageContentType) {\r\n const entry = { topic, content }\r\n\r\n const group = this.groupedMessages[topic as string] || []\r\n this.groupedMessages[topic as string] = group\r\n group.unshift(entry)\r\n const msgToRemove = group.splice(this.config.countPerType)\r\n\r\n this.messages.unshift(entry)\r\n if (msgToRemove.length) {\r\n this.messages.splice(this.messages.indexOf(msgToRemove[0]), 1)\r\n }\r\n }\r\n\r\n publish>(topic: M, content: MessageContentType) {\r\n const topicMatches = this.topicMatches.bind(this, topic)\r\n const handlerFunc = (subscription: Subscription) => {\r\n try {\r\n subscription.handler(content, topic)\r\n } catch (ex) {\r\n this.messageBus.throwError(this.type as string, topic as string, content, ex)\r\n }\r\n }\r\n\r\n const entry = { topic, content }\r\n\r\n const group = this.groupedMessages[topic as string] || []\r\n this.groupedMessages[topic as string] = group\r\n group.unshift(entry)\r\n const msgToRemove = group.splice(this.config.countPerType)\r\n\r\n this.messages.unshift(entry)\r\n if (msgToRemove.length) {\r\n this.messages.splice(this.messages.indexOf(msgToRemove[0]), 1)\r\n }\r\n // this.messages.splice(this.config.countOverall)\r\n this.subscriptions.filter(topicMatches).forEach(handlerFunc)\r\n }\r\n\r\n subscribe>(topic: M, handler: SubscriptionHandler, publishLast?: boolean) {\r\n const id = uuid.v4()\r\n const subscription: Subscription = { id, filter: topic, handler }\r\n this.subscriptions.push(subscription)\r\n if (publishLast) {\r\n const message = this.messages.filter((x) => x.topic == topic)[0] as Message\r\n if (message) {\r\n setTimeout(() => handler(message.content, topic), 0)\r\n }\r\n }\r\n return () => (this.subscriptions = this.subscriptions.filter((x) => x.id != id))\r\n }\r\n\r\n subscribeOnce>(topic: M, handler: SubscriptionHandler, publishLast?: boolean) {\r\n let unsubscribe: () => void\r\n\r\n const handlerWithUnsubscribe = (content: MessageContentType, topic: TMessageKeys) => {\r\n const eventAccepted = handler(content, topic) // is accepted when 'void' or 'true'\r\n\r\n // this is the case when subscriber rejects the message, so he will wait for the next one\r\n if (typeof eventAccepted === \"boolean\" && eventAccepted === false) {\r\n return\r\n }\r\n\r\n unsubscribe?.()\r\n }\r\n\r\n unsubscribe = this.subscribe(topic, handlerWithUnsubscribe, publishLast)\r\n\r\n return unsubscribe\r\n }\r\n\r\n last>(count?: number, topic?: M): Array>> {\r\n if (topic) {\r\n const topicMatches = (message: Message>) => message.topic == topic\r\n const list = this.messages.filter(topicMatches)\r\n return [...list.slice(0, count || list.length)]\r\n }\r\n return [...this.messages.slice(0, count || this.messages.length)]\r\n }\r\n\r\n /**\r\n * Delete messages from a channel\r\n * @param topic optional\r\n * if it's passed all the messages with this topic will be deleted\r\n */\r\n clear>(topic?: M) {\r\n if (topic) {\r\n this.messages = this.messages.filter((x) => x.topic != topic)\r\n this.groupedMessages[topic as string] = []\r\n } else {\r\n this.messages = []\r\n this.groupedMessages = {}\r\n }\r\n }\r\n\r\n /**\r\n * Delete subscritions from a channel\r\n * @param topic optional\r\n * if it's passed all the subscritions on this topic will be deleted\r\n */\r\n clearSubscriptions>(topic?: M) {\r\n if (topic) {\r\n this.subscriptions = this.subscriptions.filter((x) => x.filter != topic)\r\n } else {\r\n this.subscriptions = []\r\n }\r\n }\r\n\r\n clearAndSubscribeOnce>(topic: M, handler: SubscriptionHandler, publishLast?: boolean) {\r\n this.clear(topic)\r\n this.clearSubscriptions(topic)\r\n return this.subscribeOnce(topic, handler, publishLast)\r\n }\r\n\r\n clearAndSubscribe>(topic: M, handler: SubscriptionHandler, publishLast?: boolean) {\r\n this.clear(topic)\r\n this.clearSubscriptions(topic)\r\n return this.subscribe(topic, handler, publishLast)\r\n }\r\n\r\n configure(config: Partial) {\r\n this.config = {\r\n ...this.config,\r\n ...config,\r\n }\r\n }\r\n\r\n private topicMatches(topic: TMessageKeys, subscription: Subscription) {\r\n // if (subscription.filter.indexOf(\"*\")!=-1) {\r\n // const regex = new RegExp(subscription.filter.replace(wildcardChars, \".*\").replace(escapeChars, \"\\\\$1\"))\r\n // return regex.test(topic)\r\n // }\r\n return subscription.filter == topic\r\n }\r\n}\r\n\r\nconst wildcardChars = /\\*/g\r\nconst escapeChars = /([\\/\\\\])/g\r\n","import { ChannelClass } from \"./channel\"\r\nimport { TMessageKeys, MessageContentType } from \"./models/internal\"\r\n\r\nexport class MessageBus {\r\n private channels: { [key: string]: ChannelClass } = {}\r\n\r\n private errorHandlers: Array = []\r\n\r\n channel(type: C, id?: string): ChannelClass {\r\n const ident = `${type as string}${id ? `/${id}` : \"\"}`\r\n let channel = this.channels[ident]\r\n if (!channel) {\r\n this.channels[ident] = channel = new ChannelClass(type, this)\r\n }\r\n\r\n return channel\r\n }\r\n\r\n addErrorHandler(handler: ErrorHandler): () => void {\r\n this.errorHandlers.push(handler)\r\n return () => this.errorHandlers.splice(this.errorHandlers.indexOf(handler))\r\n }\r\n\r\n throwError(channel: string, topic: string, content: any, error: any) {\r\n if (!this.errorHandlers.length) {\r\n console.error(\r\n `The following error was thrown out of the MessageBus of @tm/hermes.\\n` +\r\n `Please make sure that at least one ErrorHandler is set with addErrorHandler(errorHandler).\\n`\r\n )\r\n console.error(`Channel: ${channel}`)\r\n console.error(`Topic: ${topic}`)\r\n console.error(\"Content:\", content)\r\n console.error(error)\r\n return\r\n }\r\n try {\r\n this.errorHandlers.forEach((handle) => handle(channel, topic, content, error))\r\n } catch (ex) {\r\n console.error(\"Error in the error handler of @tm/hermes.\", ex)\r\n }\r\n }\r\n}\r\n\r\ntype ErrorHandler = (channel: string, topic: string, content: any, error: any) => void\r\n","import { createContext } from \"react\"\r\nimport { ILocalizationContext } from \".\"\r\n\r\nconst na = \"Not available\"\r\n\r\nexport const LocalizationContext = createContext({\r\n language: na,\r\n languageId: na,\r\n currency: () => na,\r\n date: () => na,\r\n number: () => na,\r\n translate: () => na,\r\n translateText: () => na,\r\n changeConfig: () => na,\r\n changeLocale: () => na,\r\n isTranslationId: () => false,\r\n availableLanguages: {},\r\n})\r\n","import { Component, PropsWithChildren } from \"react\"\r\nimport { initDateHelper, formatDate, setLocaleToLocalStorage, loadModule, parseQueryString } from \"@tm/utils\"\r\nimport { Subscription, BehaviorSubject } from \"rxjs\"\r\nimport { registerLocale } from \"react-datepicker\"\r\nimport { LocalizationConfig, ILocalizationContext, LanguagesConfig } from \"./models\"\r\nimport formatCurrency from \"./libs/formatCurrency\"\r\nimport formatNumber from \"./libs/formatNumber\"\r\nimport { translate, translateText, isTranslationId } from \"./libs/translate\"\r\nimport { LocalizationContext } from \"./LocalizationContext\"\r\nimport { getWeekDays, getMonths } from \"./libs/helper\"\r\n\r\nexport type GetConfigFunction = {\r\n (locale: string): Promise\r\n}\r\n\r\nexport type GetCatalogTextsFunction = {\r\n (languageId: string): Promise | undefined>>\r\n}\r\n\r\n// eslint-disable-next-line import/no-mutable-exports\r\nexport let showTextIds = parseQueryString(window.location.search?.toLowerCase())?.showtextids === \"1\"\r\n\r\nexport function createLocalizationProvider(\r\n startConfig: LocalizationConfig,\r\n getConfig: GetConfigFunction,\r\n availableLanguages: LanguagesConfig,\r\n dateLocalePath: string,\r\n getCatalogTexts?: GetCatalogTextsFunction\r\n) {\r\n const _configSubject = new BehaviorSubject(startConfig)\r\n setLocaleToLocalStorage(startConfig.language, startConfig.id)\r\n\r\n function loadAndRegisterDateLocale(language: string) {\r\n loadModule(`${dateLocalePath}/${language}.min.js`).then((localeData) => {\r\n registerLocale(language, localeData)\r\n })\r\n }\r\n\r\n loadAndRegisterDateLocale(startConfig.language)\r\n\r\n return class LocalizationProvider extends Component {\r\n _configSubscription: Subscription | undefined = undefined\r\n\r\n constructor(props: any) {\r\n super(props)\r\n const config = _configSubject.getValue()\r\n this.setCatalogTexts(config.id)\r\n initDateHelper(getWeekDays(config), getMonths(config))\r\n this.changeDomLanguage()\r\n }\r\n\r\n componentDidMount() {\r\n this._configSubscription = _configSubject.subscribe(() => {\r\n this.forceUpdate()\r\n })\r\n\r\n window.__NEXT_DEVTOOLS_EXTENSION__?.showTextIdsSubject?.subscribe({\r\n next: (val: boolean) => {\r\n showTextIds = val\r\n this.forceUpdate()\r\n },\r\n })\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this._configSubscription && !this._configSubscription.closed) {\r\n this._configSubscription.unsubscribe()\r\n }\r\n\r\n window.__NEXT_DEVTOOLS_EXTENSION__?.showTextIdsSubject?.unsubscribe()\r\n }\r\n\r\n getLocalizationContext(): ILocalizationContext {\r\n const config = _configSubject.getValue()\r\n const context = {\r\n language: config.language,\r\n languageId: config.id,\r\n currency: formatCurrency.bind(undefined),\r\n date: formatDate,\r\n number: formatNumber.bind(undefined, config),\r\n translate: translate.bind(undefined, config),\r\n translateText: translateText.bind(undefined, config),\r\n changeConfig: this.changeConfig.bind(this),\r\n changeLocale: this.changeLocale.bind(this),\r\n isTranslationId: isTranslationId.bind(undefined),\r\n availableLanguages,\r\n }\r\n window.__LOCALIZATION__ = context\r\n return context\r\n }\r\n\r\n changeConfig(config: LocalizationConfig) {\r\n _configSubject.next(config)\r\n\r\n this.setCatalogTexts(config.id)\r\n\r\n loadAndRegisterDateLocale(config.language)\r\n initDateHelper(getWeekDays(config), getMonths(config))\r\n setLocaleToLocalStorage(config.language, config.id)\r\n // Inform the NEXT Shell about the changed language\r\n if (typeof tmJSEvents != \"undefined\" && typeof tmJSEvents.languageChanged == \"function\") {\r\n tmJSEvents.languageChanged(config.id)\r\n }\r\n }\r\n\r\n changeLocale(locale: string) {\r\n getConfig(locale).then((config) => {\r\n this.changeConfig(config)\r\n this.changeDomLanguage()\r\n })\r\n }\r\n\r\n changeDomLanguage() {\r\n const { language } = _configSubject.getValue()\r\n document.documentElement.lang = language\r\n }\r\n\r\n setCatalogTexts = (languageId: string) => {\r\n // TODO: Remove the optional chaining question mark, once the catalog texts are ready for production use.\r\n getCatalogTexts?.(languageId).then((res) => {\r\n let config = _configSubject.getValue()\r\n if (config.id === languageId && res && res.translation && Object.keys(res.translation).length) {\r\n config = {\r\n ...config,\r\n translation: {\r\n ...config.translation,\r\n ...res.translation,\r\n },\r\n }\r\n\r\n _configSubject.next(config)\r\n initDateHelper(getWeekDays(config), getMonths(config))\r\n }\r\n })\r\n }\r\n\r\n render() {\r\n const { children } = this.props\r\n return {children}\r\n }\r\n }\r\n}\r\n","export function getLocalization() {\r\n return window.__LOCALIZATION__\r\n}\r\n","import \"@tm/utils\"\r\n\r\nexport default function formatCurrency(value: number, currency: string): string {\r\n if (value == null) {\r\n value = 0\r\n } else {\r\n value = Math.round(parseFloat(value.toFixed(3)) * 100) / 100\r\n }\r\n\r\n const decimal = 2\r\n const browserLanguage = navigator.language\r\n switch (browserLanguage) {\r\n case \"de\":\r\n case \"de-AT\":\r\n case \"de-DE\":\r\n return `${Intl.NumberFormat(browserLanguage, { minimumFractionDigits: decimal, maximumFractionDigits: decimal }).format(value)} ${currency ? ` ${currency}` : \"\"}`\r\n default:\r\n return `${currency ? ` ${currency}` : \"\"} ${Intl.NumberFormat(browserLanguage, { minimumFractionDigits: decimal, maximumFractionDigits: decimal }).format(value)}`\r\n }\r\n}\r\n","import \"@tm/utils\"\r\nimport { LocalizationConfig } from \"../models\"\r\n\r\nexport default function formatNumber(config: LocalizationConfig, value: number, decimal: number = 2): string {\r\n if (value == null) {\r\n value = 0\r\n } else {\r\n value = parseFloat(value.toString())\r\n }\r\n switch (config.language) {\r\n case \"de\":\r\n return `${value.format(decimal, 3, \".\", \",\")}`\r\n default:\r\n return `${value.format(decimal, 3, \",\", \".\")}`\r\n }\r\n}\r\n","import { LocalizationConfig } from \"../models\"\r\nimport { translate, translateText } from \"./translate\"\r\n\r\nexport function getWeekDays(config: LocalizationConfig): Array {\r\n return [\r\n translateText(config, 533),\r\n translateText(config, 527),\r\n translateText(config, 528),\r\n translateText(config, 529),\r\n translateText(config, 530),\r\n translateText(config, 531),\r\n translateText(config, 532),\r\n ]\r\n}\r\n\r\nexport function getMonths(config: LocalizationConfig): Array {\r\n return [\r\n translateText(config, 507),\r\n translateText(config, 508),\r\n translateText(config, 509),\r\n translateText(config, 510),\r\n translateText(config, 511),\r\n translateText(config, 512),\r\n translateText(config, 513),\r\n translateText(config, 514),\r\n translateText(config, 515),\r\n translateText(config, 516),\r\n translateText(config, 517),\r\n translateText(config, 518),\r\n ]\r\n}\r\n","import { createElement, ReactElement, ReactChild, ReactFragment } from \"react\"\r\nimport { showTextIds } from \"../createLocalizationProvider\"\r\nimport { LocalizationConfig } from \"../models\"\r\n\r\nconst translationRegex = /\\{\\{(.*?)\\}\\}/g\r\n\r\nexport function isTranslationId(key: string) {\r\n translationRegex.lastIndex = 0\r\n const regExMatch = translationRegex.test(key)\r\n translationRegex.lastIndex = 0\r\n return regExMatch\r\n}\r\n\r\nexport function translate(config: LocalizationConfig, key: number | string, jsxAutoMode: boolean = true): ReactChild | ReactFragment {\r\n if (!config || !config.translation) {\r\n return `[${key}]`\r\n }\r\n\r\n if (typeof key === \"string\" && translationRegex.test(key)) {\r\n return translateExpression(config, key, jsxAutoMode)\r\n }\r\n\r\n // Only try to translate if it's a number. If you want to use a string as key, you should pass it as placeholder \"{{KEY}}\"\r\n if (typeof key === \"string\" && Number.isNaN(parseInt(key))) {\r\n return key\r\n }\r\n\r\n return translateKey(config, key, jsxAutoMode)\r\n}\r\n\r\nexport function translateText(config: LocalizationConfig, key: number | string): string {\r\n return translate(config, key, false) as string\r\n}\r\n\r\nfunction translateExpression(config: LocalizationConfig, key: string, jsxAutoMode: boolean = true): ReactChild | ReactFragment {\r\n translationRegex.lastIndex = 0 // due to the usage of the /g Flag on multiple tests we need to reset the last index manually\r\n if (translationRegex.test(key)) {\r\n const translatedKey = key.replace(translationRegex, (_: string, num: number) => getTranslationFromConfig(config, num))\r\n\r\n return !jsxAutoMode ? translatedKey : createJsxElements(translatedKey)\r\n }\r\n\r\n return key\r\n}\r\nfunction translateKey(config: LocalizationConfig, key: number | string, jsxAutoMode: boolean = true): ReactChild | ReactFragment {\r\n const translation = getTranslationFromConfig(config, key)\r\n if (!jsxAutoMode) {\r\n return translation\r\n }\r\n\r\n return !jsxAutoMode ? translation : createJsxElements(translation)\r\n}\r\n\r\nfunction getTranslationFromConfig(config: LocalizationConfig, key: number | string) {\r\n const translation = config.translation[key]\r\n if (!translation) {\r\n return `[${key}]`\r\n }\r\n if (showTextIds) {\r\n return `#${key} ${translation}`\r\n }\r\n return translation\r\n}\r\n\r\nfunction createJsxElements(translation: string): ReactChild | ReactFragment {\r\n const tokens: Array> = []\r\n let i: number = 0\r\n\r\n // maybe it's intended to always add a even when there is no \\n\r\n // if(translation.indexOf(\"\\n\") >= 0) {\r\n translation.split(\"\\n\").forEach((text) => {\r\n text && tokens.push(createElement(\"span\", { key: i++ }, text))\r\n tokens.push(createElement(\"br\", { key: i++ }))\r\n })\r\n // }else {\r\n // tokens.push(createElement(\"span\", { key: i++ }, translation))\r\n // }\r\n\r\n tokens.splice(tokens.length - 1, 1)\r\n\r\n return tokens.length == 1 ? tokens[0].props.children : createElement(\"span\", undefined, tokens)\r\n}\r\n","import { useContext } from \"react\"\r\nimport { LocalizationContext } from \"./LocalizationContext\"\r\nimport { ILocalizationContext } from \".\"\r\n\r\nexport function useLocalization() {\r\n return useContext(LocalizationContext)\r\n}\r\n","import { Omit } from \"@tm/utils\"\r\nimport { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { ILocalizationContext, IWithChangeConfig, IWithLocalization } from \"./models\"\r\nimport { LocalizationContext } from \"./LocalizationContext\"\r\n\r\nexport type ChangeLocalizationProps = {\r\n localization: IWithLocalization & IWithChangeConfig\r\n}\r\n\r\nexport function withChangeLocalization

    (\r\n component: ComponentType

    \r\n): ComponentClass> {\r\n return class extends Component> {\r\n static displayName = `withChangeLocalization(${component.displayName || component.name})`\r\n\r\n renderInnerComponent(localizationContext?: ILocalizationContext) {\r\n if (!localizationContext) {\r\n throw \"No localization initialized. Make sure your app is wrapped by the component.\"\r\n }\r\n\r\n const currentProps: any = this.props || {}\r\n\r\n const props: ChangeLocalizationProps & P = {\r\n ...currentProps,\r\n localization: {\r\n language: localizationContext.language,\r\n languageId: localizationContext.languageId,\r\n date: localizationContext.date,\r\n number: localizationContext.number,\r\n currency: localizationContext.currency,\r\n translate: localizationContext.translate,\r\n translateText: localizationContext.translateText,\r\n isTranslationId: localizationContext.isTranslationId,\r\n changeConfig: localizationContext.changeConfig,\r\n changeLocale: localizationContext.changeLocale,\r\n availableLanguages: localizationContext.availableLanguages,\r\n },\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {(localizationContext?: ILocalizationContext) => this.renderInnerComponent(localizationContext)}\r\n \r\n )\r\n }\r\n }\r\n}\r\n","import { Omit } from \"@tm/utils\"\r\nimport { Component, ComponentClass, ComponentType, createElement } from \"react\"\r\nimport { ILocalizationContext, IWithLocalization } from \"./models\"\r\nimport { LocalizationContext } from \"./LocalizationContext\"\r\n\r\nexport type LocalizationProps = {\r\n localization: IWithLocalization\r\n}\r\n\r\nexport function withLocalization

    (component: ComponentType

    ): ComponentClass> {\r\n return class extends Component> {\r\n static displayName = `withLocalization(${component.displayName || component.name})`\r\n\r\n renderInnerComponent(localizationContext?: ILocalizationContext) {\r\n if (!localizationContext) {\r\n throw \"No localization initialized. Make sure your app is wrapped by the component.\"\r\n }\r\n\r\n const currentProps: any = this.props || {}\r\n\r\n const props: LocalizationProps & P = {\r\n ...currentProps,\r\n localization: {\r\n ...currentProps.localization,\r\n language: localizationContext.language,\r\n languageId: localizationContext.languageId,\r\n date: localizationContext.date,\r\n number: localizationContext.number,\r\n currency: localizationContext.currency,\r\n translate: localizationContext.translate,\r\n translateText: localizationContext.translateText,\r\n isTranslationId: localizationContext.isTranslationId,\r\n },\r\n }\r\n\r\n return createElement(component, props)\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {(localizationContext?: ILocalizationContext) => this.renderInnerComponent(localizationContext)}\r\n \r\n )\r\n }\r\n }\r\n}\r\n","import { ApiBundleParams } from \"./api\"\r\nimport { BasketBundleParams } from \"./basket\"\r\nimport { CarmunicationBundleParams } from \"./carmunication\"\r\nimport { CisBundleParams } from \"./cis\"\r\nimport { CompilationsBundleParams } from \"./compilations\"\r\nimport { CrmBundleParams } from \"./crm\"\r\nimport { DamageCalculationAswegasBundleParams } from \"./damageCalculationAswegas\"\r\nimport { DamageCalculationDatBundleParams } from \"./damageCalculationDat\"\r\nimport { DamageCalculationEurotaxBundleParams } from \"./damageCalculationEurotax\"\r\nimport { DamageCalculationGlassBundleParams } from \"./damageCalculationGlass\"\r\nimport { DmsBundleParams } from \"./dms\"\r\nimport { DutchOrderPlatesBundleParams } from \"./dutchOrderPlates\"\r\nimport { DrivemotiveBundleParams } from \"./drivemotive\"\r\nimport { EdsBundleParams } from \"./eds\"\r\nimport { ErpBundleParams } from \"./erp\"\r\nimport { FastCalculatorBundleParams } from \"./fastCalculator\"\r\nimport { FastDtcBundleParams } from \"./fastDtc\"\r\nimport { FastServiceBundleParams } from \"./fastService\"\r\nimport { MiscBundleParams } from \"./misc\"\r\nimport { MvcBundleParams } from \"./mvc\"\r\nimport { NotificationsBundleParams } from \"./notifications\"\r\nimport { OffersBundleParams } from \"./offers\"\r\nimport { PartsBundleParams } from \"./parts\"\r\nimport { RepairTimesBundleParams } from \"./repairtimes\"\r\nimport { SettingsBundleParams } from \"./settings\"\r\nimport { SindriBundleParams } from \"./sindri\"\r\nimport { PartslifeBundleParams } from \"./partslife\"\r\nimport { TelematicsBundleParams } from \"./telematics\"\r\nimport { TelesalesBundleParams } from \"./telesales\"\r\nimport { TyresBundleParams } from \"./tyres\"\r\nimport { VehicleBundleParams } from \"./vehicle\"\r\nimport { VouchersBundleParams } from \"./vouchers\"\r\nimport { WheelsBundleParams } from \"./wheels\"\r\nimport { WorkTaskBundleParams } from \"./worktask\"\r\nimport { VehicleRecordsBundleParams } from \"./vehicleRecords\"\r\nimport { FeedbackBundleParams } from \"./feedback\"\r\nimport { MemoToolBundleParams } from \"./memoTool\"\r\nimport { RepairTimeProviderConfig } from \"../works\"\r\nimport { VefilesBundleParams } from \"./vefiles\"\r\n\r\nexport type {\r\n ApiBundleParams,\r\n BasketBundleParams,\r\n CarmunicationBundleParams,\r\n CisBundleParams,\r\n CompilationsBundleParams,\r\n CrmBundleParams,\r\n DamageCalculationAswegasBundleParams,\r\n DamageCalculationDatBundleParams,\r\n DamageCalculationEurotaxBundleParams,\r\n DamageCalculationGlassBundleParams,\r\n DmsBundleParams,\r\n DutchOrderPlatesBundleParams,\r\n DrivemotiveBundleParams,\r\n EdsBundleParams,\r\n ErpBundleParams,\r\n FastCalculatorBundleParams,\r\n FastDtcBundleParams,\r\n FastServiceBundleParams,\r\n FeedbackBundleParams,\r\n MemoToolBundleParams,\r\n MiscBundleParams,\r\n MvcBundleParams,\r\n NotificationsBundleParams,\r\n OffersBundleParams,\r\n PartsBundleParams,\r\n RepairTimesBundleParams,\r\n SettingsBundleParams,\r\n SindriBundleParams,\r\n PartslifeBundleParams,\r\n TelematicsBundleParams,\r\n TelesalesBundleParams,\r\n TyresBundleParams,\r\n VehicleBundleParams,\r\n VehicleRecordsBundleParams,\r\n VouchersBundleParams,\r\n WheelsBundleParams,\r\n WorkTaskBundleParams,\r\n VefilesBundleParams,\r\n}\r\n\r\nexport type { PartsRoutes, ArticleListSortingMode } from \"./parts\"\r\nexport type { SortingFilterType, ModuleAvailabilities, TruckModuleAvailabilities, TruckModuleType } from \"./vehicle\"\r\nexport * from \"./tyres\"\r\nexport * from \"./wheels\"\r\nexport type { PdfOrderDetailOptions } from \"./cis\"\r\n\r\nexport type EmbeddedElement = {\r\n env?: string | string[]\r\n src?: string\r\n attribute?: { name: string; value: string }\r\n innerHTML?: string\r\n element?: \"script\" | \"noscript\"\r\n async?: boolean\r\n defer?: boolean\r\n}\r\n\r\nexport type EmbeddedPosition = {\r\n head?: EmbeddedElement[]\r\n body?: EmbeddedElement[]\r\n}\r\n\r\nexport type ConfigParams = {\r\n env: \"dev\" | \"test\" | \"int\" | \"prod\"\r\n\r\n articleDetailsInModal?: boolean\r\n displaySelectedOffersCatagory?: boolean\r\n articleFiltersInLeft?: boolean\r\n /**\r\n * The base url pointing to the controller (without endpoint)\r\n * of the DataPicker service used for autosuggest.\r\n */\r\n autosugestServiceUrl: string\r\n catalogName: string\r\n /**\r\n * If this parameter is \"true\" the alternative article search button will be hidden and instead\r\n * the search result will be combined with the alternative articles received from the ERP response\r\n * and both displayed in the \"alternative articles\" tab at the article details page.\r\n */\r\n combineAlternativeArticlesFromDbAndErp?: boolean\r\n deleteButtonColorError?: boolean\r\n enableAddingButtonsAfterErp?: boolean\r\n externalScripts?: Partial>\r\n hideDigitalVKHTile?: boolean\r\n nationalFlagsBaseUrl: string\r\n nextToursTimeoutRandomSecondsMultiplier?: number\r\n replacePartDirectSearchUrl: string\r\n replacePartUniversalSearchUrl?: string\r\n repairTimeProviders?: { [key: string]: RepairTimeProviderConfig }\r\n sapCXMLIntegrationAvailable?: boolean\r\n sapOCIIntegrationAvailable?: boolean\r\n showPartsyProductGroupsInModal?: boolean\r\n tokenHandler?: Record\r\n userSettingsDefaults: UserSettingsDefaults\r\n oAuthConfiguration?: Partial>\r\n}\r\n\r\nexport type UserSettingsDefaults = {\r\n hideWheelsAvailability?: boolean\r\n}\r\n\r\nexport type BaseConfig = {\r\n authorityService: string\r\n stateServiceUrl: string\r\n keyValueServiceUrl: string\r\n repairShopServiceUrl: string\r\n systems?: string[]\r\n mvcBaseUrl: string\r\n actionsBaseUrl: string\r\n tmChatBaseUrl: string\r\n partsSearchTreeIconsBaseUrl: string\r\n fastUpApiBaseUrl: string\r\n erpServiceUrl: string\r\n}\r\n\r\nexport type AppConfig = {\r\n name: string\r\n isBeta?: boolean\r\n base: BaseConfig\r\n theme: any\r\n templates: {\r\n start: number | undefined\r\n dashboard: {\r\n type: \"TM\" | \"ONE\" | \"THREE\" | \"FOUR\"\r\n showTyresWidget?: boolean\r\n showTruckWidget?: boolean\r\n showDamageCalculationWidget?: boolean\r\n }\r\n }\r\n bundles: {\r\n api?: ApiBundleParams\r\n basket?: BasketBundleParams\r\n carmunication?: CarmunicationBundleParams\r\n cis?: CisBundleParams\r\n compilations?: CompilationsBundleParams\r\n crm?: CrmBundleParams\r\n damageCalculationAswegas?: DamageCalculationAswegasBundleParams\r\n damageCalculationDat?: DamageCalculationDatBundleParams\r\n damageCalculationEurotax?: DamageCalculationEurotaxBundleParams\r\n damageCalculationGlass?: DamageCalculationGlassBundleParams\r\n dms?: DmsBundleParams\r\n dutchOrderPlates?: DutchOrderPlatesBundleParams\r\n erp?: ErpBundleParams\r\n fastCalculator?: FastCalculatorBundleParams\r\n fastDtc?: FastDtcBundleParams\r\n fastService?: FastServiceBundleParams\r\n feedback?: FeedbackBundleParams\r\n memoTool?: MemoToolBundleParams\r\n misc?: MiscBundleParams\r\n mvc?: MvcBundleParams\r\n notifications?: NotificationsBundleParams\r\n offers?: OffersBundleParams\r\n parts?: PartsBundleParams\r\n repairtimes?: RepairTimesBundleParams\r\n settings?: SettingsBundleParams\r\n telematics?: TelematicsBundleParams\r\n telesales?: TelesalesBundleParams\r\n tyres?: TyresBundleParams\r\n vehicle?: VehicleBundleParams\r\n vehicleRecords?: VehicleRecordsBundleParams\r\n vouchers?: VouchersBundleParams\r\n wheels?: WheelsBundleParams\r\n worktask?: WorkTaskBundleParams\r\n }\r\n params: ConfigParams\r\n modules: {\r\n articleNotes?: boolean\r\n autodata?: boolean\r\n awdataAwdoc?: boolean\r\n bikes?: boolean\r\n carmunication?: boolean\r\n centralOrders?: boolean\r\n commercialVehicles?: boolean\r\n customerInformation?: boolean\r\n demoActivation?: boolean\r\n dms?: boolean\r\n dutchOrderPlates?: boolean\r\n fastCalculator?: boolean\r\n fastCheck?: boolean\r\n fastDtc?: boolean\r\n fastSearch?: boolean\r\n fastService?: boolean\r\n gpiDataTemot?: boolean\r\n gpiDataDat?: boolean\r\n gpiDataEurotax?: boolean\r\n messaging?: boolean\r\n myTruck?: boolean\r\n myTruckPlus?: boolean\r\n oeReplacementChain?: boolean\r\n oeResearch?: boolean\r\n offerCarousel?: boolean\r\n offers?: boolean\r\n partsIndicator?: boolean\r\n sapOciOntegration?: boolean\r\n techDataAlldata?: boolean\r\n techDataHaynesPro?: boolean\r\n techDataTecRmi?: boolean\r\n telematics?: boolean\r\n tmDamageCalculationAswegas?: boolean\r\n tmDamageCalculationDat?: boolean\r\n tmDamageCalculationEurotax?: boolean\r\n tmDamageCalculationGlass?: boolean\r\n tmEurotax?: boolean\r\n tmTyres?: boolean\r\n tmTrailer?: boolean\r\n tmTruck?: boolean\r\n tmWheels?: boolean\r\n truckGarage?: boolean\r\n vehicleRecords?: boolean\r\n watchlist?: boolean\r\n wheelsTyresConfigJfnMvc?: boolean\r\n workshopProfile?: boolean\r\n crossSelling?: boolean\r\n }\r\n basket?: {\r\n orderButton?: {\r\n externalSystemId?: number\r\n }\r\n }\r\n}\r\n\r\n// Extend this when new tokens are added\r\nexport enum OAuthTokenIds {\r\n BoschOs3 = \"bosch-os3\",\r\n}\r\n\r\nexport type OAuthConfig = {\r\n server:\r\n | string\r\n | {\r\n production: string\r\n staging: string\r\n overwrite?: string\r\n }\r\n clientId: string\r\n discoveryEndpoint?: string\r\n scope?: string[]\r\n extraParams?: Record\r\n}\r\n","import { ElementType, FC, ReactNode } from \"react\"\r\nimport type { Overwrite } from \"type-zoo\"\r\nimport { TArticleListV2DisplayBehavior } from \"@tm/context-distribution\"\r\nimport {\r\n Article,\r\n ArticleImage,\r\n ArticleListType,\r\n ArticleSearchHitInfo,\r\n AttributeAction,\r\n BonusSystem,\r\n DataSupplier,\r\n EArticleModificationState,\r\n ListOptions,\r\n ModificationState,\r\n OE,\r\n PureListProps,\r\n WholesalerArticle,\r\n} from \"../article\"\r\nimport type { ArticleQuantities, OeArticleQuantities, SupplierArticleQuantities, WholesalerArticleDto, WholesalerArticleQuantities } from \"../basket\"\r\nimport * as DMS from \"../dms\"\r\nimport { MessageType } from \"../dms/shared\"\r\nimport { ArticleReferenceType } from \"../enumerations\"\r\nimport { AvailabilityComponentProps, ErpIconType, ErpInformation, ErpInformationRequestItem, ErpPrice, ErpSystemConfig } from \"../erp\"\r\nimport { Note } from \"../notes\"\r\nimport { ManufacturerBase, Vehicle } from \"../vehicle\"\r\nimport { TyreArticle } from \"../tyres\"\r\n\r\ntype ArticleActionBase = {\r\n iconType: ErpIconType\r\n sort: number\r\n tooltip?: ReactNode\r\n icon: string\r\n text: string\r\n isHighlight?: boolean\r\n handler: (event?: React.MouseEvent) => void\r\n}\r\n\r\nexport type ArticleActionIcon = Omit & {\r\n displayType: \"ICON\"\r\n tooltip: ReactNode\r\n useIconFromUrl?: boolean\r\n handler?: (event?: React.MouseEvent) => void\r\n}\r\n\r\nexport type ArticleActionButton = ArticleActionBase & {\r\n displayType: \"BUTTON\"\r\n}\r\n\r\nexport type ArticleActions = {\r\n informationArea: (ArticleActionButton | ArticleActionIcon)[]\r\n erpArea: ArticleActionIcon[]\r\n imageArea: ArticleActionIcon[]\r\n menuArea: ArticleActionButton[]\r\n}\r\n\r\nexport type ListFilter = {\r\n id: number\r\n key?: string\r\n name?: string\r\n description?: string\r\n abbreviation?: string\r\n text?: string\r\n value?: string\r\n unit?: string\r\n group?: string\r\n query?: string\r\n priority?: number\r\n isTopPriority?: boolean\r\n articleCount?: number\r\n topPriorityArticleCount?: number\r\n isSelected?: boolean\r\n showOnTop?: boolean\r\n hasFittingSideFilters?: boolean\r\n valueKey?: string\r\n isSelectable?: boolean\r\n}\r\n\r\nexport type AttributeValueParams = {\r\n id: number\r\n isSelected?: boolean\r\n isSelectable?: boolean\r\n isHighlighted?: boolean\r\n tooltip?: string\r\n label?: string\r\n value?: string\r\n displayValue?: string\r\n modificationState: ModificationState // For IMS\r\n isOptimized: boolean // For DOM\r\n alternatives: Array // For DOM\r\n action?: AttributeAction\r\n}\r\n\r\n// TODO: mehr als ein Attribut erlauben / Attribute zusammenfassen\r\nexport type ArticleAttributeParams = {\r\n id: number\r\n key: string\r\n label?: string\r\n values?: AttributeValueParams[]\r\n isRecommended?: boolean\r\n isSharedAttribute?: boolean\r\n isArticleAttribute?: boolean\r\n onClickAttribute?(parms: ArticleAttributeParams): void\r\n // Wenn mehr als eine Attribut, dann kann die Option genutzt werden\r\n // um diese filter als Oder verknüpft zu betrachten, standard \"OR\"\r\n filterOption?: \"AND\" | \"OR\"\r\n}\r\n\r\nexport type OeInformationNumber = OE.OeNumber & {\r\n parts: Array\r\n isMainArticle: boolean\r\n}\r\n\r\nexport type ExtendedAssortment = {\r\n /** Enabled by the user. */\r\n enabled: boolean\r\n /** Enabled by selecting a non priority product group or data supplier filter. */\r\n forced: boolean\r\n}\r\n\r\nexport type OeInformation = {\r\n manufacturer: ManufacturerBase\r\n oeArticles: Array\r\n}\r\n\r\nexport type OeReplacementManufacturer = {\r\n id: number\r\n name: string\r\n thumbnail?: string\r\n replacementNumbers: Array\r\n}\r\n\r\nexport enum SearchFilterTypes {\r\n SupplierArticleNo = 1, /// Also known as EArtNr, Einspeiserartikelnummer\r\n OeReference = 2, /// Also known as OE Referenz\r\n UtilityNo = 4, /// Also known as Gebrauchsnummer\r\n ReplacementNo = 8, /// Also known as Ersatznummer\r\n Manufacturer = 15, /// Also known as Hersteller // combination of all above\r\n EuropeanArticleNumber = 16, /// Also known as EAN, EANNr, Europäische Artikelnummer\r\n TradeReference_KART = 32,\r\n TradeReference_KARTREF = 64,\r\n TradeReference = 96, /// Also known as Handelsreferenz // combination of the two above\r\n SupplierArticleNoAndTradeReference = 97,\r\n OeAndTradeReference = 98, // combination of OeReference + TradeReference\r\n All = 2047,\r\n}\r\n\r\nexport type SearchFilter = {\r\n filterType: SearchFilterTypes\r\n count: number\r\n}\r\n\r\nexport type TradeReferenceNumber = {\r\n erpSystemId: number\r\n tradeReferenceId: number\r\n traderArticleNumber: string\r\n}\r\n\r\nexport type ArticleErpKey = {\r\n internalId: number | string\r\n quantity: number\r\n erpSystemId: number\r\n}\r\n\r\nexport type ComparableArticleErpKey = ArticleErpKey & {\r\n id: string\r\n}\r\n\r\ntype NotRequestedArticleErpInfo = {\r\n state: \"notRequested\"\r\n}\r\n\r\ntype QueuedArticleErpInfo = {\r\n state: \"queued\"\r\n}\r\n\r\ntype LoadingArticleErpInfo = {\r\n state: \"loading\"\r\n}\r\n\r\nexport type SuccessArticleErpInfo = {\r\n state: \"success\"\r\n response: ErpInformation\r\n erpSystem?: ErpSystemConfig\r\n\r\n /*\r\n * The sort number for this article returned from the ERP system.\r\n *\r\n * Copied from the response because when the quantity of this article was changed and another ERP request was made,\r\n * the sort number might have changed but the original one should still be used for sorting.\r\n */\r\n sortNumber: number | undefined\r\n}\r\n\r\ntype ErrorArticleErpInfo = {\r\n state: \"error\"\r\n errorText: string\r\n}\r\n\r\nexport type ArticleErpInfo = {\r\n /**\r\n * A unique identifier for this request.\r\n *\r\n * It's not necessary two have two items in a request which have the same key.\r\n * Generate it with `createArticleErpInfoKey`.\r\n */\r\n key: ComparableArticleErpKey\r\n state: unknown\r\n request: ErpInformationRequestItem\r\n erpSystem?: ErpSystemConfig\r\n listType?: ArticleListType\r\n} & (QueuedArticleErpInfo | LoadingArticleErpInfo | SuccessArticleErpInfo | ErrorArticleErpInfo | NotRequestedArticleErpInfo)\r\n\r\nexport type ArticleErpInfos = {\r\n default?: ArticleErpInfo\r\n alternative?: ArticleErpInfo\r\n}\r\n\r\nexport type ArticleOptions = ListOptions & {\r\n compactView?: boolean\r\n hasSuggestedQuantity?: boolean\r\n // Article will be shown as disabled, if this reason is filled\r\n disableReason?: string\r\n}\r\n\r\nexport type ExtendedDeliveryInfo = {\r\n showExtendedDeliveryInfo?: boolean\r\n isLoading?: boolean\r\n info?: ErpInformation\r\n load?(): void\r\n}\r\n\r\nexport type ArticleAttributesParams = {\r\n // Top ArtikelAttribute\r\n topArticleAttributes?: ArticleAttributeParams[]\r\n // additionalAttributes\r\n additionalAttributes?: ArticleAttributeParams[]\r\n}\r\n\r\nexport type SupplierParms = {\r\n supplier: DataSupplier\r\n supplierLogo?: string\r\n imgLoading?: boolean\r\n tagHeadline?: string\r\n selected?: boolean\r\n}\r\n\r\nexport type ArticleNumbersParms = {\r\n hideDealerPartNumber?: boolean\r\n traderArticleNo?: string\r\n oeArticleNo?: string\r\n supplierArticleNo?: string\r\n copyButtonTrader?: boolean\r\n copyButtonSupplier?: boolean\r\n}\r\n\r\nexport type ArticleImageParms = {\r\n thumbnailUrl: string\r\n thumbnailDescription?: string\r\n thumbnailFallbackUrl?: string\r\n articleImages?: ArticleImage[]\r\n startIndex?: number\r\n customThumbnailComponent?: ReactNode\r\n loading?: boolean\r\n onClick?(): void\r\n onLoadImages?(): void\r\n}\r\n\r\nexport type ArticleDescriptionParms = {\r\n position: \"top\" | \"bottom\"\r\n traderDescriptopnPosition: \"top\" | \"bottom\"\r\n additionalDescriptions?: string[]\r\n missingVehicleConnectionTitle?: string\r\n description?: string\r\n}\r\n\r\nexport type ArticlePriceParms = {\r\n title: string\r\n price: string\r\n priceColor?: string\r\n priceInfo?: string\r\n order: number\r\n modifier: \"none\" | \"strikethrough\"\r\n size?: \"small\" | \"default\" | \"big\"\r\n hideLable?: boolean\r\n subline?: string\r\n tooltip?: JSX.Element | null\r\n}\r\n\r\nexport type ArticleReferenceParms = {\r\n label: string\r\n referenceType: ArticleReferenceType\r\n modificationState?: ModificationState\r\n description?: string\r\n manufacturer?: string\r\n}\r\n\r\nexport type AdditionalInformationLink = {\r\n icon?: string\r\n href: string\r\n name: string\r\n}\r\n\r\nexport type ArticleNotification = {\r\n variant: \"success\" | \"warning\" | \"info\" | \"error\"\r\n message: string\r\n link?: string\r\n}\r\n\r\nexport type WatchListItem = {\r\n id: string\r\n name: string\r\n selected: boolean\r\n hasErrors?: boolean\r\n disabled?: boolean // TODO: When there is no more an special case for WM, this field must be deleted\r\n}\r\nexport type WatchListParams = {\r\n isInWatchList: boolean | undefined\r\n watchLists: WatchListItem[]\r\n onToggleWatchList(compilationId: string): void\r\n onCreateWatchList(name: string): void\r\n isToggling: boolean\r\n isCreating: boolean\r\n isLoading: boolean\r\n}\r\n\r\nexport type ArticleNotes = {\r\n notes: Note[]\r\n isLoading: boolean\r\n visible: boolean\r\n handleSave(note: Note): Promise\r\n handleDelete(noteId: string): Promise\r\n toggle(): void\r\n hide(): void\r\n}\r\n\r\nexport type CrossSelling = {\r\n isEnabled?: boolean\r\n isLoading: boolean\r\n loadRecommendedArticles(): Promise\r\n loadNextRecommendedArticle: (article: Article) => Promise\r\n onClose(): void\r\n ListComponent: FC\r\n displayButton?: boolean\r\n productGroup?: string\r\n onProductGroupClick?: () => void\r\n RecommendedArticlesChain: () => JSX.Element | null\r\n}\r\n\r\nexport type WatchList = {\r\n watchLists: WatchListItem[] | undefined\r\n isInWatchList?: boolean\r\n createWatchList: (name: string) => void\r\n createOrAddWatchlist: (name: string) => void\r\n toggleWatchList: (listId: string) => void\r\n isLoading: boolean\r\n isToggling: boolean\r\n isCreating: boolean\r\n singleWatchlist?: boolean\r\n}\r\n\r\nexport type ErpInfoData = {\r\n erpSystem: ErpSystemConfig\r\n traderArticleNumber: string\r\n erpInformation?: ErpInformation\r\n isLoading?: boolean\r\n}\r\n\r\nexport type TraderErpInfosData = {\r\n loadTraderErpInfos(): void\r\n traderErpInfos: ErpInfoData[]\r\n isLoading: boolean\r\n}\r\n\r\ntype SearchHitInfo = Overwrite<\r\n ArticleSearchHitInfo,\r\n {\r\n searchFilter: string\r\n }\r\n>\r\n\r\nexport type FoundByParams = {\r\n hitInfos?: SearchHitInfo[]\r\n isLoading?: boolean\r\n load(): Promise\r\n}\r\n\r\nexport type ArticleSelectionParams = {\r\n selectedArticles: T[]\r\n maximumPartsToCompare?: number\r\n toggleSelectedArticle(article: T): void\r\n deselectArticle(articleUniqueId: string): void\r\n deselectAll(): void\r\n isArticleSelected(article: T): boolean\r\n}\r\n\r\nexport type DmsArticleInfo = {\r\n stockInfoItems?: Array<{ label?: string; value?: string }>\r\n voucherInfoItems?: Array<{ label?: string; value?: string }>\r\n stockItem?: DMS.StockItem\r\n permittedOperations?: Array\r\n handleVoucherClick: (voucher: DMS.VoucherReference) => void\r\n}\r\n\r\nexport type DisplayArticle = {\r\n // Artikelnummer\r\n numbers: ArticleNumbersParms\r\n // Artikelbilder\r\n image: ArticleImageParms\r\n // Hersteller infos\r\n supplier: SupplierParms\r\n // Bonussystem\r\n bonus?: BonusSystem\r\n // Artikelbeschreibung\r\n description: ArticleDescriptionParms\r\n // Fahrzeugspezifische Attribute\r\n attributes?: ArticleAttributesParams[]\r\n // Referenzes\r\n references?: ArticleReferenceParms[]\r\n // Artikel zusatzinformationen\r\n additionalInformation?: {\r\n references?: ArticleReferenceParms[]\r\n // generalInformation is shown as a block above the additionalInformation\r\n generalInformation?: [string, string[]][]\r\n headInformation?: string[]\r\n textInformation?: [string, string[]][]\r\n links?: AdditionalInformationLink[]\r\n }\r\n // Merklisten / Compilations\r\n watchList?: WatchListParams\r\n // Artikelnotizen\r\n notes?: ArticleNotes\r\n // OE Price\r\n oePrice?: ArticlePriceParms[]\r\n // IMS Modification\r\n modificationState?: EArticleModificationState\r\n // Shared top attributes (only used for articles which have data for multiple vehicles)\r\n sharedAttributes?: ArticleAttributeParams[]\r\n}\r\n\r\n/** Contains the current state of the articleItem. */\r\ntype GenericArticleItemState = {\r\n type: \"default\" | \"OE\" | \"OeInformation\"\r\n isVehicleDependent: boolean\r\n quantity: number\r\n originalQuantity: number\r\n basketQuantity?: SupplierArticleQuantities | OeArticleQuantities\r\n article: TArticle\r\n vehicle?: Vehicle\r\n showReplaceButton?: boolean\r\n articleErpInfos?: ArticleErpInfos\r\n showExtendedAvailabilityContainer?: boolean\r\n\r\n addToBasketButtonDisabled: boolean\r\n addToCostEstimationButtonDisabled: boolean\r\n\r\n handleChangeQuantity: (value: number, loadErpInfo?: boolean) => void\r\n handleAddToBasket(internalQuantity?: number): Promise\r\n handleRemoveFromBasket(): Promise\r\n\r\n AvailabilityComponent: ElementType\r\n\r\n displayBehavior?: TArticleListV2DisplayBehavior\r\n}\r\n\r\n/** Contains the current state of the default Article Item variant. */\r\nexport type DefaultArticleItemState = Overwrite<\r\n GenericArticleItemState

    ,\r\n {\r\n type: \"default\"\r\n\r\n options: ArticleOptions\r\n displayArticle: DisplayArticle\r\n articleActions?: ArticleActions\r\n\r\n showImageViewer: boolean\r\n expanded: boolean\r\n traderSelection?: boolean\r\n\r\n notes: ArticleNotes\r\n tradeReferences?: TradeReferenceNumber[]\r\n traderErpInfos?: TraderErpInfosData\r\n notifications?: ArticleNotification[]\r\n\r\n basketQuantity?: SupplierArticleQuantities\r\n\r\n watchList?: WatchList\r\n positionChangeEArtNrHArtNr?: boolean\r\n foundBy?: FoundByParams\r\n selection?: ArticleSelectionParams
    \r\n extendedDeliveryInfo?: ExtendedDeliveryInfo\r\n\r\n imsIcon?: string\r\n memoTooltipIcon?: string\r\n\r\n articleImages: ArticleImages\r\n dmsArticleInfo: DmsArticleInfo\r\n alreadyOrdered: boolean\r\n crossSelling?: CrossSelling\r\n\r\n showDescriptionCompactView?: boolean\r\n\r\n handleClickImage(): void\r\n handleCloseImage(): void\r\n handleClickDetails(subPage?: string, scrollTo?: string): void\r\n handleClickReference(reference: ArticleReferenceParms): void\r\n handleClickAttribute?(id: number, openInModal: boolean, value?: string): void\r\n handleAddToBasket(quantity?: number, erpInformation?: ErpInformation, erpSystemId?: number): Promise\r\n handleAddToCostEstimation(quantity?: number, erpInformation?: ErpInformation, erpSystemId?: number): Promise\r\n handleRemoveFromBasket(itemId?: string[]): Promise\r\n handleReplaceArticle?(): void\r\n handleCopyArticleNumber(number: string): void\r\n handleClickAvailability(erpSystem?: ErpSystemConfig, useSpecialProcurement?: boolean): void\r\n toggleExpand(): void\r\n toggleTraderSelection?(): void\r\n toggleSupplierFilter?(exclusive?: boolean): void\r\n\r\n largeCheckbox?: boolean\r\n }\r\n>\r\n\r\ntype ArticleImages = {\r\n data: ArticleImage[] | undefined\r\n isLoading: boolean\r\n setEnabled: (value: boolean) => void\r\n}\r\n\r\nexport type WholesalerArticleItemState = Overwrite<\r\n GenericArticleItemState,\r\n {\r\n type: \"WholesalerArticle\"\r\n article: WholesalerArticle\r\n basketQuantity?: ArticleQuantities\r\n options: ArticleOptions\r\n }\r\n>\r\n\r\nexport type OeArticleItemState = Overwrite<\r\n GenericArticleItemState,\r\n {\r\n type: \"OE\"\r\n basketQuantity?: OeArticleQuantities\r\n thumbnailUrl: string\r\n manufacturerThumbnail?: string\r\n oeArticleNo: string\r\n wholesalerArticleNumber: string\r\n options: ArticleOptions\r\n attributes?: ArticleAttributesParams[]\r\n handleReplaceArticle(): void\r\n selection?: ArticleSelectionParams\r\n }\r\n>\r\n\r\nexport type OeInformationItemState = Overwrite<\r\n Omit, \"article\">,\r\n {\r\n type: \"oeInformation\"\r\n showAddToBasket: boolean\r\n description: string\r\n oeArticleNo: string\r\n thumbnailUrl: string\r\n selectedPart: OE.OePart\r\n parts: OE.OePart[]\r\n attributes: ArticleAttributesParams[]\r\n basketQuantity?: OeArticleQuantities\r\n oePrices: ErpPrice[]\r\n options: Overwrite\r\n handlePartChange(id: string): void\r\n }\r\n>\r\n\r\nexport type WholesalerArticleNumbersItemState = Overwrite<\r\n GenericArticleItemState
    ,\r\n {\r\n type: \"wholesalerArticleNumber\"\r\n thumbnailUrl: string\r\n wholesalerArticleNumber: string\r\n options: ArticleOptions\r\n basketQuantity: WholesalerArticleQuantities | undefined\r\n extendedDeliveryInfo?: ExtendedDeliveryInfo\r\n }\r\n>\r\n\r\nexport type TyreArticleItemState = Overwrite<\r\n GenericArticleItemState,\r\n {\r\n type: \"Tyres\"\r\n article: TyreArticle\r\n displayBehavior: TArticleListV2DisplayBehavior\r\n }\r\n>\r\n\r\nexport type WheelsArticleItemState = Overwrite<\r\n GenericArticleItemState
    ,\r\n {\r\n type: \"Tyres\" | \"default\"\r\n article: Article | TyreArticle\r\n }\r\n>\r\n\r\nexport enum ArticleListV2DisplayBehavior {\r\n List = \"List\",\r\n Tile = \"Tile\",\r\n Both = \"Both\",\r\n}\r\n\r\nexport type ArticleItemState =\r\n | DefaultArticleItemState\r\n | OeArticleItemState\r\n | OeInformationItemState\r\n | WholesalerArticleNumbersItemState\r\n | WholesalerArticleItemState\r\n | TyreArticleItemState\r\n | WheelsArticleItemState\r\n","import { ListRequest, Version } from \"..\"\r\nimport { ArticleReferenceType, FittingPosition, PriceType, SearchFilters } from \"../enumerations\"\r\nimport { Override } from \"../types\"\r\nimport { OeArticleOrigin } from \"./oe\"\r\n\r\nexport type Article = {\r\n /**\r\n * The property `id` returned by service is the internal article number.\r\n * In the frontend the `id` property is a genereated UUID and the original `id` is stored in `internalId`.\r\n */\r\n id: string\r\n /**\r\n * Added by frontend.\r\n * The internal article number originally returned by the service in the `id` property.\r\n */\r\n internalId: number\r\n supplierArticleNo: string\r\n traderArticleNo: string\r\n matchingArticleNo: string\r\n description: string\r\n traderDescription: string\r\n additionalDescription: string\r\n accessoryDescription: string\r\n information: Array\r\n attributes: Array\r\n references: Array\r\n prices?: Array\r\n options: OldArticleOptions\r\n vehicleLinkageId: number\r\n vehicleInformation: Array\r\n additionalReferenceArticleInformation: AdditionalReferenceArticleInformation\r\n supplier: DataSupplier\r\n productGroup: ProductGroup\r\n status: Array\r\n packaging?: Packaging\r\n quantity: number\r\n /**\r\n * This is a suggestion based on TMA data. After loading the article data `quantity` will already be set to the suggested quantity if enabled.\r\n */\r\n suggestedQuantity?: number\r\n /**\r\n * Added by frontend.\r\n * The quantity initially transferred by the article service is copied to this field.\r\n * The value shouldn't be changed afterwards, so that it e.g. can be used to reset the quantity field after the article has been added to the basket.\r\n */\r\n initialQuantity: number\r\n fittingSide?: FittingPosition\r\n isReplacementArticle: boolean\r\n isTraderAddition: boolean\r\n articleModificationState: EArticleModificationState\r\n referencedArticleModification?: ReferencedArticleModification\r\n isMandatoryCertificationRequired: boolean\r\n isAccessory: boolean\r\n isPartsListAvailable: boolean\r\n isAccessoryListAvailable: boolean\r\n thumbnail: string\r\n existImage: boolean\r\n existPdf: boolean\r\n priority: number\r\n lastUpdate?: Date\r\n imageCoordinates: string\r\n requestErpInfo: boolean\r\n showAddToBasket: boolean\r\n isExactMatch: boolean\r\n showDbPrices: boolean\r\n vehicleDescriptions?: Array\r\n documents?: ArticleDocument[]\r\n articleListPosition?: number\r\n availableBonusSystems?: Array\r\n useSpecialProcurement?: boolean\r\n sswRimInformation?: string\r\n montageauflagen?: string\r\n oeArticleOrigin?: OeArticleOrigin\r\n sharedAttributes?: Array\r\n isSelected?: boolean\r\n}\r\n\r\nexport type ArticleImage = {\r\n description: string\r\n name: string\r\n imageUrl: string\r\n thumbnailUrl: string\r\n}\r\n\r\nexport type ArticleDocument = {\r\n description: string\r\n documentType: number\r\n url: string\r\n}\r\n\r\nexport type ArticleInfoGroup = {\r\n type: number\r\n name: string\r\n member: Array\r\n hasName: boolean\r\n hasMember: boolean\r\n}\r\n\r\nexport type ArticleInfo = {\r\n description: string\r\n content: string\r\n mediaType: EMediaType\r\n mediaTypeDescription: string\r\n contentTypeId: number\r\n contentTypeDescription: string\r\n tecdocInfoType: ETecdocInfoType\r\n options: OldArticleOptions\r\n sortId?: number\r\n priority: number\r\n}\r\n\r\nexport enum EMediaType {\r\n None = 0,\r\n Video = 1,\r\n Audio = 2,\r\n Pdf = 3,\r\n Website = 4,\r\n YoutubeChannel = 5,\r\n Text = 6,\r\n HeadTextInfo = 7,\r\n}\r\n\r\nexport enum ETecdocInfoType {\r\n None = 0,\r\n TechnicalInfo = 1,\r\n GeneralInfo = 2,\r\n AssemblyInfo,\r\n RepairTime,\r\n SafetyInfo,\r\n MessureInfo,\r\n Lieferumfang,\r\n Sonderzubehör,\r\n Kurzinformation,\r\n}\r\n\r\nexport type ArticleAttributes = {\r\n topAttributes: Array\r\n articleAttributes: Array\r\n vehicleAttributes: Array\r\n partsListAttributes: Array\r\n}\r\n\r\nexport type ArticleAttribute = {\r\n id: number\r\n description: string\r\n abbreviation: string\r\n text: string\r\n key: string\r\n value: string\r\n unit: string\r\n modificationState: ModificationState\r\n highlight: boolean\r\n sortNo: number\r\n isBlockSeperator: boolean\r\n alternatives?: Array\r\n isOptimized: boolean\r\n action?: AttributeAction\r\n isDuplicatedAttribute?: boolean // Added to hide labels of duplicated attributes, e.g. multiple engine codes\r\n productGroupId?: number\r\n tooltip?: string\r\n isSharedAttribute?: boolean // Article is also mentioned in the sharedAttributes-Array\r\n isArticleAttribute?: boolean // Only set when used in sharedAttribtes, this indicates that this article should be hidden in compact view\r\n isSelectable?: boolean\r\n}\r\n\r\nexport enum EArticleModificationState {\r\n NotModified = 0,\r\n ArticleAdded = 1, // Der Artikel wurde vom Teilehändler hinzugefügt.\r\n ArticleDisabled = 2, // Der Artikel wurde vom Teilehändler gesperrt.\r\n VehicleLinkageAdded = 3, // Fahrzeugzuordnung wurde durch Teilehändler hinzugefügt.\r\n VehicleLinkageDisabled = 4, // Artikel nicht verwenden, Passgenauigkeit nicht garantiert!\r\n}\r\n\r\nexport enum ModificationState {\r\n NotModified = 0,\r\n Added = 1,\r\n Removed = 2,\r\n}\r\n\r\nexport enum AttributeAction {\r\n Filter = 0,\r\n DirectSearch = 1,\r\n OpenAccessoryList = 2,\r\n OpenPartsList = 3,\r\n}\r\n\r\nexport type ArticleReference = {\r\n information?: string\r\n referenceNo: string\r\n referenceType: ArticleReferenceType\r\n description: string\r\n value: string\r\n manufacturerId?: number\r\n manufacturer?: string\r\n productGroup?: ProductGroup\r\n modificationState: ModificationState\r\n}\r\n\r\nexport type ArticlePrice = {\r\n description: string\r\n priceType: PriceType\r\n traderDescription?: string\r\n traderPriceType?: string\r\n value: number\r\n currencyCode: string\r\n currencySymbol?: string\r\n countryCode: string\r\n quantityUnitId: number\r\n quantityUnit: string\r\n scaleQuantity: number\r\n priceUnitId: number\r\n priceUnit: string\r\n validFrom: Date\r\n validTo?: Date\r\n discount: number\r\n discountGroupId: number\r\n deliveryStatusId: number\r\n deliveryStatus: number\r\n isTraderPrice: number\r\n}\r\n\r\nexport type OldArticleOptions = {\r\n showInArticleList: boolean\r\n blocked: boolean\r\n ignoreInSearch: boolean\r\n highlight: boolean\r\n modified: boolean\r\n addedByWholesaler: boolean\r\n articleInformationEditedByWholesaler: boolean\r\n}\r\n\r\nexport type AdditionalReferenceArticleInformation = {\r\n headInformation: Array\r\n links: Array\r\n textInformation: Array\r\n}\r\n\r\nexport type DataSupplier = {\r\n id: number\r\n name: string\r\n abbreviation: string\r\n isTopPriority: boolean\r\n manufacturerId?: number\r\n}\r\n\r\nexport type ProductGroup = {\r\n id: number\r\n name: string\r\n thumbnail: string\r\n sortId: number\r\n}\r\n\r\nexport type ArticleStatus = {\r\n id: number\r\n description: string\r\n validFrom?: Date\r\n country?: string\r\n countryCode?: string\r\n}\r\n\r\nexport type Packaging = {\r\n batchSize?: number\r\n batchSize2?: number\r\n packagingUnit: number\r\n quantityPerUnit: number\r\n isSelfServicePackaging: boolean\r\n}\r\n\r\nexport type Item = {\r\n id: string\r\n version: Version\r\n parentItem?: Item // used mainly in basket\r\n}\r\n\r\nexport type GetArticlesRequest = ListRequest & {\r\n query?: string\r\n searchFilter?: SearchFilters\r\n supplierArticleNos?: Array\r\n productGroupIds?: Array\r\n supplierIds?: Array\r\n extendedAssortment?: boolean\r\n attributeFilter?: string\r\n oeReferences?: Array\r\n modelId?: number\r\n vehicleType?: number\r\n fittingSideFilter?: FittingPosition\r\n constructionYearFilter?: number\r\n treeId?: number\r\n nodeId?: number\r\n useErpTradeReference?: boolean\r\n useEqualArticlesFilter?: boolean\r\n oeManufacturerIds?: Array\r\n oeInformationWithoutCar?: boolean\r\n engineCode?: string\r\n}\r\n\r\nexport type GetArticlesResponse = {\r\n articles: Array
    // this may by wrong\r\n pageIndex: number\r\n pageSize: number\r\n articleListCount?: number\r\n hasNextPage?: boolean\r\n}\r\n\r\nexport type GetUniArticlesResponse = {\r\n uniArticles: Array
    // this may by wrong\r\n pageIndex: number\r\n pageSize: number\r\n articleListCount?: number\r\n}\r\n\r\nexport type ArticleIdentifier = {\r\n supplierId: number\r\n supplierArticleNo: string\r\n productGroupId: number\r\n tecdocTypeNo?: number\r\n}\r\n\r\nexport type SupplierArticle = {\r\n supplierId: number\r\n supplierArticleNo: string\r\n}\r\n\r\nexport type BonusSystem = {\r\n id: number\r\n name: string\r\n imageUrl: string\r\n value?: number\r\n}\r\n\r\nexport type ReferencedArticleModification = {\r\n referencedArticleInfos?: Array\r\n isAddedReferencedArticle?: boolean\r\n isRemovedReferencedArticle?: boolean\r\n}\r\n\r\nexport type ArticleSearchHitInfo = {\r\n searchFilter: SearchFilters\r\n referenceNo: string\r\n manufacturerName?: string\r\n oeReferenceInfo?: string\r\n}\r\n","import { ArticleAttributes } from \"./article\"\r\n\r\nexport type OePosition = OeNumber & {\r\n replacements?: Array\r\n}\r\n\r\nexport type OePart = {\r\n id?: string // A unqiue GUID identifying this part\r\n thumbnailUrl?: string\r\n number: string\r\n traderNumber?: string\r\n description: string\r\n manufacturerId?: number\r\n manufacturerName?: string\r\n manufacturerThumbnail?: string\r\n prices?: Array\r\n quantity?: number\r\n additionalDescription?: string\r\n attributes?: Array\r\n productGroupId?: number\r\n fittingPosition?: number\r\n oeArticleOrigin?: OeArticleOrigin\r\n}\r\n\r\nexport type OeArticleOrigin = {\r\n provider: OeArticleProvider\r\n module: OeArticleModule\r\n}\r\n\r\nexport enum OeArticleProvider {\r\n Topmotive,\r\n DAT,\r\n Eurotax,\r\n}\r\n\r\nexport enum OeArticleModule {\r\n Undefined,\r\n RepairEstimation,\r\n GraphicalPartsIdentification,\r\n GlassRepairEstimation,\r\n}\r\n\r\nexport type OePartPrice = {\r\n description?: string\r\n value: number\r\n currency: string\r\n}\r\n\r\nexport type OeNumber = {\r\n number: string\r\n description?: string\r\n additionalDescription?: string\r\n parts?: Array\r\n isSelected?: boolean\r\n}\r\n\r\nexport type OePartRD = {\r\n oeNumber?: string\r\n description?: string\r\n additionalDescription?: string\r\n oeReplacements?: string[]\r\n currency?: string\r\n price?: number\r\n isSelected?: boolean\r\n quantity?: number\r\n}\r\n\r\nexport type OECrit = {\r\n ownerId: number\r\n ownerNr: string\r\n genartNr: number\r\n critNr: number\r\n critValue: string\r\n lkz: string\r\n exclude: boolean\r\n prio: number\r\n}\r\n","import { DisplayBehaviour } from \"../enumerations\"\r\nimport { Paging } from \"../paging\"\r\n\r\nexport type ShowReturnsTotalNumbersRequest = {\r\n customerNo?: string\r\n}\r\n\r\nexport type ShowReturnsTotalNumbersResponse = {\r\n numberOfParts: number\r\n numberOfPositions: number\r\n numberOfPartsInReturn: number\r\n numberOfPositionsInReturn: number\r\n}\r\n\r\nexport type CisShowCustomerRequest = {\r\n customerNo?: string\r\n}\r\n\r\nexport type CisCustomerResponse = {\r\n account?: CisAccount\r\n addresses?: CisAddress[]\r\n applicationInformation: CisApplicationInformation\r\n companyName: string\r\n companyNameAddition1?: string\r\n companyNameAddition2?: string\r\n conceptCustomers?: CisConceptCustomer[]\r\n contacts?: CisContact[]\r\n cooperationGroup?: string\r\n customerGroup?: string\r\n customerNo: string\r\n customerNumberToShow?: string\r\n electronicAddresses?: CisElectronicAddress[]\r\n information?: string\r\n nextTourInfo?: string\r\n notes?: CisNote[]\r\n requestedCustomerNo?: string // In some cases (PV/Neimcke) is the requested customerNo not equals to the real customerNo, but we need to compare the requested one later.\r\n salesOutlets?: CisSalesOutlet[]\r\n shippingTypes?: CisShippingType[]\r\n state?: CisCustomerState\r\n stateDescription?: string\r\n logos?: CisLogo[]\r\n}\r\n\r\nexport type CisLogo = {\r\n type: number // Undefined = 0, CompanyLogo = 1\r\n url: string\r\n description: string\r\n}\r\n\r\nexport type CisFindCustomersRequest = {\r\n query: string\r\n queryTypeId: number\r\n}\r\n\r\nexport enum CisCustomerState {\r\n Undefined = 0, // Undefined State\r\n Normal = 1, // Normal customer without any special state\r\n Suspended = 2, // Attention! Do not sell any parts to this customer.\r\n Critical = 3, // Attention! Check details for this customer carefully.\r\n TSMBlocked = 4, // Attention! User is TSM Blocked and do not sell any parts to this customer.\r\n Notification = 5, // Display only notifications\r\n}\r\n\r\nexport type CisFindCustomerDto = {\r\n partnerNo: string\r\n customerNumberToShow?: string\r\n company: string\r\n street: string\r\n zip: string\r\n city: string\r\n contactFirstName?: string\r\n contactLastName?: string\r\n phone?: string\r\n information?: string\r\n state?: CisCustomerState\r\n stateDescription?: string\r\n companyNameAddition1: string\r\n companyNameAddition2: string\r\n}\r\n\r\nexport type CisQueryType = {\r\n description: string\r\n id: number\r\n showSingleDateFilter?: boolean\r\n}\r\n\r\nexport type CisConceptCustomer = {\r\n id: string\r\n description?: string\r\n iconUrl: string\r\n redirectUrl?: string\r\n}\r\n\r\nexport type CisAccount = {\r\n accountId: string\r\n creditInfo?: CisCreditInfo\r\n balanceDue?: string\r\n billingType?: CisBillingType\r\n currencyCode: string\r\n information?: string\r\n}\r\n\r\nexport type CisCreditInfo = {\r\n limit: string\r\n drawn: string\r\n}\r\n\r\nexport type CisBillingType = {\r\n typeId: number\r\n description: string\r\n}\r\n\r\nexport type CisAddress = {\r\n description: string\r\n street: string\r\n streetNo?: string\r\n addressAddition?: string\r\n city: string\r\n zip: string\r\n postOfficeBox?: string\r\n country: string\r\n phone?: string\r\n}\r\n\r\nexport type CisElectronicAddress = {\r\n type: number\r\n description: string\r\n value: string\r\n}\r\n\r\nexport type CisShippingType = {\r\n uniqueId: string\r\n description: string\r\n price: number\r\n currencyCode: string\r\n isDefault: boolean\r\n}\r\n\r\nexport type CisNote = {\r\n description: string\r\n iconUrl: string\r\n url: string\r\n urlText: string\r\n imageUrl: string\r\n text: string\r\n type?: CisNoteType\r\n}\r\n\r\nexport enum CisNoteType {\r\n Undefined = 0,\r\n Warning = 1,\r\n Information = 2,\r\n WarehouseInformation = 3,\r\n}\r\n\r\nexport type CisSalesOutlet = {\r\n name: string\r\n address: CisAddress\r\n contacts: CisContact[]\r\n electronicAddresses?: CisElectronicAddress[]\r\n description: string\r\n id: string\r\n notes: CisNote[]\r\n lastOrderDateTime: Date\r\n isDefault: boolean\r\n businessTimes: CisBusinessTime[]\r\n businessTimeDescriptions: BusinessTimeDescription[]\r\n isTireWarehouse: boolean\r\n shopHoursToday: string\r\n}\r\n\r\nexport type CisContact = {\r\n id: string\r\n contactDescription: string\r\n lastName: string\r\n firstName: string\r\n jobDescription: string\r\n electronicAddresses?: CisElectronicAddress[]\r\n}\r\n\r\nexport type CisBusinessTime = {\r\n weekdayAbbreviation: string\r\n worktimes?: WorkHours[]\r\n info?: string\r\n}\r\n\r\nexport type WorkHours = {\r\n openingTime: string\r\n closingTime: string\r\n}\r\n\r\nexport type BusinessTimeDescription = {\r\n days: string\r\n times: string\r\n}\r\n\r\nexport type CisCustomerVoucherType = {\r\n typeId: number\r\n description: string\r\n}\r\n\r\nexport type CisTour = {\r\n tourNumber: string\r\n tourDescription: string\r\n orderAcceptanceUntil?: Date\r\n tourStartTime?: Date\r\n messageId: string\r\n messageDescription: string\r\n status: string\r\n}\r\n\r\nexport type CisApplicationInformation = {\r\n edition?: string\r\n mode?: string\r\n}\r\n\r\nexport type ShowOrdersByArticleRequest = {\r\n pageIndex?: number\r\n pageSize?: number\r\n itemId?: string\r\n orderDate?: Date\r\n orderNumber?: string\r\n orderStatus?: string\r\n customerNo?: string\r\n}\r\n\r\nexport type ShowOrdersByArticleResponse = Paging & {\r\n ordersByArticle: OrderByArticleListItem[]\r\n messageId: string\r\n messageDescription: string\r\n}\r\n\r\nexport type OrderByArticleListItem = {\r\n voucherId: string\r\n voucherType: CisCustomerVoucherType\r\n orderNumber: string\r\n orderType: string\r\n orderStatus: string\r\n wholesalerArticleNumber: string\r\n itemDescription: string\r\n orderQuantity: string\r\n positionStatus: string\r\n positionStatusVoucherTypeId: number\r\n orderDate?: Date\r\n orderSubNumber: string\r\n warehouseId: string\r\n}\r\n\r\nexport type ReturnReason = {\r\n id?: number\r\n description?: string\r\n isReturnInfoRequired?: boolean\r\n}\r\n\r\nexport type ShowCisOptionsRequest = {\r\n customerNo?: string\r\n}\r\n\r\nexport type ShowCisOptionsResponse = {\r\n dateFilterDayPreset?: number\r\n displayBehaviour: DisplayBehaviour\r\n queryTypes?: CisQueryType[]\r\n returnReasons?: ReturnReason[]\r\n voucherTypes?: CisCustomerVoucherType[]\r\n}\r\n\r\nexport type AddReturnItemRequest = {\r\n dataSupplierId?: number\r\n dataSupplierName?: string\r\n dataSupplierArticleNumber?: string\r\n wholesalerArticleNumber?: string\r\n productGroupId?: number\r\n productGroupName?: string\r\n description?: string\r\n thumbnailUrl?: string\r\n returnQuantity: number\r\n deliveryNote?: string\r\n invoice?: string\r\n orderNo?: string\r\n positionNumber?: number\r\n orderDate?: Date\r\n voucherItemId?: string\r\n voucherId?: string\r\n voucherTypeId?: number\r\n}\r\n","export enum DiscountType {\r\n Total = 0,\r\n SpareParts = 1,\r\n LabourCosts = 2,\r\n PaintWork = 3,\r\n PaintMaterial = 4,\r\n}\r\n\r\nexport enum eOEArtType {\r\n MaterialPosition = 0,\r\n AdditionalCostsPosition = 1,\r\n SmallSparePart = 2,\r\n MaterialFlatAmountLacquerWorks = 3,\r\n MaterialsForLacquerWorks = 4,\r\n ConstantCostsForLacquerWorks = 5,\r\n DiscountForLacquerWorks = 6,\r\n SmallPartsAndConsumables = 7,\r\n PartsSurcharge = 8,\r\n}\r\n\r\nexport enum EDatRepairworkType {\r\n PaintWork = 0,\r\n LabourWork = 1,\r\n}\r\n","import { Memo, Paged } from \"./shared\"\r\nimport { Vehicle } from \"./vehicles\"\r\n\r\nexport type FindCustomersRequest = Paged & {\r\n query?: string\r\n orderBy?: string\r\n orderByDescending?: boolean\r\n}\r\n\r\nexport type FindCustomersResponse = Paged & {\r\n customers: Array\r\n}\r\n\r\nexport type SaveCustomerRequest = {\r\n customer: Customer\r\n}\r\n\r\nexport type SaveCustomerResponse = {\r\n referenceId: string\r\n}\r\n\r\nexport type ShowCustomerRequest = {\r\n referenceId: string\r\n vehicleReferenceId?: string\r\n}\r\n\r\nexport type ShowCustomerResponse = {\r\n customer?: Customer\r\n vehicle?: Vehicle\r\n}\r\n\r\nexport type Customer = {\r\n referenceId: string\r\n customerId: string\r\n taxId: string\r\n\r\n matchCode: string\r\n\r\n title: TitleType\r\n academicTitle: string\r\n\r\n firstName: string\r\n lastName: string\r\n companyName: string\r\n\r\n generalAddress?: PostalAddress\r\n\r\n phone: string\r\n mobile: string\r\n fax: string\r\n email: string\r\n\r\n birthDate?: Date\r\n\r\n vehicles?: Array\r\n memos?: Array\r\n\r\n creationDate: Date\r\n modifiedDate?: Date\r\n}\r\n\r\nexport enum TitleType {\r\n Undefined = 0,\r\n Mister = 1,\r\n Miss = 2,\r\n Company = 3,\r\n}\r\n\r\nexport type PostalAddress = {\r\n referenceId: string\r\n description: string\r\n\r\n street: string\r\n addressAddition: string\r\n zip: string\r\n city: string\r\n state: string\r\n country: string\r\n}\r\n","import { ClientType, Memo, Paged } from \"./shared\"\r\nimport { VehicleType } from \"./vehicles\"\r\n\r\nexport type FindPartsRequest = Paged & {\r\n query?: string\r\n orderBy?: string\r\n orderByDescending?: boolean\r\n}\r\n\r\nexport type FindPartsResponse = Paged & {\r\n parts: Array\r\n}\r\n\r\nexport type Part = {\r\n id?: string\r\n referenceId: string\r\n\r\n wholesalerArticleId?: string\r\n dataSupplierArticleId: string\r\n oeArticleId: OeArticleId\r\n additionalArticleIds: Array\r\n\r\n dataSupplier?: DataSupplier\r\n productGroups?: Array\r\n\r\n vehicleType: VehicleType\r\n\r\n description: string\r\n additionalDescription: string\r\n\r\n prices: Array\r\n\r\n quantity: number\r\n unit: string\r\n\r\n memos: Array\r\n orderInformation: OrderInfo\r\n\r\n isInOrder: boolean\r\n isChangeable: boolean\r\n isChanged: boolean\r\n isInCostEstimation?: boolean\r\n isReplacementPart: boolean\r\n\r\n replacedPartInfo: string\r\n replacedReferenceId: string\r\n}\r\n\r\nexport type OeArticleId = {\r\n id: string\r\n manufacturer: string\r\n manufacturerId: string\r\n}\r\n\r\nexport type AdditionalArticleId = {\r\n id: string\r\n type: AdditionalArticleIdType\r\n description: string\r\n}\r\n\r\nexport enum AdditionalArticleIdType {\r\n Undefined = 0,\r\n OE = 1,\r\n EAN = 2,\r\n DMS = 3,\r\n}\r\n\r\nexport type DataSupplier = {\r\n id: number\r\n clientId: ClientType\r\n description: string\r\n}\r\n\r\nexport type ProductGroup = {\r\n id: number\r\n clientId: ClientType\r\n description: string\r\n}\r\n\r\nexport type Price = {\r\n description: string\r\n type: PriceType | string\r\n\r\n value?: number\r\n unit: string\r\n\r\n currencyCode: string\r\n currencySymbol: string\r\n\r\n vat: number\r\n isTaxIncluded: boolean\r\n\r\n rebateValue: number\r\n rebate: number\r\n}\r\n\r\n// https://erik-gsi-bosch.topmotive.eu/api/connect/Gsi/v1/Vouchers/findVouchers does respond with a string as priceType\r\nexport enum PriceType {\r\n Undefined = 0, // 0 - Undefiniert\r\n RecommendedRetail = 1, // 1 – Unverbindliche Preisempfehlung (UVP) / recommended sales price, recommended retail price\r\n UsedPart = 2, // 2 – Altteilpreis\r\n Pledge = 3, // 3 – Pfand\r\n Purchase = 4, // 4 – Einkaufspreis\r\n Retail = 5, // 5 – Verkaufspreis / Sales price\r\n Net = 6, // 6 – Netto\r\n Gross = 7, // 7 – Brutto\r\n ProcurementCosts = 8, // 8 – Beschaffungskosten\r\n Garage = 9, // 9 – Werkstattpreis\r\n CalculatedWithoutVat = 10, // 10 – Kalkuliert (ohne Mwst.)\r\n CalculatedWithVat = 11, // 11 – Kalkuliert (mit Mwst.)\r\n Strikethrough = 12, // 12 – Streichpreis\r\n GraduatedPurchase = 13, // 13 - EK-Staffelpreis\r\n}\r\n\r\nexport type OrderInfo = {\r\n orderId: string\r\n state: number\r\n memos: Array\r\n timestamp?: Date\r\n}\r\n","import { Paged, Memo } from \"./shared\"\r\nimport { VehicleType } from \"./vehicles\"\r\n\r\nexport type FindRepairTimesRequest = Paged & {\r\n query?: string\r\n orderBy?: string\r\n orderByDescending?: boolean\r\n}\r\n\r\nexport type FindRepairTimesResponse = Paged & {\r\n repairTimes: Array\r\n}\r\n\r\nexport type ShowRepairTimeRequest = {\r\n referenceId: string\r\n}\r\n\r\nexport type ShowRepairTimeResponse = {\r\n repairTime?: RepairTime\r\n}\r\n\r\nexport type RepairTime = {\r\n referenceId: string\r\n repairTimeId: string\r\n referencedRepairTimeId: string\r\n provider: Provider\r\n\r\n description: string\r\n type: RepairTimeType\r\n typeOfWork: WorkCategory\r\n typeOfWorkShortCode: string\r\n vehicleType: VehicleType\r\n calculation: RepairTimeCalculation\r\n\r\n isChangeable: boolean\r\n isChanged: boolean\r\n isExpanded: boolean\r\n\r\n memos: Array\r\n}\r\n\r\nexport enum Provider {\r\n Undefined = 0,\r\n AwDoc = 1,\r\n Haynes = 2,\r\n Autodata = 3,\r\n TecRMI = 4,\r\n Eurotax = 5,\r\n DAT = 6,\r\n Custom = 7,\r\n}\r\n\r\nexport enum RepairTimeType {\r\n Undefined = 0,\r\n MainWork = 1,\r\n IncludesWork = 2,\r\n PreliminaryWork = 3,\r\n PreparatoryWork = 4,\r\n}\r\n\r\nexport enum WorkCategory {\r\n NotCategorized = 0,\r\n WorkshopWork = 1, // WS - Werkstattarbeiten\r\n BodyWork = 2, // KA - Karosseriearbeiten,\r\n AccessoryWork = 3, // ZB - Zubehörarbeiten\r\n PaintWork = 4, // LA - Lackierarbeien\r\n ElectricalWork = 5, // EL - Elektrikarbeiten\r\n ElectronicWork = 6, // EK - Elektronikarbeiten\r\n SaddlerWork = 7, // SA - Sattlerarbeiten (Ere)\r\n SmartRepair = 8, // SR - SmartRepair (Ere)\r\n}\r\n\r\nexport type RepairTimeCalculation = {\r\n hourlyRate?: number\r\n\r\n priceValue: number\r\n priceType: string\r\n priceDescription: string\r\n isFixedPrice: boolean\r\n\r\n currencyCode: string\r\n currencySymbol: string\r\n\r\n rebateValue: number\r\n rebate: number\r\n\r\n vat: number\r\n isTaxIncluded: boolean\r\n\r\n timeValue: number\r\n calculatedTimeValue?: number\r\n division?: number\r\n}\r\n\r\nexport type HourlyRate = {\r\n description: string\r\n shortCode: string\r\n\r\n category: WorkCategory\r\n\r\n value: number\r\n vat: number\r\n}\r\n","import * as Appointments from \"./appointments\"\r\nimport * as Customers from \"./customers\"\r\nimport * as Parts from \"./parts\"\r\nimport * as RepairTimes from \"./repair-times\"\r\nimport * as Settings from \"./settings\"\r\nimport * as Stocks from \"./stocks\"\r\nimport * as Vehicles from \"./vehicles\"\r\nimport * as Vouchers from \"./vouchers\"\r\n\r\nexport type Paged = {\r\n pageIndex?: number\r\n pageSize?: number\r\n}\r\n\r\nexport type Memo = {\r\n description: string\r\n value: string\r\n type: MemoType\r\n isVisible: boolean\r\n}\r\n\r\nexport enum MemoType {\r\n Text = 0,\r\n Xml = 1,\r\n}\r\n\r\nexport enum ClientType {\r\n TecDoc = 0,\r\n}\r\n\r\nexport type MessageType =\r\n | \"showConnectionStatus\"\r\n | \"showSettings\"\r\n | \"findAppointments\"\r\n | \"saveAppointment\"\r\n | \"deleteAppointment\"\r\n | \"findCustomers\"\r\n | \"showCustomer\"\r\n | \"saveCustomer\"\r\n | \"findVehicles\"\r\n | \"showVehicle\"\r\n | \"saveVehicle\"\r\n | \"findParts\"\r\n | \"findRepairTimes\"\r\n | \"showRepairTime\"\r\n | \"showAvailability\"\r\n | \"findVouchers\"\r\n | \"findVoucherTypes\"\r\n | \"showVoucher\"\r\n | \"saveVoucher\"\r\n | \"deleteVoucher\"\r\n | \"showVoucherHistory\"\r\n\r\ntype Request = {\r\n processId: string\r\n type: TType\r\n request: TRequest\r\n}\r\n\r\ntype Response = Request & {\r\n response?: TResponse & Error\r\n status: number\r\n}\r\n\r\ntype Error = {\r\n exceptionMessage: string\r\n exceptionType?: string\r\n stackTrace?: string\r\n}\r\n\r\nexport type DmsRequest =\r\n | Request<\"findAppointments\", Appointments.FindAppointmentsRequest>\r\n | Request<\"saveAppointment\", Appointments.SaveAppointmentRequest>\r\n | Request<\"deleteAppointment\", Appointments.DeleteAppointmentRequest>\r\n | Request<\"findCustomers\", Customers.FindCustomersRequest>\r\n | Request<\"showCustomer\", Customers.ShowCustomerRequest>\r\n | Request<\"saveCustomer\", Customers.SaveCustomerRequest>\r\n | Request<\"findVehicles\", Vehicles.FindVehiclesRequest>\r\n | Request<\"showVehicle\", Vehicles.ShowVehicleRequest>\r\n | Request<\"saveVehicle\", Vehicles.SaveVehicleRequest>\r\n | Request<\"findParts\", Parts.FindPartsRequest>\r\n | Request<\"findRepairTimes\", RepairTimes.FindRepairTimesRequest>\r\n | Request<\"showRepairTime\", RepairTimes.ShowRepairTimeRequest>\r\n | Request<\"showAvailability\", Stocks.ShowAvailabilityRequest>\r\n | Request<\"findVouchers\", Vouchers.FindVouchersRequest>\r\n | Request<\"findVoucherTypes\", undefined>\r\n | Request<\"showVoucher\", Vouchers.ShowVoucherRequest>\r\n | Request<\"saveVoucher\", Vouchers.SaveVoucherRequest>\r\n | Request<\"deleteVoucher\", Vouchers.DeleteVoucherItemRequest>\r\n | Request<\"showVoucherHistory\", Vouchers.ShowVoucherHistoryRequest>\r\n\r\nexport type DmsResponse =\r\n | Response<\"findAppointments\", Appointments.FindAppointmentsRequest, Appointments.FindAppointmentsResponse>\r\n | Response<\"saveAppointment\", Appointments.SaveAppointmentRequest, undefined>\r\n | Response<\"deleteAppointment\", Appointments.DeleteAppointmentRequest, undefined>\r\n | Response<\"findCustomers\", Customers.FindCustomersRequest, Customers.FindCustomersResponse>\r\n | Response<\"showCustomer\", Customers.ShowCustomerRequest, Customers.ShowCustomerResponse>\r\n | Response<\"saveCustomer\", Customers.SaveCustomerRequest, Customers.SaveCustomerResponse>\r\n | Response<\"findVehicles\", Vehicles.FindVehiclesRequest, Vehicles.FindVehiclesResponse>\r\n | Response<\"showVehicle\", Vehicles.ShowVehicleRequest, Vehicles.ShowVehicleResponse>\r\n | Response<\"saveVehicle\", Vehicles.SaveVehicleRequest, Vehicles.SaveVehicleResponse>\r\n | Response<\"findParts\", Parts.FindPartsRequest, Parts.FindPartsResponse>\r\n | Response<\"findRepairTimes\", RepairTimes.FindRepairTimesRequest, RepairTimes.FindRepairTimesResponse>\r\n | Response<\"showRepairTime\", RepairTimes.ShowRepairTimeRequest, RepairTimes.ShowRepairTimeResponse>\r\n | Response<\"showAvailability\", Stocks.ShowAvailabilityRequest, Stocks.ShowAvailabilityResponse>\r\n | Response<\"findVouchers\", Vouchers.FindVouchersRequest, Vouchers.FindVouchersResponse>\r\n | Response<\"findVoucherTypes\", undefined, Vouchers.FindVoucherTypesResponse>\r\n | Response<\"showVoucher\", Vouchers.ShowVoucherRequest, Vouchers.ShowVoucherResponse>\r\n | Response<\"saveVoucher\", Vouchers.SaveVoucherRequest, Vouchers.SaveVoucherResponse>\r\n | Response<\"deleteVoucher\", Vouchers.DeleteVoucherItemRequest, undefined>\r\n | Response<\"showVoucherHistory\", Vouchers.ShowVoucherHistoryRequest, Vouchers.ShowVoucherHistoryResponse>\r\n\r\nexport function isValidDmsMessageType(type: MessageType): boolean {\r\n if (typeof type !== \"string\") {\r\n return false\r\n }\r\n\r\n return (\r\n type === \"showConnectionStatus\" ||\r\n type === \"showSettings\" ||\r\n type === \"findAppointments\" ||\r\n type === \"saveAppointment\" ||\r\n type === \"deleteAppointment\" ||\r\n type === \"findCustomers\" ||\r\n type === \"showCustomer\" ||\r\n type === \"saveCustomer\" ||\r\n type === \"findVehicles\" ||\r\n type === \"showVehicle\" ||\r\n type === \"saveVehicle\" ||\r\n type === \"findParts\" ||\r\n type === \"findRepairTimes\" ||\r\n type === \"showRepairTime\" ||\r\n type === \"showAvailability\" ||\r\n type === \"findVouchers\" ||\r\n type === \"findVoucherTypes\" ||\r\n type === \"showVoucher\" ||\r\n type === \"saveVoucher\" ||\r\n type === \"deleteVoucher\" ||\r\n type === \"showVoucherHistory\"\r\n )\r\n}\r\n","import { Memo } from \"./shared\"\r\nimport { DataSupplier, ProductGroup, Price } from \"./parts\"\r\nimport { VoucherReference } from \"./vouchers\"\r\n\r\nexport type ShowAvailabilityRequest = {\r\n vehicleReferenceId?: string\r\n items: Array\r\n}\r\n\r\nexport type ShowAvailabilityResponse = {\r\n items: Array\r\n}\r\n\r\nexport type LookupItem = {\r\n id: string\r\n referenceId: string\r\n\r\n wholesalerArticleId: string\r\n dataSupplierArticleId: string\r\n\r\n description: string\r\n\r\n dataSupplier: DataSupplier\r\n productGroup: ProductGroup\r\n\r\n quantity: number\r\n}\r\n\r\nexport type StockItem = {\r\n id: string\r\n referenceId: string\r\n\r\n wholesalerArticleId: string\r\n dataSupplierArticleId: string\r\n\r\n description: string\r\n\r\n dataSupplier: DataSupplier\r\n productGroup: ProductGroup\r\n\r\n quantity: Quantity\r\n availability: Availability\r\n\r\n prices: Array\r\n warehouses: Array\r\n\r\n icons: Array\r\n memos: Array\r\n\r\n vouchers: Array\r\n\r\n invoiced: boolean\r\n}\r\n\r\nexport type Quantity = {\r\n description: string\r\n value?: number\r\n\r\n quantityUnit: string\r\n packagingUnit: string\r\n\r\n quantityPackingUnit?: number\r\n\r\n minQuantity?: number\r\n maxQuantity?: number\r\n\r\n availability: Availability\r\n expectedDeliveryTime?: Date\r\n\r\n division: number\r\n\r\n confirmedValue?: number\r\n requestedValue: number\r\n}\r\n\r\nexport enum Availability {\r\n Undefined = 0,\r\n Unknown = 1,\r\n Available = 2,\r\n PartiallyAvailable = 3,\r\n NotAvailable = 4,\r\n AvailableInAlternativeWarehouse = 5,\r\n PartiallyAvailableInAlternativeWarehouse = 6,\r\n AvailableInCentralWarehouse = 7,\r\n PartiallyAvailableInCentralWarehouse = 8,\r\n NotYetDefined = 9,\r\n NoLongerAvailable = 10,\r\n}\r\n\r\nexport type Warehouse = {\r\n id: string\r\n name: string\r\n description: string\r\n quantities: Array\r\n}\r\n\r\nexport type Icon = {\r\n topmotiveId: string\r\n description: string\r\n url: string\r\n linkUrl: string\r\n useIconFromUrl: boolean\r\n}\r\n","import { ClientType, Memo, Paged } from \"./shared\"\r\n\r\nexport type FindVehiclesRequest = Paged & {\r\n query?: string\r\n customerReferenceId?: string\r\n orderBy?: string\r\n orderByDescending?: boolean\r\n}\r\n\r\nexport type FindVehiclesResponse = Paged & {\r\n vehicles: Array\r\n}\r\n\r\nexport type SaveVehicleRequest = {\r\n vehicle: Vehicle\r\n}\r\n\r\nexport type SaveVehicleResponse = {\r\n referenceId: string\r\n}\r\n\r\nexport type ShowVehicleRequest = {\r\n referenceId: string\r\n}\r\n\r\nexport type ShowVehicleResponse = {\r\n vehicle?: Vehicle\r\n}\r\n\r\nexport type Vehicle = {\r\n referenceId: string\r\n customerReferenceId?: string\r\n\r\n vehicleType: VehicleType\r\n manufacturer: string\r\n model: string\r\n type: string\r\n\r\n registrationInformation?: Registration\r\n vin: string\r\n engineCode: string\r\n mileage?: number\r\n mileageType: number\r\n\r\n nextGeneralInspection?: Date\r\n nextServiceDate?: Date\r\n lastWorkshopAppointment?: Date\r\n\r\n memos: Array\r\n\r\n creationDate: Date\r\n modifiedDate?: Date\r\n\r\n countryCode?: string\r\n}\r\n\r\nexport type VehicleType = {\r\n id: number\r\n type: Type\r\n clientId: ClientType\r\n description: string\r\n}\r\n\r\nexport enum Type {\r\n Undefined = 0,\r\n PassengerCar = 1,\r\n CommercialVehicle = 2,\r\n Engine = 4,\r\n Motorcycle = 8,\r\n Axle = 16,\r\n Universal = 32,\r\n DriversCab = 64,\r\n GearBox = 128,\r\n}\r\n\r\nexport type Registration = {\r\n plateId?: string\r\n countryCode: string\r\n registrationNo: string\r\n registrationDate?: Date\r\n}\r\n","/**\r\n * @memberof Models\r\n * Also known as BinLkz, Landeskennzeichen-Binaer\r\n */\r\nexport enum CountryFilter {\r\n B = 1 << 0,\r\n BIH = 1 << 1,\r\n BG = 1 << 2,\r\n DK = 1 << 3,\r\n D = 1 << 4,\r\n EW = 1 << 5,\r\n SF = 1 << 6,\r\n F = 1 << 7,\r\n GR = 1 << 8,\r\n GB = 1 << 9,\r\n IRL = 1 << 10,\r\n I = 1 << 11,\r\n IS = 1 << 12,\r\n HR = 1 << 13,\r\n TJ = 1 << 14,\r\n CY = 1 << 15,\r\n NL = 1 << 16,\r\n N = 1 << 17,\r\n A = 1 << 18,\r\n PL = 1 << 19,\r\n P = 1 << 20,\r\n RO = 1 << 21,\r\n RUS = 1 << 22,\r\n S = 1 << 23,\r\n CH = 1 << 24,\r\n SLO = 1 << 25,\r\n SK = 1 << 26,\r\n E = 1 << 27,\r\n CZ = 1 << 28,\r\n TR = 1 << 29,\r\n UA = 1 << 30,\r\n H = 1 << 31,\r\n AUS = 1 << 32,\r\n BR = 1 << 33,\r\n BY = 1 << 34,\r\n CDN = 1 << 35,\r\n CO = 1 << 36,\r\n LT = 1 << 37,\r\n J = 1 << 38,\r\n M = 1 << 39,\r\n MEX = 1 << 40,\r\n MNE = 1 << 41,\r\n NZ = 1 << 42,\r\n RA = 1 << 43,\r\n RCH = 1 << 44,\r\n ROK = 1 << 45,\r\n ROU = 1 << 46,\r\n SRB = 1 << 47,\r\n LV = 1 << 48,\r\n USA = 1 << 49,\r\n ZA = 1 << 50,\r\n}\r\n\r\n/**\r\n * @memberof Models\r\n * AvailabilityStatus\r\n */\r\nexport enum AvailabilityStatus {\r\n Undefined = 0, // Undefiniert\r\n Unknown = 1, // Unbekannt\r\n Available = 2, // Verfügbar\r\n PartiallyAvailable = 3, // Teilverfügbar\r\n NotAvailable = 4, // Nicht verfügbar\r\n AvailableInAlternativeWarehouse = 5, // Verfügbar im Alternativlager\r\n PartiallyAvailableInAlternativeWarehouse = 6, // Teilverfügbar im Alternativlager\r\n AvailableInCentralWarehouse = 7, // Verfügbar im Stammlager\r\n PartiallyAvailableInCentralWarehouse = 8, // Teilverfügbar im Stammlager\r\n NotYetDefined = 9, // Noch nicht definiert\r\n NoLongerAvailable = 10, // Nicht mehr lieferbar\r\n NightExpress = 11, // Lieferung über Nachtexpress möglich\r\n NotYetRequested = 12, // Gibt an, dass der Artikel nicht beim ERP System angefragt wurde. In diesem Fall soll kein ERP Icon angezeigt werden.\r\n ManufacturerAvailable = 13, // Teccom verfügbar\r\n ManufacturerUnavailable = 14, // Teccom nicht verfügbar\r\n ManufacturerNotYetRequested = 15, // Teccom nocht nicht angefragt\r\n NotShown = 16, // Verfügbarkeit ausblenden\r\n}\r\n\r\nexport enum DataPool {\r\n Topmotive = 0,\r\n TecDoc = 1,\r\n}\r\n\r\nexport enum OrderStatus {\r\n NotOrderable = 0,\r\n ExcludedFromOrder = 1,\r\n IncludedInOrder = 2,\r\n Ordered = 3,\r\n}\r\n\r\nexport enum PriceType {\r\n None = 0, // Undefiniert\r\n RecommendedRetail = 1, // Unverbindliche Preisempfehlung (UVP) - RecommendedSales\r\n UsedPart = 2, // Altteilpreis\r\n Deposit = 3, // Pfand - Pledge\r\n Purchase = 4, // Einkaufspreis\r\n Retail = 5, // Verkaufspreis - Sales\r\n Net = 6, // Netto\r\n Gross = 7, // Brutto\r\n ProcurementCosts = 8, // Beschaffungskosten\r\n Garage = 9, // Werkstattpreis\r\n CalculatedWithoutVat = 10, // Kalkuliert (ohne Mwst.)\r\n CalculatedWithVat = 11, // Kalkuliert (mit Mwst.)\r\n Strikethrough = 12, // Streichpreis - CrossedOut\r\n GraduatedPurchase = 13, // Staffelpreis - ScaledPurchase\r\n OriginalEquipmnetPrice = 14, // Stellt den Ersatzteilpreis des Originalausrüstungshersteller dar\r\n BasicPrice = 15, // BasisPreis\r\n Environmental = 16, // Umweltpreis\r\n Packaging = 17, // Verpackungskosten\r\n Replacement = 18, // Austauschpreis\r\n TeccomEK = 19, // Hersteller-EK (Preis für den Großhändler)\r\n ValidationPurchaseMinPrice = 20, // 20 - Mindestpreis für die direkte Preisangabe eines Users (Telesales)\r\n}\r\n\r\nexport enum CostsType {\r\n Unknown = 0,\r\n DefaultDispatch = 1, // Versandkosten\r\n Express = 2, // Expressaufschlag\r\n Enviromental = 3, // Umwelt-Pauschale/Abgabe\r\n Packaging = 4, // Vepackungskosten\r\n Pledge = 5, // Pfand\r\n Procurement = 6, // Beschaffungskosten\r\n OldPartDiscount = 7, // Altteilpfand\r\n}\r\n\r\nexport enum RepairTimeProvider {\r\n None = 0,\r\n AwDocCar = 1,\r\n AwDocTruck = 2,\r\n Autodata = 3,\r\n TecRmiCar = 4,\r\n HaynesProCar = 5,\r\n Eurotax = 6,\r\n Dat = 7,\r\n Audatex = 8,\r\n TecRmiTruck = 9,\r\n HaynesProTruck = 10,\r\n Topmotive = 11,\r\n ATU = 12,\r\n MobilityMarketToolRental = 13,\r\n}\r\n\r\nexport enum WorkCategory {\r\n NotCategorized = 0,\r\n WorkshopWork = 1, // WS - Werkstattarbeiten\r\n BodyWork = 2, // KA - Karosseriearbeiten,\r\n AccessoryWork = 3, // ZB - Zubehörarbeiten\r\n PaintWork = 4, // LA - Lackierarbeien\r\n ElectricalWork = 5, // EL - Elektrikarbeiten\r\n ElectronicWork = 6, // EK - Elektronikarbeiten\r\n SaddlerWork = 7, // SA - Sattlerarbeiten (Ere)\r\n SmartRepair = 8, // SR - SmartRepair (Ere)\r\n Diagnose = 9, // DW - Diagnose (Fast DTC)\r\n}\r\n\r\nexport enum VehicleType {\r\n Undefined = 0, // An undefined type results in a validation error!\r\n PassengerCar = 1, // PKW\r\n CommercialVehicle = 2, // NKW\r\n Engine = 4, // Motor\r\n Motorcycle = 8, // Motorrad\r\n Axle = 16, // Achse\r\n Universal = 32, // Universal\r\n DriversCab = 64, // Fahrerhaus\r\n GearBox = 128, // Getriebe\r\n All = 256, // All Vehicles Types, except Light Commercial Vehicles.\r\n LightCommercialVehicle = 512, // LCV\r\n}\r\n\r\n// In the service is called EFittingSide\r\nexport enum FittingPosition {\r\n None = 0,\r\n FrontAxle = 1,\r\n RearAxle = 2,\r\n Front = 4,\r\n Rear = 8,\r\n Left = 16,\r\n Right = 32,\r\n Top = 64,\r\n Bottom = 128,\r\n Inside = 256,\r\n Outside = 512,\r\n WheelSided = 1024,\r\n GearboxSided = 2048,\r\n}\r\n\r\nexport enum MileType {\r\n Undefined = 0,\r\n Kilometer = 1,\r\n Mile = 2,\r\n}\r\n\r\nexport enum ArticleReferenceType {\r\n None = 0,\r\n UtilityNo = 1,\r\n ComparisonNo = 2,\r\n ReferenceNo = 3,\r\n AlternativeArticleNo = 4,\r\n EuropeanArticleNo = 5,\r\n AlternativeReferenceNo = 6,\r\n ReferenceSearch = 7,\r\n AdditionalArticleNo = 8,\r\n ReplacementArticleNo = 9,\r\n OeReferenceNo = 10,\r\n Asin = 11,\r\n AdditionalTradeReferenceNo = 12,\r\n Sku = 13,\r\n Eurocode = 14,\r\n ReplacedByArticleNo = 999,\r\n}\r\n\r\nexport enum ArticleInfoType {\r\n Undefined = 0,\r\n TecdocArticle = 1,\r\n OeArticle = 2,\r\n CustomArticle = 3,\r\n WholesalerArticle = 4,\r\n ExternalArticle = 5,\r\n}\r\n\r\nexport enum WorkType {\r\n Undefined = 0,\r\n MainWork = 1,\r\n CustomWork = 2,\r\n CustomMainWork = 3,\r\n MaintenanceWork = 4,\r\n}\r\n\r\nexport enum MemoType {\r\n Undefined, // 0 - Undefiniert\r\n Note, // 1 – Hinweis\r\n Mark, // 2 – Kennzeichnung\r\n Hyperlink, // 3 – Hyperlink\r\n Tooltip, // 4 – Tooltip\r\n AdditionalDescription, // 5 – Zusätzliche Beschreibung\r\n RecommendedArticle, // 6 – Artikelempfehlung\r\n Assortment, // 7 - Sortiment\r\n ManufactureWarehouse, // 8 -\r\n ArticleListInformation, // 9 - To be diplayed on the article list\r\n HeaderInformation, // 10 - Kopfinformationen für die Artikeldetailseite / Sonderbeschaffung\r\n}\r\n\r\nexport enum IconSource {\r\n Default, // 0 - Default\r\n Url, // 1 – Url\r\n TopmotiveId, // 2 – Kennzeichnung\r\n AldocId, // 3 – Hyperlink\r\n}\r\n\r\nexport enum LinkedItemsRole {\r\n Undefined, // 0 - Undefiniert\r\n LinkedItems, // 1 – Verbundartikel\r\n Alternative, // 2 – Alternativartikel\r\n Replacement, // 3 – Ersatzartikel\r\n Accessory, // 4 – Zubehörartikel\r\n Suggestion, // 5 – Vorschlagsartikel\r\n Obligated, // 6 – Pflichtartikel\r\n ItemsCollection, // 7 – ItemsCollection: Diese Produkte werden automatisch in den Warenkorb eingefügt, wenn der angefragte Artikel eingefügt wird.\r\n PawnItems, // 8 - Pfandartikel\r\n}\r\n\r\nexport enum TitleType {\r\n Undefined = 0,\r\n Mister = 1,\r\n Miss = 2,\r\n Company = 3,\r\n}\r\n\r\nexport enum SystemType {\r\n Redesign = 12,\r\n Next = 23,\r\n}\r\n\r\nexport enum VoucherType {\r\n Undefined = 0,\r\n CostEstimation = 1,\r\n Order = 2,\r\n Return = 3,\r\n}\r\n\r\nexport enum WorkTaskStatus {\r\n Undefined = 0,\r\n Released = 1,\r\n Completed = 2,\r\n Canceled = 3,\r\n OnHold = 4,\r\n}\r\n\r\n/**\r\n * @memberof Models\r\n * RegistrationNoType\r\n */\r\nexport enum RegistrationNoType {\r\n /* MDM 0 */\r\n None = -1,\r\n\r\n /* MDM 0 */\r\n Kba = 0,\r\n\r\n KennzeichenNorwegenNbk = 1,\r\n KennzeichenNiederlande = 2,\r\n\r\n /* Typ_mine_suche F */\r\n NationalcodeFrankreich = 3,\r\n\r\n NationalcodeAustria = 4,\r\n NkwId = 5,\r\n KennzeichenFinnlandHlGroup = 6,\r\n KennzeichenFinnlandAd = 7,\r\n CarwebVrmWsvc = 8,\r\n CarwebVrmVinWsvc = 9,\r\n TypenscheinSchweizEsa = 10,\r\n VinSlowenien = 11,\r\n KennzeichenSchwedenKgk = 12,\r\n TypenscheinSchweizHoststettler = 13,\r\n KennzeichenFinnlandParkanon = 14,\r\n HpiWsvc = 15,\r\n AdsWsvc = 16,\r\n VrmVinGbEdpWsvc = 17,\r\n VrmEireWsvc = 18,\r\n VrmEireEdpWsvc = 19,\r\n KennzeichenIslandOderVrmIsland = 20,\r\n NationalcodeFrankreichHerthBuss = 21,\r\n CartellIrlandKennzeichenWsvc = 22,\r\n\r\n LicensePlateSwitzerlandAutoIDat_Eurotax = 23,\r\n\r\n /* früher Vin_Benelux_Aldoc */\r\n TopmotiveVin = 24,\r\n\r\n GerausivWsvc = 25,\r\n TypenscheinSchweizEurotax = 26,\r\n KennzeichenPortugal = 27,\r\n KennzeichenFinnlandSpareParts = 28,\r\n VinNorwegen = 29,\r\n AisWsvc = 30,\r\n TecAllianceAutoGeekWsvc = 31,\r\n Bosch = 32,\r\n KbaMotorrad = 33,\r\n KoivunenCatDataWsvc = 34,\r\n KennzeichenSchwedenBanner = 35,\r\n\r\n // /* Nur xdevdb, keine Daten */\r\n // VIN_Benelux = 36,\r\n\r\n SchweizTypenscheinAtu = 37,\r\n ItalienEdidomusWsvc = 38,\r\n VinSlowakei = 39,\r\n TypenscheinDehrendinger = 40,\r\n KennzeichenSchwedenSchwenker = 41,\r\n KennzeichenNiederlandeSchwenker = 42,\r\n\r\n /* ?? */\r\n VehicleHostory = 43,\r\n\r\n /* Kennzeichen Frankreich */\r\n // make sure 44 is not used in the future to prevent issues\r\n // VrmAAA = 44,\r\n\r\n /* Kennzeichen GB -HCV */\r\n VrmKennzeichenGBHCV = 45,\r\n\r\n /* Kennzeichen Spanien - DGI */\r\n VrmKennzeichenSpanienDGT = 46,\r\n\r\n VrmVINSpanienInforauto = 47,\r\n VrmKennzeichenSchwedenAIS = 48,\r\n\r\n /* Kennzeichen Estland */\r\n KennzeichenEstland = 49,\r\n\r\n /* Kennzeichen GB - DDS */\r\n VrmKennzeichenGBDDS = 52,\r\n\r\n KennzeichenNiederlandeCarat = 53,\r\n TypenscheinSchweizCarat = 54,\r\n NationalCodeFrankreichCarat = 55,\r\n VrmKennzeichenNorwegenAIS = 56,\r\n LicencePlateDK = 57,\r\n VrmKennzeichenIrlandDDS = 58,\r\n LicensePlateGBHaynesPro = 59,\r\n VrmKennzeichenFinnlandAISVeCloud = 60,\r\n VrmVINAutoDAP = 61,\r\n VINSouth_Africa_Autoboys = 62,\r\n\r\n LicensePlateSwitzerlandAutoIDat_Hostettler = 63,\r\n LicensePlateSwitzerlandAutoIDat_ESA = 64,\r\n\r\n LicensePlateEstoniaAlm = 65,\r\n\r\n LicensePlateDriveRight = 66,\r\n LicensePlateSwedenDriveRight = 67,\r\n LicensePlateNorwayDriveRight = 68,\r\n LicensePlateFinlandDriveRight = 69,\r\n LicensePlateDenmarkDriveRight = 70,\r\n LicensePlateEireDriveRight = 71,\r\n LicensePlateNewZealandDriveRight = 72,\r\n LicensePlateNetherlandsDriveRight = 73,\r\n LicensePlateItalyDriveRight = 74,\r\n LicensePlatePortugalDriveRight = 75,\r\n LicensePlateSpainDriveRight = 76,\r\n LicensePlateBrazilDriveRight = 77,\r\n LicensePlateSwitzerlandDriveRight = 78,\r\n LicensePlateUSDriveRight = 79,\r\n LicensePlateFranceDriveRight = 80,\r\n LicensePlateUKDriveRight = 81,\r\n\r\n VrmBilling = 82,\r\n VinPortugal = 83,\r\n\r\n LicensePlateItalyRhiag = 84,\r\n\r\n // Stammdaten (CRM)\r\n VehicleBase = 85,\r\n\r\n VinOeNrAutoDAP = 86,\r\n VINFranceInforauto = 87,\r\n VLPortugalCreateBusiness = 88,\r\n\r\n LicensePlateFranceTruckInfoAuto = 96,\r\n\r\n VrmLicensePlateNetherlandRDC = 97, // In: LicensePlate, out: Vin\r\n VrmLicensePlateHaynesProIt = 99,\r\n\r\n TypeApprovalNumberSwitzerlandRhiag = 100,\r\n LicensePlateCyprusKapodistrias = 101,\r\n\r\n TopmotiveTypeId = 102, // TMF-Id Suche\r\n\r\n LicensePlateVRMAutoDAP = 103,\r\n VrmLicensePlateNetherlandsRDW = 104,\r\n LicensePlateDkVrm_WMKAT = 107,\r\n LicensePlateIcelandAutomatic = 108, // automatic eh license plate\r\n LicensePlateSwitzerlandECOC_AutoIDat_Esa = 109,\r\n LicensePlateSwitzerlandECOC_AutoIDat_Hostettler = 110,\r\n LicensePlateSwitzerlandECOC_AutoIDat_Rhiag = 111,\r\n VinFrance_AAA = 113,\r\n VLSpain_CreateBusiness = 114,\r\n LicensePlateSwitzerland_RhiagCH = 116,\r\n LicensePlateSwitzerlandECOC_AutoIDat_Eurotax = 117,\r\n\r\n // /* Modulnummer MDM */\r\n // TecrmiVin = 208,\r\n\r\n /* nur Kurzkennzeichen MDM */\r\n KeywordSearch = 9992,\r\n\r\n /* nur Kurzkennzeichen MDM */\r\n RückwFahrzeugVkn = 9993,\r\n\r\n /* nur Kurzkennzeichen MDM */\r\n DatVin = 9994,\r\n\r\n /* nur Kurzkennzeichen MDM */\r\n KTypNr = 9995,\r\n\r\n /* nur Kurzkennzeichen MDM */\r\n Motorcode = 9996,\r\n\r\n /* nur Kurzkennzeichen MDM */\r\n Fahrzeugbaum = 9997,\r\n}\r\n\r\nexport enum SearchFilters {\r\n SupplierArticleNo = 1, /// Also known as EArtNr, Einspeiserartikelnummer\r\n OeReference = 2, /// Also known as OE Referenz\r\n UtilityNo = 4, /// Also known as Gebrauchsnummer\r\n ReplacementNo = 8, /// Also known as Ersatznummer\r\n Manufacturer = 15, /// Also known as Hersteller // combination of all above\r\n EuropeanArticleNumber = 16, /// Also known as EAN, EANNr, Europäische Artikelnummer\r\n TradeReference_KART = 32,\r\n TradeReference_KARTREF = 64,\r\n TradeReference = 96, /// Also known as Handelsreferenz // combination of the two above\r\n SupplierArticleNoAndTradeReference = 97,\r\n OeAndTradeReference = 98, // combination of OeReference + TradeReference\r\n All = 2047,\r\n}\r\n\r\nexport enum CisVoucherType {\r\n Undefined = 0,\r\n Offers = 1,\r\n Order = 2,\r\n DeliveryNote = 3,\r\n Estimation = 4,\r\n Returns = 5,\r\n CreditItems = 6,\r\n Backorder = 7,\r\n OpenOrders = 8,\r\n ClosedOrders = 9,\r\n ArticleSearchInOrders = 10,\r\n Complaints = 11,\r\n OldParts = 12,\r\n PickupInvoices = 13,\r\n Invoices = 14,\r\n AllOrders = 15,\r\n}\r\n\r\nexport enum ReturnStatus {\r\n Undefined = 0,\r\n ExcludedFromReturn = 1,\r\n IncludedInReturn = 2,\r\n Returned = 3,\r\n}\r\n\r\nexport enum VatRateType {\r\n None = 0, // Undefiend\r\n Normal = 1, // Normal rate -> e.g. 19%\r\n Reduced = 2, // Reduced rate -> e.g. 7%\r\n Replacement = 3, // AT-Steuer\r\n WithoutRate = 4, // Durchlaufposten (bereits versteuert) -> 0%\r\n}\r\n\r\nexport enum DispatchCostsType {\r\n Unknown = 0,\r\n Default = 1,\r\n Express = 2,\r\n}\r\n\r\n// Could not be named DispatchType, since there is already a Type named like that already\r\nexport enum WarehouseDispatchType {\r\n Undefiend = 0,\r\n Delivery = 1,\r\n Collection = 2,\r\n NightExpressDelivery = 3,\r\n DayExpressDelivery = 4,\r\n}\r\n\r\nexport enum MessageType {\r\n Unknown = 0,\r\n Information = 1,\r\n Warning = 2,\r\n Error = 3,\r\n TechnicalError = 4,\r\n}\r\n\r\nexport enum CatalogContext {\r\n ArticleList = 0,\r\n ArticleDetails = 1,\r\n ArticleComparison = 2,\r\n Basket = 3,\r\n Order = 4,\r\n OrderOptionsPage = 5,\r\n CostEstimation = 6, // Also FastCalculation\r\n Dashboard = 7,\r\n StartPage = 8,\r\n BasketExport = 23,\r\n BasketSummary = 9999, // Temporary till NEXT-16156 is finished (Basket Refactoring)\r\n}\r\n\r\nexport enum MVCPlatformType {\r\n Redesign = 0,\r\n ExternalWeb = 2,\r\n ExternalWpf = 3,\r\n Next = 4,\r\n}\r\n\r\nexport enum VrmLookupTextIds {\r\n UnknownError = 1261,\r\n UserNotRegistered = 1354,\r\n NoResultForVin = 1262,\r\n NoResult = 1405,\r\n ManufacturerNotSupported = 1263,\r\n ContingentLimitReached = 1524,\r\n ResultSuccess = 12448,\r\n}\r\n\r\nexport enum AjaxCachingMode {\r\n NoCache = 0,\r\n Request = 1,\r\n Response = 2,\r\n}\r\n\r\nexport enum DATAvailableCountries {\r\n Spain,\r\n CzechRepublic,\r\n Austria,\r\n Switzerland,\r\n Germany,\r\n Greece,\r\n GreatBritain,\r\n USA,\r\n France,\r\n Hungary,\r\n Italy,\r\n Poland,\r\n Romania,\r\n Russia,\r\n Slovakia,\r\n Turkey,\r\n}\r\n\r\nexport enum DisplayBehaviour {\r\n None = 1,\r\n ClassicWidget = 1,\r\n ExtendedWidget = 2,\r\n SelectionWidget = 3,\r\n StartPage = 514,\r\n Dashboard = 515,\r\n StartPageAndDashboard = 516,\r\n Basket = 519,\r\n Header = 521,\r\n Module = 523,\r\n DashboardAndHeader = 525,\r\n}\r\n\r\nexport enum CalculatedCostType {\r\n Unknown = 0,\r\n Vin = 1,\r\n DatPackage = 2,\r\n DatGlas = 3,\r\n DatEre = 4,\r\n DatFiOnline = 5,\r\n}\r\n\r\nexport enum CausedCostsType {\r\n All = 0,\r\n NoCosts = 1,\r\n OnlyCosts = 2,\r\n}\r\n\r\n// add every new dialog key here\r\nexport enum ConfirmationDialogKeys {\r\n DeleteBasketItem = \"deleteBasketItem\",\r\n DeleteAllBasketItems = \"deleteAllBasketItems\",\r\n LeaveCentralOrder = \"leaveCentralOrder\",\r\n DeleteCompilations = \"deleteCompilations\",\r\n}\r\n\r\nexport enum SelectedPriceTypeMode {\r\n Retail = 0,\r\n Purchase = 1,\r\n}\r\n\r\nexport enum SelectedPriceVatMode {\r\n Net = 0,\r\n Gross = 1,\r\n}\r\n\r\nexport enum SelectedCustomerGroupMode {\r\n B2C = 0,\r\n B2B = 1,\r\n}\r\n","import { IErpRequest, OrderOptions, SendOrderOptions } from \".\"\r\nimport {\r\n PriceType,\r\n AvailabilityStatus,\r\n Memo,\r\n ItemTour,\r\n DispatchCostsType,\r\n WarehouseDispatchType,\r\n CatalogContext,\r\n LinkedItemsRole,\r\n CostsType,\r\n} from \"..\"\r\nimport { OeArticleOrigin } from \"../article/oe\"\r\n\r\nexport type ErpInformationResponse = {\r\n items?: ErpInformation[]\r\n hasErrors?: boolean\r\n errorText?: string\r\n showAlternatives?: boolean\r\n showGraduatedPrices?: boolean\r\n showIsReplacementPart?: boolean\r\n showBonusInformation?: boolean\r\n preOrderActions?: PreOrderActions\r\n distributorId?: number\r\n}\r\n\r\nexport type GetErpInfosRequest = {\r\n items: ErpInformationRequestItem[]\r\n distributorId?: number\r\n telesalesCustomerNo?: string\r\n foundBySearchTerm?: string\r\n}\r\n\r\nexport type ErpInformationRequest = IErpRequest & {\r\n items: Array\r\n catalogContext?: CatalogContext\r\n orderOptions?: SendOrderOptions\r\n warehouseOrderOptions?: Array\r\n foundBySearchTerm?: string\r\n maxItemsPerRequest?: number\r\n}\r\n\r\nexport type ErpInformationRequestItem = {\r\n itemId: string\r\n wholesalerArticleNumber?: string\r\n dataSupplierArticleNumber?: string\r\n dataSupplierId?: number\r\n dataSupplierName?: string\r\n productGroupId?: number\r\n productGroupName?: string\r\n articleDescription?: string\r\n quantityValue: number\r\n warehouseId?: string\r\n vehicleId?: string\r\n selectedShipmentModeId?: string // used only in the detail page. getDetailedErpInfo\r\n foundBySearchTerm?: string // TODO Basket V2: Remove?\r\n linkedItems?: Array\r\n warehouses?: Array\r\n oeArticleOrigin?: OeArticleOrigin\r\n externalBasketItemId?: string\r\n}\r\n\r\nexport type ErpInformation = {\r\n articles?: Array\r\n itemId: string\r\n wholesalerArticleNumber: string\r\n dataSupplierArticleNumber: string\r\n dataSupplierId: number\r\n prices?: Array\r\n availability: Availability\r\n quantity?: Quantity\r\n additionalInformation?: string\r\n additionalInformationExtended?: string\r\n hasAlternatives: boolean\r\n isNonReturnable: boolean\r\n hasObligatedArticles: boolean\r\n hasLinkedArticles: boolean\r\n hasAccessoryArticles: boolean\r\n hasReplacementArticles: boolean\r\n hasPawnArticles: boolean\r\n hasGraduatedPurchasePrice: boolean\r\n hasBonusInformation: boolean\r\n hasProcurementCosts: boolean\r\n specialIcons: Array\r\n isTeccomRequestAvailable: boolean\r\n isReplacementPart: boolean\r\n tour?: ItemTour\r\n graduatedPrices?: Array\r\n isOrderable?: boolean\r\n itemOrderableInformation?: string\r\n isPromotional?: boolean\r\n isSellOffArticle?: boolean\r\n promoText?: string\r\n warehouses?: Array\r\n orderOptions?: OrderOptions\r\n showSafetyDataSheets?: boolean\r\n itemsRole?: LinkedItemsRole\r\n useSpecialProcurement?: boolean\r\n memos?: Array\r\n specialProcurementErpInformation?: SpecialProcurementErpInformation // Used only in FE https://jira.dvse.de/browse/NEXT-21590\r\n sortNumber?: number\r\n costs?: Array\r\n}\r\n\r\nexport type Cost = {\r\n value: number\r\n currencySymbol: string\r\n currencyCode: string\r\n type: CostsType\r\n shouldBeCalculated: boolean\r\n}\r\n\r\nexport type TeccomErpInformation = {\r\n itemId: string\r\n prices?: Array\r\n specialProcurementErpInformation?: SpecialProcurementErpInformation\r\n additionalInformation?: string\r\n memos?: Array\r\n quantity?: Quantity\r\n}\r\n\r\nexport type ErpPriceDictionary = {\r\n [key: string]: ErpPrice | undefined\r\n}\r\n\r\nexport type ErpPrice = {\r\n type: PriceType\r\n description: string\r\n shortDescription: string\r\n value: number\r\n valueTaxIncluded?: number\r\n rebateValue?: number\r\n rebate?: number\r\n rebatePercent?: number\r\n currencySymbol: string\r\n currencyCode_Iso_4217: string\r\n memos?: Array\r\n priceUnit?: number\r\n vat: number\r\n taxIncluded?: boolean\r\n}\r\n\r\nexport type Availability = {\r\n type?: AvailabilityStatus\r\n shortDescription?: string\r\n description?: string\r\n icon?: ErpIcon\r\n iconColor?: string\r\n isFakeAvailability?: boolean\r\n additionalIcons?: ErpIcon[]\r\n}\r\n\r\nexport type Quantity = {\r\n description?: string\r\n value?: number\r\n quantityUnit?: string\r\n packagingUnit?: string\r\n minQuantity?: number\r\n maxQuantity?: number\r\n expectedDeliveryTime?: Date\r\n expectedDeliveryTimeString?: string\r\n availability?: Availability\r\n // lotSizes: { [key: string]: string }\r\n division?: number\r\n quantityPackingUnit?: number\r\n tour?: ItemTour\r\n confirmedValue?: number\r\n requestedValue: number\r\n}\r\n\r\nexport type Warehouse = {\r\n id?: string\r\n name?: string\r\n shortDescription: string\r\n description: string\r\n showWarehouseInfo?: boolean\r\n memos?: Memo[]\r\n quantities?: Quantity[]\r\n isDefault: boolean\r\n isManufacturerWarehouse?: boolean\r\n tour?: ItemTour\r\n nightExpressDelivery?: DispatchType[]\r\n dayExpressDelivery?: DispatchType[]\r\n collection?: DispatchType[]\r\n standardDelivery?: DispatchType[]\r\n /** Is an object when passed by the basket and cost-estimation bundles */\r\n prices?: ErpPrice[] | { [key: string]: ErpPrice }\r\n}\r\n\r\nexport type DispatchType = {\r\n costs?: DispatchCosts\r\n description?: string\r\n dispatchConditions?: DispatchConditions\r\n id?: string\r\n isSelected?: boolean\r\n tours?: Array\r\n type?: WarehouseDispatchType\r\n uniqueId?: string\r\n}\r\n\r\nexport type DispatchConditions = {\r\n carriageLimit?: number\r\n basicWeightKg?: number\r\n pricePerAdditionalKg?: number\r\n shouldWeightBeChecked: boolean\r\n}\r\n\r\nexport type DispatchCosts = {\r\n value: number\r\n currencySymbol: string\r\n currencyCode: string\r\n type: DispatchCostsType\r\n shouldBeCalculated: boolean\r\n}\r\n\r\n/** Used to send data from erp to article list and article details */\r\nexport type ErpPartsModifiers = {\r\n minQuantity?: number\r\n maxQuantity?: number\r\n division?: number\r\n availability?: AvailabilityStatus\r\n}\r\n\r\n/** Used to send data from erp to article details navigation */\r\nexport type ArticleDetailsErpTabs = {\r\n alternativeArticles: boolean\r\n replacementArticles: boolean\r\n safetyDataSheets: boolean\r\n pawnArticles: boolean\r\n useSpecialProcurement: boolean\r\n}\r\n\r\nexport type AvailabilityLog = {\r\n status: AvailabilityStatus\r\n description?: string\r\n}\r\n\r\nexport type GetCompleteDeliveryTourRequest = {\r\n tours: Array\r\n}\r\n\r\nexport type GetCompleteDeliveryTourResponse = {\r\n completeDeliveryTour: ItemTour\r\n}\r\n\r\nexport type GetBonusInformationRequest = IErpRequest & {\r\n items: Array\r\n catalogContext?: CatalogContext\r\n}\r\n\r\nexport type GetBonusInformationResponse = {\r\n hasErrors?: boolean\r\n items: Array\r\n bonusTotal: number\r\n errorText?: string\r\n}\r\n\r\nexport type BonusInformationResponseItem = {\r\n itemId: string\r\n bonusPoints: number\r\n}\r\n\r\nexport enum ErpSystemConfigMode {\r\n Default,\r\n Partnersystems,\r\n}\r\n\r\nexport enum ETransferMode {\r\n Default = 0,\r\n BasketTransferBoschOs3 = 1,\r\n}\r\n\r\nexport type ErpSystemConfig = {\r\n id: number\r\n description: string\r\n displayMode: string\r\n transferMode?: ETransferMode\r\n useForWorkTaskOrder: boolean\r\n useForWorkTaskSendCostEstimation: boolean\r\n useForGetErpInformation?: boolean\r\n isDefaultGetErpInfoSystem: boolean\r\n tradeReferenceId?: number\r\n username: string\r\n erpRequestArticleCount?: number\r\n hasOeArticleSupport: boolean\r\n sortNumber?: number\r\n}\r\n\r\nexport type GetErpConfigResponse = {\r\n mode: ErpSystemConfigMode\r\n erpSystemConfigs?: Array\r\n useOrderByDistributor: boolean\r\n useSendCostEstimation: boolean\r\n styleCustomization?: string\r\n}\r\n\r\nexport type SpecialProcurementErpInformation = {\r\n supplierName: string\r\n supplierId: number\r\n message: string\r\n availability: Availability\r\n orderOptions: OrderOptions\r\n tourOrderAcceptanceTimeLimit: Date\r\n expectedDelivery: Date\r\n requestedQuantity: number\r\n confirmedQuantity: number\r\n}\r\n\r\ntype PreOrderActions = {\r\n showProcurementCostsConfirmation?: boolean\r\n}\r\n\r\nexport type ErpIcon = {\r\n useIconFromUrl: boolean\r\n url: string\r\n topmotiveId?: string\r\n description?: string\r\n linkUrl?: string\r\n displayType?: ErpIconDisplayType\r\n type?: ErpIconType\r\n}\r\n\r\nexport type ArticleErpIcon = {\r\n useIconFromUrl: boolean\r\n url: string\r\n topmotiveId?: string\r\n description?: string\r\n linkUrl?: string\r\n displayType?: ErpIconDisplayType\r\n displayLocations?: ErpIconDisplayLocation[]\r\n type: ErpIconType\r\n actionType: ErpIconActionType\r\n}\r\n\r\nexport enum ErpIconDisplayType {\r\n Default = 0,\r\n Small = 1,\r\n}\r\n\r\nexport enum ErpIconType {\r\n NotDefined = 0,\r\n SafetyDataSheets = 1,\r\n Documents = 2,\r\n ReplacementArticles = 3,\r\n ProcurementCosts = 4,\r\n Promotional = 5,\r\n NonRefundable = 6,\r\n SellOff = 7,\r\n ScaleAvailable = 8,\r\n AlternativeItemAvailable = 9,\r\n Pawn = 10,\r\n // The following are only being used internally\r\n Details = -1,\r\n Delete = -2,\r\n Print = -3,\r\n Watchlist = -4,\r\n Notes = -5,\r\n Repairtimes = -6,\r\n Feedback = -7,\r\n Accessories = -8,\r\n Partslist = -9,\r\n AdditionalInformations = -10,\r\n}\r\n\r\nexport enum ErpIconDisplayLocation {\r\n ErpContainer = 0,\r\n ArticleInformationContainer = 1,\r\n ArticleImageContainer = 2,\r\n}\r\n\r\nexport enum ErpIconActionType {\r\n /// \r\n /// Default if a customer don't know what to do and svc need to make the mapping for predefined ActionTypes.\r\n /// \r\n Unknown = 0,\r\n /// \r\n /// Deactivates the predefined action types and default configuration of the special icons in svc.\r\n /// \r\n Deactivate = 1,\r\n /// \r\n /// Open an url from LinkUrl in new window. Will be removed if LinkUrl is empty.\r\n /// \r\n OpenInWindow = 2,\r\n /// \r\n /// Open an url from LinkUrl in a new tab. Will be removed if LinkUrl is empty.\r\n /// \r\n OpenInTab = 3,\r\n /// \r\n /// Open a pdf-url from LinkUrl in a specific security sheet tab in the article detail page.\r\n /// Only works with a not empty LinkUrl and if SpecialIconType is SafetyDataSheets.\r\n /// It is not evaluated if SpecialIconType has a different value.\r\n /// \r\n SafetyDataSheetsDetailPage = 4,\r\n /// Open wholesaler information tab in article details page.\r\n WholesalerInformationDetailPage = 5,\r\n /// Open replacement Items tab in the article details page\r\n ReplacementItemsDetailPage = 6,\r\n /// Open alternative Items tab in the article details page\r\n AlternativeItemsDetailPage = 7,\r\n /// Open pawn Items tab in article details Page\r\n PawnItemsDetailPage = 8,\r\n /// Open trader info tab in details page\r\n ImagesAndDocumentsOnDetailPage = 9,\r\n}\r\n","import { DispatchCosts, DispatchConditions, IErpRequest } from \"..\"\r\nimport { Item, ItemTour, TitleType, WarehouseDispatchType } from \"../..\"\r\n\r\nexport * from \"./selection\"\r\nexport * from \"./warehouses\"\r\n\r\nexport type OrderOptionsInternalRequest = IErpRequest & {\r\n workTaskId: string\r\n warehouseId: string | undefined\r\n favoriteOrderOptions?: FavoriteOrderOptions\r\n}\r\n\r\nexport type ShowOptionsByWorktaskRequest = IErpRequest & {\r\n workTaskIds: string[]\r\n warehouseIds: string[]\r\n favoriteOrderOptions?: FavoriteOrderOptions\r\n}\r\n\r\nexport type ShowOptionsByWorkTaskResponse = {\r\n distributorId?: number\r\n optionsByWorkTasks?: OrderOptionsByWorkTask[]\r\n errorText?: string\r\n hasErrors?: boolean\r\n disableOrder?: boolean\r\n}\r\n\r\ntype OrderOptionsRespone = {\r\n distributorId?: number\r\n options: OrderOptions\r\n warehouseOptions: OrderOptions[]\r\n useOrderByWarehouse: boolean\r\n wholesalerOrderConfirmation?: boolean\r\n addWorkTaskInfoToOrderItemMemo?: boolean\r\n errorText?: string\r\n hasErrors?: boolean\r\n}\r\n\r\nexport type ShowDefaultOptionsRequest = IErpRequest\r\n\r\nexport type ShowDefaultOptionsResponse = OrderOptionsRespone\r\n\r\nexport type ShowGlobalOptionsRequest = IErpRequest & {\r\n favoriteOrderOptions?: FavoriteOrderOptions\r\n selectedShipmentModeId?: string\r\n}\r\n\r\nexport type ShowGlobalOptionsResponse = OrderOptionsRespone\r\n\r\nexport type OrderOptionsByWorkTask = {\r\n workTaskId: string\r\n generalOptions?: OrderOptions\r\n warehouseOptions?: OrderOptions[]\r\n}\r\n\r\nexport class OrderOptionsError {\r\n distributorId?: number\r\n\r\n errorText?: string\r\n\r\n hasErrors?: boolean\r\n\r\n disableOrder?: boolean\r\n}\r\n\r\n// TODO OrderOptions V2: The buffer logic, hooks, and types must be removed.\r\nexport type OrderOptionsBufferedResponse = OrderOptions | OrderOptionsError | \"reject\"\r\n\r\nexport type OrderOptions = {\r\n selectedOptionsItem: Item\r\n warehouseId?: string\r\n deliveryAddresses?: AddressSelection\r\n billingAddresses?: AddressSelection\r\n paymentOptions?: PaymentOptionSelection\r\n shipmentModes?: ShipmentModeSelection\r\n deliveryDistribution?: DeliveryDistributionSelection\r\n billingModes?: BillingModeSelection\r\n orderProcessingOptions?: OrderProcessingOptionSelection\r\n backorderOptions?: BackorderOptionSelection\r\n tours?: TourSelection\r\n deliveryDate?: Date\r\n deliveryDateUpdateOnChange: boolean\r\n customerOrderNumber: string\r\n orderComment?: string\r\n hasCustomerOrderNumber: boolean\r\n customerOrderNumberMaxLength?: number\r\n hasOrderComment: boolean\r\n orderCommentMaxLength?: number\r\n hasItemComment: boolean\r\n itemCommentMaxLength?: number\r\n hasDeliveryDateSelection?: boolean\r\n}\r\n\r\nexport type SendOrderOptions = {\r\n warehouseId?: string\r\n billingAddress?: AddressSelectionItem\r\n deliveryAddress?: AddressSelectionItem\r\n billingMode?: BillingMode\r\n paymentOption?: PaymentOption\r\n shipmentMode?: ShipmentMode\r\n deliveryDistributionMode?: DeliveryDistributionMode\r\n tour?: TourOrderOption\r\n orderProcessingOption?: OrderProcessingOption\r\n backorderOption?: BackorderOption\r\n deliveryDate?: Date\r\n customerOrderNumber?: string\r\n orderComment?: string\r\n hasCustomerOrderNumber?: boolean\r\n customerOrderNumberMaxLength?: number\r\n hasOrderComment?: boolean\r\n orderCommentMaxLength?: number\r\n hasItemComment?: boolean\r\n itemCommentMaxLength?: number\r\n wholesalerOrderConfirmation?: boolean\r\n orderConfirmationEmail?: string\r\n}\r\n\r\nexport type OptionSelection = {\r\n id?: string\r\n description?: string\r\n selectionType?: SelectionType\r\n updateOrderOptionsOnChange?: boolean\r\n updateErpInformationOnChange?: boolean\r\n updateOrderOnChange?: boolean\r\n updateOrderOptionsOnTourDateChange?: boolean\r\n isNotVisible?: boolean\r\n}\r\n\r\nexport type OptionSelectionItem = {\r\n id: string\r\n description: string\r\n isSelected: boolean\r\n}\r\n\r\nexport type AddressSelection = OptionSelection & {\r\n addresses: AddressSelectionItem[]\r\n}\r\n\r\nexport type AddressSelectionItem = OptionSelectionItem & {\r\n addressAddition?: string\r\n title?: string\r\n titleType?: TitleType\r\n firstName?: string\r\n lastName?: string\r\n street?: string\r\n city?: string\r\n zip?: string\r\n country?: string\r\n companyName?: string\r\n eMail?: string\r\n phone?: string\r\n isEditable: boolean\r\n isExpanded: boolean\r\n hasAdditionalCosts?: boolean\r\n}\r\n\r\nexport type PaymentOptionSelection = OptionSelection & {\r\n paymentOptions: PaymentOption[]\r\n}\r\n\r\ntype PaymentOption = OptionSelectionItem\r\n\r\nexport type ShipmentModeSelection = OptionSelection & {\r\n shipmentModes: ShipmentMode[]\r\n}\r\n\r\nexport type ShipmentMode = OptionSelectionItem & {\r\n costs?: DispatchCosts\r\n dispatchConditions?: DispatchConditions\r\n dispatchType?: WarehouseDispatchType\r\n tours?: TourSelection\r\n tour?: TourOrderOption // Supported in ErpInformationRequest TODO: check if it can be removed\r\n}\r\n\r\nexport type DeliveryDistributionSelection = OptionSelection & {\r\n deliveryDistributionModes: DeliveryDistributionMode[]\r\n}\r\n\r\ntype DeliveryDistributionMode = OptionSelectionItem\r\n\r\nexport type BillingModeSelection = OptionSelection & {\r\n billingModes: BillingMode[]\r\n}\r\n\r\ntype BillingMode = OptionSelectionItem\r\n\r\nexport enum SelectionType {\r\n singleSelection = 0,\r\n multiSelection = 1,\r\n}\r\n\r\nexport type TourSelection = OptionSelection & {\r\n showTourDatePicker?: boolean\r\n tourFilterDate?: Date\r\n tours: TourOrderOption[]\r\n}\r\n\r\nexport type TourOrderOption = OptionSelectionItem & Omit\r\n\r\nexport type OrderProcessingOptionSelection = OptionSelection & {\r\n orderProcessingOptions: OrderProcessingOption[]\r\n}\r\n\r\ntype OrderProcessingOption = OptionSelectionItem\r\n\r\nexport type BackorderOptionSelection = OptionSelection & {\r\n backorderOptions: BackorderOption[]\r\n}\r\n\r\ntype BackorderOption = OptionSelectionItem\r\n\r\nexport type FavoriteOrderOptions = {\r\n shipmentMode?: SelectedOption\r\n paymentMode?: SelectedOption\r\n}\r\n\r\nexport type SelectedOption = {\r\n id: string\r\n description?: string\r\n}\r\n\r\nexport type SelectOrderOptionsResponse = {\r\n selectedOptionsItem: Item\r\n}\r\n","import { CatalogContext } from \"../enumerations\"\r\n\r\nexport type ShowOrderStatusRequest = {\r\n distributorId?: number\r\n telesalesCustomerNo?: string\r\n catalogContext?: CatalogContext\r\n orderIdentifier: OrderIdentifier[]\r\n}\r\n\r\ntype OrderIdentifier = {\r\n catalogOrderId?: string\r\n wholesalerOrderId?: string\r\n customOrderId?: string\r\n}\r\n\r\nexport type ShowOrderStatusResponse = {\r\n hasErrors: false\r\n orderStatus: OrderStatus[]\r\n distributorId?: number\r\n}\r\n\r\ntype OrderStatus = {\r\n orderIdentifier: OrderIdentifier\r\n orderStatusMessage?: OrderStatusMessage\r\n}\r\n\r\nexport type OrderStatusMessage = {\r\n type: StatusMessageType\r\n text: string\r\n}\r\n\r\nexport enum StatusMessageType {\r\n Error = 0,\r\n Information = 1,\r\n OrderAccepted = 2,\r\n OrderDeclined = 3,\r\n}\r\n\r\nexport type ShowOrderStatusError = {\r\n hasErrors: true\r\n exception?: unknown\r\n errorText: string\r\n traceId: string\r\n}\r\n","export enum ECalcOrigin {\r\n RD = 1,\r\n Apps = 2,\r\n Next = 4,\r\n FastGap = 8,\r\n SvcConnect = 16,\r\n Workshop = 32,\r\n Searchtree = 64,\r\n Characteristics = 128,\r\n FastService = 256,\r\n FastCalcManager = 512,\r\n FastCheck = 1024,\r\n FastDTC = 2048,\r\n Drivemotive = 4100,\r\n}\r\n","import { channel } from \"..\"\r\n\r\nexport function getCurrentModuleMode(): string | undefined {\r\n return channel(\"GLOBAL\").last(1, \"MVC/RESIZE\")[0]?.content?.moduleMode\r\n}\r\n","import { UserContext } from \"../../user-context\"\r\nimport { channel } from \"..\"\r\n\r\n/**\r\n * @memberof Models\r\n * @deprecated models should not implement any logic, also dont use hermes, take the correct hook or getter\r\n * @param handler\r\n */\r\nexport function getUserContext(handler: (userContext: UserContext) => void) {\r\n channel(\"GLOBAL\").subscribeOnce(\r\n \"USER/CONTEXT_LOADED\",\r\n (payload) => {\r\n handler(payload.context)\r\n },\r\n true\r\n )\r\n}\r\n","import { channel } from \"..\"\r\n\r\n/**\r\n * @memberof Models\r\n * @deprecated models should not implement any logic, also dont use hermes, take the correct hook or getter\r\n * @param handler\r\n */\r\nexport function getWorkTaskId(handler: (id?: string) => void) {\r\n channel(\"GLOBAL\").subscribeOnce(\r\n \"WORKTASK/ID_CHANGED\",\r\n (payload) => {\r\n handler(payload.id)\r\n },\r\n true\r\n )\r\n}\r\n\r\n/** *\r\n * @deprecated models should not implement any logic, also dont use hermes, use window.__worktask__ or implement getWorktask() { return window.__WORKTASK__ }\r\n * Returns the currently active worktask id if available.\r\n * Returns undefined if no worktask is active.\r\n */\r\nexport function getCurrentWorkTaskId(): string | undefined {\r\n return channel(\"GLOBAL\").last(1, \"WORKTASK/ID_CHANGED\")[0]?.content?.id\r\n}\r\n","import { MessageBus, Channel } from \"@tm/hermes\"\r\nimport { NextChannels } from \"./channels\"\r\n\r\nexport * from \"./helper\"\r\nexport type { VehicleImportData, SetVehicleTecDocNumberRequest } from \"./messages/vehicle\"\r\nexport * from \"./messages/settings\"\r\nexport * from \"./channels\"\r\n\r\nlet mb: MessageBus\r\n\r\n/**\r\n * @memberof Models\r\n * @deprecated don't use hermes\r\n * @param type\r\n * @param id\r\n * @returns Channel\r\n */\r\nexport function channel(type: C, id?: string): Channel {\r\n if (!mb) {\r\n mb = new MessageBus()\r\n if (typeof window != \"undefined\") {\r\n ;(window as any).__NEXT_MESSAGEBUS__ = mb\r\n }\r\n }\r\n return mb.channel(type, id)\r\n}\r\n","export type GetCatMemoVKNRequest = {\r\n manufacturerId?: number\r\n modelSeriesId?: number\r\n tecdoc?: number\r\n engineCode?: string\r\n}\r\n\r\n// TODO: create the model\r\nexport type GetCatMemoVKNResponse = {\r\n memoForManufacturer: GetMemoVKN_Out_V2\r\n memoForModel: GetMemoVKN_Out_V2\r\n memoForTecdoc: GetMemoVKN_Out_V2\r\n memoForEngineCode: GetMemoVKN_Out_V2\r\n}\r\nexport type GetMemoVKN_Out_V2 = {\r\n refs: CAT_VKN_V2[]\r\n mainItems: Memo_V1[]\r\n bMCodeRelevant: boolean\r\n motor: MotorCode_V1\r\n}\r\nexport type CAT_VKN_V2 = {\r\n infID: number\r\n vknArt: string\r\n bAlarm: boolean\r\n bLog: boolean\r\n bBasket: boolean\r\n bMainInfo: boolean\r\n kTypNr: number[]\r\n kHerNr: number[]\r\n kModNr: number[]\r\n motoren: MotorCode_V1[]\r\n qStart: QStart_V2[]\r\n parts: VKNPart_V1[]\r\n repairs: VKNRepair_V1[]\r\n dienste: VKNDienst_V1[]\r\n progContexts: string[]\r\n}\r\nexport type MotorCode_V1 = {\r\n motNr: number\r\n herNr: number\r\n mCode: string\r\n}\r\nexport type QStart_V2 = {\r\n treeID: number\r\n quickstartID: number\r\n bezeichnung: string\r\n genArtNr: number[]\r\n}\r\nexport type VKNPart_V1 = {\r\n einspNr: number\r\n eArtNr: string\r\n genartNr: number\r\n einspBez: string\r\n genartBez: string\r\n existMemos: boolean\r\n existAccessories: boolean\r\n}\r\nexport type VKNRepair_V1 = {\r\n awSystemNr: number\r\n repCode: string\r\n nr: number\r\n bez: string\r\n genarts: string\r\n}\r\nexport type VKNDienst_V1 = {\r\n dLSystemNr: number\r\n nr: string\r\n bez: string\r\n}\r\nexport type Memo_V1 = {\r\n id: number\r\n type: string\r\n code_Path: string\r\n txt: string\r\n richText: string\r\n bLog: boolean\r\n bBasket: boolean\r\n bAlarm: boolean\r\n bLinked: boolean\r\n bChanged: boolean\r\n eType: EMemoType\r\n}\r\n\r\nexport enum EMemoType {\r\n Unknown = 0,\r\n Note = 1,\r\n PDF = 2,\r\n HTML = 3,\r\n GIF = 4,\r\n PNG = 5,\r\n JPG = 6,\r\n BMP = 7,\r\n}\r\n\r\nexport type CheckHasMemoRequest = {\r\n manufacturerName: string\r\n modelId: number\r\n engineCode?: string\r\n}\r\n\r\nexport type CheckHasMemoResponse = {\r\n hasMemoInfo: boolean\r\n hasTechnicalNotes: boolean\r\n}\r\nexport type GetMemoTechnicalInfoRequest = {\r\n modelId: number\r\n engineCode: string\r\n}\r\n\r\nexport type GetMemoInfoRequest = {\r\n manufacturerName: string\r\n}\r\n\r\nexport type GetMemoInfoResponse = {\r\n repairInstructions: RepairCategory[]\r\n}\r\n\r\nexport type GetMemoTechnicalInfoResponse = {\r\n technicalNotes: TechnicalNote[]\r\n}\r\n\r\nexport type TechnicalNote = {\r\n id: string\r\n title: string\r\n link: string\r\n memoStr: string\r\n}\r\n\r\nexport type RepairCategory = {\r\n id: number\r\n title: string\r\n instructions: RepairInstruction[]\r\n}\r\n\r\nexport type RepairInstruction = {\r\n title: string\r\n link: string\r\n}\r\n\r\n// Important notes\r\nexport type GetMemoImportantNoteRequest = {\r\n manufacturerName?: string\r\n}\r\nexport type Label = {\r\n memoStr: string\r\n id: string\r\n}\r\nexport type GetMemoImportantNoteResponse = {\r\n label: Label\r\n id: string\r\n type: string\r\n priority: string\r\n level: string\r\n}\r\n","import { VehicleType } from \"./enumerations\"\r\nimport { ESubModules } from \"./user-context\"\r\n\r\nexport type ActivateModuleProps = {\r\n routes?: Record | undefined\r\n demoActivationInstanstly?: boolean\r\n workTaskId?: string\r\n}\r\n\r\nexport type ActivateModuleRef = null | {\r\n handleActivateModule: (\r\n moduleGroupId: ModuleGroupId,\r\n module: ActivatableModule,\r\n moduleOption?: ModuleOption,\r\n modulePackage?: ModulePackage\r\n ) => void\r\n}\r\n\r\nexport type GetActivatableModulesResponse = {\r\n moduleGroups: Array\r\n}\r\n\r\nexport type ModuleGroup = {\r\n id: ModuleGroupId\r\n display: boolean\r\n modules: Array\r\n}\r\n\r\nexport enum EModuleGroupId {\r\n none = \"none\",\r\n gpi = \"gpi\",\r\n technicalData = \"technicalData\",\r\n technicalDataTruck = \"technicalDataTruck\",\r\n fastCalculator = \"fastCalculator\",\r\n damageCalculation = \"damageCalculation\",\r\n inspectionData = \"inspectionData\",\r\n repairTimes = \"repairTimes\",\r\n tyres = \"tyres\",\r\n}\r\n\r\nexport enum EModuleId {\r\n // demo\r\n dat = \"dat\",\r\n eurotax = \"eurotax\",\r\n tecrmi = \"tecrmi\",\r\n autodata = \"autodata\",\r\n haynespro = \"haynespro\",\r\n topmotive = \"topmotive\",\r\n datglass = \"datglass\",\r\n // normal\r\n alldata = \"alldata\",\r\n temot = \"temot\",\r\n tmtires = \"tmtires\",\r\n vehicle = \"vehicle\",\r\n}\r\n\r\nexport type ModuleGroupId = `${EModuleGroupId}`\r\nexport type ModuleId = `${EModuleId}`\r\nexport type ModuleMode = \"NONE\" | \"SD\" | \"TD\"\r\n\r\nexport type ActivatableModule = {\r\n id: ModuleId\r\n display: boolean\r\n mdmModuleId: ESubModules\r\n externalId: string\r\n name: string\r\n shortDescriptionUrl: string\r\n longDescriptionUrl: string\r\n vehicleType: VehicleType\r\n moduleOptions: ModuleOptions | undefined\r\n modulePackages?: ModulePackages\r\n hasServiceData?: boolean\r\n explanationVideoUrl?: string\r\n}\r\n\r\nexport type ModuleOptions = {\r\n demo?: ModuleOption\r\n full?: ModuleOption\r\n}\r\n\r\nexport type ModuleOption = {\r\n type: ModuleOptionType\r\n modulePrice?: ModuleOptionPrice\r\n active?: boolean\r\n activatable?: boolean\r\n amountOfDays?: number\r\n from?: Date\r\n to?: Date\r\n}\r\n\r\nexport type ModulePackage = {\r\n id: string\r\n name: string\r\n moduleOptions: ModuleOptions\r\n}\r\n\r\nexport type ModulePackages = {\r\n currentPackage: ModulePackage\r\n higherPackage: ModulePackage\r\n}\r\n\r\nexport type ModuleInformation = {\r\n id: string\r\n externalId?: string\r\n name: string\r\n description?: string\r\n externalUrl?: string\r\n shortDescriptionImage?: string\r\n longDescriptionImage?: string\r\n explanationVideoUrl?: string\r\n}\r\n\r\nexport enum ModuleOptionType {\r\n Unknown = 0,\r\n Demo = 1,\r\n Full = 2,\r\n}\r\n\r\nexport type ModuleOptionPrice = {\r\n type: ModuleOptionPriceType\r\n value: number\r\n currencySymbol: string\r\n}\r\n\r\nexport enum ModuleOptionPriceType {\r\n Unknown = 0,\r\n PricePerMonth = 1,\r\n PricePerUse = 2,\r\n}\r\n\r\nexport type SetModuleActivationRequest = {\r\n moduleGroupId: string\r\n moduleId: string\r\n mdmModuleId: ESubModules\r\n externalModuleId?: string\r\n moduleOption: ModuleOption\r\n modulePackage?: ModulePackage\r\n}\r\n\r\nexport type SetModuleActivationResponse = {}\r\n","import { ModuleGroupId, ModuleId } from \"./module-group\"\r\n\r\nexport type ModuleInfo = {\r\n id: string\r\n icon?: string | false\r\n name: string\r\n view?: string | false\r\n info?: string | false\r\n}\r\n\r\n/** *\r\n * Renamed to ModuleTab\r\n * @deprecated Use ModuleTab instead\r\n */\r\nexport type ModuleOpened = ModuleTab\r\n\r\n/** *\r\n * @property {ModuleConflictType} firstAttachConflictType - If value is set will show conflict dialog\r\n * first time a vehicle or customer is attached to a worktask, see ModuleConflictType enum for options\r\n */\r\nexport type ModuleTab = {\r\n key?: string // A unique key identifying the tab/module type. Used for tab comparison\r\n icon?: string\r\n name?: string // Could be removed. TODO: Please check why we use name for the DefaultTabs insted of title\r\n title: string\r\n url: string\r\n isSelected?: boolean\r\n isWorkTask?: boolean\r\n isDefault?: boolean\r\n needsVehicle?: boolean\r\n preventURLRewrite?: boolean\r\n firstAttachConflictType?: ModuleConflictType\r\n vehicleDependency?: string\r\n moduleGroupId?: ModuleGroupId\r\n moduleId?: ModuleId\r\n}\r\n\r\nexport enum ModuleConflictType {\r\n Vehicle = \"VEHICLE\",\r\n Customer = \"CUSTOMER\",\r\n CustomerAndVehicle = \"CUSTOMER_AND_VEHICLE\",\r\n}\r\n\r\nexport type ModuleNavigationState = {\r\n visibleTabCount: number\r\n tabs: ModuleTab[]\r\n}\r\n","export * from \"./authority\"\r\nexport * from \"./cis\"\r\nexport * from \"./customer\"\r\nexport * from \"./erp\"\r\nexport * from \"./memo-tool\"\r\nexport * from \"./order-options\"\r\nexport * from \"./parts\"\r\nexport * from \"./portal\"\r\nexport * from \"./state\"\r\nexport * from \"./urlResolver\"\r\nexport * from \"./vehicle\"\r\nexport * from \"./vehicle-records\"\r\nexport * from \"./worktask\"\r\n\r\nexport enum RegisteredModels {\r\n Worktask,\r\n Customer,\r\n Vehicle,\r\n ERP,\r\n ViewState,\r\n /** @deprecated Use `Container.getInstance(RegisteredModels.ERP).action(\"getErpInfoDetails\")(...)` instead. */\r\n ERP_Details,\r\n ERP_Teccom,\r\n Logging,\r\n CIS_Customer,\r\n Vehicle_ModelDetails,\r\n Articles,\r\n RepairTimes_MainServices,\r\n RepairTimes_HasRepairTimes,\r\n Basket_HasRepairTimes,\r\n Basket_HasRepairTimesForProductGroup,\r\n Worktask_BasketActivityDone,\r\n Compilations_List,\r\n Vehicle_KbaNumbers,\r\n Articles_ByWholesalerArticleNumber,\r\n Articles_ByArticleNumbersWithOptionalVehicle,\r\n Articles_ByWholesalerArticleNumbers,\r\n ERP_OrderOptions,\r\n RepairTimes_ShowByIds,\r\n Basket_Order_ShowItem,\r\n Worktask_CostEstimationDetails,\r\n Basket_CostEstimation_ShowTotalNumbersByWorkTask,\r\n RepairTimes_ShowManufacturerDivision,\r\n ERP_GetPromotedItems,\r\n Vouchers_ShowCostEstimationPdf,\r\n KeyValueStore,\r\n UrlResolver,\r\n VehicleRecords,\r\n Vouchers_ShowSupplierArticleByVehicle,\r\n CIS_ShowTotalNumbers,\r\n Notifications_ShowAlerts,\r\n Vehicle_ShowOptions,\r\n RepairTimes_TechnicalData_GetProductGroupTopicIds,\r\n ERP_ShowDefaultWarehouse,\r\n Authority,\r\n Articles_ByArticleNumbersWithOptionalVehicleBuffered,\r\n ERP_GetCompleteDeliveryTour,\r\n ERP_GetBonusInformation,\r\n ERP_GetAdvertisementCategories,\r\n ERP_GetAdvertisement,\r\n Articles_BySupplierArticleNumbers,\r\n ImportExport,\r\n Vouchers_ShowAllOrders,\r\n CIS_ShowAllOrders,\r\n CIS_ShowOpenOrders,\r\n Vehicle_ManufacturerDetails,\r\n Vehicle_ModelSeriesDetails,\r\n ERP_GetNotification,\r\n ERP_GetErpConfig,\r\n Articles_GetMultiWholesalerArticleNosByTraderId,\r\n Vehicle_DataAvailabilities,\r\n Vouchers_ShowOrderPdf,\r\n CIS_ShowOrdersByArticle,\r\n CIS_ShowCisOptions,\r\n Print_VehicleDatInfo,\r\n Article_Notes,\r\n WorkTask_Notes,\r\n Articles_GetArticleImageByInternalArticleId,\r\n ERP_DefaultOrderOptions,\r\n ERP_OrderStatus,\r\n MemoTool,\r\n CIS, // This should be improved, all CIS registerded models should be defined in as action withtin the CIS registered model\r\n ERP_GlobalOrderOptions,\r\n RepairShop_AddCalculatedCosts,\r\n}\r\n","export enum NoteTypes {\r\n ARTICLE = \"Article\",\r\n VEHICLE_ARTICLE = \"VehicleArticle\",\r\n CUSTOM_ARTICLE = \"CustomArticle\",\r\n}\r\n\r\nexport type Note = {\r\n noteId: string\r\n text: string\r\n type: NoteTypes\r\n version?: {\r\n id: string\r\n revision: number\r\n }\r\n}\r\n","import { MessageType } from \".\"\r\n\r\nexport type OrderResponse = {\r\n workTaskId: string\r\n orders?: Array\r\n allHaveSucceeded: boolean\r\n technicalErrorText: string\r\n orderRequestFailed: boolean\r\n traceId: string\r\n postSendOrderActions?: PostSendOrderAction[]\r\n basketIsNotUpToDate?: boolean\r\n}\r\n\r\nexport type OrderResponseGroup = {\r\n orderVoucherId?: string\r\n orderNumber: string\r\n orderDate?: Date\r\n orderValidationMessage: OrderValidationMessage\r\n itemValidationMessages: Array\r\n hasSucceeded: boolean\r\n}\r\n\r\nexport type OrderValidationMessage = {\r\n id: string\r\n type: MessageType\r\n texts: Array\r\n}\r\n\r\nexport type PostSendOrderAction = {\r\n action: PostSendOrderActionType\r\n target: PostSendOrderActionTargetType\r\n value: string\r\n}\r\n\r\nexport enum PostSendOrderActionType {\r\n OpenExternalUrl = 1,\r\n PostMessage = 2,\r\n}\r\n/**\r\n * for future use, add new types if\r\n */\r\nexport enum PostSendOrderActionTargetType {\r\n NewWindow = 1,\r\n ParentFrame = 2,\r\n Modal = 3,\r\n}\r\n","import { Article, OE } from \"../article\"\r\n\r\nexport enum EReplaceButtonBundle {\r\n DMGDat = \"dmg-dat\",\r\n FastService = \"fast-service\",\r\n FastCalculatorNext = \"fast-calculator-next\",\r\n DMGEurotax = \"dmg-eurotax\",\r\n DMGDatGlass = \"dmg-glass\",\r\n Basket = \"basket\",\r\n}\r\n\r\nexport type ReplaceButtonBundle = `${EReplaceButtonBundle}`\r\n\r\nexport type ReplaceButtonPayload = {\r\n bundle: ReplaceButtonBundle\r\n part?: Article | OE.OePart\r\n isNewList?: boolean\r\n cancelAction?: boolean\r\n quantity?: number\r\n}\r\n","export enum ReactQueryKeys {\r\n basket_summary = \"basket__summary\",\r\n vouchers_useOrderDetails = \"vouchers__useOrderDetails\",\r\n}\r\n","export enum SessionStorageKeys {\r\n mvcSessionId = \"_mvcSessionId\",\r\n invalidSessionMvc = \"invalid_session_\",\r\n}\r\n","/** The Type of the general counter. */\r\nexport enum ECounterType {\r\n Undefined = 0,\r\n MiniFastClickHome = 1,\r\n ArticleListShowCompact = 2,\r\n ArticleListShowDetailed = 3,\r\n ArticleListHideImages = 4,\r\n ArticleListShowImages = 5,\r\n ArticleListShowMoreSuppliers = 6,\r\n ArticleListShowLessSuppliers = 7,\r\n SidePaneCollapse = 8,\r\n SidePaneExpand = 9,\r\n ShoppingCartShowCompact = 10,\r\n ArticleListShowOnStockOnlyItems = 11,\r\n ArticleListShowAllItems = 12,\r\n OoTransBasketDownload = 13,\r\n ArticleListTop10 = 14,\r\n ArticleListAddToBasket = 0xf,\r\n ArticleListCompareArticles = 0x10,\r\n ArticleListArticleNotes = 17,\r\n ArticleListCriteriaSearch = 18,\r\n ArticleListFixMenu = 19,\r\n ArticleListReleaseMenu = 20,\r\n ArticleListFastTd = 21,\r\n ArticleListCollapseGenArt = 22,\r\n ArticleListExpandGenArt = 23,\r\n ArticleListShowMoreGenArt = 24,\r\n ArticleListShowLessGenArt = 25,\r\n ArticleListLocationFilter = 26,\r\n ArticleListStatusBarFilter = 27,\r\n ArticleListMiniFastClick = 28,\r\n ArticleListInlineFilter = 29,\r\n ArticleListFilterSelectCriteria = 30,\r\n ArticleListArticleDocuments = 31,\r\n ArticleListArticleLabourtimes = 32,\r\n ArticleListArticlePrint = 33,\r\n ArticleListFastCalc = 34,\r\n ArticleListCriteriaFilter = 35,\r\n ArticleListDeleteCriteriaFilter = 36,\r\n ArticleListFilterSelectProductGroup = 39,\r\n ArticleListFilterSelectSupplier = 40,\r\n ArticleListFilterSelectOENumber = 41,\r\n ArticleListExpandArticle = 42,\r\n ArticleListArticleDetailsViaTraderArticleNumber = 43,\r\n ArticleListArticleDetailsViaAccessoryList = 44,\r\n ArticleListArticleDetailsViaAlternativeArticle = 45,\r\n ArticleListArticleDetailsViaAvailability = 46,\r\n ArticleListArticleDetailsViaDetailsButton = 47,\r\n ArticleListArticleFurtherOptions = 48,\r\n ArticleListArticleCheckbox = 49,\r\n VehicleSelectionSearchSymbol = 50,\r\n VehicleSelectionReset = 51,\r\n VehicleSelectionThumbsUp = 52,\r\n VehicleSelectionThumbsDown = 53,\r\n VehicleSelectionSort = 54,\r\n VehicleSelectionDataGridView = 55,\r\n VehicleSelectionShowAllManufacturers = 56,\r\n VehicleSelectionHome = 57,\r\n VehicleSelectionBodyType = 58,\r\n VehicleSelectionConstructionYear = 59,\r\n VehicleSelectionFilterFuelType = 60,\r\n VehicleSelectionFilterEngineCode = 61,\r\n VehicleSelectionFilterccm = 62,\r\n VehicleSelectionSelectVehicle = 0x3f,\r\n SidePanelSearch = 70,\r\n SidePanelArticleHistory = 71,\r\n SidePanelVehicleHistory = 72,\r\n SidePanelBasket = 74,\r\n TopBarBasket = 75,\r\n EditFastClick = 76,\r\n FastClickMinimize = 77,\r\n FastClickMaximize = 79,\r\n Top10 = 80,\r\n SearchTreeMinimize = 81,\r\n SearchTreeMaximize = 83,\r\n FastClick = 84,\r\n SettingsOpen = 85,\r\n SettingsClose = 86,\r\n ArticleTree = 87,\r\n CostEstimate = 88,\r\n DeleteBasket = 89,\r\n PrintBasket = 90,\r\n ImportToBasket = 91,\r\n BasketShowInvoicePrice = 92,\r\n BasketOrder = 93,\r\n BasketDirectBuy = 94,\r\n BasketHistory = 95,\r\n StartPage = 100,\r\n NewWorktask = 101,\r\n LastActivities = 102,\r\n CloseTask = 103,\r\n Chat = 104,\r\n Feedback = 105,\r\n WorkshopProfiler = 106,\r\n MoreWorktasks = 107,\r\n MyAccount = 108,\r\n MyAssortment = 109,\r\n StartPageWorktask = 110,\r\n ArticleListViewOptions = 130,\r\n ArticleListNavigation = 131,\r\n ArticleListReleaseAllFilters = 132,\r\n ArticleListShowInvoicePrice = 133,\r\n ArticleListAreaSwitch = 134,\r\n CustomerSearch = 150,\r\n CustomerList = 151,\r\n AddCustomer = 152,\r\n DeleteCustomer = 153,\r\n CustomerDetails = 154,\r\n CustomerSave = 155,\r\n CustomerDetailsexpandcollapse = 156,\r\n CustomerAddVehicle = 157,\r\n CostEstimatePrint = 160,\r\n CostEstimateSend = 161,\r\n CostEstimateViewOptions = 162,\r\n CostEstimateReset = 163,\r\n CostEstimateSave = 164,\r\n CostEstimateBackToBasket = 165,\r\n CostEstimateAddArticle = 166,\r\n CostEstimateAddLabourTime = 167,\r\n PassengerCar = 200,\r\n PassengerCarClassicSearch = 201,\r\n PassengerCarGraphicSearch = 202,\r\n PassengerCarTextSearch = 203,\r\n PassengerCarDetails = 204,\r\n PassengerCarChange = 205,\r\n PassengerCarEdit = 206,\r\n PassengerCarPartsCatalog = 210,\r\n PassengerCarGpi = 220,\r\n PassengerCarGpiDat = 225,\r\n PassengerCarGpiEurotax = 226,\r\n PassengerCarGpiTecRmi = 223,\r\n PassengerCarGpiTemot = 227,\r\n PassengerCarRepairTimes = 230,\r\n PassengerCarRepairTimesAwDoc = 234,\r\n PassengerCarRepairTimesAutodata = 232,\r\n PassengerCarRepairTimesHaynesPro = 231,\r\n PassengerCarRepairTimesTecRmi = 233,\r\n PassengerCarServiceData = 240,\r\n PassengerCarServiceDataHaynesPro = 241,\r\n PassengerCarServiceDataAutoData = 242,\r\n PassengerCarServiceDataTecRmi = 243,\r\n PassengerCarTechnicalData = 250,\r\n PassengerCarTechnicalDataHaynesPro = 251,\r\n PassengerCarTechnicalDataAutodata = 252,\r\n PassengerCarTechnicalDataTecRMI = 253,\r\n PassengerCarTyres = 260,\r\n PassengerCarTyresDriveRight = 268,\r\n PassengerCarTyresTecRmi = 263,\r\n PassengerCarFastCalculator = 270,\r\n PassengerCarServiceCalc = 271,\r\n PassengerCarAllData = 280,\r\n PassengerCarRepairCalculation = 290,\r\n TMWheelsAndTyres = 291,\r\n PassengerCarFastCheck = 292,\r\n PartsIndicator = 293,\r\n PartsIndicatorApply = 294,\r\n PartsIndicatorCalculate = 295,\r\n FastDTC = 296,\r\n FastService = 298,\r\n EDS = 299,\r\n Vans = 300,\r\n VansPartsCatalog = 310,\r\n VansRepairTimes = 330,\r\n VansRepairTimesAwDoc = 334,\r\n VansRepairTimesAutodata = 332,\r\n VansRepairTimesHaynesPro = 331,\r\n VansRepairTimesTecRmi = 333,\r\n VansServiceData = 340,\r\n VansTechnicalData = 350,\r\n TecDocTruck = 400,\r\n TecDocTruckTextSearch = 401,\r\n TecDocTruckGraphicSearch = 402,\r\n TecDocTruckPartsCatalog = 410,\r\n TecDocTruckRepairTimes = 430,\r\n TecDocTruckRepairTimesAwDoc = 434,\r\n TecDocTruckRepairTimesAutoData = 432,\r\n TecDocTruckRepairTimesHaynesPro = 431,\r\n TecDocTruckRepairTimesTecRmi = 433,\r\n TecDocTruckServiceData = 440,\r\n TecDocTruckServiceDataHaynesPro = 441,\r\n TecDocTruckServiceDataAutoData = 442,\r\n TecDocTruckServiceDataTecRmi = 443,\r\n TecDocTruckTechnicalData = 450,\r\n TecDocTruckTechnicalDataHaynesPro = 451,\r\n TecDocTruckTechnicalDataAutoData = 452,\r\n TecDocTruckTechnicalDataTecRmi = 453,\r\n TruckVIN = 500,\r\n MyTruck = 600,\r\n MyTruckPlus = 601,\r\n TruckGarage = 700,\r\n Axle = 800,\r\n Bike = 900,\r\n BikeTextSearch = 901,\r\n BikeGraphicSearch = 902,\r\n UniParts = 1000,\r\n UniPartsPremium = 1010,\r\n UniPartsTecDoc = 1020,\r\n ArticleDirectSearch = 1100,\r\n ArticleDirectSearchHistory = 1101,\r\n Ets = 1200,\r\n Gva = 1300,\r\n Offers = 1400,\r\n VoucherList = 1500,\r\n VoucherCostEstimate = 1501,\r\n VoucherOrders = 1502,\r\n TopVehicleInfo = 2000,\r\n SidePanelVehicleInfo = 2001,\r\n VehicleInfoPrint = 2002,\r\n VehicleInfoTop10 = 2003,\r\n VehicleInfoFastClick = 2004,\r\n VehicleInfoClose = 2005,\r\n VehicleInfoGpiDat = 2021,\r\n VehicleInfoGpiEurotax = 2022,\r\n VehicleInfoGpiTecRmi = 2023,\r\n VehicleInfoGpiTemot = 2024,\r\n VehicleInfoRepairTimesAwDoc = 2031,\r\n VehicleInfoRepairTimesAutodata = 2032,\r\n VehicleInfoRepairTimesHaynesPro = 2033,\r\n VehicleInfoRepairTimesTecRmi = 2034,\r\n VehicleInfoInspectionDataHaynesPro = 2041,\r\n VehicleInfoInspectionDataAutoData = 2042,\r\n VehicleInfoInspectionDataTecRmi = 2043,\r\n VehicleInfoTechnicalDataHaynesPro = 2051,\r\n VehicleInfoTechnicalDataAutodata = 2052,\r\n VehicleInfoTyresDriveRight = 2061,\r\n VehicleInfoTyresTecRmi = 2062,\r\n}\r\n","export enum TmaEModule {\r\n UNDEFINED = 0,\r\n ARTICLE_LIST = 1,\r\n ARTICLE_DETAILS = 2,\r\n ARTICLE_DETAILS_PARTSLIST = 3,\r\n AERTICLE_DETAILS_ACCESSORYLIST = 4,\r\n ARTICLE_COMPARISON = 5,\r\n ARTICLE_ERPINFOFORM = 6,\r\n REPTIMES_AWDOC = 7,\r\n REPTIMES_AUTODATA = 8,\r\n REPTIMES_AUDACON = 9,\r\n SERVICE_HAYNES = 10,\r\n SERVICE_AUTODATA = 11,\r\n SERVICE_AUDACON = 12,\r\n TECH_HAYNES = 13,\r\n TECH_AUTODATA = 14,\r\n TECH_AUDACON = 15,\r\n GPI_EUROTAX = 16,\r\n GPI_DAT = 17,\r\n GPI_TEMOT = 18,\r\n REPESTIMATE_DAT = 19,\r\n REPESTIMATE_EUROTAX = 20,\r\n PUETZUNDPARTNER = 21,\r\n TYRES_JFNETWORK = 22,\r\n GLASS_AUDACON = 23,\r\n GLASS_AUDATEX = 24,\r\n GLASS_SAINTGOBAIN = 25,\r\n SPECIALOFFER = 26,\r\n HELLAGUTMANNSCHNITTSTELLE = 27,\r\n ESI = 28,\r\n DOSI = 29,\r\n BARCODESCANNER = 30,\r\n MANUALDEFINEDARTICLE = 31,\r\n FILEIMPORT = 32,\r\n EXTERNALCATALOGUE = 33,\r\n DRIVERIGHT = 34,\r\n DIRECTBUY = 35,\r\n TRUCK = 36,\r\n OEREPLACEMENTCHAIN = 37,\r\n PREMIUMUNIPARTSSEARCH = 38,\r\n TRUCKVIN = 39,\r\n TRUCKGARAGE = 40,\r\n SHOPPING_CART = 41,\r\n COMPACT_SHOPPING_CART = 42,\r\n START_PAGE = 43,\r\n VEHICLE_GRAPHIC_SEARCH = 44,\r\n SIDE_PANE = 45,\r\n FAST_CLICK = 46,\r\n MINI_FAST_CLICK = 47,\r\n ARTICLE_SEARCH_TREE = 48,\r\n QUICK_START = 49,\r\n TOP_GENERIC_ARTICLE = 50,\r\n PRODUCT_GROUP_KEYWORD_SEARCH = 51,\r\n ARTICLES_HISTORY_SIDE_PANE = 52,\r\n VEHICLES_HISTORY_SIDE_PANE = 53,\r\n ARTICLES_HISTORY_START_PAGE = 54,\r\n VEHICLES_HISTORY_START_PAGE = 55,\r\n VEHICLE_SEARCH_TREE = 56,\r\n CROSS_SELLING = 57,\r\n TRUCKVIN_ALTERNATIVE_ARTICLE = 58,\r\n TRUCKVIN_REPLACE_ARTICLE = 59,\r\n LOGIN_HIDDEN = 60,\r\n ARTICLE_LIST_UTILITY_NUMBER = 61,\r\n CONTROL_FILE = 62,\r\n DLL_INTERFACE = 63,\r\n KFZ_WIN_INTERFACE = 64,\r\n GPI_AUDACON = 65,\r\n TYRES_AUDACON = 66,\r\n ARTICLE_RELATED_VEHICLE_SELECTION = 67,\r\n ARTICLE_DIRECT_SEARCH = 68,\r\n ARTICLE_DIRECT_SEARCH_START_PAGE = 69,\r\n ARTICLE_DIRECT_SEARCH_SIDE_PANE = 70,\r\n ARTICLE_DIRECT_SEARCH_ARTICLE_LIST = 71,\r\n PREMIUMUNIPARTSSEARCH_START_PAGE = 72,\r\n PREMIUMUNIPARTSSEARCH_SIDE_PANE = 73,\r\n PREMIUMUNIPARTSSEARCH_ARTICLE_LIST = 74,\r\n TYRE_SEARCH_START_PAGE = 75,\r\n CUSTOMER_INFORMATION_SYSTEM_GARAGE = 76,\r\n CUSTOMER_INFORMATION_SYSTEM_WHOLESALER = 77,\r\n TYRE_CONFIGURATOR = 78,\r\n DIRECTBUY_START_PAGE = 79,\r\n DIRECTBUY_SIDE_PANE = 80,\r\n UNIPARTSSEARCH = 81,\r\n UNIPARTSSEARCH_PRODUCT_GROUP_KEYWORD_SEARCH = 82,\r\n PREMIUMUNIPARTSSEARCH_SEARCH_ASSISTENT = 83,\r\n ARTICLE_DIRECT_SEARCH_SEARCH_ASSISTENT = 84,\r\n TYRE_SEARCH_SIDE_PANE = 85,\r\n ARTICLE_DIRECT_OE_SEARCH_SIDE_PANE = 86,\r\n BREAD_CRUMBS_HISTORY = 87,\r\n ARTICLE_DIRECT_WITH_ONLY_OE_SEARCH_SIDE_PANE = 88,\r\n PRODUCT_RECOMMENDATION = 89,\r\n ARTICLE_DETAILS_PARTSLIST_SENSITIVE = 90,\r\n MY_TRUCK = 91,\r\n REPTIMES_HAYNES = 92,\r\n FAST_CALCULATOR = 93,\r\n DASHBOARD = 94,\r\n ARTICLE_DIRECT_SEARCH_DASHBOARD = 95,\r\n PRODUCT_GROUP_KEYWORD_SEARCH_ARTICLE_LIST = 96,\r\n PRODUCT_GROUP_KEYWORD_SEARCH_DASHBOARD = 97,\r\n FAST_CLICK_ARTICLE_LIST = 98,\r\n FAST_CLICK_DASHBOARD = 99,\r\n FAST_CLICK_V2 = 100,\r\n FAST_CLICK_V2_ARTICLE_LIST = 101,\r\n FAST_CLICK_V2_DASHBOARD = 102,\r\n FAST_CHECK = 103,\r\n DAT_FAST_CALCULATION = 104,\r\n WHEEL_CONFIGURATOR = 105,\r\n FAST_CLICK_UNIPARTSSEARCH = 106,\r\n FAST_CLICK_V2_UNIPARTSSEARCH_DASHBOARD = 107,\r\n FAST_CLICK_V2_UNIPARTSSEARCH_ARTICLE_LIST = 108,\r\n ARTICLE_COMPILATIONS = 109,\r\n PARTS_INDICATOR = 110,\r\n TM_TYRE_SEARCH = 111,\r\n PREMIUMUNIPARTSSEARCH_DASHBOARD = 112,\r\n MY_TRUCK_PLUS = 113,\r\n GLASS_REPESTIMATE_DAT = 114,\r\n FAST_SERVICE = 115,\r\n FAST_DTC = 116,\r\n EXTERNAL_DATA_SOURCE = 117,\r\n ARTICLE_DETAILS_ALTERNATIVE_ARTICLE = 118,\r\n}\r\n","import { Article, ArticleAttribute, ErpInformation, Paging, ProductGroup } from \"..\"\r\n\r\nexport type TyresCarTypeAddon = {\r\n Id: number\r\n Description: string\r\n ShortCode: string\r\n Default: boolean\r\n}\r\n\r\n// preserve key order because is displayed on summary and filters\r\nexport enum ETyresSeason {\r\n default = \"default\",\r\n summer = \"summer\",\r\n allSeason = \"allSeason\",\r\n winter = \"winter\",\r\n}\r\n\r\nexport type TyresSeason = `${ETyresSeason}`\r\n\r\nexport enum ETyresCarType {\r\n \"NONE\",\r\n \"PKW\",\r\n \"SUV\",\r\n \"LLKW\",\r\n \"LKW\",\r\n \"Motorrad\",\r\n \"Anhanger\",\r\n \"Agrar\",\r\n \"EM\",\r\n \"Industrie\",\r\n \"Militar\",\r\n}\r\n\r\nexport enum ETyreCountType {\r\n singleTire = \"singleTire\",\r\n carTires = \"carTires\",\r\n motorcycleTires = \"motorcycleTires\",\r\n}\r\n\r\nexport enum EMatchCodeSearchType {\r\n widget = \"Widget\",\r\n catalog = \"Catalog\",\r\n widgetAndCatalog = \"Both\",\r\n none = \"None\",\r\n}\r\n\r\n// EFilterIds on API as string\r\nexport enum EFilterNames {\r\n // none = \"none\",\r\n carType = \"carType\",\r\n season = \"season\",\r\n manufacturer = \"manufacturer\",\r\n availability = \"availability\",\r\n noiseLevel = \"noiseLevel\",\r\n weight = \"weight\",\r\n wetGripClass = \"wetGripClass\",\r\n fuelEfficiency = \"fuelEfficiency\",\r\n externalRolling = \"externalRolling\",\r\n runExtraLoad = \"runExtraLoad\",\r\n width = \"width\",\r\n height = \"height\",\r\n inch = \"inch\",\r\n loadIndex = \"loadIndex\",\r\n speedIndex = \"speedIndex\",\r\n oeIdentifier = \"oeIdentifier\",\r\n tyreSize = \"tyreSize\",\r\n carTypeAndSeason = \"carTypeAndSeason\",\r\n extras = \"extras\",\r\n tyreModel = \"tyreModel\",\r\n tyreManufacturer = \"tyreManufacturer\",\r\n tyreCount = \"tyreCount\",\r\n\r\n // TODO extra fields where not data but implemented ?\r\n // silent = \"silent\",\r\n // studdable = \"studdable\",\r\n // studed = \"studed\",\r\n}\r\n\r\nexport type FilterNames = `${EFilterNames}`\r\n\r\nexport type TyreFilter = {\r\n value: string\r\n query: string\r\n sortPrio?: number\r\n info?: string\r\n group: FilterNames // EFilterIds as string\r\n groupId?: number // TMF filter id\r\n valueKey?: string // TODO find other way\r\n bitValue?: number // TODO find a way to get rid of this\r\n articleCount?: number\r\n isSelected?: boolean\r\n}\r\n\r\nexport type GetArticleListByMatchCodeRequest = Paging & {\r\n query: string\r\n searchLevel: number\r\n selectedCriteria: TyreFilter[]\r\n fromFilter?: boolean\r\n traderReferenceId?: number\r\n carTypes: ETyresCarType[] | undefined\r\n}\r\n\r\nexport type TyreArticle = Article & {\r\n erpInformation?: ErpInformation\r\n productGroup?: TyreProductGroup\r\n attributes: TyreArticleAttributes[]\r\n}\r\n\r\nexport type TyreArticleAttribute = ArticleAttribute & {\r\n group: FilterNames\r\n query: string\r\n}\r\n\r\nexport type TyreArticleAttributes = {\r\n topAttributes: Array\r\n articleAttributes: Array\r\n vehicleAttributes: Array\r\n partsListAttributes: Array\r\n}\r\n\r\nexport type TyreProductGroup = ProductGroup & {\r\n season: TyresSeason\r\n carType: ETyresCarType\r\n}\r\n\r\nexport type GetArticleListByMatchCodeResponse = Paging & {\r\n uniArticles: TyreArticle[]\r\n searchLevel: number\r\n articleListCount: number\r\n usedCriteria: TyresUsedCriteria\r\n usedQuery: string\r\n defaultQuantity: number\r\n}\r\n\r\nexport type TyresUsedCriteria = {\r\n width: TyreFilter\r\n height: TyreFilter\r\n inch: TyreFilter\r\n oeIdentifier: TyreFilter[]\r\n loadIndex: TyreFilter[]\r\n speedIndex: TyreFilter[]\r\n carTypeAndSeason: TyreFilter[]\r\n season: TyreFilter[]\r\n}\r\n\r\nexport type GetArticlesListMappedResponse = {\r\n articleListCount: number\r\n searchLevel: number\r\n uniArticles: TyreArticle[]\r\n usedCriteria: TyresUsedCriteria\r\n usedQuery: string\r\n pageIndex: number\r\n pageSize: number\r\n}\r\n\r\nexport type StandardTyreSize = {\r\n id: number\r\n carType: ETyresCarType\r\n description: string\r\n width: string\r\n height: string\r\n inch: string\r\n}\r\n","import { AjaxCachingMode, SystemType, TitleType } from \"./enumerations\"\r\n\r\nexport type UserContext = {\r\n id?: string\r\n languageId?: number\r\n account?: Account\r\n principal?: Principal\r\n generalContact?: Contact\r\n generalAddress?: Address\r\n modules?: Array\r\n externalModules?: Array\r\n externalAuthenticationTokens: Record\r\n parameter: UserContextParameters\r\n system: UserContextSystem\r\n hasTelesales?: boolean\r\n hasMailRetoure?: boolean\r\n activatableModules?: Array\r\n isAnonym?: boolean\r\n}\r\n\r\nexport type KeyValue = {\r\n key: string\r\n value: string\r\n}\r\n\r\nexport type AddOnDto = {\r\n id: number\r\n description: string\r\n keys?: Array\r\n}\r\n\r\nexport type AddOnKeyDto = {\r\n id: string\r\n description: string\r\n shortCode?: string\r\n default?: boolean\r\n}\r\n\r\nexport type UserModule = {\r\n description: string\r\n type: UserModuleType\r\n parameters?: Array\r\n addOns?: Array\r\n [key: string]: any\r\n moduleSubId: number\r\n uiConfigKeys?: string[]\r\n}\r\n\r\nexport type ExternalModule = {\r\n catalogDescription?: string\r\n description: string\r\n type: ExternalModuleType\r\n parameter?: Array<{ key: string; value: string }>\r\n [key: string]: any\r\n replacedUrl?: string\r\n id: number\r\n}\r\n\r\nexport type Account = {\r\n customerNo: string\r\n iKndNr?: number\r\n lfdNr?: number\r\n username: string\r\n password: string\r\n oneUserLogin?: boolean\r\n}\r\n\r\nexport type Principal = {\r\n traderId: number\r\n customerId: number\r\n userId: number\r\n repairshopId?: string\r\n cooperationId?: string\r\n customerDisplayName?: string\r\n}\r\n\r\nexport type Address = {\r\n addition: string\r\n city: string\r\n country: string\r\n state: string\r\n street: string\r\n zip: string\r\n}\r\n\r\nexport type Contact = {\r\n title?: TitleType\r\n name?: string\r\n company?: string\r\n addition?: string\r\n phone?: string\r\n fax?: string\r\n email?: string\r\n personnelNumber?: string\r\n}\r\n\r\nexport enum UserModuleType {\r\n Undefined = 0,\r\n Analytics = 1,\r\n Catalog = 2,\r\n VehicleLookup = 3,\r\n CustomerInformation = 4,\r\n HaynesPro = 5,\r\n KfzWin = 6,\r\n PvPlus = 7,\r\n TecRmi = 8,\r\n UnipartsPremium = 9,\r\n FastCalculator = 10,\r\n TMTruck = 11,\r\n TruckGarage = 12,\r\n TechDataHaynesPro = 13,\r\n ServiceDataHaynesPro = 14,\r\n TechDataAllData = 15,\r\n AWDataAWDoc = 16,\r\n Autodata = 17,\r\n TechDataTecRmi = 19,\r\n ServiceDataTecRmi = 20,\r\n GTIDataDAT = 21,\r\n Schnellkalkulation = 23,\r\n MyTruck = 24,\r\n WheelsTyresConfigJfnMvc = 25,\r\n Telematics = 26,\r\n TMWheels = 27,\r\n TMTires = 28,\r\n SubUserAdministration = 29,\r\n Offers = 30,\r\n TMDamageCalculationEurotax = 31,\r\n GpiDataTemot = 32,\r\n OEResearch = 33,\r\n FastCheck = 34,\r\n FastCalculatorNext = 35,\r\n VehicleRecords = 36,\r\n Alert = 37,\r\n TMDamageCalculationDat = 38,\r\n DATRegistration = 39,\r\n Telesales = 40,\r\n Link = 41,\r\n WorkshopProfile = 42,\r\n TMEurotax = 43,\r\n MessagingModul = 44,\r\n OfferCarousel = 45,\r\n CatalogLight = 46,\r\n Bikes = 47,\r\n CommercialVehicles = 48,\r\n DMS = 49,\r\n NEXTShell = 50,\r\n OEReplacementChain = 51,\r\n TMDamageCalculationGlass = 52,\r\n TecRMITruck = 53,\r\n MyTruckPlus = 54,\r\n PartsIndicator = 55,\r\n DutchOrderPlates = 56,\r\n Carmunication = 57,\r\n TMDamageCalculationAsWegas = 58,\r\n SAPOCIIntegration = 59,\r\n FastService = 60,\r\n DemoActivation = 61,\r\n WatchList = 62,\r\n ArticleNotes = 63,\r\n FastDTC = 64,\r\n TMTrailer = 65,\r\n CentralOrder = 66,\r\n OeInformation = 67,\r\n ToolRent = 70,\r\n IQT = 71,\r\n TechDataHaynesProTruck = 72,\r\n Eds = 73,\r\n CostEstimation = 74,\r\n WorkTaskOrder = 75,\r\n MarginTool = 76,\r\n Sindri = 77,\r\n Feedback = 78,\r\n Partslife = 79,\r\n Login = 80,\r\n Drivemotive = 81,\r\n VeFiles = 82,\r\n ServiceBookletMacsDia = 83,\r\n AddToBasket = 84,\r\n CrossSelling = 85,\r\n AiSearch = 86,\r\n}\r\n\r\nexport enum ExternalModuleType {\r\n AutodataInspectionData = 1,\r\n AutodataTechnicalData = 2,\r\n DatGpi = 3,\r\n EurotaxGpi = 4,\r\n HaynesPro = 5,\r\n KfzWin = 6,\r\n PvPlus = 7,\r\n TecRmi = 8,\r\n VehicleLookup = 23,\r\n IDSearch = 23,\r\n}\r\n\r\nexport type UserContextParameters = {\r\n [key: string]: string | number | undefined | boolean\r\n addressGVS?: string\r\n ajaxCachingMode?: AjaxCachingMode\r\n cacheFrontendArticleListSec?: number\r\n catalogLight?: boolean\r\n clientErpCachingTimespan?: number\r\n collectiveCustomer?: string\r\n customerReferenceNumber?: string\r\n /** Is used as fav-icon. */\r\n dealerIconUrl?: string\r\n fileImportBasket?: number\r\n hideDealerPartNumber?: boolean\r\n hotline?: string\r\n orderDisabled?: boolean\r\n orderingType: OrderingType\r\n positionChangeEArtNrHArtNr?: boolean\r\n purchasePricesDisabled?: boolean\r\n showCloseWorktaskButton?: boolean\r\n showDataSupplierLogos?: boolean\r\n showVoucherKVA?: boolean\r\n showVoucherOrder?: boolean\r\n showVoucherReturn?: boolean\r\n traderAddress?: string\r\n urlLogoMoodPicture?: string\r\n urlAGB?: string\r\n hideDetailsButtonInDetailView?: boolean\r\n catalogBrandImage?: string\r\n notificationsPollingInterval: number\r\n}\r\n\r\nexport enum OrderingType {\r\n NoCentralOrdering = 0,\r\n CentralOrderingWithWorkTaskOrder = 1,\r\n CentralOrderingWithoutWorkTaskOrder = 2,\r\n}\r\n\r\nexport type UserContextSystem = {\r\n systemType: SystemType\r\n projectGuid: string\r\n traderDescription?: string\r\n}\r\n\r\nexport enum EUserContextParameters {\r\n ModuleCostsDAT = \"ModuleCosts\",\r\n ModuleCostsGlassAndEurotax = \"471\",\r\n}\r\n\r\nexport enum CisModuleParameterKeys {\r\n moduleCosts = \"moduleCosts\",\r\n}\r\n\r\nexport enum ESubModules {\r\n ShowTd = 3,\r\n ShowEREClick = 10,\r\n ShowEREFlatrate = 11,\r\n ShowTd_Vivid = 14,\r\n ShowSk_DATFIOnline = 15,\r\n GrafischeTeilesucheDAT = 16,\r\n ShowAutodataPremiumPKW = 103,\r\n GrafischeTeilesucheEurotax = 151,\r\n TecRMI = 190,\r\n TecRMITruck = 200,\r\n ServiceCalculator = 204,\r\n DamageCalculationGlass = 254,\r\n}\r\n\r\nexport enum LinkTarget {\r\n None = \"0\",\r\n Modal = \"1\",\r\n NewWindow = \"2\",\r\n IFrame = \"3\",\r\n}\r\n\r\nexport enum QuantitySuggestionMode {\r\n Deactivated = 0,\r\n Activated = 1,\r\n ActivatedButDisabledByDefault = 2,\r\n}\r\n","import { AttributeModel } from \".\"\r\n\r\n// CompareWithVehicleRecords\r\nexport type CompareWithVehicleRecordsRequest = {\r\n vehicleId: string\r\n attributes: Array\r\n}\r\n\r\nexport type CompareWithVehicleRecordsResponse = {\r\n attributes: Array\r\n}\r\n\r\nexport type AttributeComparisonModel = {\r\n attribute: AttributeModel\r\n recorded: AttributeModel\r\n visualization: CompareWithVehicleRecordsAttributeVisualization\r\n}\r\n\r\nexport enum CompareWithVehicleRecordsAttributeVisualization {\r\n None = 0,\r\n Collided = 1,\r\n Suggested = 2,\r\n Confirmed = 3,\r\n HiddenCollided = 4,\r\n}\r\n","import { ProductGroupFiltersModel, AttributeFilterModel } from \".\"\r\nimport { FittingPosition } from \"..\"\r\n\r\n// ShowVehicleRecords\r\nexport type ShowVehicleRecordsRequest = {\r\n vehicleId?: string\r\n productGroupIds?: string\r\n fittingSide?: FittingPosition\r\n viewMode: ShowVehicleRecordsViewMode\r\n}\r\n\r\nexport enum ShowVehicleRecordsViewMode {\r\n ShowEverything = 0,\r\n ShowRecordedProductGroupsOnly = 1,\r\n ShowRecordedValuesOnly = 2,\r\n ShowQuickFilter = 3,\r\n}\r\n\r\nexport type ShowVehicleRecordsResponse = {\r\n productGroupFilters: Array\r\n}\r\n\r\nexport type ShowFilterOptionsRequest = {\r\n modelId: number\r\n productGroupId: number\r\n attributeId: number\r\n fittingSide?: FittingPosition\r\n}\r\n\r\nexport type ShowFilterOptionsResponse = {\r\n filterOptions: Array\r\n}\r\n","import { MileType, Paging, RegistrationNoType, ThirdPartyIdType, TitleType, VehicleDataAvailabilities, VehicleType, Version } from \"..\"\r\n\r\nexport type Vehicle = {\r\n id: string\r\n refId?: string\r\n\r\n tecDocTypeId: number\r\n tecDocManufacturerId: number\r\n tecDocModelId: number\r\n manufacturer: string\r\n modelSeries: string\r\n model: string\r\n vehicleType: VehicleType\r\n manufacturerThumbnail?: string\r\n modelSeriesThumbnail?: string\r\n modelSeriesImage?: string\r\n modelThumbnail?: string\r\n\r\n /** Not supplied by service - added by frontend */\r\n dataAvailabilities?: VehicleDataAvailabilities\r\n\r\n additionalData?: Array\r\n thirdPartyIds?: Partial>\r\n\r\n plateId?: string\r\n initialRegistration?: Date\r\n vin?: string\r\n engineCode?: string\r\n registrationNo?: string\r\n /** Sometimes also named `dataSourceId` */\r\n registrationTypeId?: RegistrationNoType\r\n countryCode?: string\r\n mileAge?: number\r\n mileType?: MileType\r\n lastGeneralInspection?: Date\r\n nextGeneralInspection?: Date\r\n nextServiceDate?: Date\r\n longlife?: boolean\r\n retailPurchasePrice?: number\r\n retailSalesPrice?: number\r\n\r\n memo?: string\r\n\r\n // telematicsProvider: string\r\n telematicsProviderId?: TelematicsProvider\r\n telematicsRefId?: string\r\n\r\n customerId?: string\r\n attachedOn?: Date\r\n\r\n created?: Date\r\n modified?: Date\r\n version?: Version\r\n}\r\n\r\nexport type ThirdPartyIds = \"unknown\" | \"datECode\" | \"swissMasterNumber\"\r\n\r\nexport type AdditionalData = {\r\n dataSourceId: number\r\n query?: string\r\n dateOfLastAccess?: Date\r\n}\r\n\r\nexport enum TelematicsProvider {\r\n None = 0,\r\n BmwCarData = 1,\r\n AutoAid = 2,\r\n Geotab = 6,\r\n}\r\n\r\nexport enum VehicleSearchType {\r\n All = 0,\r\n PlateIdOrVin = 1,\r\n PlateIdVinOrRegNumber = 2,\r\n}\r\n\r\nexport type FindVehiclesRequest = {\r\n query: string\r\n orderBy?: string\r\n orderByDescending?: boolean\r\n pageIndex?: number\r\n pageSize?: number\r\n searchType: VehicleSearchType\r\n}\r\n\r\nexport type FindVehiclesResponse = Paging & {\r\n vehicles: Array\r\n}\r\n\r\nexport type VehicleShortInfo = {\r\n id: string\r\n refId?: string\r\n\r\n tecDocTypeId: number\r\n tecDocManufacturerId: number\r\n tecDocModelId: number\r\n manufacturer: string\r\n modelSeries: string\r\n model: string\r\n vehicleType: VehicleType\r\n\r\n plateId?: string\r\n initialRegistration?: Date\r\n vin?: string\r\n\r\n customerId?: string\r\n customerNo?: string\r\n title?: string\r\n titleType?: TitleType\r\n firstName?: string\r\n lastName?: string\r\n companyName?: string\r\n attachedOn?: Date\r\n\r\n dataSourceId?: number\r\n countryCode?: string\r\n registrationNoTypeId?: RegistrationNoType\r\n}\r\n\r\nexport type CustomerVehicleShortInfo = {\r\n id: string\r\n refId?: string\r\n tecDocTypeId: number\r\n tecDocManufacturerId: number\r\n tecDocModelId: number\r\n manufacturer: string\r\n model: string\r\n modelSeries: string\r\n vehicleType: VehicleType\r\n plateId?: string\r\n initialRegistration?: Date\r\n vin?: string\r\n customerId: string\r\n attachedOn?: Date\r\n manufacturerThumbnail?: string\r\n modelSeriesThumbnail?: string\r\n modelThumbnail?: string\r\n version: Version\r\n countryCode?: string\r\n}\r\n\r\nexport enum LicensePlateComponentInitiator {\r\n PersonalData,\r\n VehicleWidget,\r\n VehicleEditor,\r\n VehicleSelected,\r\n HistoryItem,\r\n VehicleSelectorView,\r\n VehicleInfo,\r\n VehicleSearchOption,\r\n CustomerList,\r\n WorkTaskHistory,\r\n CentralOrder,\r\n WorkTaskSearch,\r\n}\r\n","import { RegistrationNoType } from \"..\"\r\nimport { VehicleType } from \"../enumerations\"\r\n\r\nexport type ShowConfigResponse = {\r\n defaultVehicleLookup?: VehicleLookupConfig\r\n configuredVehicleLookups: VehicleLookupConfig[]\r\n}\r\n\r\nexport type VehicleLookupConfig = {\r\n id: number\r\n description: string\r\n\r\n lookupTypeId: RegistrationNoType\r\n queryTypeId: QueryType\r\n\r\n isDefault: boolean\r\n isUsedInDefaultSearch: boolean\r\n isSelectable: boolean\r\n supportedVehicleTypes: VehicleType[]\r\n isUsedInAutoCompleteSearch?: boolean\r\n\r\n billingModuleId?: BillingModuleId\r\n\r\n countryCode?: string\r\n\r\n quota?: Quota\r\n}\r\n\r\nexport enum QueryType {\r\n Other = 0,\r\n PlateId = 1,\r\n Vin = 2,\r\n PlateIdOrVin = 3,\r\n}\r\n\r\nexport enum BillingModuleId {\r\n VinQuery = 18,\r\n Flatrate = 22,\r\n ItemizedBilling = 108,\r\n ItemizedBillingTruck = 208,\r\n}\r\n\r\nexport type Quota = {\r\n hasQuotaAvailable?: boolean\r\n limit?: number\r\n used?: number\r\n}\r\n\r\nexport type SelectedLookupType = {\r\n lookupTypeId?: number\r\n countryCode?: string\r\n}\r\n","import { ConstructionYear, EFuelTypes, ManufacturerBase, ModelSeriesBase, VehicleModel } from \".\"\r\nimport { RegistrationNoType } from \"../../enumerations\"\r\n\r\nexport type CarManufacturer = ManufacturerBase & {\r\n bodyTypeIds: Array\r\n}\r\n\r\nexport type CarMainModelSeries = {\r\n id: number\r\n description: string\r\n bodyTypeIds: Array\r\n carModelSeries: Array\r\n constructionYearFrom: ConstructionYear\r\n constructionYearTo: ConstructionYear\r\n thumbnail: string\r\n sortId: number // not used\r\n}\r\n\r\nexport type CarModelSeries = ModelSeriesBase & {\r\n bodyTypeIds: Array\r\n mainModelSeriesId: number\r\n mainModelSeriesDescription: string\r\n mainModelSeriesSortId: number // not used\r\n}\r\n\r\nexport type CarModel = VehicleModel & {\r\n bodyTypeIds?: Array // not used\r\n engineCapacityLiter?: number\r\n enginePowerKw?: number\r\n enginePowerHp?: number\r\n cylinderCount?: number\r\n fuelType?: string\r\n fuelTypeId?: EFuelTypes\r\n hasAutodataRepairTimes: boolean // not used\r\n hasAutodataInspectionData: boolean // not used\r\n hasAutodataTechnicalData: boolean // not used\r\n hasHaynesProTechnicalData: boolean // not used\r\n hasHaynesProInspectionData: boolean // not used\r\n priority: number // not used\r\n registrationNoDetails?: RegistrationNoDetailsSimple\r\n}\r\n\r\nexport type CarModelDetails = CarModel & {\r\n engineCapacityTaxation?: number\r\n voltage?: number\r\n hasABS: boolean\r\n hasTCS: boolean\r\n engineType?: string\r\n vehicleType?: string\r\n driveType?: string\r\n brakeType?: string\r\n brakeSystem?: string\r\n catalystType?: string\r\n transmissionType?: string\r\n fuelTankCapacity?: number\r\n fuelMixtureFormation?: string\r\n valvesPerCylinder?: number\r\n doorCount?: number\r\n bodyType?: string\r\n registrationNos?: Array\r\n}\r\n\r\nexport type ShowCarModelDetailsRequest = {\r\n modelId: number\r\n selectedLookupType?: RegistrationNoType\r\n registrationNoTypeId?: RegistrationNoType\r\n registrationNo?: string\r\n modelIdentifier?: AdditionalModelIdentifier\r\n forceUpdateRegistrationNoDetails?: boolean\r\n}\r\n\r\nexport type AdditionalModelIdentifier = {\r\n plateId?: string\r\n vin?: string\r\n initialRegistration?: Date\r\n}\r\n\r\nexport type ShowCarModelDetailsResponse = {\r\n manufacturer?: CarManufacturer\r\n modelSeries?: CarModelSeries\r\n modelDetails?: CarModelDetails\r\n alternativeModels?: Array\r\n conflictReason?: LookupConflictReason\r\n error?: CarLookupError\r\n}\r\n\r\nexport enum LookupConflictReason {\r\n NoConflict = 0,\r\n TecdocTypeNotMatch = 1,\r\n AdditionalModelIdentifierNotMatch = 2,\r\n AdditionalModelIdentifierNotUnique = 3,\r\n}\r\n\r\nexport type CarLookupError = {\r\n errorType: CarLookupErrorType\r\n errorMessage: string\r\n}\r\n\r\nexport enum CarLookupErrorType {\r\n None = 0,\r\n NoPrivilege = 1,\r\n Technical = 2,\r\n}\r\n\r\nexport type RegistrationNoDetailsSimple = {\r\n additionalDetails: Array\r\n initialRegistration?: Date\r\n nextGeneralInspection?: Date\r\n vin: string\r\n plateId: string\r\n engineCodes: Array\r\n registrationNo: string\r\n thirdPartyIds: Partial>\r\n}\r\n\r\nexport type RegistrationNoAttribute = {\r\n id?: number\r\n description: string\r\n value: string\r\n type?: number\r\n}\r\n\r\nexport type RegistrationNoDetails = RegistrationNoDetailsSimple & {\r\n chassisNumber: string\r\n manufacturer: string\r\n modelSeries: string\r\n model: string\r\n manufacturingDate: Date\r\n /** This is not the same as `engineCode` */\r\n engineNumber: string\r\n engineModel: string\r\n hasTurbo: string\r\n fuelType: string\r\n engineCapacity: string\r\n enginePowerKw: string\r\n enginePowerHp: string\r\n transmissionType: string\r\n gearCount: string\r\n bodyStyle: string\r\n cylinderCount: string\r\n valveCount: string\r\n driveAxle: string\r\n color: string\r\n /** Also known as `tecdocTypeId` */\r\n modelId: string\r\n typScheinNr: string\r\n constructionYearFrom: ConstructionYear\r\n constructionYearTo: ConstructionYear\r\n brakes: string\r\n importCondition: string\r\n esbGroup: string\r\n countryOfOrigin: string\r\n foundBySearchTerm: string\r\n vehicleType: number\r\n colors: Array\r\n equipments: Array\r\n vehicleTypeName: string\r\n container: string\r\n containerName: string\r\n datECode: string\r\n longlife?: boolean\r\n}\r\n\r\nexport type Color = {\r\n code: string\r\n id: string\r\n description: string\r\n}\r\n\r\nexport type Equipment = {\r\n label: string\r\n appraisalGroup: string\r\n classification: number\r\n number: number\r\n standardOrOptional: string\r\n manufacturerCode: string\r\n price: number\r\n}\r\n\r\n/**\r\n * @member SwissMasterNumber - is the \"Stammnummer\" from Switzerland. In V4 it's called Vrn... (NEXT-29365)\r\n */\r\nexport enum ThirdPartyIdType {\r\n Unknown = 0,\r\n DatECode = 1,\r\n /**\r\n * SwissMasterNumber is the \"Stammnummer\" from Switzerland. In V4 it's called Vrn... (NEXT-29365)\r\n */\r\n SwissMasterNumber = 2,\r\n}\r\n","import { RegistrationNoType } from \"../../enumerations\"\r\nimport { RegistrationNoDetails } from \"./cars\"\r\n\r\nexport * from \"./bikes\"\r\nexport * from \"./cars\"\r\nexport * from \"./trucks\"\r\n\r\nexport type ManufacturerBase = {\r\n id: number\r\n shortCode: string\r\n description: string\r\n priority: number\r\n thumbnail: string\r\n}\r\n\r\nexport type ModelSeriesBase = {\r\n id: number\r\n manufacturerId: number\r\n description: string\r\n constructionYearFrom?: ConstructionYear\r\n constructionYearTo?: ConstructionYear\r\n sortId: number // not used\r\n manufacturerThumbnail: string\r\n modelSeriesThumbnail: string\r\n modelSeriesImage: string\r\n priority: number // not used\r\n}\r\n\r\nexport type VehicleModel = {\r\n id: number\r\n manufacturerId: number\r\n modelSeriesId: number\r\n description: string\r\n fullDescription: string\r\n constructionYearFrom?: ConstructionYear\r\n constructionYearTo?: ConstructionYear\r\n sortId: number // not used\r\n engineCodes?: Array\r\n engineCapacityCcm?: number\r\n hasAwDocRepairTimes: boolean // not used\r\n manufacturerThumbnail: string\r\n modelSeriesThumbnail: string\r\n modelSeriesImage: string\r\n thumbnail: string\r\n image: string\r\n dataSourceId?: number\r\n /** MLE: 22.02.21 - Currently only supplied for `CarModel` */\r\n registrationNoDetails?: RegistrationNoDetails\r\n /** Added because of TMF: If this is filled it will always be the TecDoc ID. The `id` property will be the Online ID. */\r\n tecdocTypeId?: number\r\n /** Added because of TMF: If this is filled it will always be the Topmotive ID. The `id` property will be the Online ID. */\r\n topmotiveTypeId?: number\r\n countryCode?: string\r\n registrationNoTypeId?: RegistrationNoType\r\n}\r\n\r\nexport type ConstructionYear = {\r\n month: number\r\n year: number\r\n}\r\n\r\nexport type TirePressure = {\r\n frontLeft: string\r\n frontRight: string\r\n rearLeft: string\r\n rearRight: string\r\n unit: string\r\n}\r\n\r\nexport enum EFuelTypes {\r\n None = 0,\r\n // Benzin\r\n Petrol = 1,\r\n Diesel = 2,\r\n // Gas\r\n Gas = 3,\r\n // Gas\r\n NaturalGas = 6,\r\n // E-motor\r\n Electric = 11,\r\n // Hybrid\r\n PetrolElectric = 13,\r\n // Hybrid\r\n DieselElectric = 14,\r\n}\r\nexport type FuelType = {\r\n id: EFuelTypes\r\n value: string\r\n}\r\n","import { MileType, PriceDictionary } from \".\"\r\n\r\nexport type OrderVouchersShowSupplierArticleByVehicleRequest = {\r\n vehicleId: string\r\n /** Comma separated string with product group ids. If empty, all articles are shown. */\r\n productGroupFilterIds: string\r\n pageIndex?: number\r\n pageSize?: number\r\n}\r\n\r\nexport type OrderVouchersShowSupplierArticleByVehicleResponse = {\r\n vehicleId: string\r\n orderedSupplierArticles: Array\r\n}\r\n\r\nexport type OrderVoucherSupplierItem = {\r\n supplierId: number\r\n supplierArticleNumber: string\r\n}\r\n\r\nexport type OrderVoucherList = {\r\n orderVoucherId: string\r\n voucherNumber: string\r\n orderRecipient?: OrderRecipient\r\n orderNumbers?: Array\r\n orderDate: Date\r\n totals: VoucherTotals\r\n workTaskInfos: Array\r\n customerComment: string\r\n}\r\n\r\nexport type OrderRecipient = {\r\n warehouseId: string\r\n warehouseName: string\r\n distributorId: number\r\n distributorName: string\r\n}\r\n\r\ntype OrderNumber = {\r\n type?: OrderIdSource // undefined is the same as 0\r\n number: string\r\n}\r\n\r\nexport enum OrderIdSource {\r\n CatalogSystem = 0,\r\n User = 1,\r\n Wholesaler = 2,\r\n AdditionalWholesaler = 3,\r\n InvoiceNumber = 4,\r\n DeliveryNoteNumber = 5,\r\n NotYetDefined = 6,\r\n}\r\n\r\nexport type VoucherTotals = {\r\n totalPrices: PriceDictionary\r\n numberOfPositions: number\r\n numberOfParts: number\r\n}\r\n\r\nexport type VoucherWorkTaskInfo = {\r\n workTaskId: string\r\n workTaskNumber: string\r\n customerInfo?: VoucherCustomerInfo\r\n vehicleInfo?: VoucherVehicleInfo\r\n}\r\n\r\nexport type VoucherVehicleInfo = {\r\n id: string\r\n plateId: string\r\n displayName: string\r\n vin: string\r\n registrationNoType?: number\r\n registrationNo?: string\r\n registrationNoLabel?: string\r\n initialRegistration?: Date\r\n mileAge?: number\r\n mileType?: MileType\r\n vehicleImage?: string // Base64\r\n}\r\n\r\nexport type VoucherCustomerInfo = {\r\n id: string\r\n customerNumber: string\r\n displayName: string\r\n eMailAddress: string\r\n phone: string\r\n}\r\n","import { VehicleType, RepairTimeProvider, FittingPosition, WorkCategory, CostEstimationOptions } from \".\"\r\nimport { VatRate } from \"./vat-rate\"\r\n\r\nexport type RepairTime = {\r\n providerWorkId: string\r\n displayNumber?: string\r\n categoryOfWork: number\r\n description: string\r\n time: number\r\n linkageId?: string\r\n sortNo: number\r\n note?: string\r\n isMaintenanceWork: boolean // Temporal property until MaintenanceRepairTime or similar is defined\r\n includedWorks: IncludedWorkRequest[]\r\n productGroupIds?: number[]\r\n fittingSide?: FittingPosition\r\n oeReferenceNumber?: string\r\n}\r\n\r\nexport type IncludedWorkRequest = {\r\n providerWorkId: string\r\n isCalculable: boolean\r\n isVisible: boolean\r\n categoryOfWork: number\r\n description: string\r\n time: number\r\n sortNo: number\r\n}\r\n\r\nexport type HasRepairTimesRequest = {\r\n repairTimeProvider: RepairTimeProvider[]\r\n modelId: number\r\n vehicleType: VehicleType\r\n productGroupIds: number[]\r\n fittingSideFilter?: FittingPosition\r\n}\r\n\r\nexport type HasRepairTimesResponse = {\r\n productGroups: Record\r\n errors?: string[]\r\n}\r\n\r\nexport type GetMainServicesRequest = {\r\n repairTimeProvider: RepairTimeProvider\r\n modelId: number\r\n vehicleType: VehicleType\r\n query?: string\r\n nodeId?: number\r\n productGroupId?: string\r\n serviceIds?: string\r\n fittingSideFilter?: FittingPosition\r\n manufacturerId: number\r\n useManufacturerRepairTimeDivision: boolean\r\n defaultRepairTimeDivision: number\r\n}\r\n\r\nexport type GetMainServicesResponse = {\r\n mainServices: MainService[]\r\n repairTimeDivision: number\r\n}\r\n\r\nexport type MainService = ServiceBase & {\r\n noteId?: number\r\n note: ServiceNote\r\n attributes: MainServiceAttribute[]\r\n productGroupIds: number[]\r\n hasCalculatedServices: boolean\r\n hasPreparationWorks: boolean\r\n calculatedServices?: CalculatedService[]\r\n preparationWorks?: PreparationWork[]\r\n}\r\n\r\nexport type ServiceBase = {\r\n repairTimeNo: string\r\n repairTimeDisplayNo?: string\r\n description: string\r\n serviceType: string\r\n isCalculated: boolean\r\n sortId: number\r\n vehicleLinkageId?: number\r\n repairTime?: number\r\n oeReferenceNumber?: string\r\n}\r\n\r\nexport type RepairTimeRD = (MainService | PreparationWork) & {\r\n hourlyRate?: number\r\n}\r\n\r\nexport type MainServiceAttribute = {\r\n id?: number\r\n value: string\r\n description?: string\r\n abbreviation?: string\r\n unit?: string\r\n isBlockSeparator?: boolean\r\n}\r\n\r\nexport type ServiceNote = {\r\n id: number\r\n description: string\r\n}\r\n\r\nexport type CalculatedService = ServiceBase & {\r\n isCalculable: boolean\r\n isVisible: boolean\r\n}\r\n\r\nexport type PreparationWork = ServiceBase & {\r\n direction: ServiceDirection\r\n}\r\n\r\nexport enum ServiceDirection {\r\n None = 0,\r\n Include = 1,\r\n Pre = 2,\r\n Post = 3,\r\n Exclude = 4,\r\n}\r\n\r\nexport type ShowRepairTimesByIdsRequest = {\r\n repairTimes: RepairTimeRequest[]\r\n}\r\n\r\nexport type RepairTimeRequest = {\r\n id: string\r\n repairTimeProviderWorkId: string\r\n repairTimeProvider: RepairTimeProvider\r\n vehicleId: string\r\n}\r\n\r\nexport type ShowRepairTimesByIdsResponse = {\r\n mainWorks: MainWorkResponse[]\r\n errors: string[]\r\n}\r\n\r\nexport type MainWorkResponse = {\r\n id: string\r\n provider: RepairTimeProvider\r\n repairTimeProviderWorkId: string /// Repair Time Number, also known as AwNr, Arbeitswertenummer\r\n description: string /// Description also known as Inf, Information\r\n categoryOfWorkShortCode: string\r\n sortId: number /// Display Sequence Number, also known as SortNr, Sortierreihenfolge\r\n vehicleLinkageId?: number /// Internal Topmotive Id of a Vehicle-Article Relation, used to get the Linkage Attributes (VknKrit), also known as VknId, Verknüpfungsnummer\r\n repairTime?: Date /// Repair Time Value, also known as AW, Arbeitswert\r\n note: string\r\n productGroupIds: number[]\r\n includedWorks: IncludedWorkResponse[]\r\n oeReferenceNumber?: string /// OE code supplied by Haynes Pro via web service\r\n}\r\n\r\nexport type IncludedWorkResponse = {\r\n providerWorkId: string\r\n categoryOfWorkShortCode: string\r\n description: string\r\n repairTime: number\r\n sortId: number\r\n}\r\n\r\nexport type ShowManufacturerDivisionRequest = {\r\n repairTimeProvider: RepairTimeProvider\r\n manufacturerId: number\r\n}\r\n\r\nexport type ShowManufacturerDivisionResponse = {\r\n repairTimeDivision: number\r\n}\r\n\r\nexport type AddCustomWorkListRequest = {\r\n workTaskId: string\r\n vehicleId?: string\r\n customWorks: CustomWork[]\r\n repairTimeDivision?: number\r\n repairTimeProvider?: RepairTimeProvider\r\n usePercentageValues?: boolean\r\n costEstimationOptions?: CostEstimationOptions\r\n}\r\n\r\nexport type CustomWork = {\r\n customWorkNumber: string\r\n categoryOfWork: WorkCategory\r\n description: string\r\n time?: number\r\n hourlyRate?: number\r\n fixedPriceValue?: number\r\n rebate?: number\r\n surcharge?: number\r\n vatRate?: VatRate\r\n}\r\n\r\nexport type RepairTimesProvidersNames = \"awdoc\" | \"autodata\" | \"haynespro\" | \"tecrmi\"\r\n\r\nexport type RepairTimeProviderConfig = {\r\n id: RepairTimesProvidersNames\r\n /** @deprecated Use `disabledFunctions` instead. */\r\n disabled?: boolean | string // Expression to determine whether the provider is disabled or not. Must be evaluated when rendering in the bundle\r\n disabledFunction?: string\r\n name?: string\r\n route?: string\r\n sort?: number\r\n}\r\n","export function DefaultError() {\r\n return (\r\n
    \r\n

    Something went wrong

    \r\n

    In order to solve the problem you need to look into the browser console...

    \r\n
    \r\n )\r\n}\r\n","import { bindActionCreators, Dispatch, Action } from \"redux\"\r\nimport { connect } from \"react-redux\"\r\nimport { ComponentType } from \"react\"\r\n\r\ntype ConnectProps = { actions: T; state: unknown }\r\n\r\nexport function connectComponent(actions: T, component: ComponentType

    ): ComponentType>> {\r\n function mapStateToProps(state: {}, props: {}) {\r\n return {\r\n ...props,\r\n state,\r\n }\r\n }\r\n\r\n function mapDisptachToProps(dispatch: Dispatch>, props: {}) {\r\n return {\r\n ...props,\r\n actions: bindActionCreators((actions as any) || {}, dispatch),\r\n }\r\n }\r\n\r\n return connect(mapStateToProps, mapDisptachToProps)(component as any)\r\n}\r\n","import PropTypes from \"prop-types\"\r\nimport { Component, ComponentType, PropsWithChildren, createElement } from \"react\"\r\nimport { errorListener } from \"./errorListener\"\r\nimport { DefaultError } from \"./DefaultError\"\r\n\r\ntype ErrorBoundaryProps = PropsWithChildren<{\r\n errorComponent?: ComponentType\r\n}>\r\n\r\nexport default class ErrorBoundary extends Component {\r\n // eslint-disable-next-line\r\n static contextTypes = {\r\n // eslint-disable-next-line\r\n routes: PropTypes.array,\r\n }\r\n\r\n // eslint-disable-next-line\r\n context: { \r\n routes: string[]\r\n router: any\r\n }\r\n\r\n getContext() {\r\n return {\r\n // eslint-disable-next-line\r\n routes: [...(this.context.routes || []), this.context.router.route.match.path],\r\n }\r\n }\r\n\r\n constructor(props: any) {\r\n super(props)\r\n this.state = { hasError: false }\r\n }\r\n\r\n // Error handling\r\n componentDidCatch(error: any, info: any) {\r\n errorListener.forEach((listener) => {\r\n try {\r\n listener(error)\r\n } finally {\r\n }\r\n })\r\n this.setState({ hasError: true })\r\n console.error(error, info)\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n if (this.props.errorComponent) {\r\n return createElement(this.props.errorComponent)\r\n }\r\n return \r\n }\r\n return this.props.children\r\n }\r\n}\r\n","export const errorListener: Array<(error: any) => void> = []\r\n","import type { Dictionary } from \"..\"\r\n\r\nexport * from \"./validation\"\r\n\r\nexport {}\r\n\r\ndeclare global {\r\n interface Array {\r\n orderBy(selector: (item: T) => number | string | boolean | Date, descending?: boolean): T[]\r\n groupBy(selector: (item: T) => number | string): { [group: string]: T[] }\r\n }\r\n}\r\n\r\n// eslint-disable-next-line\r\nArray.prototype.orderBy = function (selector: (item: any) => number | string | boolean | Date, descending = false) {\r\n const list = this.map((value, index) => {\r\n return {\r\n index,\r\n value,\r\n criteria: selector(value),\r\n }\r\n })\r\n list.sort((left, right) => {\r\n const a = left.criteria\r\n const b = right.criteria\r\n let result = left.index - right.index\r\n if (a !== b) {\r\n if (a > b || a === undefined) {\r\n result = 1\r\n }\r\n if (a < b || b === undefined) {\r\n result = -1\r\n }\r\n }\r\n return descending ? -result : result\r\n })\r\n return list.map((x) => x.value)\r\n}\r\n\r\n// eslint-disable-next-line\r\nArray.prototype.groupBy = function (selector: (item: any) => number | string) {\r\n const result: { [group: string]: Array } = {}\r\n this.forEach((item) => {\r\n let group = selector(item)\r\n if (group == null) {\r\n group = \"\"\r\n }\r\n let list = result[group]\r\n if (!list) {\r\n list = []\r\n result[group] = list\r\n }\r\n list.push(item)\r\n })\r\n return result\r\n}\r\n\r\nexport function dictionaryToArray(dictionary: Dictionary) {\r\n return Object.keys(dictionary).map((key) => ({ key, value: dictionary[key] }))\r\n}\r\n","import { useDispatch } from \"react-redux\"\r\nimport { Action, bindActionCreators } from \"redux\"\r\n/**\r\n * helper for using actions easily inside a REACT.FC<{}>\r\n * @param {object} actions the object which containts all the actions\r\n * @param {string[]} args pick only the actions you want from the main actions object\r\n *\r\n * @example\r\n * before:\r\n * cosnt dispatch = useDispatch()\r\n * const actions = bindActionsCreators({BundleActions.setVehicle}, dispatch)\r\n * actions.setVehicle(...)\r\n *\r\n * after:\r\n * const actions = useActions(BundleActions,\"setVehicle\")\r\n * actions.setVehicle(...)\r\n */\r\n\r\nexport function useActions(actions: T, ...args: Array) {\r\n type ActionsType = { [k in S]: T[k] }\r\n type Dispatch = { (action: T): T }\r\n const dispatch = useDispatch>()\r\n\r\n const res = (args.length ? args : Object.keys(actions as any)).reduce(\r\n (obj: any, key: string) => ({\r\n ...obj,\r\n [key]: bindActionCreators(actions[key], dispatch),\r\n }),\r\n {} as ActionsType\r\n )\r\n return res as typeof args extends undefined ? T : ActionsType\r\n}\r\n","import { useContext } from \"react\"\r\nimport type { BundleMicroRenderer } from \"..\"\r\nimport { BundleMicroContext } from \"../lib/BundleMicroContext\"\r\n\r\nexport const useMicro = () => {\r\n const renderMicro = useContext(BundleMicroContext)! as BundleMicroRenderer\r\n return { renderMicro }\r\n}\r\n\r\n// TODO implement also a HOC for class components -> withMicros\r\n","import { KeyValuePair } from \"../models/configuration\"\r\n\r\nconst ValidTypesMap = {\r\n switch: true,\r\n component: true,\r\n module: true,\r\n reference: true,\r\n undefined: true,\r\n}\r\n\r\nexport function validType(kvp: KeyValuePair) {\r\n if (!kvp.value || ValidTypesMap[kvp.value.type]) {\r\n return true\r\n }\r\n console.error(`Configuration error: the key \"${kvp.key}\" has a invalid type: \"${kvp.value.type}\".`)\r\n return false\r\n}\r\n","import { ComponentType, createElement, FC, useContext } from \"react\"\r\nimport { BundleMicroContext } from \"../lib/BundleMicroContext\"\r\nimport { WithMicroProps } from \"../models/props\"\r\n\r\ntype Omit = Pick>\r\n\r\nexport function importMicro

    >(superClass: P) {\r\n return withMicro(superClass) as P\r\n}\r\n\r\nexport function withMicro

    >(component: ComponentType

    ): FC> {\r\n const withMicro: FC> = (currentProps) => {\r\n const context = useContext(BundleMicroContext)\r\n if (!context) {\r\n throw \"The bundle component doesn't provide a MicroContext\"\r\n }\r\n return createElement(component, {\r\n ...(currentProps as any),\r\n renderMicro: context,\r\n })\r\n }\r\n return withMicro\r\n}\r\n","import { History, Location, createMemoryHistory } from \"history\"\r\nimport * as PropTypes from \"prop-types\"\r\nimport { Component, ComponentClass, ComponentElement, ComponentType, PropsWithChildren, ReactElement, ReactNode, createElement } from \"react\"\r\nimport { RouteComponentProps, Router, RouterProps, withRouter } from \"react-router\"\r\nimport { Store } from \"redux\"\r\nimport { Subject } from \"rxjs\"\r\nimport \"./helpers\"\r\nimport { LayoutProps } from \"./layout\"\r\n// eslint-disable-next-line\r\nimport { createModule } from \"./lib/createModule\"\r\nimport type { AssetLoadProgress, AssetLoadProgressHandler } from \"./lib/loadAssets\"\r\nimport { loadAssets } from \"./lib/loadAssets\"\r\nimport { renderTemplate } from \"./lib/renderTemplate\"\r\nimport { BundleMicro, IBundle, IPlugin, TemplateRenderer } from \"./models/bundle\"\r\nimport { ChildConfig, Configuration } from \"./models/configuration\"\r\nimport { Dictionary } from \"./models/dictionary\"\r\nimport { Transition } from \"./models/transition\"\r\nimport { Transmission } from \"./models/transmission\"\r\nimport type { ModuleProps } from \"./module\"\r\nimport { DefaultError } from \"./DefaultError\"\r\nimport { errorListener } from \"./errorListener\"\r\n\r\nexport * from \"./connectComponent\"\r\nexport * from \"./helpers/useActions\"\r\nexport * from \"./helpers/useMicro\"\r\nexport * from \"./helpers/withMicro\"\r\nexport * from \"./layout\"\r\nexport * from \"./lib/createComponent\"\r\nexport * from \"./lib/loadAssets\"\r\n// eslint-disable-next-line\r\nexport * from \"./lib/withTemplate\"\r\nexport * from \"./lib/createMicros\"\r\nexport * from \"./models/bundle\"\r\nexport * from \"./models/configuration\"\r\nexport * from \"./models/dictionary\"\r\nexport * from \"./models/props\"\r\nexport * from \"./models/redux\"\r\nexport * from \"./models/transition\"\r\nexport * from \"./models/transmission\"\r\nexport * from \"./module\"\r\nexport * from \"./lib/BundleMicroContext\"\r\n\r\nconst VIEW_URL_SPLIT_CHAR = \"^\"\r\n\r\ntype BroadcastHandler = (payload: any) => void\r\n\r\nexport interface IContext {\r\n rootActions$: Subject\r\n pathPrefix: string\r\n config: Configuration\r\n plugins: Array<[IPlugin, Dictionary]>\r\n bundles: Dictionary\r\n bundlePromises: Dictionary>\r\n layouts: Dictionary>\r\n modules: Dictionary>\r\n transitions: Array\r\n stores: Dictionary>\r\n multiStores: Dictionary>\r\n errorComponent?: ComponentType\r\n assetLoadProgresses: Array\r\n assetLoadCount: number\r\n routes: { path: string; exact: boolean }[]\r\n broadcasts: Record\r\n}\r\n\r\nlet mainHistory: History\r\nlet views: {\r\n [name: string]: {\r\n listener: ViewListener\r\n urlSplitPosition: number\r\n }\r\n}\r\n\r\nlet context: IContext\r\n\r\nexport default class Morpheus {\r\n context: IContext\r\n\r\n onBundleInit?: (bundle: IBundle) => void\r\n\r\n onReady?: (stream: Subject) => void\r\n\r\n mainModule: ReactNode\r\n\r\n constructor(\r\n config: Configuration,\r\n bundles: Dictionary> = {},\r\n layouts: Dictionary> = {},\r\n transitions: Array = [],\r\n onBundleInit?: (bundle: IBundle) => void,\r\n onReady?: (stream: Subject) => void,\r\n errorComponent?: ComponentType\r\n ) {\r\n const bundlePromises: Dictionary> = {}\r\n const bundleClasses: Dictionary = {}\r\n\r\n // replace tilde in stylesUrl\r\n Object.keys(bundles).forEach((key) => {\r\n const bundle = bundles[key]\r\n if (bundle instanceof Promise) {\r\n bundlePromises[key] = bundle\r\n } else {\r\n bundleClasses[key] = bundle\r\n if (bundle.stylesUrl && bundle.stylesUrl.indexOf(\"~\") === 0) {\r\n bundle.stylesUrl = bundle.stylesUrl.substr(1)\r\n }\r\n }\r\n })\r\n\r\n context =\r\n (window as any).__MORPHEUS_CONTEXT__ =\r\n this.context =\r\n {\r\n rootActions$: new Subject(),\r\n pathPrefix: \"\",\r\n config,\r\n bundles: bundleClasses,\r\n bundlePromises,\r\n layouts,\r\n plugins: [],\r\n modules: {},\r\n transitions: transitions || [],\r\n stores: {},\r\n multiStores: {},\r\n errorComponent,\r\n assetLoadProgresses: [],\r\n assetLoadCount: 0,\r\n routes: [],\r\n broadcasts: {},\r\n }\r\n this.onBundleInit = onBundleInit\r\n this.onReady = onReady\r\n views = {}\r\n }\r\n\r\n loadAssets(onProgress?: AssetLoadProgressHandler) {\r\n return loadAssets(this.context, onProgress).then(() => {\r\n Object.keys(this.context.bundles).forEach((key) => {\r\n const bundle = this.context.bundles[key]\r\n bundle.components &&\r\n bundle.components.forEach((component) => {\r\n if (component.reducer) {\r\n console.warn(`${bundle.name}/${component.name}: reducer() is deprecated, please use reduce() instead.`)\r\n }\r\n if (component.receiver) {\r\n console.warn(`${bundle.name}/${component.name}: receiver() is deprecated, please use receive() instead.`)\r\n }\r\n if (component.transmitFilter) {\r\n console.warn(`${bundle.name}/${component.name}: transmitFilter() is deprecated, please use transmit() instead.`)\r\n }\r\n })\r\n if ((bundle as any).partials) {\r\n console.warn(`${bundle.name}: partials are deprecated, please use micros instead.`)\r\n }\r\n const micros = bundle.micros || ((bundle as any).partials as Array>)\r\n micros &&\r\n micros.forEach((micro) => {\r\n if (micro.reducer) {\r\n console.warn(`${bundle.name}/${micro.name}: reducer() is deprecated, please use reduce() instead.`)\r\n }\r\n })\r\n })\r\n })\r\n }\r\n\r\n error(message?: string) {\r\n message && console.error(message)\r\n this.mainModule = \r\n }\r\n\r\n init(history: History, pathPrefix?: string) {\r\n const { config, bundles, rootActions$ } = this.context\r\n\r\n mainHistory = history\r\n\r\n if (pathPrefix) {\r\n const match = /^\\/?(.+)\\/?$/.exec(pathPrefix)\r\n if (match) {\r\n this.context.pathPrefix = `/${match[1]}`\r\n }\r\n }\r\n\r\n if (!config.modules) {\r\n return this.error(\"No module configured.\")\r\n }\r\n\r\n if (!config.main) {\r\n return this.error(\"Parameter 'main' needs to be set.\")\r\n }\r\n\r\n const mainConfig = config.modules[config.main]\r\n if (!mainConfig) {\r\n return this.error(`The main module '${config.main} can't be found.`)\r\n }\r\n\r\n // Initialize bundles with parameters before creating the modules (and the redux stores)\r\n // because the config values could be required for setting the default state.\r\n Object.entries(bundles).forEach(([key, bundle]) => {\r\n const bundleConf = config.bundles?.[key]\r\n\r\n if (bundle && bundleConf) {\r\n const initializedConfigParams = bundle.init(bundleConf.params)\r\n if (initializedConfigParams) {\r\n config.bundles[key].params = initializedConfigParams\r\n }\r\n }\r\n\r\n this.onBundleInit?.(bundle)\r\n })\r\n\r\n // get all plugins\r\n if (config.plugins) {\r\n Object.keys(config.plugins).forEach((pluginKey) => {\r\n const pluginConfig = config.plugins![pluginKey]\r\n const bundle = context.bundles[pluginConfig.bundle]\r\n const plugin = (bundle?.plugins || []).find((x) => x.name == pluginConfig.name)\r\n\r\n if (!plugin) {\r\n console.warn(`Plugin ${pluginConfig.name} of bundle ${pluginConfig.bundle} not found.`)\r\n return\r\n }\r\n\r\n context.plugins.push([plugin, pluginConfig.props || {}])\r\n })\r\n }\r\n\r\n this.onReady && this.onReady(this.context.rootActions$)\r\n\r\n if ((window as any).__NEXT_DEVTOOLS_EXTENSION__?.enabled) {\r\n ;(window as any).__NEXT_DEVTOOLS_EXTENSION__.getContext = () => context\r\n }\r\n\r\n this.mainModule = createModule(this.context, config.main, mainConfig, rootActions$)\r\n }\r\n\r\n addBroadcastHandler(topic: string, handler: BroadcastHandler) {\r\n let handlerList = this.context.broadcasts[topic] ?? []\r\n if (!handlerList.includes(handler)) {\r\n handlerList = [...handlerList, handler]\r\n this.context.broadcasts[topic] = handlerList\r\n }\r\n return () => {\r\n this.context.broadcasts[topic] = handlerList.filter((x) => x !== handler)\r\n }\r\n }\r\n\r\n render(): ReactNode {\r\n return this.mainModule\r\n }\r\n\r\n createView(name: string, listener: ViewListener): ReactElement {\r\n const paramKey = `(${name})`\r\n\r\n const params = new URLSearchParams(mainHistory.location.search)\r\n const viewUrl = params.get(paramKey)\r\n\r\n listener(viewUrl ? \"OPEN\" : \"CLOSE\")\r\n\r\n const urlSplitPosition = viewUrl ? viewUrl.indexOf(VIEW_URL_SPLIT_CHAR) : 0\r\n views[name] = {\r\n listener,\r\n urlSplitPosition,\r\n }\r\n\r\n const viewHistory = createMemoryHistory({\r\n initialEntries: viewUrl ? [viewUrl.replace(VIEW_URL_SPLIT_CHAR, \"\")] : undefined,\r\n initialIndex: 0,\r\n })\r\n\r\n mainHistory.listen((location: Location) => {\r\n const params = new URLSearchParams(location.search)\r\n let viewUrl = params.get(paramKey)\r\n if (!viewUrl) {\r\n listener(\"CLOSE\")\r\n return\r\n }\r\n views[name].urlSplitPosition = viewUrl.indexOf(VIEW_URL_SPLIT_CHAR)\r\n\r\n // Check if viewHistory is up to date\r\n viewUrl = viewUrl.replace(VIEW_URL_SPLIT_CHAR, \"\")\r\n if (viewHistory.location.pathname + viewHistory.location.search != viewUrl) {\r\n viewHistory.push(viewUrl.replace(VIEW_URL_SPLIT_CHAR, \"\"))\r\n }\r\n\r\n listener(\"OPEN\")\r\n })\r\n\r\n viewHistory.listen((location: Location) => {\r\n if (viewHistory.action !== \"PUSH\" && viewHistory.action !== \"REPLACE\") {\r\n return\r\n }\r\n const pos = views[name].urlSplitPosition\r\n const mainHistoryParams = new URLSearchParams(mainHistory.location.search)\r\n let mainHistoryViewPath = mainHistoryParams.get(paramKey) || \"\"\r\n mainHistoryViewPath = `${mainHistoryViewPath.substr(0, pos)}${mainHistoryViewPath.substr(pos + 1)}`\r\n // Check if the mainHistory is up to date\r\n if (mainHistoryViewPath != location.pathname + location.search) {\r\n const path = location.pathname\r\n mainHistoryParams.set(paramKey, `${path.substr(0, pos)}${VIEW_URL_SPLIT_CHAR}${path.substr(pos)}${location.search || \"\"}`)\r\n const url = `${mainHistory.location.pathname}?${mainHistoryParams.toString()}`\r\n\r\n switch (viewHistory.action) {\r\n case \"PUSH\":\r\n mainHistory.push(url)\r\n break\r\n case \"REPLACE\":\r\n mainHistory.replace(url)\r\n break\r\n }\r\n }\r\n })\r\n\r\n class View extends Component> {\r\n // eslint-disable-next-line\r\n static childContextTypes = {\r\n view: PropTypes.string.isRequired,\r\n urlSplitPosition: PropTypes.number,\r\n }\r\n\r\n getChildContext() {\r\n return {\r\n view: name,\r\n urlSplitPosition: views[name].urlSplitPosition,\r\n }\r\n }\r\n\r\n render() {\r\n return this.props.children\r\n }\r\n }\r\n\r\n const router = createElement(Router, { history: viewHistory }, createElement(withRouter(View), undefined, this.mainModule))\r\n\r\n return router\r\n }\r\n\r\n static showView(name: string, url: string, redirectUrl?: string) {\r\n const paramKey = `(${name})`\r\n const params = new URLSearchParams(mainHistory.location.search)\r\n params.set(paramKey, url)\r\n params.delete(\"mp\")\r\n params.delete(\"ms\")\r\n mainHistory.push(`${redirectUrl || mainHistory.location.pathname}?${params.toString()}`)\r\n }\r\n\r\n static closeView(name: string, redirectUrl?: string) {\r\n const paramKey = `(${name})`\r\n const params = new URLSearchParams(mainHistory.location.search)\r\n params.delete(paramKey)\r\n\r\n const url = redirectUrl || `${mainHistory.location.pathname}?${params.toString()}`\r\n mainHistory.push(url)\r\n }\r\n\r\n static anyOpenView(name?: string) {\r\n const decodedUrl = decodeURIComponent(location.search)\r\n return name ? decodedUrl.indexOf(`(${name})`) > 0 : /\\((\\d|\\w)*\\)/.test(decodedUrl)\r\n }\r\n\r\n static renderTemplate(bundleName: string, name: string, renderer: R) {\r\n return renderTemplate(context, bundleName, name, renderer)\r\n }\r\n\r\n static addErrorListener(listener: (error: any) => void): () => void {\r\n function removeListener(listener: (error: any) => void) {\r\n const pos = errorListener.indexOf((x) => x == listener)\r\n if (pos != -1) {\r\n errorListener.splice(pos, 1)\r\n }\r\n }\r\n if (!errorListener.some((x) => x == listener)) {\r\n errorListener.push(listener)\r\n }\r\n return removeListener.bind(undefined, listener)\r\n }\r\n\r\n static getHistory(): History {\r\n return mainHistory\r\n }\r\n\r\n /**\r\n * returns the global parameters of the catalog\r\n * if bundle parameters is pased it returns specific bundle parameters\r\n * @param bundle optional -- name of specific bundle (example: 'parts')\r\n */\r\n static getParams(bundle?: string): T {\r\n let params = {}\r\n if (bundle) {\r\n params = context.config.bundles?.[bundle]?.params ?? {}\r\n } else {\r\n params = context.config.params ?? {}\r\n }\r\n return params as T\r\n }\r\n}\r\n\r\nexport type ViewListener = (action: \"OPEN\" | \"CLOSE\") => void\r\n","import { Component, createElement, ReactNode, ComponentClass, PropsWithChildren } from \"react\"\r\nimport { Dictionary } from \"./models/dictionary\"\r\n\r\nexport type LayoutClass = ComponentClass\r\n\r\nexport type LayoutProps = {\r\n children: Dictionary>\r\n slotClassNames?: Array | Dictionary\r\n props?: TProps\r\n setModuleVisibility(visible: boolean): void\r\n}\r\n\r\nexport class Layout extends Component> {\r\n renderSlot(position: number | string): ReactNode {\r\n if (!this.props.children[position]) {\r\n return\r\n }\r\n\r\n let className = `layout__slot layout__slot-${position}`\r\n\r\n let { slotClassNames } = this.props\r\n\r\n if (slotClassNames) {\r\n // Legacy fallback:\r\n // If the position is supplied as string and the slotClassNames as array\r\n // the index signatures are not compatible and the array has to be mapped to an object\r\n // with the keys equal to the array indices\r\n if (typeof position == \"string\" && Array.isArray(slotClassNames)) {\r\n slotClassNames = { ...slotClassNames }\r\n }\r\n\r\n // Fix typescript index signature error\r\n slotClassNames = slotClassNames as Dictionary\r\n\r\n if (slotClassNames[position]) {\r\n className += ` ${slotClassNames[position]}`\r\n }\r\n }\r\n\r\n return createElement(\"div\", { className }, !!this.props.children[position].length && this.props.children[position].map((element) => element))\r\n }\r\n}\r\n","import { createContext } from \"react\"\r\n\r\nexport const BundleMicroContext = createContext(() => \"No bundle component found\")\r\n","// Rekonstruktion der absoluten Route des Moduls\r\nexport function createAbsoluteRoute(route?: string, parentRoute?: string): { path: string; exact: boolean } {\r\n const result = {\r\n path: parentRoute || \"\",\r\n exact: (route || \"\").indexOf(\"!\") === 0,\r\n }\r\n\r\n result.path = `${result.path}/${(route || \"\").replace(\"!\", \"\")}`.replace(\"//\", \"/\")\r\n return result\r\n}\r\n","import { Component, ComponentType, ReactNode, createElement } from \"react\"\r\nimport { Route, Switch, RouterChildContext, useParams } from \"react-router\"\r\nimport { createStore, applyMiddleware, Action, compose } from \"redux\"\r\nimport thunk from \"redux-thunk\"\r\nimport { Subject } from \"rxjs\"\r\nimport * as PropTypes from \"prop-types\"\r\nimport { compile } from \"path-to-regexp\"\r\nimport type { Action as MorpheusAction, IContext, ComponentConfig, Transmission, PayloadAction } from \"..\"\r\n\r\nimport ErrorBoundary from \"../error-boundary\"\r\nimport { createAbsoluteRoute } from \"./createAbsoluteRoute\"\r\nimport { ComponentProps } from \"../models/configuration\"\r\nimport { Dictionary } from \"../models/dictionary\"\r\nimport { executeConditionalPlugin, executePlugin } from \"./executePlugin\"\r\nimport { createMicro } from \"./createMicros\"\r\nimport { BundleMicroContext } from \"./BundleMicroContext\"\r\n\r\nlet transitionDeprecationShowed = false\r\n\r\nconst store_debug_bundles: string[] = JSON.parse(window.localStorage?.getItem(\"store_debug_bundles\") ?? \"[]\")\r\nconst store_debug_names: string[] = JSON.parse(window.localStorage?.getItem(\"store_debug_names\") ?? \"[]\")\r\n\r\n// Erstellt Komponente und dazugehörige Kommunikationswege\r\nexport function createComponent(\r\n context: IContext,\r\n key: string,\r\n componentConfig: ComponentConfig,\r\n moduleActions$: Subject,\r\n parentKey: string,\r\n parentRoute: string\r\n): ReactNode {\r\n const bundle = context.bundles[componentConfig.bundle]\r\n if (!bundle) {\r\n console.info(`Bundle '${componentConfig.bundle}' not found.`)\r\n return\r\n }\r\n if (!bundle.components) {\r\n console.info(`Bundle '${componentConfig.bundle}': No components found.`)\r\n return\r\n }\r\n const component = bundle.components.find((x) => x.name == componentConfig.component)\r\n if (!component) {\r\n console.info(`Bundle '${componentConfig.bundle}': Component '${componentConfig.component}' not found.`)\r\n return\r\n }\r\n\r\n const componentKey = `${parentKey}/${key}`\r\n\r\n const props: any = {\r\n ...(componentConfig.props || {}), // Wenn in der Config props übergeben wurden.\r\n key: componentKey,\r\n }\r\n\r\n if (componentConfig.moduleProps) {\r\n props.moduleProps = componentConfig.moduleProps\r\n }\r\n\r\n let store = componentConfig.storeId ? context.multiStores[componentConfig.storeId] : undefined\r\n\r\n if (!store) {\r\n const reduce = component.reduce || component.reducer || ((state = {}) => state)\r\n\r\n // To be able to reset a store, we need a wrapper around the reducer\r\n const extReduce = (state: any, action: Action) => {\r\n if (typeof action != \"function\" && action.type == \"@@redux/INIT\") {\r\n return reduce(undefined, action)\r\n }\r\n return reduce(state, action)\r\n }\r\n\r\n let composeEnhancers = compose\r\n if (process.env.NODE_ENV != \"production\") {\r\n const devTool = (window as any)?.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n if (store_debug_bundles.includes(bundle.name) || (store_debug_names.includes(component.name) && devTool)) {\r\n // console.warn(`${componentConfig.bundle}-${component.name} it's in debug mode (Please remove debug:true from bundle definition)`)\r\n composeEnhancers = devTool({\r\n name: componentConfig.storeId ?? `${componentConfig.bundle}_${componentConfig.component}`,\r\n })\r\n }\r\n }\r\n\r\n store = createStore(\r\n extReduce,\r\n composeEnhancers(\r\n applyMiddleware(thunk, () => (next) => (action: MorpheusAction | Function) => {\r\n next(action as Action)\r\n // Der TransmitFilter kann dazu verwendet werden Actions aus Redux nach außerhalb der Komponente zu senden\r\n const transmit = component.transmit || component.transmitFilter\r\n if (typeof action != \"function\" && transmit) {\r\n const transmitAction = transmit(action as PayloadAction)\r\n if (transmitAction) {\r\n moduleActions$.next({\r\n module: componentKey,\r\n bundle: transmitAction.broadcast ? \"*\" : componentConfig.bundle,\r\n component: componentConfig.component,\r\n componentId: componentConfig.id,\r\n action: transmitAction,\r\n received: [],\r\n })\r\n }\r\n }\r\n })\r\n )\r\n )\r\n\r\n if (componentConfig.storeId) {\r\n context.multiStores[componentConfig.storeId] = store\r\n }\r\n\r\n // Actions die aus einer anderen Komponente nach außen gegeben werden, werden hier in Empfang genommen\r\n const receive = component.receive || component.receiver\r\n if (receive) {\r\n moduleActions$.subscribe((transmission) => {\r\n try {\r\n store = store!\r\n // if the action is targetted and the current component does not match the action target do nothing\r\n if (transmission.action.targetComponentId && transmission.action.targetComponentId != componentConfig.id) {\r\n return\r\n }\r\n\r\n // If the transmission already has received from this component do nothing\r\n if (transmission.received.some((x) => x == componentKey)) {\r\n return\r\n }\r\n transmission.received.push(componentKey)\r\n\r\n if (\r\n (bundle.name == transmission.bundle &&\r\n (component.name != transmission.component ||\r\n (componentConfig.id != undefined && transmission.componentId != componentConfig.id))) ||\r\n transmission.bundle == \"*\"\r\n ) {\r\n receive(transmission.action, store.dispatch, store.getState)\r\n }\r\n const transition = context.transitions.find(\r\n (x) =>\r\n (x.transmit.bundle || (x.transmit as any).toolkit) == transmission.bundle &&\r\n x.transmit.action == transmission.action.type &&\r\n (x.receive.bundle || (x.receive as any).toolkit) == bundle.name\r\n )\r\n if (transition) {\r\n if (!transitionDeprecationShowed && (transition.transmit as any).toolkit) {\r\n transitionDeprecationShowed = true\r\n console.warn(transition, `Transition: toolkit is deprecated, please use bundle) instead.`)\r\n }\r\n const action = {\r\n type: transition.receive.action,\r\n payload: (transition.mapper && transition.mapper(transmission.action.payload)) || transmission.action.payload,\r\n }\r\n receive(action, store.dispatch, store.getState)\r\n }\r\n } catch (ex) {\r\n console.error(`Error while executing method receive of bundle \"${bundle.name}\", component \"${component.name}\"`, ex, transmission)\r\n }\r\n })\r\n }\r\n }\r\n\r\n const route = createAbsoluteRoute(componentConfig.route, parentRoute)\r\n\r\n props.store = context.stores[componentKey] = store\r\n\r\n if (!component.component) {\r\n return\r\n }\r\n\r\n const componentElement = createElement(() => {\r\n const routerParams = useParams()\r\n return createElement(ComponentBoundary, {\r\n key: componentKey,\r\n context,\r\n component: component.component,\r\n componentProps: {\r\n ...props,\r\n key: componentKey,\r\n __config: componentConfig,\r\n },\r\n routerParams,\r\n })\r\n })\r\n\r\n const wrappedComponent = createElement(\r\n BundleMicroContext.Provider,\r\n {\r\n value: createMicro.bind(undefined, context, componentConfig, moduleActions$, componentKey),\r\n },\r\n componentElement\r\n )\r\n\r\n if (componentConfig.route == undefined) {\r\n return createElement(ErrorBoundary, { key: componentKey, errorComponent: context.errorComponent }, wrappedComponent)\r\n }\r\n\r\n // Erstelle eine RouteComponent mit der Komponente falls diese nur bei einer bestimmten Route angezeigt wird\r\n const getRoutedComponent = () => {\r\n return createElement(ErrorBoundary, { key: componentKey, errorComponent: context.errorComponent }, wrappedComponent)\r\n }\r\n context.routes.push(route)\r\n\r\n return createElement(\r\n Switch,\r\n { key: componentKey }, // we have to create a switch with key before react-router is doing that without key\r\n createElement(Route, {\r\n ...route,\r\n component: getRoutedComponent,\r\n key: componentKey,\r\n })\r\n )\r\n}\r\n\r\nconst PATH_TRAVERSE = /~(\\d)~/\r\n\r\nexport type ComponentBoundaryProps = {\r\n context: IContext\r\n component: ComponentType\r\n componentProps: ComponentProps\r\n routerParams: any\r\n}\r\n\r\nclass ComponentBoundary extends Component {\r\n private cancelRender: boolean\r\n\r\n // eslint-disable-next-line\r\n static contextTypes = {\r\n // eslint-disable-next-line\r\n router: PropTypes.object,\r\n // eslint-disable-next-line\r\n routes: PropTypes.array,\r\n }\r\n\r\n constructor(props: ComponentBoundaryProps) {\r\n super(props)\r\n this.cancelRender = executeConditionalPlugin(props.context, props, \"COMPONENT/SHOULD_RENDER\") === false\r\n }\r\n\r\n // eslint-disable-next-line\r\n context: RouterChildContext & {\r\n routes: Array\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n executePlugin(this.props.context, this.props, \"COMPONENT/MOUNT\")\r\n }\r\n\r\n componentWillUnmount() {\r\n executePlugin(this.props.context, this.props, \"COMPONENT/UNMOUNT\")\r\n }\r\n\r\n componentDidUpdate() {\r\n executePlugin(this.props.context, this.props, \"COMPONENT/UPDATE\")\r\n }\r\n\r\n render() {\r\n if (this.cancelRender) {\r\n return null\r\n }\r\n // rewrite routes and add urls\r\n let { componentProps } = this.props\r\n let { routes } = componentProps\r\n\r\n if (routes) {\r\n const urls: Dictionary = {}\r\n\r\n Object.keys(routes).forEach((key) => {\r\n if (!Array.isArray(this.context.routes)) {\r\n return\r\n }\r\n\r\n const item = routes![key]\r\n if (typeof item != \"string\") {\r\n return\r\n }\r\n\r\n const match = PATH_TRAVERSE.exec(item)\r\n if (match) {\r\n const contextRoutes = this.context.routes!\r\n const index = contextRoutes.length - 1 - parseInt(match[1])\r\n\r\n if (index < 0 || index >= contextRoutes.length) {\r\n return\r\n }\r\n\r\n routes = {\r\n ...routes,\r\n [key]: item.replace(PATH_TRAVERSE, contextRoutes[index]),\r\n }\r\n }\r\n\r\n const url = decodeURIComponent(renderRoute(routes![key], this.props.routerParams)!)\r\n if (url) {\r\n urls[key] = url\r\n }\r\n })\r\n\r\n componentProps = { ...componentProps, routes, urls }\r\n }\r\n\r\n return createElement(this.props.component, componentProps)\r\n }\r\n}\r\n\r\nfunction renderRoute(path: string, params: Dictionary) {\r\n if (!path) {\r\n return\r\n }\r\n try {\r\n const stringParams: Dictionary = {}\r\n Object.keys(params).forEach((key) => (stringParams[key] = params[key] != null ? String(params[key]) : \"\"))\r\n path = path.replace(\"//\", \"/\")\r\n return compile(path)(stringParams)\r\n } catch {}\r\n}\r\n","import { Action, applyMiddleware, compose, createStore } from \"redux\"\r\nimport thunk from \"redux-thunk\"\r\nimport { Subject } from \"rxjs\"\r\nimport { createElement, ReactNode } from \"react\"\r\nimport type { ComponentConfig, IContext, PayloadAction, Transmission } from \"..\"\r\nimport { BundleMicroContext } from \"./BundleMicroContext\"\r\n\r\nconst showMicrosLogs = false //! !localStorage.getItem(\"showMicrosLogs\")\r\n\r\nconst store_debug_bundles: string[] = JSON.parse(window.localStorage?.getItem(\"store_debug_bundles\") ?? \"[]\")\r\nconst store_debug_names: string[] = JSON.parse(window.localStorage?.getItem(\"store_debug_names\") ?? \"[]\")\r\n\r\n// create the component for the new renderMicro function\r\nexport function createMicro(\r\n context: IContext,\r\n componentConfig: ComponentConfig,\r\n moduleActions$: Subject,\r\n parentKey: string,\r\n bundleName: string,\r\n microName: string,\r\n props: any = {}\r\n): ReactNode {\r\n const bundle = context.bundles[bundleName]\r\n if (!bundle || !bundle.micros) {\r\n showMicrosLogs && console.warn(`The bundle ${bundleName} cannot be found }`)\r\n return\r\n }\r\n\r\n const micro = bundle.micros.find((x) => x.name == microName)\r\n\r\n if (!micro || !micro.component) {\r\n showMicrosLogs && console.warn(`The micro ${microName} from ${bundleName} cannot be found`)\r\n return\r\n }\r\n\r\n const key = `${bundleName}_${microName}`\r\n const microKey = `${parentKey}/${key}`\r\n\r\n if (micro.reduce) {\r\n const store = context.stores[microKey]\r\n if (!store) {\r\n const extReduce = (state: any, action: Action) => {\r\n if (micro.resetOnWorktaskChange && typeof action != \"function\" && action.type == \"@@redux/INIT\") {\r\n return micro.reduce!(undefined, action)\r\n }\r\n return micro.reduce!(state, action)\r\n }\r\n\r\n let composeEnhancers = compose\r\n if (process.env.NODE_ENV != \"production\") {\r\n const devTool = (window as any)?.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n if (store_debug_bundles.includes(bundle.name) || (store_debug_names.includes(micro.name) && devTool)) {\r\n // console.warn(`${componentConfig.bundle}-${component.name} it's in debug mode (Please remove debug:true from bundle definition)`)\r\n composeEnhancers = devTool({\r\n name: `MICRO_${componentConfig.bundle}_${componentConfig.component}`,\r\n })\r\n }\r\n }\r\n\r\n context.stores[microKey] = createStore(\r\n extReduce,\r\n composeEnhancers(\r\n applyMiddleware(thunk, (_) => (next) => (action: {} | Function) => {\r\n next(action as Action)\r\n const { transmit } = micro\r\n if (typeof action != \"function\" && transmit) {\r\n const transmitAction = transmit(action as PayloadAction)\r\n if (transmitAction) {\r\n moduleActions$.next({\r\n module: microKey,\r\n bundle: bundleName,\r\n component: microName,\r\n action: transmitAction,\r\n received: [],\r\n })\r\n }\r\n }\r\n })\r\n )\r\n )\r\n }\r\n props.store = context.stores[microKey]\r\n }\r\n\r\n const component = createElement(micro.component, { ...props, key: `micro--${key}` })\r\n return createElement(\r\n BundleMicroContext.Provider,\r\n { value: createMicro.bind(undefined, context, componentConfig, moduleActions$, microKey) },\r\n component\r\n )\r\n}\r\n","import { Route } from \"react-router\"\r\nimport { Subject } from \"rxjs\"\r\nimport { map, filter } from \"rxjs/operators\"\r\nimport { createElement, ReactNode } from \"react\"\r\nimport { type IContext, type Transmission, type ModuleConfig, type Dictionary, ModuleComponent } from \"..\"\r\n// eslint-disable-next-line\r\nimport { createSwitch } from \"./createSwitch\"\r\n// eslint-disable-next-line\r\nimport { createComponent } from \"./createComponent\"\r\nimport { createAbsoluteRoute } from \"./createAbsoluteRoute\"\r\nimport { ModuleChildConfig } from \"../models/configuration\"\r\nimport { dictionaryToArray, validType } from \"../helpers\"\r\n\r\n// Erstellen eines Moduls, das ein Layout und die darin enthaltenen Komponenten und Submodule umfasst\r\nexport function createModule(\r\n context: IContext,\r\n key: string,\r\n moduleConfig: ModuleConfig,\r\n parentActions$: Subject,\r\n parentKey?: string,\r\n parentRoute?: string\r\n): ReactNode {\r\n const moduleActions$ = new Subject()\r\n // moduleActions$.subscribe(console.log.bind(null, config.name)) // Remove before Flight\r\n const layout = context.layouts[moduleConfig.layout]\r\n if (!layout) {\r\n console.warn(`Layout not found: ${moduleConfig.layout}`)\r\n return\r\n }\r\n\r\n const moduleKey = `${parentKey || \"\"}/${key}`\r\n\r\n const route = createAbsoluteRoute(moduleConfig.route, parentRoute)\r\n context.routes.push(route)\r\n const children = createChildren(context, moduleConfig, moduleActions$, moduleKey, route.path)\r\n\r\n // Intermodular communication\r\n\r\n // take all parentAction and put it into this moduleActions stream\r\n parentActions$.pipe(map((x) => ({ ...x, incoming: true }))).subscribe(moduleActions$)\r\n\r\n const { parentTransit } = moduleConfig\r\n\r\n if (parentTransit) {\r\n if (parentTransit === true) {\r\n // send all messages to parent\r\n moduleActions$.pipe(filter((x) => !x.incoming)).subscribe(parentActions$)\r\n } else if (!Array.isArray(parentTransit)) {\r\n console.error(`Module [${key}]: parentTransmit must be an Array!`)\r\n } else if (parentTransit.length) {\r\n moduleActions$\r\n .pipe(\r\n filter(\r\n (x) =>\r\n !x.incoming &&\r\n !!parentTransit &&\r\n parentTransit.some((y) => {\r\n if (y.bundle != x.bundle) {\r\n return false\r\n }\r\n if (Array.isArray(y.action)) {\r\n return (y.action as Array).some((z) => z == x.action.type)\r\n }\r\n return (y.action as string) == x.action.type\r\n })\r\n )\r\n )\r\n .subscribe(parentActions$)\r\n }\r\n }\r\n\r\n const module = () => (\r\n \r\n )\r\n\r\n return createElement(Route, {\r\n ...route,\r\n component: module,\r\n key,\r\n })\r\n}\r\n\r\n// Erstellen aller Views die in einem Layout verwendet werden\r\nfunction createChildren(\r\n context: IContext,\r\n moduleConfig: ModuleConfig,\r\n moduleActions$: Subject,\r\n parentKey: string,\r\n parentRoute: string\r\n): Dictionary> {\r\n const slots: Dictionary> = {}\r\n\r\n dictionaryToArray(moduleConfig.children)\r\n .filter(validType)\r\n .orderBy((x) => (x.value.sort != null ? x.value.sort : Number.MAX_VALUE))\r\n .forEach((x) => {\r\n const slotIndex = x.value.slot || 0\r\n if (!slots[slotIndex]) {\r\n slots[slotIndex] = [x]\r\n return\r\n }\r\n slots[slotIndex].push(x)\r\n })\r\n\r\n const children: Dictionary> = {}\r\n\r\n dictionaryToArray(slots).forEach((slot) => {\r\n children[slot.key] = slot.value\r\n .filter((keyValue) => {\r\n const child = keyValue.value\r\n if (child.type == \"component\" && (child.disabled || !child.bundle || !context.bundles[child.bundle])) {\r\n return false\r\n }\r\n return true\r\n })\r\n .map((keyValue) => {\r\n const { key } = keyValue\r\n const child = keyValue.value\r\n const { props } = moduleConfig\r\n switch (child.type) {\r\n case \"switch\": {\r\n const switchConfig = {\r\n ...child,\r\n moduleProps: {\r\n ...(child.props || {}),\r\n ...props,\r\n },\r\n }\r\n return createSwitch(context, key, switchConfig, moduleActions$, parentKey, parentRoute)\r\n }\r\n case \"component\": {\r\n const componentConfig = {\r\n ...child,\r\n moduleProps: {\r\n ...(child.moduleProps || {}),\r\n ...props,\r\n },\r\n }\r\n return createComponent(context, key, componentConfig, moduleActions$, parentKey, parentRoute)\r\n }\r\n case \"module\": {\r\n const moduleConfig = {\r\n ...child,\r\n props: {\r\n ...(child.props || {}),\r\n ...props,\r\n },\r\n }\r\n return createModule(context, key, moduleConfig, moduleActions$, parentKey, parentRoute)\r\n }\r\n }\r\n })\r\n })\r\n\r\n return children\r\n}\r\n","import { createElement, ReactNode } from \"react\"\r\nimport { Switch } from \"react-router\"\r\nimport { Subject } from \"rxjs\"\r\nimport type { IContext, SwitchConfig, Transmission } from \"..\"\r\nimport { createAbsoluteRoute } from \"./createAbsoluteRoute\"\r\n// eslint-disable-next-line\r\nimport { createModule } from \"./createModule\"\r\n\r\n// Erstellt einen Switch, der abhängig der URL zwischen Untermodulen umschalten kann\r\nexport function createSwitch(\r\n context: IContext,\r\n key: string,\r\n switchConfig: SwitchConfig,\r\n moduleActions$: Subject,\r\n parentKey: string,\r\n parentRoute: string\r\n): ReactNode {\r\n const className = `layout__switch ${switchConfig.className ? switchConfig.className : \"\"}`\r\n const switchKey = `${parentKey}/${key}`\r\n\r\n const children = Object.keys(switchConfig.children)\r\n .map((key) => {\r\n const childConfig = switchConfig.children[key]\r\n\r\n switch (childConfig.type) {\r\n case \"module\":\r\n return createModule(context, key, childConfig, moduleActions$, switchKey, parentRoute)\r\n case \"reference\": {\r\n const route = createAbsoluteRoute(childConfig.route, parentRoute)\r\n // context.routes.push(route)\r\n let moduleConfig = context.config.modules[childConfig.name]\r\n\r\n if (!moduleConfig) {\r\n console.warn(`Reference [${childConfig && childConfig.name}] not found`)\r\n return null\r\n }\r\n\r\n moduleConfig = {\r\n ...moduleConfig,\r\n props: {\r\n ...(moduleConfig.props || {}),\r\n ...(childConfig.props || {}),\r\n },\r\n broadcast: [\r\n ...(childConfig.broadcast\r\n ? Array.isArray(childConfig.broadcast)\r\n ? childConfig.broadcast\r\n : [childConfig.broadcast]\r\n : []),\r\n ...(moduleConfig.broadcast\r\n ? Array.isArray(moduleConfig.broadcast)\r\n ? moduleConfig.broadcast\r\n : [moduleConfig.broadcast]\r\n : []),\r\n ],\r\n }\r\n\r\n return createModule(context, childConfig.name, moduleConfig, moduleActions$, switchKey, route.path)\r\n }\r\n default:\r\n }\r\n })\r\n .filter((x) => !!x)\r\n .sort((a: any, b: any) => {\r\n let order = 0\r\n const aFragCount = a.props.path.split(\"/\").filter((x: string) => !!x).length\r\n const bFragCount = b.props.path.split(\"/\").filter((x: string) => !!x).length\r\n order = aFragCount < bFragCount ? 1 : aFragCount == bFragCount ? 0 : -1\r\n if (order == 0) {\r\n order = countRouteParams(a.props.path) > countRouteParams(b.props.path) || b.props.path > a.props.path ? 1 : -1\r\n }\r\n return order\r\n })\r\n\r\n return createElement(\"div\", { className, key }, createElement(Switch, undefined, children))\r\n}\r\n\r\nconst paramCountRegex = /\\/:/g\r\n\r\nfunction countRouteParams(route: string): number {\r\n let result = 0\r\n while (paramCountRegex.exec(route)) {\r\n result++\r\n }\r\n return result\r\n}\r\n","import type { ChildConfig, ComponentProps, Dictionary, IContext } from \"..\"\r\nimport { IPluginComponent } from \"../models/bundle\"\r\nimport type { ModuleProps } from \"../module\"\r\n\r\ninterface IContextWithComponents extends Omit {\r\n plugins: Array<[IPluginComponent, Dictionary]>\r\n}\r\n\r\nexport function executePlugin(context: IContext, props: ModuleProps | ComponentProps, type: string) {\r\n if ((props as ComponentProps).componentProps) {\r\n executePluginComponent(context as unknown as IContextWithComponents, props, type)\r\n } else {\r\n executePluginModule(context, props, type)\r\n }\r\n}\r\n\r\nexport function executeConditionalPlugin(context: IContext, props: ModuleProps | ComponentProps, type: string): boolean {\r\n if ((props as ComponentProps).componentProps) {\r\n return executePluginComponent(context as unknown as IContextWithComponents, props, type)\r\n }\r\n\r\n return executePluginModule(context, props, type)\r\n}\r\n\r\nexport function executePluginModule(context: IContext, props: ModuleProps | ComponentProps, type: string): boolean {\r\n let returnValue = true\r\n const plugins = context.plugins.filter(([x]) => x.type == type)\r\n plugins.forEach(([plugin, pluginProps]) => {\r\n try {\r\n returnValue =\r\n !!(\r\n plugin.plugin &&\r\n plugin.plugin({\r\n path: props.moduleKey,\r\n module: props.config,\r\n pluginProps,\r\n })\r\n ) && returnValue\r\n } catch (ex) {\r\n console.error(`Plugin ${plugin.name}`, ex)\r\n }\r\n })\r\n\r\n return returnValue\r\n}\r\n\r\nexport function executePluginComponent(context: IContextWithComponents, props: ComponentProps, type: string): boolean {\r\n let returnValue = true\r\n const plugins = context.plugins.filter(([x]) => x.type == type)\r\n plugins.forEach(([plugin, pluginProps]) => {\r\n try {\r\n returnValue =\r\n !!(\r\n plugin.plugin &&\r\n plugin.plugin({\r\n path: props.componentProps.key,\r\n component: props.componentProps.__config,\r\n pluginProps,\r\n })\r\n ) && returnValue\r\n } catch (ex) {\r\n console.error(`Plugin ${plugin.name}`, ex)\r\n }\r\n })\r\n\r\n return returnValue\r\n}\r\n","import { ComponentClass } from \"react\"\r\nimport type { IContext } from \"..\"\r\nimport { LayoutProps } from \"../layout\"\r\nimport { IBundle } from \"../models/bundle\"\r\nimport { AssetConfig } from \"../models/configuration\"\r\nimport { Dictionary } from \"../models/dictionary\"\r\n\r\nexport type AssetLoadProgressHandler = (progress: Array, totalCount?: number) => void\r\n\r\nexport type LoadProgress = {\r\n url: string\r\n total: number\r\n loaded: number\r\n ready?: boolean\r\n}\r\n\r\nexport type AssetType = \"BUNDLE\" | \"LAYOUT\" | \"TRANSITIONS\"\r\n\r\nexport type AssetLoadProgress = LoadProgress & {\r\n type: AssetType\r\n name: string\r\n}\r\n\r\nexport function loadAssets(context: IContext, onProgress?: AssetLoadProgressHandler) {\r\n const promises: Array> = []\r\n context.assetLoadCount = 0\r\n\r\n // Load Layouts\r\n if (context.config.layouts && Object.keys(context.config.layouts).length) {\r\n const layoutConfigs = Object.keys(context.config.layouts)\r\n .filter((key) => !context.layouts[key])\r\n .map((key) => ({ key, config: context.config.layouts[key] }))\r\n const promise = loadTypedAssets>(layoutConfigs, \"LAYOUT\", context, onProgress).then((assets) => {\r\n const layouts: Dictionary> = {}\r\n Object.keys(assets).map((key) => {\r\n const { asset } = assets[key]\r\n if (!asset) {\r\n return\r\n }\r\n layouts[key] = asset\r\n })\r\n context.layouts = {\r\n ...context.layouts,\r\n ...layouts,\r\n }\r\n })\r\n promises.push(promise)\r\n context.assetLoadCount += layoutConfigs.length\r\n }\r\n\r\n // Load bundlePromises\r\n Object.entries(context.bundlePromises).forEach(([key, bundlePromise]) => {\r\n const promise = new Promise((resolve) => {\r\n bundlePromise.then(({ default: bundle }) => {\r\n context.bundles = {\r\n ...context.bundles,\r\n [key]: bundle,\r\n }\r\n const assetProgress: AssetLoadProgress = {\r\n type: \"BUNDLE\",\r\n name: key,\r\n loaded: 0,\r\n total: 0,\r\n url: \"\",\r\n ready: true,\r\n }\r\n addAssetLoadProgress(assetProgress, context)\r\n onProgress && onProgress(context.assetLoadProgresses, context.assetLoadCount)\r\n resolve()\r\n })\r\n })\r\n promises.push(promise)\r\n context.assetLoadCount++\r\n })\r\n\r\n // Load bundles\r\n if (false && context.config.bundles && Object.keys(context.config.bundles).length) {\r\n const bundleConfigs = Object.keys(context.config.bundles)\r\n .filter((key) => !context.bundles[key])\r\n .map((key) => ({ key, config: context.config.bundles[key] }))\r\n const promise = loadTypedAssets(bundleConfigs, \"BUNDLE\", context, onProgress).then((assets) => {\r\n const bundles: Dictionary = {}\r\n Object.keys(assets).map((key) => {\r\n const { config, asset } = assets[key]\r\n if (!asset) {\r\n return\r\n }\r\n\r\n // replace ~ in styles url to the url from which the bundle was loaded\r\n if (asset.stylesUrl && asset.stylesUrl.indexOf(\"~\") === 0) {\r\n let bundleDirectory = \"\"\r\n config.url && (bundleDirectory = config.url.substr(0, config.url.lastIndexOf(\"/\")))\r\n asset.stylesUrl = bundleDirectory + asset.stylesUrl.substr(1)\r\n }\r\n bundles[key] = asset\r\n })\r\n context.bundles = {\r\n ...context.bundles,\r\n ...bundles,\r\n }\r\n })\r\n promises.push(promise)\r\n context.assetLoadCount += bundleConfigs.length\r\n }\r\n\r\n // Load transitions\r\n if (context.config.transitions) {\r\n const handleProgress = (progress: LoadProgress) => {\r\n const assetProgress: AssetLoadProgress = {\r\n type: \"TRANSITIONS\",\r\n name: \"main\",\r\n ...progress,\r\n }\r\n addAssetLoadProgress(assetProgress, context)\r\n onProgress && onProgress(context.assetLoadProgresses)\r\n }\r\n const promise = loadScript(context.config.transitions, handleProgress).then((transitions) => {\r\n context.transitions = [...context.transitions, ...transitions]\r\n })\r\n promises.push(promise)\r\n context.assetLoadCount++\r\n }\r\n\r\n return Promise.all(promises).then()\r\n}\r\n\r\nconst jsRegex = /^(.*\\/[^\\.]*)(?!\\.min)(\\.js)$/\r\nfunction loadScript(url: string, onProgress: (progress: LoadProgress) => void) {\r\n function load(resolve: (value: any) => void, reject: (err: Error) => void, original?: boolean) {\r\n let urlToLoad = url\r\n if (!original && process.env.NODE_ENV == \"production\" && jsRegex.test(url)) {\r\n urlToLoad = url.replace(jsRegex, \"$1.min$2\")\r\n }\r\n\r\n const xhr = new XMLHttpRequest()\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState == 2) {\r\n onProgress({\r\n url,\r\n loaded: 0,\r\n total: parseInt(xhr.getResponseHeader(\"content-length\") || \"0\"),\r\n })\r\n }\r\n }\r\n xhr.onprogress = (ev: ProgressEvent) =>\r\n onProgress({\r\n url,\r\n loaded: ev.loaded,\r\n total: ev.total,\r\n })\r\n\r\n xhr.onerror = () => {\r\n const msg = `Could not load script ${urlToLoad}`\r\n if (url != urlToLoad) {\r\n console.log(`${urlToLoad} not found. Trying to load ${url}`)\r\n load(resolve, reject, true)\r\n return\r\n }\r\n reject(new Error(msg))\r\n }\r\n\r\n xhr.onloadend = (ev: ProgressEvent) => {\r\n onProgress({\r\n url,\r\n loaded: ev.loaded,\r\n total: ev.total,\r\n ready: true,\r\n })\r\n\r\n if ((ev.target as any)?.status > 400) {\r\n if (url != urlToLoad) {\r\n console.log(`${urlToLoad} not found. Trying to load ${url}`)\r\n load(resolve, reject, true)\r\n return\r\n }\r\n reject(new Error((ev as any).statusText))\r\n return\r\n }\r\n\r\n let script: string = xhr.response || xhr.responseText\r\n if (!/\\/\\/# sourceMappingURL=(\\/|https?\\:\\/\\/)/.test(script)) {\r\n script = script.replace(\r\n /\\/\\/# sourceMappingURL=(.*?)\\.js\\.map/g,\r\n `//# sourceMappingURL=${url.substring(0, url.lastIndexOf(\"/\") + 1)}$1.js.map`\r\n )\r\n }\r\n\r\n let obj: any\r\n try {\r\n obj = eval(script)\r\n } catch (err) {\r\n reject(new Error(`Script (${url}) could not be loaded: ${err}`))\r\n return\r\n }\r\n\r\n if (!obj) {\r\n reject(new Error(`No script content loaded (${url})`))\r\n return\r\n }\r\n\r\n if (obj.__esModule && obj.default) {\r\n obj = obj.default\r\n }\r\n\r\n resolve(obj)\r\n }\r\n\r\n xhr.open(\"GET\", urlToLoad)\r\n xhr.send()\r\n }\r\n return new Promise(load)\r\n}\r\n\r\nfunction loadTypedAssets(\r\n configs: Array<{ key: string; config: AssetConfig }>,\r\n type: AssetType,\r\n context: IContext,\r\n onProgress?: AssetLoadProgressHandler\r\n) {\r\n type AssetResult = { asset: T | false; config: AssetConfig }\r\n return new Promise>((resolve, reject) => {\r\n const proms = configs\r\n .filter((x) => !!x.config.url)\r\n .map(\r\n (c) =>\r\n new Promise<{ asset: T | false; key: string; config: AssetConfig }>((resolve, reject) => {\r\n const handleProgress = (progress: LoadProgress) => {\r\n const assetProgress: AssetLoadProgress = {\r\n type,\r\n name: c.key,\r\n ...progress,\r\n }\r\n addAssetLoadProgress(assetProgress, context)\r\n onProgress && onProgress(context.assetLoadProgresses, context.assetLoadCount)\r\n }\r\n\r\n loadScript(c.config.url as string, handleProgress).then(\r\n (asset) => resolve({ asset, key: c.key, config: c.config }),\r\n (error) => {\r\n console.error(error)\r\n resolve({ asset: false, key: c.key, config: c.config })\r\n }\r\n )\r\n })\r\n )\r\n Promise.all(proms).then((loadedAssets) => {\r\n const assets: Dictionary = {}\r\n loadedAssets.forEach((item) => (assets[item.key] = item))\r\n resolve(assets)\r\n })\r\n })\r\n}\r\n\r\nfunction addAssetLoadProgress(progress: AssetLoadProgress, context: IContext) {\r\n const existing = context.assetLoadProgresses.findIndex((x) => x.name == progress.name && x.type == progress.type)\r\n if (existing != -1) {\r\n context.assetLoadProgresses = [\r\n ...context.assetLoadProgresses.slice(0, existing),\r\n progress,\r\n ...context.assetLoadProgresses.slice(existing + 1),\r\n ]\r\n } else {\r\n context.assetLoadProgresses.push(progress)\r\n }\r\n}\r\n","import type { IContext, IBundleWithTemplates, TemplateRenderer } from \"..\"\r\n\r\nexport function renderTemplate(context: IContext, bundleName: string, name: string, renderer: R) {\r\n const target = renderer.rendererIdentifier\r\n if (!target) {\r\n return\r\n }\r\n\r\n const bundle = context.bundles[bundleName] as IBundleWithTemplates\r\n if (!bundle || !bundle.templates) {\r\n return\r\n }\r\n\r\n const template = bundle.templates.find((x) => x.name == name)\r\n if (!template || template.targetComponent.bundle != target.bundle || template.targetComponent.component != target.component) {\r\n return\r\n }\r\n\r\n return template.render(renderer)\r\n}\r\n","// eslint-disable-next-line\r\nimport { Component, createElement, ComponentClass } from \"react\"\r\nimport Morpheus from \"..\"\r\nimport { TemplateIdentifier } from \"../models/bundle\"\r\nimport { ComponentIdentifier } from \"../models/configuration\"\r\n\r\ntype TemplateRendererProps = {\r\n template: TemplateIdentifier\r\n}\r\n\r\nexport function withTemplate(\r\n target: ComponentIdentifier,\r\n ComponentClass: ComponentClass\r\n): ComponentClass {\r\n const originalRender = ComponentClass.prototype.render\r\n ComponentClass.prototype.rendererIdentifier = target\r\n ComponentClass.prototype.render = function () {\r\n return Morpheus.renderTemplate(this.props.template.bundle, this.props.template.template, this) || originalRender()\r\n }\r\n\r\n class Cx extends Component {\r\n render() {\r\n return createElement(ComponentClass, this.props as Readonly)\r\n }\r\n }\r\n\r\n return Cx\r\n}\r\n","import { Component, ComponentClass, PropsWithChildren, ReactElement, ReactNode, RefObject } from \"react\"\r\nimport PropTypes from \"prop-types\"\r\nimport { RouterChildContext, matchPath, useRouteMatch, useHistory, match } from \"react-router\"\r\nimport { History, Location } from \"history\"\r\nimport type { IContext } from \".\"\r\nimport { LayoutProps } from \"./layout\"\r\nimport { executePlugin } from \"./lib/executePlugin\"\r\nimport { ModuleConfig, Broadcast } from \"./models/configuration\"\r\nimport { Dictionary } from \"./models/dictionary\"\r\nimport { dictionaryToArray } from \"./helpers\"\r\n\r\nexport type ModuleProps = {\r\n context: IContext\r\n config: ModuleConfig\r\n layout: ComponentClass\r\n children: Dictionary>\r\n moduleKey: string\r\n route: { path: string; exact: boolean }\r\n props?: any\r\n}\r\n\r\ntype ModuleClassProps = ModuleProps & { routeMatch: match; history: History }\r\n\r\nexport type ModuleState = {\r\n key: string\r\n visible: boolean\r\n}\r\n\r\nclass MC extends Component {\r\n private keyref: string\r\n\r\n // eslint-disable-next-line\r\n static contextTypes = {\r\n view: PropTypes.string,\r\n urlSplitPosition: PropTypes.number,\r\n routes: PropTypes.arrayOf(PropTypes.string),\r\n }\r\n\r\n // eslint-disable-next-line\r\n static childContextTypes = {\r\n routes: PropTypes.arrayOf(PropTypes.string),\r\n }\r\n\r\n // eslint-disable-next-line\r\n context: RouterChildContext & {\r\n view: string\r\n urlSplitPosition?: number\r\n routes: Array\r\n }\r\n\r\n getChildContext() {\r\n let routes = this.context.routes || []\r\n let { path } = this.props.routeMatch\r\n if (path.length > 1 && /\\/$/.test(path)) {\r\n path = path.substr(0, path.length - 1)\r\n }\r\n if (routes.indexOf(path) == -1) {\r\n routes = [...routes, path]\r\n }\r\n return { routes }\r\n }\r\n\r\n getContext() {\r\n return this.getChildContext()\r\n }\r\n\r\n removeRemountOnRouteChangeListener?: () => void\r\n\r\n constructor(props: ModuleClassProps) {\r\n super(props)\r\n this.state = { key: \"module\", visible: true }\r\n this.keyref = \"module\"\r\n\r\n this.setVisibility = this.setVisibility.bind(this)\r\n }\r\n\r\n UNSAFE_componentWillMount() {\r\n const { config, history, routeMatch } = this.props\r\n this.startBroadcast()\r\n\r\n // To force remount we need a key which changes on url change\r\n if (config.remountOnRouteChange) {\r\n const match = matchPath(history.location.pathname, routeMatch)\r\n this.setState({ key: match ? match.url : history.location.pathname })\r\n // NEXT-30200 Another special solution, it can happen that the key does not correspond to the correct worktask and this can lead to a reset of the state. This component needs to be redesigned.\r\n this.keyref = match ? match.url : history.location.pathname\r\n this.removeRemountOnRouteChangeListener = history.listen(this.handleRemountOnRouteChange.bind(this))\r\n }\r\n\r\n executePlugin(this.props.context, this.props, \"MODULE/MOUNT\")\r\n }\r\n\r\n componentDidMount() {\r\n executePlugin(this.props.context, this.props, \"MODULE/DID_MOUNT\")\r\n }\r\n\r\n componentDidUpdate() {\r\n executePlugin(this.props.context, this.props, \"MODULE/UPDATE\")\r\n }\r\n\r\n componentWillUnmount() {\r\n this.removeRemountOnRouteChangeListener && this.removeRemountOnRouteChangeListener()\r\n executePlugin(this.props.context, this.props, \"MODULE/UNMOUNT\")\r\n }\r\n\r\n startBroadcast = () => {\r\n const { config } = this.props\r\n if (config.broadcast) {\r\n if (Array.isArray(config.broadcast)) {\r\n config.broadcast.forEach(this.sendBroadcast.bind(this))\r\n } else {\r\n this.sendBroadcast(config.broadcast)\r\n }\r\n }\r\n }\r\n\r\n sendBroadcast(broadcast: Broadcast) {\r\n const broadcastHandlers = this.props.context.broadcasts[broadcast.action]\r\n if (broadcastHandlers) {\r\n broadcastHandlers.forEach((handler) => handler(broadcast.payload))\r\n return\r\n }\r\n this.props.context.rootActions$.next({\r\n bundle: \"*\",\r\n module: \"*\",\r\n component: \"*\",\r\n action: {\r\n type: broadcast.action,\r\n payload: broadcast.payload,\r\n },\r\n received: [],\r\n })\r\n }\r\n\r\n handleRemountOnRouteChange(location: Location) {\r\n const match = matchPath(location.pathname, this.props.routeMatch)\r\n const currentKey = this.keyref // For some reason in special cases (for example NEXT-17596) the state gets updated immediately. so we store it here before updating.\r\n if (match && match.url != currentKey) {\r\n this.startBroadcast()\r\n this.setState({ key: match.url })\r\n // NEXT-30200 Another special solution, it can happen that the key does not correspond to the correct worktask and this can lead to a reset of the state. This component needs to be redesigned.\r\n this.keyref = match.url\r\n }\r\n\r\n if (this.props.config.clearStoresOnRouteChange) {\r\n // Clear all state under the module\r\n if (!match || match.url != currentKey) {\r\n const { context } = this.props\r\n const storesToClear = Object.keys(context.stores)\r\n .filter((key) => key.indexOf(this.props.moduleKey) === 0)\r\n .map((key) => context.stores[key])\r\n storesToClear.forEach((store) => store.dispatch({ type: \"@@redux/INIT\" }))\r\n }\r\n }\r\n }\r\n\r\n setVisibility(visible: boolean) {\r\n this.setState({ visible })\r\n }\r\n\r\n render(): ReactNode {\r\n const { layout, children, config, route } = this.props\r\n const className = `module ${config.className || \"\"}`\r\n\r\n function getNextSwitch() {\r\n const result: Array> = []\r\n dictionaryToArray(children).forEach((inner) => {\r\n if (Array.isArray(inner.value)) {\r\n inner.value.forEach((child: any) => {\r\n if (child && child.props && child.props.className && child.props.className.indexOf(\"layout__switch\") != -1) {\r\n result.push([child])\r\n }\r\n })\r\n }\r\n })\r\n return result\r\n }\r\n\r\n if (children && this.context.urlSplitPosition && route.path.length <= this.context.urlSplitPosition) {\r\n return getNextSwitch()\r\n }\r\n\r\n const style = this.state.visible ? undefined : { display: \"none\" }\r\n\r\n const Layout = layout\r\n\r\n return (\r\n

    \r\n )\r\n }\r\n}\r\n\r\nexport function ModuleComponent(props: ModuleProps) {\r\n const routeMatch = useRouteMatch()\r\n const history = useHistory()\r\n\r\n return \r\n}\r\n","import { IContainerBundleEntity, IActions, IMergable } from \"../../models\"\r\nimport { InternalEntity } from \"../proxy/container-internal-entity\"\r\nimport { ActionResolver } from \"../proxy/unregistered-container\"\r\nimport CreateKey from \"../../tools/CreateKey\"\r\n\r\nexport interface IRegisteredContainerActionsMergeObject {\r\n pendingActionRequests: { [key: string]: Array }\r\n}\r\n\r\nexport default class RegisteredActionsContainer {\r\n internalStorage: Map>\r\n\r\n originActions: IActions\r\n\r\n constructor(actions: IActions) {\r\n this.internalStorage = new Map>()\r\n this.originActions = {}\r\n this.registerActions(actions)\r\n }\r\n\r\n callAction(name: string, ...params: Array): Promise {\r\n if (!this.originActions[name]) {\r\n return Promise.reject()\r\n }\r\n\r\n const storageKey = CreateKey.forRegisteredActionsStorage(name, params)\r\n const storedEntity = this.internalStorage.get(storageKey) || new InternalEntity()\r\n\r\n return new Promise((resolve, reject) => {\r\n if (!storedEntity.result || storedEntity.isExpired(0.05)) {\r\n // not cached\r\n this.originActions[name](...params).then(\r\n (response: unknown) => {\r\n storedEntity.result = response\r\n\r\n // store result\r\n this.internalStorage.set(storageKey, storedEntity)\r\n resolve(storedEntity.result)\r\n },\r\n (error: unknown) => {\r\n const mappedParams = params.map((param) => {\r\n const isString = typeof param === \"string\"\r\n return `${isString ? `\"${param}\"` : `${param ? JSON.stringify(param) : param}`}`\r\n })\r\n let errorMsg = `Error: ${error}, failed at function ${name}(${storageKey}`\r\n errorMsg += mappedParams.length > 0 ? `, ${mappedParams.join(\", \")})` : \")\"\r\n reject(errorMsg)\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n action(name: any) {\r\n return (...args: Array) => this.callAction(name, ...args)\r\n }\r\n\r\n registerActions = (actions: IActions) => {\r\n for (const key in actions) {\r\n this.originActions[key] = actions[key]\r\n }\r\n }\r\n\r\n merge = (source: RegisteredActionsContainer): RegisteredActionsContainer => {\r\n const duplicatedKeys: Array = []\r\n const concreteSource = source as RegisteredActionsContainer\r\n\r\n for (var key in this.originActions) {\r\n if (!this.originActions.hasOwnProperty(key)) {\r\n continue\r\n }\r\n\r\n if (concreteSource.originActions.hasOwnProperty(key)) {\r\n duplicatedKeys.push(key)\r\n }\r\n }\r\n\r\n if (duplicatedKeys.length > 0) {\r\n console.info(\"Nexus found duplicated keys on a RegisteredActionContainer\", `Skipping: [${duplicatedKeys.join(\", \")}]`)\r\n\r\n for (var key in duplicatedKeys) {\r\n concreteSource.internalStorage.delete(key)\r\n }\r\n }\r\n\r\n concreteSource.internalStorage.forEach((item, key) => {\r\n if (!this.internalStorage.has(key)) {\r\n this.internalStorage.set(key, item)\r\n }\r\n })\r\n\r\n this.originActions = { ...this.originActions, ...concreteSource.originActions }\r\n\r\n return this\r\n }\r\n}\r\n","import { IRegisterModel, IModelContainer, ContainerAction } from \"../../models\"\r\nimport { UnregisteredContainerBundle } from \"../proxy/unregistered-container\"\r\nimport { BundleContainerFactory } from \"../factories/BundleContainerFactory\"\r\nimport { RegisteredContainerBundle, IRegisteredContainerBundle } from \"../proxy/container-bundle\"\r\nimport { encodeToBase64 } from \"../../tools/base64\"\r\n\r\n/**\r\n * Register actions, load, save to a model or GetInstance of a model\r\n */\r\nexport class Container {\r\n private storage: Map\r\n\r\n private static instance: Container\r\n\r\n private constructor() {\r\n this.storage = new Map>()\r\n }\r\n\r\n /**\r\n * unregister a bundle\r\n */\r\n static unregister = (registeredBundle: string | number) => {\r\n const registeredContainer = Container.getInstance(registeredBundle)\r\n // notifyAll before delete\r\n\r\n if (registeredContainer) {\r\n // registeredContainer.notifyAll(\"unregister\")\r\n Container.instance.storage.delete(encodeToBase64(registeredBundle.toString()))\r\n }\r\n }\r\n\r\n /**\r\n * register everything you need\r\n * @param registeredBundle name of the container, actions and/or models which needs to be registered\r\n */\r\n static register(registeredBundle: IRegisterModel) {\r\n const { modelActions, containerActions, name } = registeredBundle\r\n\r\n // If name is undefined log an error and do nothing\r\n /* MLE 11.03.2020 - This was and could be the case if\r\n a bundle containing a new \"Container.register\" call was updated\r\n but not the shared package, so \"RegisteredModels.FOO\"\r\n used as the name property returned undefined */\r\n if (name == undefined) {\r\n console.error(\"Container registration ('Container.register') aborted due to missing required parameter 'name'.\")\r\n return\r\n }\r\n\r\n let container = Container.getInstance(name)\r\n\r\n const { loadRequests } = container as UnregisteredContainerBundle\r\n if (loadRequests) {\r\n container = Container.convertToRegisteredContainer(registeredBundle)\r\n ;(container as RegisteredContainerBundle).resolveLoadRequets(loadRequests)\r\n return\r\n }\r\n\r\n if (modelActions) {\r\n Container.registerModelActions(registeredBundle)\r\n }\r\n\r\n if (containerActions) {\r\n Container.registerContainerActions(registeredBundle)\r\n }\r\n }\r\n\r\n /**\r\n * should only register model actions, which will be binded to each model\r\n */\r\n private static registerModelActions(registrationData: IRegisterModel) {\r\n const { modelActions, name } = registrationData\r\n if (!modelActions) {\r\n console.warn(`no model actions to register for ${name}`)\r\n return\r\n }\r\n\r\n const container = Container.getInstance(name)\r\n ;(container as RegisteredContainerBundle).registerModelActions(modelActions)\r\n }\r\n\r\n /**\r\n * internal container handling\r\n * @returns the registered container (maybe the return value can be removed)\r\n */\r\n private static convertToRegisteredContainer(\r\n registeredBundle: IRegisterModel\r\n ): IRegisteredContainerBundle {\r\n const { name } = registeredBundle\r\n\r\n const container = Container.getInstance(name) as UnregisteredContainerBundle\r\n let registeredContainer = BundleContainerFactory.createRegisteredContainer(registeredBundle)\r\n\r\n registeredContainer = container.merge(registeredContainer as any) // todo: not happy with this \"inverted\" merge, mb there is another way\r\n Container.instance.storage.set(encodeToBase64(name.toString()), registeredContainer)\r\n\r\n return registeredContainer\r\n }\r\n\r\n /**\r\n * should just register the container actions\r\n * @param registrationData IRegisterModel - it's just the registration model\r\n */\r\n private static registerContainerActions(registrationData: IRegisterModel) {\r\n const { containerActions, name } = registrationData\r\n if (!containerActions) {\r\n console.warn(`no general actions (containerActions) to register for ${name}`)\r\n return\r\n }\r\n\r\n const actionContainer = BundleContainerFactory.createActionsContainer(containerActions)\r\n const container = Container.getInstance(name)\r\n ;(container as RegisteredContainerBundle).registerActionContainer(actionContainer)\r\n }\r\n\r\n /**\r\n * get the model container\r\n */\r\n private get(bundleIdentifier: string | number) {\r\n let container: IModelContainer\r\n const existingContainer = this.storage.get(encodeToBase64(bundleIdentifier.toString()))\r\n\r\n if (!existingContainer) {\r\n container = BundleContainerFactory.createUnregisteredContainer(bundleIdentifier.toString())\r\n this.storage.set(encodeToBase64(bundleIdentifier.toString()), container)\r\n } else {\r\n container = existingContainer as IModelContainer\r\n }\r\n\r\n return container\r\n }\r\n\r\n public static getInstance(model: string | number): IModelContainer {\r\n if (!Container.instance) {\r\n Container.instance = new Container()\r\n }\r\n\r\n ;(window as { [key: string]: any }).repositoryProxy = Container.instance\r\n\r\n return Container.instance.get(model) as IRegisteredContainerBundle\r\n }\r\n}\r\n","import { ContainerAction, IModelContainer, IRegisterActions, IRegisterModel } from \"../../models\"\r\nimport RegisteredActionsContainer from \"../actions/RegisteredActionsContainer\"\r\nimport { IRegisteredContainerBundle, RegisteredContainerBundle } from \"../proxy/container-bundle\"\r\nimport { UnregisteredContainerBundle } from \"../proxy/unregistered-container\"\r\n\r\nexport class BundleContainerFactory {\r\n static createRegisteredContainer(brm: IRegisterModel): IRegisteredContainerBundle {\r\n return new RegisteredContainerBundle(brm)\r\n }\r\n\r\n static createContainer(name: string): IRegisteredContainerBundle {\r\n const bundleRepository = new RegisteredContainerBundle({\r\n modelActions: {\r\n load: () => new Promise((resolve, reject) => reject(\"model action load not set\")),\r\n },\r\n name,\r\n })\r\n\r\n return bundleRepository\r\n }\r\n\r\n static createActionsContainer(actions: IRegisterActions) {\r\n return new RegisteredActionsContainer(actions)\r\n }\r\n\r\n static createUnregisteredContainer(bundleIdentifier: string): IModelContainer {\r\n return new UnregisteredContainerBundle()\r\n }\r\n}\r\n","import { encodeToBase64 } from \"../../tools/base64\"\r\nimport { IModelSubscription, IContainerBundleLoader, IContainerBundleUpdater, IMergable } from \"../../models\"\r\nimport { ModelSubscription } from \"../subscriptions/model-subscription\"\r\nimport { SubscriptionsHolder } from \"../subscriptions/subscription-holder\"\r\n\r\nexport class ModelSubscriptionFactory {\r\n private constructor() {}\r\n\r\n static create(\r\n uniqueModelId: any,\r\n load: IContainerBundleLoader,\r\n save: IContainerBundleUpdater\r\n ): IModelSubscription & IMergable, IModelSubscription> {\r\n return new ModelSubscription(encodeToBase64(uniqueModelId), load, save)\r\n }\r\n\r\n static createContractId(...identifier: any[]) {\r\n return encodeToBase64(identifier)\r\n }\r\n\r\n static createSubscriptionHolder() {\r\n return new SubscriptionsHolder()\r\n }\r\n}\r\n","import {\r\n ContainerAction,\r\n IContainerBundleEntity,\r\n IContainerBundleLoader,\r\n IContainerBundleUpdater,\r\n IMergable,\r\n IModelActions,\r\n IModelContainer,\r\n IModelSubscription,\r\n IRegisterModel,\r\n SubscriptionEvents,\r\n} from \"../../models\"\r\nimport { base64ToObject } from \"../../tools/base64\"\r\nimport { equals } from \"../../tools/equals\"\r\nimport RegisteredActionsContainer, { IRegisteredContainerActionsMergeObject } from \"../actions/RegisteredActionsContainer\"\r\nimport { BundleContainerFactory } from \"../factories/BundleContainerFactory\"\r\nimport { ModelSubscriptionFactory } from \"../factories/ModelSubscriptionFactory\"\r\nimport { IMergableSubscriptionsHolder, SubscriptionsHolder } from \"../subscriptions/subscription-holder\"\r\nimport { InternalEntity } from \"./container-internal-entity\"\r\nimport { ActionResolver, PromiseExecuter } from \"./unregistered-container\"\r\n\r\nexport type SubscriptionMergeObject = {\r\n subscriptions: IMergableSubscriptionsHolder\r\n listeners: { [type: string]: Array<(identifier: any[], object: any) => void> }\r\n}\r\n\r\ninterface IRegistrationContainerMergeObject extends SubscriptionMergeObject, IRegisteredContainerActionsMergeObject {}\r\n\r\nexport interface IRegisteredContainerBundle\r\n extends IModelContainer,\r\n IMergable, IModelContainer> {\r\n registerActionContainer(actions: RegisteredActionsContainer): void\r\n registerModelActions(modelActions: IModelActions): void\r\n isRegistered: boolean\r\n}\r\n\r\n/**\r\n * RegisteredContainerBUndle holds all the actions which are and will be registered\r\n * will manage at least load, save and store for model\r\n * and store results of actions related to their loading paramaters\r\n */\r\nexport class RegisteredContainerBundle implements IRegisteredContainerBundle {\r\n private internalStorage: Map>\r\n\r\n private subscriptions: IMergableSubscriptionsHolder\r\n\r\n private actionContainer?: RegisteredActionsContainer\r\n\r\n private pendingMergeObject?: IRegistrationContainerMergeObject\r\n\r\n private pendingActionRequests: { [actionName: string]: Array }\r\n\r\n private listeners: { [type: string]: Array<(identifier: any[], object: any) => void> }\r\n\r\n public isRegistered: boolean = true\r\n\r\n private modelActions?: IModelActions\r\n\r\n private storage: {\r\n createEntity: (identifier: string) => IContainerBundleEntity\r\n loadEntity: (identifier: string) => IContainerBundleEntity | undefined\r\n }\r\n\r\n private activeLoadingPromises: {\r\n [id: string]: Promise\r\n }\r\n\r\n constructor(brm: IRegisterModel) {\r\n this.listeners = {}\r\n this.pendingMergeObject = undefined\r\n this.pendingActionRequests = {}\r\n this.activeLoadingPromises = {}\r\n this.internalStorage = new Map>()\r\n this.subscriptions = ModelSubscriptionFactory.createSubscriptionHolder()\r\n\r\n this.modelActions = brm.modelActions\r\n this.actionContainer = brm.containerActions ? BundleContainerFactory.createActionsContainer(brm.containerActions) : undefined\r\n\r\n this.storage = {\r\n createEntity: (identifier: string) => {\r\n // create internalstorageobject\r\n const internalstorageobject = new InternalEntity() // TODO: Factory\r\n\r\n // save internalstorageobject\r\n this.internalStorage.set(identifier, internalstorageobject)\r\n return internalstorageobject as IContainerBundleEntity\r\n },\r\n loadEntity: (identifier: string) => {\r\n return (this.internalStorage as any).get(identifier)\r\n },\r\n }\r\n }\r\n\r\n private loadEntity(identifier: string): Promise {\r\n if (!this.modelActions) {\r\n return new Promise((resolve, reject) => reject(\"no registered model actions\"))\r\n }\r\n\r\n // i know how to load the object\r\n\r\n // get internalstorageobject\r\n const internalstorageobject = this.storage.createEntity(identifier)\r\n\r\n // prepare loading\r\n const recoveredParams = base64ToObject(identifier)\r\n const params = typeof recoveredParams === \"object\" ? recoveredParams : [recoveredParams]\r\n\r\n // go load\r\n const proms = this.modelActions.load(...params).then((response: SModel) => {\r\n if (response && this.modelActions) {\r\n for (const key in this.modelActions) {\r\n if (key != \"save\" && key != \"load\") {\r\n Object.defineProperty(response, key, {\r\n value: this.modelActions[key],\r\n })\r\n }\r\n }\r\n }\r\n\r\n internalstorageobject.result = response\r\n\r\n return response\r\n })\r\n\r\n return proms\r\n }\r\n\r\n /**\r\n * how to load an entity will be injected to each contract\r\n * Bundle these two actions to a new class as repo?!\r\n * so i can work with a composition\r\n */\r\n private load: IContainerBundleLoader = (contractId: string): Promise => {\r\n // wenn aktuell geladen wird, nimm das promise und gib es an die subscriptions zurück\r\n if (contractId in this.activeLoadingPromises) {\r\n return this.activeLoadingPromises[contractId]\r\n }\r\n\r\n const entity = this.storage.loadEntity(contractId)\r\n const result = entity?.result\r\n\r\n // erstelle einen active loading promise und lösche sobald geladen wurde\r\n if (!entity || !result || entity.isExpired(0.05)) {\r\n this.activeLoadingPromises[contractId] = this.loadEntity(contractId).finally(() => delete this.activeLoadingPromises[contractId])\r\n\r\n return this.activeLoadingPromises[contractId]\r\n }\r\n\r\n return Promise.resolve(result)\r\n }\r\n\r\n private save: IContainerBundleUpdater = (contractId: string, changedModel: SModel): Promise | void => {\r\n if (!this.modelActions?.save) {\r\n return\r\n }\r\n\r\n const storedEntity = this.internalStorage.get(contractId)\r\n\r\n if (storedEntity?.result && equals(storedEntity.result, changedModel)) {\r\n return Promise.resolve(changedModel)\r\n }\r\n\r\n return this.modelActions.save(changedModel)\r\n }\r\n\r\n /**\r\n * subscribe on an entity\r\n * @param identifier parameter which are needed to identify the result e.g.: sgs.get().subscribe(\"7861ada7-6b1e-4546-8cf1-1422bd49c0cd\", 5600)\r\n * @returns ISubscriptionContract, a contract which handles listeners, save and load the entity\r\n */\r\n public subscribe(...identifier: any[]): IModelSubscription {\r\n const contract = this.subscriptions.create(this.load, this.save, ...identifier) // save contract\r\n Object.keys(this.listeners).forEach((event) => {\r\n this.listeners[event].forEach((listener) => {\r\n const hookListener = (object: any) => listener(contract.identifier, object)\r\n hookListener.isHook = true\r\n contract.addListener(event as SubscriptionEvents, hookListener)\r\n })\r\n })\r\n return contract\r\n }\r\n\r\n public addListener(event: SubscriptionEvents, listener: (identifier: any[], object: any) => void) {\r\n if (!this.listeners[event]) {\r\n this.listeners[event] = []\r\n }\r\n\r\n Object.keys(this.subscriptions.contracts).forEach((key) => {\r\n const contract = this.subscriptions.contracts[key]\r\n const hookListener = (object: any) => listener(contract.identifier, object)\r\n hookListener.isHook = true\r\n contract.addListener(event, hookListener)\r\n })\r\n this.listeners[event].push(listener)\r\n }\r\n\r\n public callAction(name: string, ...params: Array): Promise {\r\n if (!this.actionContainer) {\r\n console.warn(\"no actions registered, implement delayedActionRequests\")\r\n return new Promise((resolve, reject) => {\r\n reject()\r\n })\r\n }\r\n\r\n return this.actionContainer.callAction(name, ...params).then(\r\n (response) => {\r\n return new Promise((resolve) => {\r\n resolve(response)\r\n })\r\n },\r\n () => {\r\n this.pendingActionRequests[name] = this.pendingActionRequests[name] || []\r\n\r\n return new Promise((resolve, reject) => {\r\n this.pendingActionRequests[name].push({ params, promiseExecutor: { resolve, reject } })\r\n })\r\n }\r\n )\r\n }\r\n\r\n public action(name: any): any {\r\n if (!this.actionContainer) {\r\n console.warn(\"no actions registered, implement delayedActionRequests\")\r\n return () =>\r\n new Promise((resolve, reject) => {\r\n reject()\r\n })\r\n }\r\n\r\n return this.actionContainer.action(name)\r\n }\r\n\r\n public registerModelActions(modelActions: IModelActions) {\r\n this.modelActions = modelActions\r\n\r\n if (this.pendingMergeObject) {\r\n this.merge(this.pendingMergeObject)\r\n this.pendingMergeObject = undefined // check against mergeObject.loadRequests mb not all request could be loaded?!\r\n }\r\n }\r\n\r\n public registerActionContainer(actionContainer: RegisteredActionsContainer) {\r\n if (!this.actionContainer) {\r\n this.actionContainer = actionContainer\r\n } else {\r\n this.actionContainer = this.actionContainer.merge(actionContainer)\r\n }\r\n\r\n this.resolvePendingActionCalls()\r\n }\r\n\r\n private resolvePendingActionCalls() {\r\n if (!this.actionContainer) {\r\n return\r\n }\r\n\r\n for (const actionName in this.pendingActionRequests) {\r\n const pendingActions = this.pendingActionRequests[actionName]\r\n const actionCount = pendingActions.length\r\n for (let i = 0; i < actionCount; i++) {\r\n const pendingAction = pendingActions[i]\r\n\r\n if (pendingAction) {\r\n this.actionContainer.callAction(actionName, pendingAction.params).then((response) => {\r\n pendingAction.promiseExecutor.resolve(response)\r\n\r\n // const storageEntity = this.storage.createEntity(StorageFactory.createIdentifier(name, ...pendingAction.params))\r\n // storageEntity.result = response\r\n delete this.pendingActionRequests[actionName][i]\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n public resolveLoadRequets(pendingRequests: { [key: string]: Array> }) {\r\n ;(this.subscriptions as SubscriptionsHolder).triggerLoad(pendingRequests)\r\n }\r\n\r\n public merge(mergeObject: IRegistrationContainerMergeObject) {\r\n if (this.modelActions) {\r\n this.subscriptions = this.subscriptions.merge({\r\n subscriptionsHolder: mergeObject.subscriptions,\r\n loader: this.load,\r\n updater: this.save,\r\n })\r\n this.listeners = mergeObject.listeners\r\n } else {\r\n this.pendingMergeObject = mergeObject\r\n }\r\n\r\n this.pendingActionRequests = { ...this.pendingActionRequests, ...mergeObject.pendingActionRequests }\r\n\r\n if (this.actionContainer) {\r\n this.resolvePendingActionCalls()\r\n }\r\n\r\n return this\r\n }\r\n}\r\n","import { IContainerBundleEntity } from \"../../models\"\r\n\r\n/**\r\n * @property loading not sure what i wanted to indicate with this, needs rename or clarification or new\r\n */\r\nexport class InternalEntity implements IContainerBundleEntity {\r\n private entity?: SModel\r\n\r\n ts: number\r\n\r\n loading: boolean\r\n\r\n result?: SModel\r\n\r\n constructor() {\r\n this.ts = Date.now()\r\n this.loading = true\r\n\r\n Object.defineProperty(this, \"result\", {\r\n set(value: SModel) {\r\n this.update(value)\r\n },\r\n get() {\r\n return this.entity\r\n },\r\n configurable: true,\r\n })\r\n }\r\n\r\n /**\r\n * @param duration cache expire duration in ms\r\n */\r\n isExpired = (duration: number) => {\r\n if ((Date.now() - this.ts) / 1000 > duration) {\r\n this.reset()\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n update = (model: SModel) => {\r\n this.entity = model\r\n this.loading = false\r\n this.ts = Date.now()\r\n }\r\n\r\n reload = () => {\r\n this.loading = true\r\n this.entity = undefined\r\n }\r\n\r\n reset = () => {\r\n this.loading = false\r\n this.entity = undefined\r\n }\r\n}\r\n","import { ContainerAction, IMergable, IModelContainer, IModelSubscription, SubscriptionEvents } from \"../../models\"\r\nimport { ModelSubscriptionFactory } from \"../factories/ModelSubscriptionFactory\"\r\nimport { SubscriptionsHolder } from \"../subscriptions/subscription-holder\"\r\nimport { IRegisteredContainerBundle, RegisteredContainerBundle } from \"./container-bundle\"\r\n\r\nexport interface PromiseExecuter {\r\n resolve: (value: T | PromiseLike) => void\r\n reject: (reason?: any) => void\r\n}\r\nexport interface ActionResolver {\r\n args?: unknown\r\n params?: Array\r\n promiseExecutor: PromiseExecuter\r\n}\r\n\r\nexport class UnregisteredContainerBundle\r\n implements IModelContainer, IMergable, IRegisteredContainerBundle>\r\n{\r\n private subscriptions: SubscriptionsHolder\r\n\r\n public loadRequests: { [key: string]: Array> }\r\n\r\n public delayedActionRequests: { [key: string]: Array }\r\n\r\n private listeners: { [type: string]: Array<(identifier: any[], object: any) => void> }\r\n\r\n public isRegistered: boolean = false\r\n\r\n constructor() {\r\n this.subscriptions = ModelSubscriptionFactory.createSubscriptionHolder()\r\n this.loadRequests = {}\r\n this.delayedActionRequests = {}\r\n this.listeners = {}\r\n }\r\n\r\n /**\r\n * subscribe on an entity\r\n * @param identifier parameter which are needed to identify the result e.g.: sgs.get().subscribe(\"7861ada7-6b1e-4546-8cf1-1422bd49c0cd\", 5600)\r\n * @returns ISubscriptionContract, a contract which handles listeners, save and load the entity\r\n */\r\n public subscribe = (...identifier: any[]): IModelSubscription => {\r\n const contract = this.subscriptions.create(this.load, () => {}, ...identifier) // save contract\r\n Object.keys(this.listeners).forEach((event) => {\r\n this.listeners[event].forEach((listener) => {\r\n const hookListener = (object: any) => listener(contract.identifier, object)\r\n hookListener.isHook = true\r\n contract.addListener(event as SubscriptionEvents, hookListener)\r\n })\r\n })\r\n return contract\r\n }\r\n\r\n public addListener(event: SubscriptionEvents, listener: (identifier: any[], object: any) => void) {\r\n if (!this.listeners[event]) {\r\n this.listeners[event] = []\r\n }\r\n Object.keys(this.subscriptions.contracts).forEach((key) => {\r\n const contract = this.subscriptions.contracts[key]\r\n const hookListener = (object: any) => listener(contract.identifier, object)\r\n hookListener.isHook = true\r\n contract.addListener(event, hookListener)\r\n })\r\n this.listeners[event].push(listener)\r\n }\r\n\r\n merge(bundle: RegisteredContainerBundle): IRegisteredContainerBundle {\r\n const { subscriptions, listeners, delayedActionRequests } = this\r\n return bundle.merge({\r\n subscriptions,\r\n listeners,\r\n pendingActionRequests: delayedActionRequests,\r\n })\r\n }\r\n\r\n /**\r\n * will be triggered when no container is registered\r\n * need to resolve the promise outside of this container,\r\n * so i need to remember the resolve and reject\r\n */\r\n load(contractId: string) {\r\n return new Promise((resolve, reject) => {\r\n this.loadRequests = this.loadRequests || {} // it's initialized by the constructor, but somehow there are still undefined errors. so lets try this.\r\n this.loadRequests[contractId] = this.loadRequests[contractId] || []\r\n this.loadRequests[contractId].push({ resolve, reject })\r\n })\r\n }\r\n\r\n callAction(name: string, ...params: Array): Promise {\r\n this.delayedActionRequests[name] = this.delayedActionRequests[name] || []\r\n\r\n const promise = new Promise((resolve, reject) => {\r\n this.delayedActionRequests[name].push({ params, promiseExecutor: { resolve, reject } })\r\n })\r\n\r\n return promise\r\n }\r\n\r\n action(name: any): any {\r\n return (...args: Array) => this.callAction(name, ...args)\r\n }\r\n}\r\n","import { SubscriptionEvents, IModelSubscription, IContainerBundleLoader, IContainerBundleUpdater, IMergable } from \"../../models\"\r\nimport { base64ToObject } from \"../../tools/base64\"\r\n\r\ninterface IMergableModelSubscription\r\n extends IModelSubscription,\r\n IMergable, IModelSubscription> {}\r\n\r\nexport type ListenerFunctions = {\r\n onSuccess: (object: SCModel) => void\r\n onError?: (object: any) => void\r\n}\r\n\r\n/**\r\n * Is the given contract for subscriptions for a specific model\r\n * Can be merged\r\n *\r\n * Rename to Contracts\r\n */\r\nexport class ModelSubscription implements IMergableModelSubscription {\r\n listeners: {\r\n [key: string]: Array | undefined>\r\n }\r\n\r\n _id: string\r\n\r\n identifier: any[]\r\n\r\n _proceedLoad?: IContainerBundleLoader\r\n\r\n _proceedUpdate?: IContainerBundleUpdater\r\n\r\n _proceedLoadPromise?: Promise\r\n\r\n constructor(id: string, loader: IContainerBundleLoader, updater: IContainerBundleUpdater) {\r\n this.listeners = {\r\n loaded: [],\r\n updated: [],\r\n loading: [],\r\n updating: [],\r\n }\r\n\r\n this._id = id\r\n this._proceedLoad = loader\r\n this._proceedUpdate = updater\r\n this.identifier = base64ToObject(id)\r\n }\r\n\r\n addListener(event: SubscriptionEvents, onSuccess: (object: SCModel) => void, onError?: (object: any) => void): () => void {\r\n const eventIndex = this.listeners[event].push({ onSuccess, onError }) - 1 // push returning\r\n return () => {\r\n this.listeners[event][eventIndex] = undefined\r\n }\r\n }\r\n\r\n removeAllListeners(): void {\r\n Object.keys(this.listeners).forEach((eventKey) => {\r\n this.listeners[eventKey] = []\r\n })\r\n }\r\n\r\n save = (object: SCModel) => {\r\n if (!this._proceedUpdate) {\r\n return\r\n }\r\n\r\n try {\r\n const prom = this._proceedUpdate(this._id, object) // add promises to catch failed saving, reload old value and notify new udpate, mb\r\n if (prom && prom.then) {\r\n this.notifyUpdating(this._id)\r\n prom.then((response) => this.notifySave(response || object), this.notifySaveError.bind(this))\r\n } else {\r\n this.notifySave(object)\r\n }\r\n } catch (e) {\r\n this.notifySaveError(e)\r\n }\r\n }\r\n\r\n loadIfRequired = () => {\r\n if (Object.keys(this.listeners).some((key) => this.listeners[key].some((l) => !!l))) {\r\n this.load()\r\n }\r\n }\r\n\r\n load = () => {\r\n return new Promise((resolve, reject) => {\r\n if (!this._proceedLoad) {\r\n console.warn(\"model contract can't proceed load\")\r\n reject()\r\n } else {\r\n const proceedLoadPromise = this._proceedLoad(this._id)\r\n\r\n if (!this._proceedLoadPromise) {\r\n this._proceedLoadPromise = proceedLoadPromise\r\n\r\n this.notifyLoading(this._id)\r\n proceedLoadPromise.then(\r\n (response) => {\r\n this.notifyLoaded(response)\r\n this._proceedLoadPromise = undefined\r\n },\r\n (e) => {\r\n this.notifyLoadedError(e)\r\n this._proceedLoadPromise = undefined\r\n }\r\n )\r\n }\r\n\r\n return proceedLoadPromise.then(resolve, reject)\r\n }\r\n })\r\n }\r\n\r\n notifyLoaded = (object: SCModel) => {\r\n this.notifyListenersSuccess(this.listeners.loaded, object)\r\n }\r\n\r\n notifySave(object: SCModel) {\r\n this.notifyListenersSuccess(this.listeners.updated, object)\r\n }\r\n\r\n notifyLoadedError = (e: any) => {\r\n this.notifyListenersError(this.listeners.loaded, e)\r\n }\r\n\r\n notifySaveError = (e: any) => {\r\n this.notifyListenersError(this.listeners.updated, e)\r\n }\r\n\r\n notifyLoading = (id: any) => {\r\n this.notifyListenersSuccess(this.listeners.loading, id)\r\n }\r\n\r\n notifyUpdating = (id: any) => {\r\n this.notifyListenersSuccess(this.listeners.updating, id)\r\n }\r\n\r\n notifyListenersSuccess = (listeners: Array | undefined>, object: SCModel) => {\r\n listeners.forEach((listener) => {\r\n if (listener) {\r\n listener.onSuccess(object)\r\n }\r\n })\r\n }\r\n\r\n notifyListenersError = (listeners: Array | undefined>, e: any) => {\r\n listeners.forEach((listener) => {\r\n if (listener && listener.onError) {\r\n listener.onError(e)\r\n }\r\n })\r\n }\r\n\r\n merge(sourceContract: ModelSubscription): IModelSubscription {\r\n this._proceedLoad = sourceContract._proceedLoad\r\n this._proceedUpdate = sourceContract._proceedUpdate\r\n\r\n return this\r\n }\r\n}\r\n","import { IModelSubscription, IContainerBundleLoader, IContainerBundleUpdater, IMergable } from \"../../models\"\r\nimport { ModelSubscriptionFactory } from \"../factories/ModelSubscriptionFactory\"\r\nimport { ModelSubscription } from \"./model-subscription\"\r\nimport { PromiseExecuter } from \"../proxy/unregistered-container\"\r\n\r\nexport type ISubscriptionsHolderContracts = { [contractId: string]: IModelSubscription }\r\n\r\nexport type SubscriptionsHolderMergeObject = {\r\n subscriptionsHolder: IMergableSubscriptionsHolder\r\n loader: IContainerBundleLoader\r\n updater: IContainerBundleUpdater\r\n}\r\n\r\ntype IMergeableSubscription = IModelSubscription & IMergable, IModelSubscription>\r\n\r\nexport type IMergableSubscriptionsHolder = IMergable, SubscriptionsHolder> & {\r\n create: (onLoad: IContainerBundleLoader, onSave: IContainerBundleUpdater, ...identifier: any[]) => IModelSubscription\r\n contracts: ISubscriptionsHolderContracts\r\n}\r\n\r\nexport type WithPendingRequest = IMergableSubscriptionsHolder & {\r\n // resolveRequests: (contractId: string, executors: Array>) => void\r\n}\r\n\r\nexport class SubscriptionsHolder implements WithPendingRequest {\r\n contracts: ISubscriptionsHolderContracts\r\n\r\n private _pendingRequests: Array>\r\n\r\n constructor() {\r\n this.contracts = {}\r\n this._pendingRequests = []\r\n }\r\n\r\n create(loader: IContainerBundleLoader, updater: IContainerBundleUpdater, ...identifier: any[]): IModelSubscription {\r\n const id = ModelSubscriptionFactory.createContractId(identifier)\r\n let contract: IModelSubscription\r\n\r\n if (!this.contracts[id]) {\r\n contract = ModelSubscriptionFactory.create(identifier, loader, updater)\r\n this.contracts[id] = contract\r\n } else {\r\n contract = this.contracts[id]\r\n }\r\n\r\n return contract\r\n }\r\n\r\n merge(source: SubscriptionsHolderMergeObject): SubscriptionsHolder {\r\n const sourceContracts = (source.subscriptionsHolder as SubscriptionsHolder).contracts\r\n for (const key in sourceContracts) {\r\n this.add(key, sourceContracts[key] as IMergeableSubscription, source.loader, source.updater)\r\n }\r\n return this\r\n }\r\n\r\n add(key: string, contract: IMergeableSubscription, onLoad: IContainerBundleLoader, onSave: IContainerBundleUpdater) {\r\n const source = ModelSubscriptionFactory.create(key, onLoad, onSave)\r\n this.contracts[key] = contract.merge(source)\r\n }\r\n\r\n /**\r\n * load pending contracts and which will notify subscribers\r\n */\r\n triggerLoad(startLoading: { [key: string]: Array> }) {\r\n for (const key in this.contracts) {\r\n if (this.contracts.hasOwnProperty(key)) {\r\n const contract = this.contracts[key] as ModelSubscription // concrete to get access to id\r\n const promiseExecutors = startLoading[contract._id]\r\n const executorCount = promiseExecutors.length\r\n\r\n if (promiseExecutors && promiseExecutors.length > 0) {\r\n contract.load().then((response) => {\r\n for (let i = 0; i < executorCount; i++) {\r\n promiseExecutors[i].resolve(response)\r\n }\r\n })\r\n\r\n delete startLoading[contract._id]\r\n }\r\n }\r\n }\r\n }\r\n\r\n // // resolve all loads which occurs while the model proxy is not registered\r\n // resolvePendingLoadRequests = (response: TModel, requests: Array>) => {\r\n // for(var key in requests) {\r\n // if(requests.hasOwnProperty(key)) {\r\n // requests[key].resolve(response)\r\n // }\r\n // }\r\n // }\r\n}\r\n","export default class CreateKey {\r\n public static forRegisteredActionsStorage(actionName: string, params: any) {\r\n let key = actionName\r\n\r\n switch (typeof params) {\r\n case \"function\": {\r\n key += `|${params.toString()}`\r\n break\r\n }\r\n case \"string\":\r\n case \"number\": {\r\n key += `|${params}`\r\n break\r\n }\r\n\r\n case \"object\": {\r\n key += Array.isArray(params)\r\n ? params.map((item) => CreateKey.forRegisteredActionsStorage(\"\", item)).join(\"|\")\r\n : getKeysFromObject(params)\r\n break\r\n }\r\n\r\n default: {\r\n break\r\n }\r\n }\r\n\r\n return key\r\n }\r\n}\r\nconst getKeysFromObject = (paramObject: any) => {\r\n let key = \"\"\r\n for (const objKey in paramObject) {\r\n if (paramObject.hasOwnProperty(objKey)) {\r\n const value = paramObject[objKey]\r\n key += `|${objKey}:${CreateKey.forRegisteredActionsStorage(\"\", value)}`\r\n }\r\n }\r\n return key\r\n}\r\n","import { Base64 } from \"js-base64\"\r\n\r\nfunction encodeBase64(text: string) {\r\n return Base64.encode(text)\r\n}\r\n\r\nfunction decodeBase64(base64: string) {\r\n return Base64.decode(base64)\r\n}\r\n\r\nfunction objectToBase64(object: Object) {\r\n return Base64.encode(JSON.stringify(object))\r\n}\r\n\r\nexport function encodeToBase64(value: any) {\r\n if (typeof value === \"object\") {\r\n return objectToBase64(value)\r\n }\r\n if (typeof value === \"string\") {\r\n return encodeBase64(value)\r\n }\r\n return encodeBase64(value.toString())\r\n}\r\n\r\nexport function base64ToObject(base64: string) {\r\n return JSON.parse(decodeBase64(base64))\r\n}\r\n","const isEqual = require(\"react-fast-compare\")\r\n\r\nexport function equals(actual: any, expected: any): boolean {\r\n return isEqual(actual, expected)\r\n}\r\n","import { Transition } from \"@tm/morpheus\"\r\n\r\nexport const transitionsToBasket: Array = [\r\n // This transition cannot be deleted as long the micro \"vehicle-overview\" in CRM bundle is used. The Vehicle description is only relevant for the costestimation voucher.\r\n {\r\n transmit: { bundle: \"crm\", action: \"VEHICLE_OVERVIEW_LOADED\" },\r\n receive: { bundle: \"basket\", action: \"VEHICLE_OVERVIEW_LOADED\" },\r\n },\r\n]\r\n","import { transitionsToBasket } from \"./basket/transitions\"\r\nimport { transitionsToParts } from \"./parts/transitions\"\r\nimport { transitionsToVehicle } from \"./vehicle/transitions\"\r\nimport { transitionsToWorkTask } from \"./workTask/transitions\"\r\n\r\nconst transitions = [...transitionsToBasket, ...transitionsToParts, ...transitionsToVehicle, ...transitionsToWorkTask]\r\n\r\nexport default transitions\r\n","import { Transition } from \"@tm/morpheus\"\r\n\r\nexport const transitionsToParts: Array = [\r\n {\r\n transmit: { bundle: \"erp\", action: \"LOAD_ARTICLE_LIST\" },\r\n receive: { bundle: \"parts\", action: \"LOAD_ARTICLE_LIST\" },\r\n },\r\n {\r\n transmit: { bundle: \"erp\", action: \"SHOW_ARTICLE_DETAILS_ERP_TABS\" },\r\n receive: { bundle: \"parts\", action: \"SHOW_ARTICLE_DETAILS_ERP_TABS\" },\r\n },\r\n {\r\n transmit: { bundle: \"vehicle\", action: \"LOAD_ARTICLE_LIST\" },\r\n receive: { bundle: \"parts\", action: \"LOAD_ARTICLE_LIST\" },\r\n },\r\n {\r\n transmit: { bundle: \"erp\", action: \"ERP_INFO_DETAILS_LOADED\" },\r\n receive: { bundle: \"parts\", action: \"ERP_INFO_DETAILS_LOADED\" },\r\n },\r\n]\r\n","import { Transition } from \"@tm/morpheus\"\r\n\r\nexport const transitionsToVehicle: Array = [\r\n {\r\n transmit: { bundle: \"parts\", action: \"DETAILSHEAD_LOADED\" },\r\n receive: { bundle: \"vehicle\", action: \"DETAILSHEAD_LOADED\" },\r\n },\r\n]\r\n","import { Transition } from \"@tm/morpheus\"\r\n\r\nexport const transitionsToWorkTask: Array = [\r\n {\r\n transmit: { bundle: \"crm\", action: \"ATTACH_TO_NEW_WORKTASK\" },\r\n receive: { bundle: \"worktask\", action: \"ATTACH_TO_NEW_WORKTASK\" },\r\n },\r\n {\r\n transmit: { bundle: \"crm\", action: \"ATTACH_TO_WORKTASK\" },\r\n receive: { bundle: \"worktask\", action: \"ATTACH_TO_WORKTASK\" },\r\n },\r\n {\r\n transmit: { bundle: \"parts\", action: \"MODULE_OPENED\" },\r\n receive: { bundle: \"worktask\", action: \"MODULE_OPENED\" },\r\n },\r\n {\r\n transmit: { bundle: \"orders\", action: \"MODULE_OPENED\" },\r\n receive: { bundle: \"worktask\", action: \"MODULE_OPENED\" },\r\n },\r\n {\r\n transmit: { bundle: \"parts\", action: \"SET_MODULE_FILTER\" },\r\n receive: { bundle: \"worktask\", action: \"SET_MODULE_FILTER\" },\r\n },\r\n {\r\n transmit: { bundle: \"tyres\", action: \"MODULE_OPENED\" },\r\n receive: { bundle: \"worktask\", action: \"MODULE_OPENED\" },\r\n },\r\n {\r\n transmit: { bundle: \"tyres\", action: \"SET_MODULE_FILTER\" },\r\n receive: { bundle: \"worktask\", action: \"SET_MODULE_FILTER\" },\r\n },\r\n {\r\n transmit: { bundle: \"vehicle\", action: \"MODULE_OPENED\" },\r\n receive: { bundle: \"worktask\", action: \"MODULE_OPENED\" },\r\n },\r\n {\r\n transmit: { bundle: \"repair-times\", action: \"MODULE_OPENED\" },\r\n receive: { bundle: \"worktask\", action: \"MODULE_OPENED\" },\r\n },\r\n {\r\n transmit: { bundle: \"misc\", action: \"PAGE_OPENED\" },\r\n receive: { bundle: \"worktask\", action: \"PAGE_OPENED\" },\r\n },\r\n {\r\n transmit: { bundle: \"telesales\", action: \"RESET_MODULE_NAVIGATION\" },\r\n receive: { bundle: \"worktask\", action: \"RESET_MODULE_NAVIGATION\" },\r\n },\r\n]\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst ArticelListHeader: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"articlelist.header\",\r\n}\r\n\r\nconst ArticelListHeaderTechnicalData: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"articlelist.header.technicalData\",\r\n}\r\n\r\nconst ArticelListHeaderTechnicalDataTooltip: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"articlelist.header.technicalData.tooltip\",\r\n}\r\n\r\nconst ArticelListHeaderTechnicalDataHaynes: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"articlelist.header.technicalData.button\",\r\n}\r\n\r\nconst ArticelListHeaderTechnicalDataTecrmi: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"articlelist.header.technicalData.button\",\r\n}\r\n\r\nconst ArticelListHeaderToolRental: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"articlelist.header.toolrental\",\r\n}\r\n\r\nconst ArticelListHeaderFastcalc: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"articlelist.header.fastcalculator\",\r\n}\r\n\r\nexport const ArticleList = {\r\n ArticelListHeader,\r\n ArticelListHeaderTechnicalData,\r\n ArticelListHeaderTechnicalDataTooltip,\r\n ArticelListHeaderTechnicalDataHaynes,\r\n ArticelListHeaderTechnicalDataTecrmi,\r\n ArticelListHeaderToolRental,\r\n ArticelListHeaderFastcalc,\r\n}\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst ButtonFake: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"button.fake\",\r\n}\r\n\r\nconst Button: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"button\",\r\n}\r\n\r\nexport const ButtonControls = {\r\n ButtonFake,\r\n Button,\r\n}\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst CostestimationNavbar: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"costestimation.navbar\",\r\n}\r\n\r\nconst CostestimationNavbarDisplayoptions: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"costestimation.navbar.displayoptions\",\r\n}\r\n\r\nconst CostestimationNavbarDisplayoptionsContainer: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"costestimation.navbar.displayoptions.container\",\r\n}\r\n\r\nconst CostestimationNavbarDisplayoptionsPartnumber: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"costestimation.navbar.displayoptions.partnumber\",\r\n}\r\n\r\nconst CostestimationNavbarDisplayoptionsDealerPartNumber: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"costestimation.navbar.displayoptions.dealersPartnumber\",\r\n}\r\n\r\nconst CostestimationNavbarDisplayoptionsManufacturer: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"costestimation.navbar.displayoptions.manufacturer\",\r\n}\r\n\r\nconst CostestimationNavbarDisplayoptionsPrintImage: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"costestimation.navbar.displayoptions.printImage\",\r\n}\r\n\r\nconst CostestimationNavbarDisplayoptionsCalculateLaborVal: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"costestimation.navbar.displayoptions.calculateLaborVal\",\r\n}\r\n\r\nexport const Costestimation = {\r\n CostestimationNavbar,\r\n CostestimationNavbarDisplayoptions,\r\n CostestimationNavbarDisplayoptionsContainer,\r\n CostestimationNavbarDisplayoptionsPartnumber,\r\n CostestimationNavbarDisplayoptionsDealerPartNumber,\r\n CostestimationNavbarDisplayoptionsManufacturer,\r\n CostestimationNavbarDisplayoptionsPrintImage,\r\n CostestimationNavbarDisplayoptionsCalculateLaborVal,\r\n}\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst SearchtreeContainer: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtree\",\r\n}\r\n\r\nconst SearchtreeGroup: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtree.group\",\r\n}\r\n\r\nconst SearchtreeNode: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtree.node\",\r\n}\r\n\r\nconst SearchtreeIcon: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Icon,\r\n \"data-id\": \"searchtree.icon\",\r\n}\r\n\r\nconst SearchtreeLabel: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.label,\r\n \"data-id\": \"searchtree.label\",\r\n}\r\n\r\nconst SearchtreeBreadcrumbs: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtree.breadcrumbs\",\r\n}\r\n\r\nconst SearchtreeBreadcrumbsOther: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtree.breadcrumbs.Other\",\r\n}\r\n\r\nconst SearchtreeBestseller: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtree.bestseller\",\r\n}\r\n\r\nexport const Searchtree = {\r\n SearchtreeContainer,\r\n SearchtreeGroup,\r\n SearchtreeNode,\r\n SearchtreeIcon,\r\n SearchtreeLabel,\r\n SearchtreeBreadcrumbs,\r\n SearchtreeBreadcrumbsOther,\r\n SearchtreeBestseller,\r\n}\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst SearchtreeV2Overviewgrid: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtreeV2.overviewgrid\",\r\n}\r\n\r\nconst SearchtreeV2TreeNodeContainer: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtreeV2.treeNode.Container\",\r\n}\r\n\r\nconst SearchtreeV2TreeNode: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtreeV2.TreeNode\",\r\n}\r\n\r\nconst SearchtreeV2TreeNodeIcon: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Icon,\r\n \"data-id\": \"searchtreeV2.TreeNode.Icon\",\r\n}\r\n\r\nconst SearchtreeV2TreeNodeFastClick: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"searchtreeV2.TreeNode.Fastclick\",\r\n}\r\n\r\nconst SearchtreeV2TreeNodeName: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Link,\r\n \"data-id\": \"searchtreeV2.TreeNodeName\",\r\n}\r\n\r\nconst SearchtreeV2BestsellerContainer: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"searchtreeV2.bestseller\",\r\n}\r\n\r\nconst SearchtreeV2BestsellerLabel: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.label,\r\n \"data-id\": \"searchtreeV2.bestseller.label\",\r\n}\r\n\r\nconst SearchtreeV2BestsellerCheckbox: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Checkbox,\r\n \"data-id\": \"searchtreeV2.bestseller.checkbox\",\r\n}\r\n\r\nconst SearchtreeV2BestsellerCalculate: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"searchtreeV2.bestseller.calculate\",\r\n}\r\n\r\nconst SearchtreeV2BestsellerApply: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"searchtreeV2.bestseller.apply\",\r\n}\r\n\r\nexport const SearchtreeV2 = {\r\n SearchtreeV2Overviewgrid,\r\n SearchtreeV2TreeNodeContainer,\r\n SearchtreeV2TreeNode,\r\n SearchtreeV2TreeNodeIcon,\r\n SearchtreeV2TreeNodeFastClick,\r\n SearchtreeV2TreeNodeName,\r\n SearchtreeV2BestsellerContainer,\r\n SearchtreeV2BestsellerLabel,\r\n SearchtreeV2BestsellerCheckbox,\r\n SearchtreeV2BestsellerCalculate,\r\n SearchtreeV2BestsellerApply,\r\n}\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst SectionListContainer: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"sectionlist\",\r\n}\r\n\r\nconst SectionListHeadline: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.label,\r\n \"data-id\": \"sectionlist.headline\",\r\n}\r\n\r\nconst SectionListCheckbox: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Checkbox,\r\n \"data-id\": \"sectionlist.checkbox\",\r\n}\r\n\r\nconst SectionListLabel: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.label,\r\n \"data-id\": \"sectionlist.label\",\r\n}\r\n\r\nconst SectionListDescription: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.label,\r\n \"data-id\": \"sectionlist.Description\",\r\n}\r\n\r\nexport const SectionList = {\r\n SectionListContainer,\r\n SectionListHeadline,\r\n SectionListCheckbox,\r\n SectionListLabel,\r\n SectionListDescription,\r\n}\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst SettingsTabNavigation: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"settingsTabNavigation\",\r\n}\r\n\r\nconst SettingsTab: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"settingsTab\",\r\n}\r\n\r\nconst SettingsContainer: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"settings.container\",\r\n}\r\n\r\nconst SettingsPricesPurchasePrice: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"settings.price.purchaseprice\",\r\n}\r\n\r\nconst SettingsBasketArticleSorting: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"settings.basket.articleSorting\",\r\n}\r\n\r\nconst SettingsBasketPurchasePriceSummary: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"settings.basket.priceSorting\",\r\n}\r\n\r\nconst SettingsBasketAutomaticPlateNumber: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"settings.basket.Platenumber\",\r\n}\r\n\r\nconst SettingsBasketAutomaticPlateNumberOnlyForRelated: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"settings.basket.articleSorting\",\r\n}\r\n\r\nconst SettingsBasketOrderConfirmation: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.switch,\r\n \"data-id\": \"settings.basket.orderConfirmation\",\r\n}\r\n\r\nconst SettingsBasketOrderShipmentmode: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Select,\r\n \"data-id\": \"settings.basket.shipmentmode\",\r\n}\r\n\r\nconst SettingsBasketOrderPaymentmode: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Radio,\r\n \"data-id\": \"settings.basket.paymentmode\",\r\n}\r\n\r\nexport const Settings = {\r\n SettingsTabNavigation,\r\n SettingsTab,\r\n SettingsContainer,\r\n SettingsPricesPurchasePrice,\r\n SettingsBasketArticleSorting,\r\n SettingsBasketPurchasePriceSummary,\r\n SettingsBasketAutomaticPlateNumber,\r\n SettingsBasketAutomaticPlateNumberOnlyForRelated,\r\n SettingsBasketOrderConfirmation,\r\n SettingsBasketOrderShipmentmode,\r\n SettingsBasketOrderPaymentmode,\r\n}\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst Tabs: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"tab\",\r\n}\r\n\r\nexport const TabsControls = {\r\n Tabs,\r\n}\r\n","import { UIAHtmlAttribut, UITypes } from \"../types\"\r\n\r\nconst Modulenavigation: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Container,\r\n \"data-id\": \"modulenavigation\",\r\n}\r\n\r\nconst ModulenavigationButton: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"modulenavigation.button\",\r\n}\r\n\r\nconst ModulenavigationButtonMore: UIAHtmlAttribut = {\r\n \"data-type\": UITypes.Button,\r\n \"data-id\": \"modulenavigation.more.button\",\r\n}\r\n\r\nexport const Worktask = {\r\n Modulenavigation,\r\n ModulenavigationButton,\r\n ModulenavigationButtonMore,\r\n}\r\n","import { SearchtreeV2 } from \"./components/SearchtreeV2\"\r\nimport { Searchtree } from \"./components/Searchtree\"\r\nimport { SectionList } from \"./components/SectionList\"\r\nimport { ButtonControls } from \"./components/Button\"\r\nimport { ArticleList } from \"./components/ArticleList\"\r\nimport { Costestimation } from \"./components/Costestimation\"\r\nimport { Worktask } from \"./components/Worktask\"\r\nimport { TabsControls } from \"./components/Tabs\"\r\nimport { Settings } from \"./components/Settings\"\r\n\r\nconst UIA = {\r\n ...SearchtreeV2,\r\n ...Searchtree,\r\n ...SectionList,\r\n ...ButtonControls,\r\n ...ArticleList,\r\n ...Costestimation,\r\n ...Worktask,\r\n ...TabsControls,\r\n ...Settings,\r\n}\r\n\r\ntype UIAKeys = keyof typeof UIA\r\n\r\n/**\r\n * UIA \"UI Automation\" returns an html attribute object needed for the UI automation Testing\r\n * @param key component Key\r\n * @param data optional: add the attribute \"data-value\" with the given data string\r\n * @returns mimimum html data object with identifier and type\r\n */\r\nexport function getUIA(key: UIAKeys, data?: string | number) {\r\n if (data) {\r\n return { ...UIA[key], \"data-value\": data }\r\n }\r\n return UIA[key]\r\n}\r\n","export enum UITypes {\r\n Container = \"container\",\r\n Button = \"button\",\r\n Icon = \"icon\",\r\n Link = \"link\",\r\n Checkbox = \"checkbox\",\r\n label = \"label\",\r\n switch = \"switch\",\r\n Select = \"select\",\r\n Radio = \"radiobutton\",\r\n}\r\n\r\nexport type UIAHtmlAttribut = {\r\n /* What kind of type is this element */\r\n \"data-type\": UITypes\r\n /* descriptive id with . notation, like .. \r\n example 'Searchtree.bestseller.checkbox'\r\n */\r\n \"data-id\": string\r\n}\r\n","import { atomFamily } from \"recoil\"\r\n\r\nexport const multiWidgetTab = atomFamily({\r\n key: \"dashboard.multiwidget.multiWidgetTab\",\r\n default: \"VEHICLE\",\r\n})\r\n","import { atom } from \"recoil\"\r\n\r\nexport type BarcodeToastState = {\r\n show: boolean\r\n}\r\n\r\nexport const barcodeToastState = atom({\r\n key: \"parts.barcodeToast.barcodeToastState\",\r\n default: { show: false },\r\n})\r\n","import { atom } from \"recoil\"\r\nimport { Article, ShipmentMode } from \"@tm/models\"\r\n\r\nexport type OpenDetailsState = {\r\n article: Article | undefined\r\n}\r\n\r\nexport const openDetailsState = atom({\r\n key: \"parts.details.openDetailsState\",\r\n default: { article: undefined },\r\n})\r\n\r\nexport type DetailOrderOptionState = {\r\n orderOption: ShipmentMode | undefined\r\n refreshErp?: boolean\r\n}\r\n\r\nexport const selectedOrderOptionState = atom({\r\n key: \"parts.details.orderoption\",\r\n default: { orderOption: undefined },\r\n})\r\n\r\nexport type OpenExternalArticleDetailsState = {\r\n externalBasketItemId: string | undefined\r\n}\r\n\r\nexport const selectedExternalArticleDetailsState = atom({\r\n key: \"parts.details.externalArticleDetails\",\r\n default: { externalBasketItemId: undefined },\r\n})\r\n","import { channel } from \"@tm/models\"\r\nimport { createContext } from \"react\"\r\nimport { Action, Dispatch, Store } from \"redux\"\r\nimport { PayloadAction } from \"@tm/morpheus\"\r\n\r\nexport type CommunicationChannel = [(action: Action, dispatch: Dispatch, getState: () => unknown) => void, Store][]\r\nexport type Receiver = (action: Action, dispatch: Dispatch, getState: () => unknown) => void\r\n\r\nexport const CommunicationContext = createContext(undefined)\r\n\r\nexport function onModuleOpened(action: PayloadAction) {\r\n if (action.type === \"MODULE_OPENED\") {\r\n // eslint-disable-next-line no-underscore-dangle\r\n channel(\"WORKTASK\", window.__NEXT_WORKTASKID__).publish(\"MODULE/OPENED\", action.payload)\r\n }\r\n}\r\n","export type Buttons =\r\n | \"ArrowLeft\"\r\n | \"ArrowUp\"\r\n | \"ArrowRight\"\r\n | \"ArrowDown\"\r\n | \"Enter\"\r\n | \"Tab\"\r\n | \"Space\"\r\n | \"Escape\"\r\n | \"Comma\"\r\n | \"Dash\"\r\n | \"Dot\"\r\n | \"Hash\"\r\n | \"A\"\r\n | \"B\"\r\n | \"C\"\r\n | \"D\"\r\n | \"E\"\r\n | \"F\"\r\n | \"G\"\r\n | \"H\"\r\n | \"I\"\r\n | \"J\"\r\n | \"K\"\r\n | \"L\"\r\n | \"M\"\r\n | \"N\"\r\n | \"O\"\r\n | \"P\"\r\n | \"Q\"\r\n | \"R\"\r\n | \"S\"\r\n | \"T\"\r\n | \"U\"\r\n | \"V\"\r\n | \"W\"\r\n | \"X\"\r\n | \"Y\"\r\n | \"Z\"\r\n | \"F1\"\r\n | \"F2\"\r\n | \"F3\"\r\n | \"F4\"\r\n | \"F5\"\r\n | \"F6\"\r\n | \"F7\"\r\n | \"F8\"\r\n | \"F9\"\r\n | \"F10\"\r\n | \"F11\"\r\n | \"F12\"\r\n\r\nexport interface IKeys {\r\n ArrowLeft: string\r\n ArrowUp: string\r\n ArrowRight: string\r\n ArrowDown: string\r\n Enter: string\r\n Tab: string\r\n Space: string\r\n Escape: string\r\n\r\n Comma: string\r\n Dash: string\r\n Dot: string\r\n Hash: string\r\n\r\n A: string\r\n B: string\r\n C: string\r\n D: string\r\n E: string\r\n F: string\r\n G: string\r\n H: string\r\n I: string\r\n J: string\r\n K: string\r\n L: string\r\n M: string\r\n N: string\r\n O: string\r\n P: string\r\n Q: string\r\n R: string\r\n S: string\r\n T: string\r\n U: string\r\n V: string\r\n W: string\r\n X: string\r\n Y: string\r\n Z: string\r\n\r\n F1: string\r\n F2: string\r\n F3: string\r\n F4: string\r\n F5: string\r\n F6: string\r\n F7: string\r\n F8: string\r\n F9: string\r\n F10: string\r\n F11: string\r\n F12: string\r\n}\r\n\r\nexport const ButtonCodeDefinition: IKeys = {\r\n ArrowLeft: \"ArrowLeft\",\r\n ArrowUp: \"ArrowUp\",\r\n ArrowRight: \"ArrowRight\",\r\n ArrowDown: \"ArrowDown\",\r\n Enter: \"Enter\",\r\n Tab: \"Tab\",\r\n Space: \"Space\",\r\n Escape: \"Escape\",\r\n\r\n Comma: \"Comma\",\r\n Dash: \"Slash\",\r\n Dot: \"Period\",\r\n Hash: \"Backslash\",\r\n\r\n A: \"KeyA\",\r\n B: \"KeyB\",\r\n C: \"KeyC\",\r\n D: \"KeyD\",\r\n E: \"KeyE\",\r\n F: \"KeyF\",\r\n G: \"KeyG\",\r\n H: \"KeyH\",\r\n I: \"KeyI\",\r\n J: \"KeyJ\",\r\n K: \"KeyJ\",\r\n L: \"KeyK\",\r\n M: \"KeyM\",\r\n N: \"KeyN\",\r\n O: \"KeyO\",\r\n P: \"KeyP\",\r\n Q: \"KeyQ\",\r\n R: \"KeyR\",\r\n S: \"KeyS\",\r\n T: \"KeyT\",\r\n U: \"KeyU\",\r\n V: \"KeyV\",\r\n W: \"KeyW\",\r\n X: \"KeyX\",\r\n Y: \"KeyY\",\r\n Z: \"KeyZ\",\r\n\r\n F1: \"F1\",\r\n F2: \"F2\",\r\n F3: \"F3\",\r\n F4: \"F4\",\r\n F5: \"F5\",\r\n F6: \"F6\",\r\n F7: \"F7\",\r\n F8: \"F8\",\r\n F9: \"F9\",\r\n F10: \"F10\",\r\n F11: \"F11\",\r\n F12: \"F12\",\r\n}\r\n\r\nexport const ButtonKeyDefinition: IKeys = {\r\n ArrowLeft: \"ArrowLeft\",\r\n ArrowUp: \"ArrowUp\",\r\n ArrowRight: \"ArrowRight\",\r\n ArrowDown: \"ArrowDown\",\r\n Enter: \"Enter\",\r\n Tab: \"Tab\",\r\n Space: \" \",\r\n Escape: \"Escape\",\r\n\r\n Comma: \",\",\r\n Dash: \"-\",\r\n Dot: \".\",\r\n Hash: \"#\",\r\n\r\n A: \"a\",\r\n B: \"b\",\r\n C: \"c\",\r\n D: \"d\",\r\n E: \"e\",\r\n F: \"f\",\r\n G: \"g\",\r\n H: \"h\",\r\n I: \"i\",\r\n J: \"j\",\r\n K: \"j\",\r\n L: \"k\",\r\n M: \"m\",\r\n N: \"n\",\r\n O: \"o\",\r\n P: \"p\",\r\n Q: \"q\",\r\n R: \"r\",\r\n S: \"s\",\r\n T: \"t\",\r\n U: \"u\",\r\n V: \"v\",\r\n W: \"w\",\r\n X: \"x\",\r\n Y: \"y\",\r\n Z: \"z\",\r\n\r\n F1: \"F1\",\r\n F2: \"F2\",\r\n F3: \"F3\",\r\n F4: \"F4\",\r\n F5: \"F5\",\r\n F6: \"F6\",\r\n F7: \"F7\",\r\n F8: \"F8\",\r\n F9: \"F9\",\r\n F10: \"F10\",\r\n F11: \"F11\",\r\n F12: \"F12\",\r\n}\r\n","export {}\r\n\r\ndeclare global {\r\n interface Array {\r\n first(): T | undefined\r\n last(): T | undefined\r\n previous(marked: T): T\r\n next(marked: T): T\r\n max(selector: (item: T) => any): any | undefined\r\n /**\r\n * @deprecated We had a polyfill for Array.find() for a while now. So please use the native function.\r\n */\r\n findFirst(comparator: (item: T) => boolean): T | undefined\r\n remove(comparator: (item: T) => boolean): number\r\n orderBy(selector: (item: T) => number | string | boolean | Date, descending?: boolean): Array\r\n groupBy(selector: (item: T) => number | string): { [group: string]: Array }\r\n\r\n /**\r\n * Removes duplicates from an array returning a new one.\r\n * Only works on primitive types like Boolean, Null, Undefined, Number, String and Symbol!\r\n */\r\n distinct(): Array\r\n\r\n with(index: number, value: T): T[]\r\n }\r\n}\r\n\r\nArray.prototype.first = function first() {\r\n return this.length > 0 ? this[0] : undefined\r\n}\r\n\r\nArray.prototype.last = function last() {\r\n return this.length > 0 ? this[this.length - 1] : undefined\r\n}\r\n\r\nArray.prototype.max = function max(value: (item: any) => any) {\r\n if (this.length === 0) {\r\n return\r\n }\r\n\r\n let max: any = value(this.first())\r\n\r\n this.forEach((item) => {\r\n const val = value(item)\r\n max = val > max ? val : max\r\n })\r\n\r\n return max\r\n}\r\n\r\nArray.prototype.findFirst = function findFirst(comparator: (item: any) => boolean) {\r\n return this.filter(comparator).first()\r\n}\r\n\r\nArray.prototype.remove = function remove(comparator: (item: any) => boolean) {\r\n let result = 0\r\n\r\n this.forEach((item, i) => {\r\n if (comparator(item)) {\r\n this.splice(i, 1)\r\n result++\r\n }\r\n })\r\n\r\n return result\r\n}\r\n\r\nArray.prototype.orderBy = function orderBy(selector: (item: any) => number | string | boolean | Date, descending = false) {\r\n const list = this.map((value, index) => {\r\n return {\r\n index,\r\n value,\r\n criteria: selector(value),\r\n }\r\n })\r\n\r\n list.sort((left, right) => {\r\n const a = left.criteria\r\n const b = right.criteria\r\n let result = left.index - right.index\r\n\r\n if (a !== b) {\r\n if (a > b || a === undefined) {\r\n result = 1\r\n }\r\n if (a < b || b === undefined) {\r\n result = -1\r\n }\r\n }\r\n\r\n return descending ? -result : result\r\n })\r\n\r\n return list.map((x) => x.value)\r\n}\r\n\r\nArray.prototype.groupBy = function groupBy(selector: (item: any) => number | string) {\r\n const result: { [group: string]: Array } = {}\r\n\r\n this.forEach((item) => {\r\n let group = selector(item)\r\n if (group == null) {\r\n group = \"\"\r\n }\r\n\r\n let list = result[group]\r\n if (!list) {\r\n list = []\r\n result[group] = list\r\n }\r\n\r\n list.push(item)\r\n })\r\n\r\n return result\r\n}\r\n\r\nArray.prototype.previous = function previous(marked: any) {\r\n if (!marked) {\r\n return this.last()\r\n }\r\n\r\n let idx = 0\r\n this.forEach((item, i) => (item == marked ? (idx = i) : null))\r\n\r\n if (--idx < 0) {\r\n idx = 0\r\n }\r\n\r\n return this[idx]\r\n}\r\n\r\nArray.prototype.next = function next(marked: any) {\r\n if (!marked) {\r\n return this.first()\r\n }\r\n\r\n let idx = 0\r\n this.forEach((item, i) => (item == marked ? (idx = i) : null))\r\n\r\n if (++idx >= this.length) {\r\n idx = this.length - 1\r\n }\r\n\r\n return this[idx]\r\n}\r\n\r\nArray.prototype.distinct = function distinct() {\r\n return this.filter((x, idx) => this.indexOf(x) === idx)\r\n}\r\n\r\nArray.prototype.with = function withFunc(index: number, value: unknown) {\r\n if (index < 0) {\r\n return [...this, value]\r\n }\r\n return [...this.slice(0, index), value, ...this.slice(index + 1)]\r\n}\r\n","enum DateUnit {\r\n Year = 1,\r\n Month = 2,\r\n Week = 3,\r\n Day = 4,\r\n}\r\n\r\nexport { DateUnit }\r\n\r\ndeclare global {\r\n interface Date {\r\n year(): number\r\n month(): number\r\n day(): number\r\n week(): number\r\n isSame(comparison: Date, unit?: DateUnit): boolean\r\n isBefore(comparison: Date, unit?: DateUnit): boolean\r\n isAfter(comparison: Date, unit?: DateUnit): boolean\r\n add(value: number, unit?: DateUnit): Date\r\n subtract(value: number, unit?: DateUnit): Date\r\n set(value: number, unit: DateUnit): Date\r\n clone(): Date\r\n startOf(unit: DateUnit): Date\r\n }\r\n}\r\n\r\nconst DAY = 86400000\r\n\r\nfunction createComparableDate(date: Date): Date {\r\n // we need to prepare, so that the time is totally equal\r\n const preparedDate = new Date(date)\r\n\r\n preparedDate.setHours(0)\r\n preparedDate.setMinutes(0)\r\n preparedDate.setSeconds(0)\r\n preparedDate.setMilliseconds(0)\r\n\r\n return preparedDate\r\n}\r\n\r\nDate.prototype.year = function year(): number {\r\n return this.getFullYear()\r\n}\r\nDate.prototype.month = function month(): number {\r\n return this.getMonth() + 1\r\n}\r\nDate.prototype.day = function day(): number {\r\n return this.getDate()\r\n}\r\n\r\nDate.prototype.isSame = function isSame(comparison: Date, unit: DateUnit = DateUnit.Day): boolean {\r\n if (!comparison) {\r\n return false\r\n }\r\n\r\n let result = true\r\n\r\n result = result && (unit >= DateUnit.Year ? this.year() === comparison.year() : true)\r\n result = result && (unit >= DateUnit.Month ? this.month() === comparison.month() : true)\r\n result = result && (unit >= DateUnit.Week ? this.week() === comparison.week() : true)\r\n result = result && (unit >= DateUnit.Day ? this.day() === comparison.day() : true)\r\n\r\n return result\r\n}\r\n\r\nDate.prototype.isBefore = function isBefore(comparison: Date, unit: DateUnit = DateUnit.Day): boolean {\r\n if (!comparison) {\r\n return false\r\n }\r\n\r\n if (unit === DateUnit.Day) {\r\n const preparedComparison: Date = createComparableDate(comparison)\r\n const preparedSource: Date = createComparableDate(this)\r\n return preparedSource < preparedComparison // using the native date comparison when we need a check for the day, the origin-comparison below will not do the job correctly in undefined circumstances\r\n }\r\n\r\n let result = false\r\n result = result || (unit >= DateUnit.Year && this.year() < comparison.year())\r\n result = result || (unit >= DateUnit.Month && this.month() < comparison.month())\r\n result = result || (unit >= DateUnit.Week && this.week() < comparison.week())\r\n result = result || (unit >= DateUnit.Day && this.day() < comparison.day())\r\n return result\r\n}\r\n\r\nDate.prototype.isAfter = function isAfter(comparison: Date, unit: DateUnit = DateUnit.Day): boolean {\r\n if (!comparison) {\r\n return false\r\n }\r\n if (unit === DateUnit.Day) {\r\n const preparedComparison: Date = createComparableDate(comparison)\r\n const preparedSource: Date = createComparableDate(this)\r\n return preparedSource > preparedComparison // using the native date comparison when we need a check for the day, the origin-comparison below will not do the job correctly in undefined circumstances\r\n }\r\n\r\n let result = false\r\n result = result || (unit >= DateUnit.Year && this.year() > comparison.year())\r\n result = result || (unit >= DateUnit.Month && this.month() > comparison.month())\r\n result = result || (unit >= DateUnit.Week && this.week() > comparison.week())\r\n result = result || (unit >= DateUnit.Day && this.day() > comparison.day())\r\n return result\r\n}\r\n\r\nDate.prototype.clone = function clone() {\r\n return new Date(this.getFullYear(), this.getMonth(), this.getDate())\r\n}\r\n\r\nDate.prototype.add = function add(value: number, unit: DateUnit = DateUnit.Day): Date {\r\n const result = this.clone()\r\n\r\n switch (unit) {\r\n case DateUnit.Year:\r\n result.setFullYear(this.getFullYear() + value)\r\n break\r\n case DateUnit.Month:\r\n result.setMonth(this.getMonth() + value)\r\n break\r\n case DateUnit.Week:\r\n result.setDate(this.getDate() + value * 7)\r\n break\r\n case DateUnit.Day:\r\n result.setDate(this.getDate() + value)\r\n break\r\n default:\r\n break\r\n }\r\n\r\n return result\r\n}\r\n\r\nDate.prototype.subtract = function subtract(value: number, unit: DateUnit = DateUnit.Day): Date {\r\n return this.add(-value, unit)\r\n}\r\n\r\nDate.prototype.week = function week(): number {\r\n const thursday = new Date(this.getTime() + (3 - ((this.getDay() + 6) % 7)) * DAY)\r\n const cwYear = thursday.getFullYear()\r\n const thursdayCw = new Date(new Date(cwYear, 0, 4).getTime() + (3 - ((new Date(cwYear, 0, 4).getDay() + 6) % 7)) * DAY)\r\n\r\n const result = Math.floor(1.5 + (thursday.getTime() - thursdayCw.getTime()) / DAY / 7)\r\n\r\n return result\r\n}\r\n\r\nDate.prototype.startOf = function startOf(unit: DateUnit): Date {\r\n const result = this.clone()\r\n\r\n switch (unit) {\r\n case DateUnit.Year:\r\n result.setMonth(0)\r\n result.setDate(1)\r\n break\r\n case DateUnit.Month:\r\n result.setDate(1)\r\n break\r\n case DateUnit.Week:\r\n if (this.getDay() === 0 && this.getDate() === 1) {\r\n // if the first day of a month is a sunday, it's part of the last week of the last month,\r\n // if we dont catch this, we would get a startOfTheWeek which is later than the selected date 🤔\r\n result.setDate(-5) // we just go back 6 days by setting date to -5. 💡 -5 stands for [0,-1,-2,-3,-4,-5] = 6 days......\r\n } else {\r\n result.setDate(this.getDate() - this.getDay() + 1)\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n\r\n return result\r\n}\r\n\r\nDate.prototype.set = function set(value: number, unit: DateUnit): Date {\r\n const result = this.clone()\r\n\r\n switch (unit) {\r\n case DateUnit.Year:\r\n result.setFullYear(value)\r\n break\r\n case DateUnit.Month:\r\n result.setMonth(value - 1)\r\n break\r\n case DateUnit.Week:\r\n result.setDate(value * 7)\r\n break\r\n case DateUnit.Day:\r\n result.setDate(value)\r\n break\r\n default:\r\n break\r\n }\r\n\r\n return result\r\n}\r\n","export {}\r\n\r\ndeclare global {\r\n interface Number {\r\n format(decimalLength: number, sectionsLength?: number, sectionsDelimiter?: string, decimalDelimiter?: string): string\r\n pad(length: number, char?: string): string\r\n add(value: number): number\r\n round(step: number): number\r\n /**\r\n * ceil a number to the next interval\r\n * @param interval use positive numbers only, <= 0 will be handled as 1\r\n */\r\n ceil(interval: number): number\r\n }\r\n}\r\n\r\nNumber.prototype.format = function format(\r\n decimalLength: number,\r\n sectionsLength?: number,\r\n sectionsDelimiter?: string,\r\n decimalDelimiter?: string\r\n): string {\r\n const pattern = `\\\\d(?=(\\\\d{${sectionsLength || 3}})+${decimalLength > 0 ? \"\\\\D\" : \"$\"})`\r\n const num = this.toFixed(Math.max(0, ~~decimalLength))\r\n\r\n return (decimalDelimiter ? num.replace(\".\", decimalDelimiter) : num).replace(new RegExp(pattern, \"g\"), `$&${sectionsDelimiter || \",\"}`)\r\n}\r\n\r\nNumber.prototype.pad = function pad(length: number, char = \"0\"): string {\r\n let val = this.toString()\r\n const amount = length - val.length\r\n for (let i = 0; i < amount; i++) {\r\n val = char + val\r\n }\r\n\r\n return val\r\n}\r\n\r\nNumber.prototype.add = function add(value: number) {\r\n const cf = maxFloatToIntFactor(this as number, value)\r\n return (parseInt(((this as number) * cf).toString()) + parseInt((value * cf).toPrecision())) / cf\r\n}\r\n\r\nNumber.prototype.round = function round(step: number) {\r\n const test = step.toString()\r\n return parseFloat((Math.round((this as number) / step) * step).toFixed(test.substr(test.indexOf(\".\")).length - 1))\r\n}\r\n\r\nNumber.prototype.ceil = function ceil(interval: number) {\r\n if (interval <= 0) {\r\n return Math.ceil(this as number)\r\n }\r\n\r\n return Math.ceil((this as number) / interval) * interval\r\n}\r\n\r\nfunction maxFloatToIntFactor(...values: Array) {\r\n let result = 1\r\n values.forEach((val) => {\r\n const test = floatToIntFactor(val)\r\n result = test > result ? test : result\r\n })\r\n return result\r\n}\r\n\r\nfunction floatToIntFactor(value: number) {\r\n const test = value.toString()\r\n return 10 ** (test.substring(test.indexOf(\".\")).length - 1)\r\n}\r\n","/** *\r\n * ce 08.05.2020 - maybe we need this script global. currently just saving, but not exporting. mb it can be deleted or exported 😘\r\n */\r\nexport {}\r\n\r\ndeclare global {\r\n interface String {\r\n hashCode(): number\r\n }\r\n}\r\n\r\nString.prototype.hashCode = function hashCode() {\r\n return generateHash(this as string)\r\n}\r\n\r\n/** *\r\n * @description simple and fast hashing method, for non-sensitive data\r\n * @source {1} - https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\r\n * @source {2} - https://jsperf.com/string-hashing-methods\r\n */\r\nfunction generateHash(value: string) {\r\n let hash = 0\r\n\r\n if (!value.length) {\r\n return hash\r\n }\r\n\r\n for (let i = 0, imax = value.length, n; i < imax; ++i) {\r\n n = value.charCodeAt(i)\r\n\r\n hash = (hash << 5) - hash + n\r\n hash &= hash // Convert to 32-bit integer\r\n }\r\n\r\n return Math.abs(hash)\r\n}\r\n","import { CacheKey } from \".\"\r\nimport { CacheEntry } from \"./response-cache\"\r\n\r\nexport type CachingCounter = Record<\r\n CacheKey,\r\n {\r\n called: number\r\n totalResponseChars: number\r\n sharedRequests: number\r\n url: string\r\n }\r\n>\r\n\r\nconst cachingCounter: CachingCounter = {}\r\nwindow.cc = cachingCounter // Make stats available on window object to inspect them using the browser dev tools\r\n\r\nexport function logEntry(key: CacheKey, requestUrl: string, cacheEntry: CacheEntry) {\r\n if (window.logCaching) {\r\n setTimeout(() => {\r\n try {\r\n count(key, requestUrl, cacheEntry)\r\n } catch (e) {}\r\n }) // setTimeout - to be \"non blocking\"\r\n }\r\n}\r\n\r\nfunction count(key: CacheKey, requestUrl: string, cacheEntry: CacheEntry) {\r\n const response = JSON.stringify(cacheEntry.response || \"\")\r\n\r\n let entry = cachingCounter[key]\r\n\r\n if (!entry) {\r\n entry = {\r\n url: requestUrl,\r\n called: 1,\r\n sharedRequests: cacheEntry.finished ? 0 : 1,\r\n totalResponseChars: response.replace(/(\\\")/g, \"\").length,\r\n }\r\n } else {\r\n entry = {\r\n ...entry,\r\n called: entry.called + 1,\r\n sharedRequests: entry.sharedRequests + (cacheEntry.finished ? 0 : 1),\r\n totalResponseChars: entry.totalResponseChars + response.replace(/(\\\")/g, \"\").length,\r\n }\r\n }\r\n\r\n cachingCounter[key] = entry\r\n}\r\n","import { deleteResponseCacheEntry, ResponseCache } from \"./response-cache\"\r\n\r\nfunction startGarbageCollection() {\r\n const gcIntervalMS = window.gcIntervalMS ?? (window.gcIntervalMS = 900) // default interval is every 900 ms\r\n\r\n const interval = window.setInterval(() => {\r\n const now = Date.now()\r\n const responseKeys = Object.keys(ResponseCache)\r\n\r\n for (let i = 0; i < responseKeys.length; i++) {\r\n const entry = ResponseCache[responseKeys[i] as any]\r\n\r\n // If cache entry is finished and expired\r\n if (entry.finished && now > (entry.expires ?? 0)) {\r\n deleteResponseCacheEntry(responseKeys[i] as any)\r\n }\r\n }\r\n\r\n // Check the interval was changed using the browser dev tools\r\n if (gcIntervalMS != window.gcIntervalMS) {\r\n window.clearInterval(interval)\r\n startGarbageCollection()\r\n }\r\n }, gcIntervalMS)\r\n}\r\n\r\nstartGarbageCollection()\r\n","import { AjaxCachingMode, CachingOptions } from \"@tm/models\"\r\nimport { AxiosRequestConfig } from \"axios\"\r\n\r\nimport { CachingCounter } from \"./caching-counter\"\r\nimport { handleRequestCaching } from \"./request-cache\"\r\nimport { handleResponseCaching } from \"./response-cache\"\r\n\r\n// Importing this file will start the garbage collection process\r\nimport \"./garbage-collection\"\r\n\r\ndeclare global {\r\n interface Window {\r\n ajaxCachingMode?: AjaxCachingMode\r\n logCaching?: boolean\r\n cc?: CachingCounter\r\n gcIntervalMS?: number\r\n }\r\n}\r\n\r\nexport type CacheKey = string\r\n\r\nexport type AjaxRequest = () => Promise\r\n\r\nexport function handleCaching(doAjaxRequest: AjaxRequest, ajaxRequest: AxiosRequestConfig): Promise {\r\n const cachingMode = window.ajaxCachingMode ?? window.userContext?.parameter?.ajaxCachingMode ?? AjaxCachingMode.Request\r\n\r\n if (cachingMode == AjaxCachingMode.NoCache) {\r\n return doAjaxRequest()\r\n }\r\n\r\n const requestUrl = ajaxRequest.url ?? \"\"\r\n const key = createRequestKey(ajaxRequest)\r\n const cachingOptions = getWhiteListOptions(requestUrl)\r\n\r\n if (key && cachingMode == AjaxCachingMode.Response && cachingOptions) {\r\n return handleResponseCaching(doAjaxRequest, key, cachingOptions, requestUrl)\r\n }\r\n\r\n return handleRequestCaching(doAjaxRequest, key)\r\n}\r\n\r\nfunction createRequestKey(ajaxRequest: AxiosRequestConfig): CacheKey {\r\n // all parts which make a request unique should be present here\r\n // use JSON.stringify to capture the maybe nested objects \"data\" and \"params\"\r\n return `${ajaxRequest.url ?? \"\"},${ajaxRequest.data ? JSON.stringify(ajaxRequest.data) : \"\"},${\r\n ajaxRequest.params ? JSON.stringify(ajaxRequest.params) : \"\"\r\n }`\r\n .hashCode()\r\n .toString()\r\n}\r\n\r\nfunction getWhiteListOptions(requestUrl: string): CachingOptions | undefined {\r\n if (!window.cachingWhitelist) {\r\n return\r\n }\r\n\r\n const cachingOptionsOrKey = window.cachingWhitelist[requestUrl.split(\"?\")[0]] // in case url contains query parameters ignore them\r\n if (!cachingOptionsOrKey) {\r\n return\r\n }\r\n\r\n let cachingOptions: CachingOptions | undefined\r\n\r\n if (typeof cachingOptionsOrKey === \"string\") {\r\n const value = window.cachingWhitelist[cachingOptionsOrKey]\r\n cachingOptions = typeof value === \"object\" ? value : undefined\r\n } else {\r\n cachingOptions = cachingOptionsOrKey\r\n }\r\n\r\n return cachingOptions\r\n}\r\n","import { CacheKey, AjaxRequest } from \".\"\r\n\r\nexport const RequestCache: Record> = {}\r\n\r\nexport function handleRequestCaching(doAjaxRequest: AjaxRequest, key: CacheKey): Promise {\r\n RequestCache[key] = RequestCache[key] ?? doAjaxRequest()\r\n RequestCache[key].finally(() => deleteFromRequestCache(key))\r\n\r\n return RequestCache[key] as Promise\r\n}\r\n\r\nexport function deleteFromRequestCache(key: CacheKey) {\r\n delete RequestCache[key]\r\n}\r\n","import { CachingOptions } from \"@tm/models\"\r\n\r\nimport { CacheKey, AjaxRequest } from \".\"\r\nimport { parseTimespan } from \"../../date\"\r\nimport { logEntry } from \"./caching-counter\"\r\nimport { RequestCache } from \"./request-cache\"\r\n\r\nexport type CacheEntry = {\r\n expires?: number\r\n request: Promise\r\n response?: unknown\r\n finished: boolean\r\n ttl: number\r\n}\r\n\r\nexport const ResponseCache: Record = {}\r\n\r\nexport function handleResponseCaching(\r\n doAjaxRequest: AjaxRequest,\r\n key: CacheKey,\r\n cachingOptions: CachingOptions,\r\n requestUrl: string\r\n): Promise {\r\n let cacheEntry = ResponseCache[key]\r\n\r\n // Cache entry exists and doesn't expire or isn't expired yet\r\n if (cacheEntry && (!cacheEntry.expires || cacheEntry.expires > Date.now())) {\r\n logEntry(key, requestUrl, cacheEntry)\r\n\r\n if (cacheEntry.finished) {\r\n return Promise.resolve(cacheEntry.response) as Promise\r\n }\r\n } else {\r\n cacheEntry = getCacheEntry(doAjaxRequest, key, cachingOptions)\r\n }\r\n\r\n return cacheEntry.request as Promise\r\n}\r\n\r\nfunction onResponse(key: CacheKey, response: unknown) {\r\n if ((response as any)?.error) {\r\n deleteRequestCacheEntry(key)\r\n return\r\n }\r\n\r\n finishedRequest(key, response)\r\n}\r\n\r\nfunction deleteRequestCacheEntry(key: CacheKey) {\r\n delete RequestCache[key]\r\n}\r\n\r\nexport function deleteResponseCacheEntry(key: CacheKey) {\r\n delete ResponseCache[key]\r\n}\r\n\r\nfunction finishedRequest(key: CacheKey, response: unknown) {\r\n const entry = ResponseCache[key]\r\n\r\n if (entry) {\r\n entry.response = response\r\n entry.finished = true\r\n entry.expires = Date.now() + entry.ttl\r\n }\r\n}\r\n\r\nfunction createCacheEntry(cachingOptions: CachingOptions, request: Promise): CacheEntry {\r\n const ttl = parseTimespan(cachingOptions.ttl)\r\n\r\n return {\r\n request,\r\n finished: false,\r\n ttl,\r\n }\r\n}\r\n\r\nfunction getCacheEntry(doAjaxRequest: AjaxRequest, key: CacheKey, cachingOptions: CachingOptions): CacheEntry {\r\n deleteRequestCacheEntry(key)\r\n\r\n const request = doAjaxRequest()\r\n request.catch(() => deleteRequestCacheEntry(key))\r\n request.then((response) => onResponse(key, response))\r\n\r\n return (ResponseCache[key] = createCacheEntry(cachingOptions, request))\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nimport type { AuthTokenPayload } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport type { AxiosError, AxiosRequestConfig, AxiosRequestHeaders, AxiosResponse } from \"axios\"\r\nimport axios from \"axios\"\r\nimport { getCoopMemberId, getLanguageFromLocalStorage } from \"../..\"\r\nimport type { ModelState } from \"../../types\"\r\nimport { decodeJwtToken, getStoredAuthorization } from \"../auth\"\r\nimport { parseISODate } from \"../date\"\r\nimport { createQueryString } from \"../url\"\r\nimport { handleCaching } from \"./caching\"\r\n\r\nexport type RequestMethod = \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\"\r\nexport type ResponseType = \"text\" | \"json\" | \"blob\"\r\nexport type ContentType = \"JSON\" | \"BLOB\" | \"XML\"\r\nexport type AuthorizationType = \"Bearer\" | \"Basic\"\r\nexport type Authorization = {\r\n type: AuthorizationType\r\n credentials: string\r\n}\r\n\r\n/**\r\n * The request object containing information like the `url`, `method`, `body`, ...\r\n */\r\nexport type Request = {\r\n /**\r\n * The url to call - can be relative to document root or absolute.\r\n */\r\n url: string\r\n\r\n /**\r\n * The used HTTP method.\r\n * @default \"GET\"\r\n */\r\n method?: RequestMethod\r\n\r\n /**\r\n * The data send in the request body.\r\n * Supplied to `axios` as `data`.\r\n *\r\n * *Remark: Setting the `method` to `\"GET\"` will send the data in the URL query string instead of the body.*\r\n * *Supplied to `axios` as `params`.*\r\n *\r\n * @see AxiosRequestConfig.data @see AxiosRequestConfig.params\r\n */\r\n body?: TRequest\r\n\r\n /**\r\n * The type of the request data - used to set the HTTP header `Content-Type`.\r\n *\r\n * *Remark: Setting the `method` to `\"GET\"` will always result in `Content-Type: \"text/plain\"` being sent.*\r\n * @default \"JSON\"\r\n */\r\n contentType?: ContentType\r\n\r\n /**\r\n * The value of the HTTP header `Accept-Language` in ISO-639-1 format.\r\n *\r\n * @default localStorage.getItem(\"language\") ?? \"de\"\r\n */\r\n language?: string\r\n\r\n /**\r\n * If set to `true` supply the language in a custom HTTP header `App-Language` instead.\r\n * @see Request.language parameter\r\n */\r\n languageAsCustomerHeader?: boolean\r\n\r\n /**\r\n * If supplied it will be sent in the HTTP header `Authorization` in the form of `\" \"`.\r\n */\r\n authorization?: Authorization | null\r\n\r\n /**\r\n * Supplied to `axios` as `responseType`.\r\n * @see AxiosRequestConfig.responseType\r\n */\r\n responseType?: ResponseType\r\n\r\n /**\r\n * HTTP headers that will be sent in the request.\r\n *\r\n * *Remark: HTTP headers set by other options can be overwritten here.*\r\n */\r\n headers?: Record\r\n\r\n /**\r\n * Supplied to `axios` as `withCredentials`.\r\n * @see AxiosRequestConfig.withCredentials\r\n */\r\n withCredentials?: boolean\r\n\r\n /**\r\n * `AbortController.signal` will be supplied to `axios` as `signal`.\r\n * @see AxiosRequestConfig.signal\r\n */\r\n abortController?: AbortController\r\n\r\n /**\r\n * The timeout in milliseconds after which the request will be aborted when no response isn't received yet.\r\n *\r\n * Supplied to `axios` as `timeout`.\r\n * @default 100000\r\n * @see AxiosRequestConfig.timeout\r\n */\r\n timeout?: number\r\n\r\n /**\r\n * Please only use when really necessary, as it might cause more requests. This skips request and response caching.\r\n */\r\n skipCaching?: boolean\r\n}\r\n\r\nconst ajaxErrorHandlers: Array<(error: any) => void> = []\r\n\r\n// Serialize url params correctly (nested objects etc.)\r\naxios.defaults.paramsSerializer = (params) => createQueryString(params).slice(1) // createQueryString also returns a leading ? which is also added by axios\r\n\r\n// Serialize body as JSON (nested objects etc.)\r\naxios.defaults.transformRequest = (data) => (data != undefined ? JSON.stringify(data) : undefined)\r\n\r\nlet tokenExpMs: number | undefined\r\naxios.interceptors.request.use((config) => {\r\n const authorization = config.headers?.Authorization\r\n\r\n if (authorization?.startsWith(\"Bearer \")) {\r\n // if a request with Authorization header is made\r\n\r\n if (tokenExpMs === undefined) {\r\n // get the expiry time of the token (only once)\r\n try {\r\n const payload = decodeJwtToken(authorization.slice(authorization.indexOf(\"Bearer \")))\r\n tokenExpMs = payload.exp * 1000 // payload.exp is in seconds\r\n } catch {}\r\n }\r\n\r\n if (tokenExpMs !== undefined && tokenExpMs < Date.now()) {\r\n // the token is expired - manually throw error with an 401 response code\r\n throw {\r\n config,\r\n response: {\r\n status: 401,\r\n },\r\n }\r\n }\r\n }\r\n\r\n return config // important otherwise all requests would be skipped\r\n})\r\n\r\nfunction convertISODates(data: any): any {\r\n return (data ?? \"\") !== \"\" ? JSON.parse(data, parseISODates) : undefined\r\n}\r\n\r\nfunction parseISODates(_key: string, value: any): any {\r\n if (typeof value == \"string\") {\r\n return parseISODate(value) ?? value\r\n }\r\n\r\n return value\r\n}\r\n\r\n// first step to use only this function for authorization calls\r\nexport function ajaxAuth(\r\n request: Request,\r\n skipErrorHandlers?: boolean,\r\n _?: boolean,\r\n parseDates?: boolean\r\n): Promise {\r\n const authorization = getStoredAuthorization()\r\n\r\n if (authorization === null) {\r\n Container.getInstance(\"Portal\").callAction(\"logout\", true, false)\r\n return Promise.reject(new Error(\"The request needs a valid token, but no authorization token was found in storage!\"))\r\n }\r\n\r\n return ajax({ ...request, authorization }, skipErrorHandlers, _, parseDates)\r\n}\r\n\r\n/**\r\n * Make an AJAX call using `Axios`.\r\n *\r\n * @param request see `Request` type\r\n * @param skipErrorHandlers set to `true` to skip calling the error handlers registered using `ajax.onError`\r\n * @param _ DEPRECATED - just here to not modify the method signature\r\n * @param parseDates set to `true` to automatically parse ISO date strings in the response to JS `Date` objects - works nested -\r\n * ***IMPORTANT**: please use this parameter (set to `true`) so we can make this the default in future*\r\n * @returns A `Promise` which will be resolved with the parsed response or `undefined` in case of no failure but a HTTP response status other than `200` or `201` -\r\n * in case of failure the `Promise` is rejected with an `Error` object\r\n */\r\nexport function ajax(\r\n request: Request,\r\n skipErrorHandlers?: boolean,\r\n _?: boolean,\r\n parseDates?: boolean\r\n): Promise {\r\n const {\r\n method = \"GET\",\r\n contentType = \"JSON\",\r\n language = getLanguageFromLocalStorage() ?? \"de\",\r\n abortController = new AbortController(),\r\n timeout = 100000, // Cloudflare default\r\n } = request\r\n\r\n const headers: AxiosRequestHeaders = {\r\n [request.languageAsCustomerHeader ? \"App-Language\" : \"Accept-Language\"]: language,\r\n }\r\n\r\n let params: Req | undefined\r\n let body: Req | undefined\r\n\r\n if (method == \"GET\") {\r\n params = request.body\r\n headers[\"Content-Type\"] = \"text/plain\"\r\n } else {\r\n body = request.body\r\n\r\n switch (contentType) {\r\n case \"JSON\": {\r\n headers[\"Content-Type\"] = \"application/json\"\r\n break\r\n }\r\n case \"BLOB\": {\r\n headers[\"Content-Type\"] = \"application/octet-stream\"\r\n break\r\n }\r\n case \"XML\": {\r\n headers[\"Content-Type\"] = \"application/xml\"\r\n break\r\n }\r\n }\r\n }\r\n\r\n if (request.authorization) {\r\n headers.Authorization = `${request.authorization.type} ${request.authorization.credentials}`\r\n } else if (request.authorization === null) {\r\n Container.getInstance(\"Portal\").callAction(\"logout\", true, false)\r\n return Promise.reject(new Error(\"The request needs a valid token, but no authorization token was found in storage!\"))\r\n }\r\n\r\n // Only send custom headers for requests to our services (implemented because of CORS restrictions related to custom headers (see NEXT-27260))\r\n if (request.url.startsWith(\"/data\")) {\r\n const coopMemberId = getCoopMemberId()\r\n if (coopMemberId) {\r\n headers.CoopMemberId = coopMemberId\r\n }\r\n\r\n const { timeZone } = Intl.DateTimeFormat().resolvedOptions()\r\n if (timeZone) {\r\n headers.LocalTimeZone = timeZone\r\n }\r\n }\r\n\r\n const requestConfig: AxiosRequestConfig = {\r\n url: request.url,\r\n headers: { ...headers, ...request.headers },\r\n method,\r\n params,\r\n data: body,\r\n withCredentials: request.withCredentials,\r\n signal: abortController.signal,\r\n timeout,\r\n }\r\n\r\n if (request.responseType) {\r\n requestConfig.responseType = request.responseType\r\n }\r\n\r\n const doAjaxRequest = createAjaxRequestPromise(requestConfig, skipErrorHandlers, parseDates)\r\n\r\n if (request.skipCaching) {\r\n return doAjaxRequest()\r\n }\r\n\r\n try {\r\n return handleCaching(doAjaxRequest, requestConfig)\r\n } catch (e) {\r\n console.debug(\"caching failed\", e)\r\n return doAjaxRequest()\r\n }\r\n}\r\n\r\nfunction createAjaxRequestPromise(config: AxiosRequestConfig, skipErrorHandlers?: boolean, parseDates?: boolean) {\r\n return () =>\r\n new Promise((resolve, reject) => {\r\n if (parseDates) {\r\n config.transformResponse = convertISODates\r\n }\r\n\r\n axios\r\n .request, Req>(config)\r\n .then(\r\n (response) => {\r\n switch (response.status) {\r\n case 200:\r\n case 201: {\r\n resolve(response.data)\r\n break\r\n }\r\n default: {\r\n resolve(undefined)\r\n break\r\n }\r\n }\r\n },\r\n (error: AxiosError) => {\r\n if (axios.isCancel(error) || error.message == \"canceled\") {\r\n // If requested was cancelled by consumer, Promise shouldn't be rejected\r\n console.log(`Request timed-out/aborted/cancelled: ${config.method ?? \"GET\"} ${config.url}`)\r\n return\r\n }\r\n\r\n if (skipErrorHandlers !== true) {\r\n ajaxErrorHandlers.forEach((handler) => handler(error))\r\n }\r\n\r\n switch (error.response?.status) {\r\n case 404: {\r\n reject(new NotFoundError(error.message, error.response.data as any))\r\n break\r\n }\r\n case 401: {\r\n reject(new AuthenticationError(error.message, error.response.data as any))\r\n break\r\n }\r\n case 400: {\r\n reject(\r\n new ValidationError(\r\n error.message,\r\n // The service may send \"modelState\" nested (maybe not always), so \"unpack\" it here if necessary\r\n (!!error.response.data && typeof error.response.data === \"object\" && \"modelState\" in error.response.data\r\n ? error.response.data.modelState\r\n : error.response.data) as ModelState\r\n )\r\n )\r\n break\r\n }\r\n default: {\r\n reject(new Error(error.message))\r\n }\r\n }\r\n }\r\n )\r\n .catch((error: unknown) => {\r\n const errorMessage =\r\n typeof error == \"string\"\r\n ? error\r\n : typeof error == \"object\" && error && \"toString\" in error && typeof error.toString == \"function\" && error.toString()\r\n ? error.toString()\r\n : JSON.stringify(error)\r\n\r\n reject(new Error(errorMessage))\r\n })\r\n })\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nexport namespace ajax {\r\n /**\r\n * Register an handler that will be called in case of an error occuring\r\n * during any `Axios.request` call made inside the `ajax` function.\r\n *\r\n * @param handler The handler which will be called with an `AxiosError` object supplied as parameter.\r\n * @returns A function to unsubscribe this handler.\r\n */\r\n export function onError(handler: (error: AxiosError) => void) {\r\n ajaxErrorHandlers.push(handler)\r\n return () => ajaxErrorHandlers.remove((x) => x == handler)\r\n }\r\n}\r\n\r\nexport class AuthenticationError extends Error {\r\n data: any | undefined\r\n\r\n constructor(message?: string, data?: any) {\r\n super()\r\n this.name = \"AuthenticationError\"\r\n if (message) {\r\n this.message = message\r\n }\r\n if (data) {\r\n this.data = data\r\n }\r\n }\r\n}\r\n\r\nexport class NotFoundError extends Error {\r\n type: string | undefined\r\n\r\n level: string | undefined\r\n\r\n detail: any | undefined\r\n\r\n traceId: string | undefined\r\n\r\n constructor(message?: string, data?: any) {\r\n super()\r\n this.name = \"NotFoundError\"\r\n if (message) {\r\n this.message = message\r\n }\r\n if (data?.error) {\r\n const { error } = data\r\n this.type = error.type\r\n this.level = error.level\r\n this.detail = error.detail\r\n this.traceId = error.traceId\r\n }\r\n }\r\n}\r\n\r\nexport class ValidationError extends Error {\r\n modelState: ModelState\r\n\r\n constructor(message: string, modelState?: ModelState) {\r\n super()\r\n this.name = \"ValidationError\"\r\n this.message = message\r\n this.modelState = modelState || {}\r\n }\r\n}\r\n\r\nexport class ServerError extends Error {\r\n constructor(error?: Error) {\r\n super()\r\n this.name = \"ServerError\"\r\n if (error) {\r\n this.message = error.message\r\n this.stack = error.stack\r\n }\r\n }\r\n}\r\n","import {\r\n Article,\r\n CatalogPart,\r\n AddCatalogPartListRequest,\r\n WholesalerPart,\r\n AddWholesalerPartListRequest,\r\n AddOePartListRequest,\r\n OePart,\r\n ReplaceByCatalogPartRequest,\r\n ErpInformation,\r\n OrderWarehouseInfo,\r\n ErpInformationLog,\r\n PriceDictionary,\r\n ErpPrice,\r\n TmaEModule,\r\n AvailabilityStatus,\r\n OE,\r\n ErpSystemConfig,\r\n AddExternalPartListRequest,\r\n ExternalPart,\r\n} from \"@tm/models\"\r\nimport { TmaHelper } from \"../tracking\"\r\n\r\nexport function mapArticleToCatalogPart(\r\n article: Article,\r\n erpInfo?: ErpInformation,\r\n erpSystem?: ErpSystemConfig,\r\n memo?: string,\r\n warehouse?: OrderWarehouseInfo,\r\n advertisementCategoryId?: string\r\n): CatalogPart {\r\n const erpInformationLog = createErpInformationLog(article, erpInfo)\r\n\r\n return {\r\n additionalDescription: article.additionalDescription,\r\n advertisementCategoryId,\r\n articleListPosition: article.articleListPosition,\r\n availability: erpInfo\r\n ? {\r\n status: erpInfo.availability.type || AvailabilityStatus.Undefined,\r\n description: erpInfo.availability.description || erpInfo.availability.shortDescription,\r\n }\r\n : undefined,\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: article.supplier.id,\r\n dataSupplierName: article.supplier.name,\r\n description: article.description,\r\n distributorId: erpSystem?.id,\r\n distributorName: erpSystem?.description,\r\n erpInformation: erpInformationLog,\r\n isReplacementPart: erpInfo?.isReplacementPart,\r\n fittingSide: article.fittingSide,\r\n linkedItems: erpInfo?.articles?.map((a) => mapLinkedItemToCatalogPart(a, article.quantity || 1, memo)),\r\n productGroupId: article.productGroup.id,\r\n memo,\r\n productGroupName: article.productGroup.name,\r\n quantityValue: article.quantity || 1,\r\n thumbnailUrl: article.thumbnail,\r\n warehouseId: warehouse?.id,\r\n warehouseName: warehouse?.name,\r\n wholesalerArticleNumber: erpInfo?.wholesalerArticleNumber ?? article.traderArticleNo,\r\n }\r\n}\r\n\r\nexport function mapArticleToAddCatalogPartListRequest(\r\n articles: Array
    ,\r\n workTaskId: string,\r\n vehicleId: string | undefined,\r\n customerId: string | undefined,\r\n foundBySearchTerm: string | undefined,\r\n memo: string | undefined,\r\n erpInfos: Array | undefined,\r\n orderWarehouseInfo: OrderWarehouseInfo | undefined,\r\n advertisementCategoryId: string | undefined,\r\n distributorId: number | undefined,\r\n distributorName: string | undefined,\r\n origin?: TmaEModule\r\n): AddCatalogPartListRequest {\r\n const catalogParts = articles.map((article): CatalogPart => {\r\n const erpInfo = erpInfos?.find((erpInfo) => erpInfo.itemId == article.id)\r\n const erpInformationLog = createErpInformationLog(article, erpInfo)\r\n return {\r\n additionalDescription: article.additionalDescription,\r\n advertisementCategoryId,\r\n articleListPosition: article.articleListPosition,\r\n availability: erpInfo\r\n ? {\r\n status: erpInfo.availability.type || AvailabilityStatus.Undefined,\r\n description: erpInfo.availability.description || erpInfo.availability.shortDescription,\r\n }\r\n : undefined,\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: article.supplier.id,\r\n dataSupplierName: article.supplier.name,\r\n description: article.description,\r\n distributorId,\r\n distributorName,\r\n erpInformation: erpInformationLog,\r\n isReplacementPart: erpInfo?.isReplacementPart,\r\n fittingSide: article.fittingSide,\r\n linkedItems: erpInfo?.articles?.map((a) => mapLinkedItemToCatalogPart(a, article.quantity || 1, memo)),\r\n memo,\r\n productGroupId: article.productGroup.id,\r\n productGroupName: article.productGroup.name,\r\n quantityValue: article.quantity || 1,\r\n thumbnailUrl: article.thumbnail,\r\n warehouseId: orderWarehouseInfo?.id,\r\n warehouseName: orderWarehouseInfo?.name,\r\n wholesalerArticleNumber: erpInfo?.wholesalerArticleNumber ?? article.traderArticleNo,\r\n }\r\n })\r\n\r\n return {\r\n workTaskId,\r\n vehicleId,\r\n customerId,\r\n catalogParts,\r\n foundBySearchTerm,\r\n usePercentageValues: true,\r\n log: origin ? TmaHelper.AddCatalogPartToBasket.GetUserInteractionLog(catalogParts.first()?.articleListPosition, origin) : undefined,\r\n }\r\n}\r\n\r\nfunction mapLinkedItemToCatalogPart(\r\n info: ErpInformation,\r\n quantity: number,\r\n memo?: string,\r\n warehouseId?: string,\r\n warehouseName?: string,\r\n advertisementCategoryId?: string,\r\n distributorId?: number,\r\n distributorName?: string\r\n): CatalogPart {\r\n const erpInformationLog = createErpInformationLogFromLinkedItem(info)\r\n\r\n return {\r\n additionalDescription: info.additionalInformationExtended,\r\n advertisementCategoryId,\r\n availability: {\r\n status: info.availability.type || AvailabilityStatus.Undefined,\r\n description: info.availability.description || info.availability.shortDescription,\r\n },\r\n dataSupplierArticleNumber: info.dataSupplierArticleNumber,\r\n dataSupplierId: info.dataSupplierId,\r\n dataSupplierName: \"\",\r\n description: info.additionalInformation,\r\n distributorId,\r\n distributorName,\r\n erpInformation: erpInformationLog,\r\n itemRole: info.itemsRole,\r\n memo,\r\n productGroupId: 0,\r\n productGroupName: \"\",\r\n quantityValue: quantity,\r\n warehouseId,\r\n warehouseName,\r\n wholesalerArticleNumber: info.wholesalerArticleNumber,\r\n }\r\n}\r\n\r\nexport function mapArticleToAddOePartListRequest(\r\n articles: OE.OePart[],\r\n workTaskId: string,\r\n vehicleId: string | undefined,\r\n customerId: string | undefined,\r\n origin?: TmaEModule\r\n): AddOePartListRequest {\r\n const oeParts = articles.map((article): OePart => {\r\n return {\r\n additionalDescription: article.additionalDescription,\r\n currencyCode: article.prices?.[0]?.currency || \"\", // TODO: to be defined\r\n description: article.description,\r\n oeArticleNumber: article.number,\r\n oePriceValue: article.prices?.[0]?.value ? article.prices?.[0]?.value : undefined,\r\n productGroupId: article.productGroupId,\r\n quantityValue: article.quantity || 1,\r\n vehicleManufacturerId: article.manufacturerId,\r\n vehicleManufacturerName: article.manufacturerName || \"OE\",\r\n articleListPosition: 0,\r\n oeArticleOrigin: article.oeArticleOrigin,\r\n wholesalerArticleNumber: article.traderNumber,\r\n }\r\n })\r\n\r\n return {\r\n workTaskId,\r\n vehicleId,\r\n customerId,\r\n oeParts,\r\n log: origin ? TmaHelper.AddCustomToBasket.GetUserInteractionLog(\"oeArticle\", origin) : undefined,\r\n }\r\n}\r\n\r\nexport function mapArticleToAddWholesalerPartListRequest(\r\n articles: Array
    ,\r\n workTaskId: string,\r\n vehicleId: string | undefined,\r\n customerId: string | undefined,\r\n memo: string | undefined,\r\n orderWarehouseInfo: OrderWarehouseInfo | undefined,\r\n advertisementCategoryId: string | undefined,\r\n distributorId: number | undefined,\r\n distributorName: string | undefined,\r\n erpInfos: Array | undefined,\r\n origin?: TmaEModule\r\n): AddWholesalerPartListRequest {\r\n const wholesalerParts = articles.map((article): WholesalerPart => {\r\n const erpInfo = erpInfos?.find((erpInfo) => erpInfo.itemId == article.id)\r\n const erpInformation = createErpInformationLog(article, erpInfo)\r\n return {\r\n additionalDescription: article.additionalDescription,\r\n advertisementCategoryId,\r\n articleListPosition: article.articleListPosition,\r\n description: article.description,\r\n distributorId,\r\n distributorName,\r\n erpInformation,\r\n isReplacementPart: erpInfo?.isReplacementPart,\r\n manufacturerName: article.supplier ? article.supplier.name : undefined,\r\n memo,\r\n productGroupName: article.productGroup ? article.productGroup.name : undefined,\r\n quantityValue: article.quantity || 1,\r\n warehouseId: orderWarehouseInfo?.id,\r\n warehouseName: orderWarehouseInfo?.name,\r\n wholesalerArticleNumber: erpInfo?.wholesalerArticleNumber ?? article.traderArticleNo,\r\n }\r\n })\r\n\r\n return {\r\n workTaskId,\r\n vehicleId,\r\n customerId,\r\n wholesalerParts,\r\n usePercentageValues: true,\r\n log: origin ? TmaHelper.AddCustomToBasket.GetUserInteractionLog(\"wholesalerPartList\", origin) : undefined,\r\n }\r\n}\r\n\r\nexport function mapArticleToReplaceByCatalogPartRequest(\r\n partToReplaceId: string,\r\n article: Article,\r\n workTaskId: string,\r\n vehicleId: string | undefined,\r\n customerId: string | undefined,\r\n foundBySearchTerm: string | undefined,\r\n memo: string | undefined,\r\n orderWarehouseInfo: OrderWarehouseInfo | undefined,\r\n advertisementCategoryId: string | undefined,\r\n distributorId: number | undefined,\r\n distributorName: string | undefined,\r\n articleQuantity?: number\r\n): ReplaceByCatalogPartRequest {\r\n const erpInformation = createErpInformationLog(article)\r\n const catalogPart: CatalogPart = {\r\n distributorName,\r\n distributorId,\r\n additionalDescription: article.additionalDescription,\r\n advertisementCategoryId,\r\n articleListPosition: article.articleListPosition,\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: article.supplier.id,\r\n dataSupplierName: article.supplier.name,\r\n description: article.description,\r\n erpInformation,\r\n memo,\r\n productGroupId: article.productGroup.id,\r\n productGroupName: article.productGroup.name,\r\n quantityValue: articleQuantity || article.quantity || 1,\r\n thumbnailUrl: article.thumbnail,\r\n warehouseId: orderWarehouseInfo?.id,\r\n warehouseName: orderWarehouseInfo?.name,\r\n wholesalerArticleNumber: article.traderArticleNo,\r\n }\r\n\r\n return {\r\n partToReplaceId,\r\n workTaskId,\r\n vehicleId,\r\n customerId,\r\n catalogPart,\r\n foundBySearchTerm,\r\n fittingSide: article.fittingSide,\r\n usePercentageValues: true,\r\n }\r\n}\r\n\r\nexport function mapArticleToAddExternalPartListRequest(\r\n articles: Array
    ,\r\n workTaskId: string,\r\n vehicleId: string | undefined,\r\n customerId: string | undefined,\r\n memo: string | undefined,\r\n origin?: TmaEModule\r\n): AddExternalPartListRequest {\r\n const externalParts = articles.map((article): ExternalPart => {\r\n return {\r\n articleNumber: article.supplierArticleNo,\r\n additionalDescription: article.additionalDescription,\r\n description: article.description,\r\n brandId: article.supplier ? article.supplier.id : undefined,\r\n brandName: article.supplier ? article.supplier.name : undefined,\r\n memo,\r\n productGroupName: article.productGroup ? article.productGroup.name : undefined,\r\n quantityValue: article.quantity || 1,\r\n }\r\n })\r\n\r\n return {\r\n workTaskId,\r\n vehicleId,\r\n customerId,\r\n externalParts,\r\n usePercentageValues: true,\r\n log: origin ? TmaHelper.AddCustomToBasket.GetUserInteractionLog(\"externalArticle\", origin) : undefined,\r\n }\r\n}\r\n\r\n/**\r\n * create an ErpInformationLog for tma\r\n * quantityUnit from ErpInformationLog will be added if the situtation is clear\r\n * @param article Article from catalog, e.g. which was added to the basket\r\n * @param erpInfo [Optinal] erp price infos if available\r\n */\r\nfunction createErpInformationLog(article: Article, erpInfo?: ErpInformation): ErpInformationLog {\r\n let prices: PriceDictionary = {}\r\n\r\n if (article.prices) {\r\n prices = createPriceDictionaryFromArticle(article) || {}\r\n }\r\n\r\n if (erpInfo?.prices) {\r\n const erpPrices = createPriceDictionaryFromErpPrices(erpInfo.prices)\r\n prices = {\r\n ...prices,\r\n ...erpPrices,\r\n }\r\n }\r\n\r\n return { prices }\r\n}\r\n\r\nfunction createErpInformationLogFromLinkedItem(info: ErpInformation): ErpInformationLog | undefined {\r\n let prices: PriceDictionary | undefined\r\n\r\n if (info.prices) {\r\n prices = createPriceDictionaryFromErpPrices(info.prices)\r\n }\r\n\r\n return prices ? { prices } : undefined\r\n}\r\n\r\nfunction createPriceDictionaryFromArticle(article: Article) {\r\n const prices: PriceDictionary = {}\r\n\r\n article.prices?.forEach((price) => {\r\n if (price.priceType) {\r\n prices[price.priceType] = {\r\n type: price.priceType,\r\n currencySymbol: price.currencySymbol || \"\",\r\n unit: undefined,\r\n value: price.value,\r\n rebate: price.discount,\r\n currencyCode: price.currencyCode,\r\n }\r\n }\r\n })\r\n\r\n return prices\r\n}\r\n\r\nexport function createPriceDictionaryFromErpPrices(erpPrices: ErpPrice[]) {\r\n const prices: PriceDictionary = {}\r\n\r\n erpPrices.forEach((price) => {\r\n if (price.type) {\r\n prices[price.type] = {\r\n currencyCode: price.currencyCode_Iso_4217,\r\n unit: price.priceUnit,\r\n type: price.type,\r\n vat: price.vat,\r\n currencySymbol: price.currencySymbol,\r\n value: price.value,\r\n rebate: price.rebate,\r\n memos: price.memos,\r\n }\r\n }\r\n })\r\n\r\n return prices\r\n}\r\n\r\nexport function isPseudoArticle(article: Article): boolean {\r\n return article.status.some((x) => x.id === 7 || x.id === 700000000011)\r\n}\r\n\r\nexport function getProductGroupsIdsFromArticles(articles?: Array
    ) {\r\n if (!articles) {\r\n return []\r\n }\r\n\r\n const productGroupIds: Array = []\r\n for (let i = 0; i < articles.length; i++) {\r\n if (articles[i].productGroup?.id && productGroupIds.indexOf(articles[i].productGroup.id) < 0) {\r\n productGroupIds.push(articles[i].productGroup.id)\r\n }\r\n }\r\n\r\n return productGroupIds\r\n}\r\n","import { OAuth2Client, generateCodeVerifier } from \"@badgateway/oauth2-client\"\r\nimport { OAuthConfig } from \"@tm/models\"\r\nimport jwtDecode from \"jwt-decode\"\r\nimport { Authorization, StoredLogin } from \"..\"\r\n\r\nconst CoopMemberIdKey = \"CoopMemberId\"\r\n\r\nexport function decodeJwtToken(token: string) {\r\n return jwtDecode(token)\r\n}\r\n\r\nexport function removeStoredLogin() {\r\n sessionStorage.removeItem(\"login\")\r\n sessionStorage.removeItem(\"readConfigNews\")\r\n sessionStorage.removeItem(\"IFRAME_WIDGET_TOKEN_SeatbeltCrm\")\r\n sessionStorage.removeItem(CoopMemberIdKey)\r\n\r\n // NEXT Shell should also be informed that the user is logged out\r\n if (typeof tmJSEvents != \"undefined\" && typeof tmJSEvents.logout == \"function\") {\r\n tmJSEvents.logout()\r\n }\r\n}\r\n\r\nexport function setStoredLogin(login: StoredLogin) {\r\n sessionStorage.setItem(\"login\", JSON.stringify(login))\r\n}\r\n\r\nexport function hasValidStoredLogin() {\r\n const login = getStoredLogin()\r\n if (login) {\r\n login.expireDate = login.expireDate && new Date(login.expireDate)\r\n }\r\n\r\n return login && login.token && (!login.expireDate || login.expireDate > new Date())\r\n}\r\n\r\nexport function getStoredLogin(): StoredLogin | undefined {\r\n const storedLogin = sessionStorage.getItem(\"login\")\r\n\r\n if (storedLogin) {\r\n return JSON.parse(storedLogin)\r\n }\r\n}\r\n\r\nexport function getStoredAuthorization(): Authorization | null {\r\n const login = getStoredLogin()\r\n\r\n if (login?.token) {\r\n return {\r\n type: \"Bearer\",\r\n credentials: login.token,\r\n }\r\n }\r\n\r\n return null\r\n}\r\n\r\nexport function setLocaleToLocalStorage(language: string, languageId: string): void {\r\n localStorage.setItem(\"language\", language)\r\n localStorage.setItem(\"languageId\", languageId)\r\n}\r\n\r\nexport function getLanguageFromLocalStorage(): string | null {\r\n return localStorage.getItem(\"language\")\r\n}\r\n\r\nexport function getLanguageIdFromLocalStorage(): string | null {\r\n return localStorage.getItem(\"languageId\")\r\n}\r\n\r\nexport function hasLocaleInLocalStorage(): boolean {\r\n const language = getLanguageFromLocalStorage()\r\n const languageId = getLanguageIdFromLocalStorage()\r\n return !!language && !!languageId\r\n}\r\n\r\nexport function getCoopMemberId(): string | null {\r\n return sessionStorage.getItem(CoopMemberIdKey)\r\n}\r\n\r\nexport function setCoopMemberId(memberId: string | undefined): void {\r\n if (memberId) {\r\n sessionStorage.setItem(CoopMemberIdKey, memberId)\r\n } else {\r\n sessionStorage.removeItem(CoopMemberIdKey)\r\n }\r\n}\r\n\r\nexport type OAuthData = {\r\n redirectUri: string\r\n codeVerifier: string\r\n state?: string\r\n authorizationCode?: string\r\n}\r\n\r\nconst OAUTH_DATA_STORAGE_KEY = \"oAuthData\"\r\n\r\nexport function storeOAuthData(data: OAuthData) {\r\n sessionStorage.setItem(OAUTH_DATA_STORAGE_KEY, JSON.stringify(data))\r\n}\r\n\r\nexport function getStoredOAuthData(): OAuthData | undefined {\r\n const storedData = sessionStorage.getItem(OAUTH_DATA_STORAGE_KEY)\r\n\r\n if (storedData) {\r\n return JSON.parse(storedData)\r\n }\r\n}\r\n\r\nexport function deleteStoredOAuthData() {\r\n sessionStorage.removeItem(OAUTH_DATA_STORAGE_KEY)\r\n}\r\n\r\nexport function generatePKCECodeVerifier(): Promise {\r\n return generateCodeVerifier()\r\n}\r\n\r\nexport function getOAuthClient(config: OAuthConfig, isProd: boolean): OAuth2Client {\r\n const { server, discoveryEndpoint, clientId } = config\r\n\r\n return new OAuth2Client({\r\n server: getServerUrl(server, isProd),\r\n discoveryEndpoint,\r\n clientId,\r\n })\r\n}\r\n\r\nfunction getServerUrl(server: OAuthConfig[\"server\"], isProd: boolean): string {\r\n if (typeof server === \"string\") {\r\n return server\r\n }\r\n\r\n if (server.overwrite && !server.overwrite.includes(\"Placeholder not found\")) {\r\n return server.overwrite\r\n }\r\n\r\n if (!isProd) {\r\n return server.staging\r\n }\r\n\r\n return server.production\r\n}\r\n","import { AvailabilityStatus, PriceType } from \"@tm/models\"\r\n\r\nexport function mapAvailabilityStatusToIconName(availabilityStatus: AvailabilityStatus | undefined, mappingScheme?: \"stg\"): string {\r\n switch (availabilityStatus) {\r\n case AvailabilityStatus.Available:\r\n return \"available\"\r\n case AvailabilityStatus.AvailableInAlternativeWarehouse:\r\n case AvailabilityStatus.PartiallyAvailableInAlternativeWarehouse:\r\n return \"alternative-storage\"\r\n case AvailabilityStatus.AvailableInCentralWarehouse:\r\n case AvailabilityStatus.PartiallyAvailableInCentralWarehouse:\r\n return \"store-request\"\r\n case AvailabilityStatus.PartiallyAvailable:\r\n return \"partially-available\"\r\n case AvailabilityStatus.NotAvailable:\r\n case AvailabilityStatus.NoLongerAvailable:\r\n return \"not-available\"\r\n case AvailabilityStatus.NotYetDefined:\r\n return \"refresh\"\r\n case AvailabilityStatus.NightExpress:\r\n return \"night-express\"\r\n case AvailabilityStatus.ManufacturerAvailable:\r\n return \"manufacturer-available\"\r\n case AvailabilityStatus.ManufacturerUnavailable:\r\n if (mappingScheme === \"stg\") {\r\n return \"not-available\"\r\n }\r\n return \"manufacturer-unavailable\"\r\n case AvailabilityStatus.ManufacturerNotYetRequested:\r\n if (mappingScheme === \"stg\") {\r\n return \"manufacturer-unavailable\"\r\n }\r\n return \"question\"\r\n case AvailabilityStatus.Undefined:\r\n case AvailabilityStatus.Unknown:\r\n default:\r\n return \"question\"\r\n }\r\n}\r\n\r\nexport function mapAvailabilityStatusToTextId(availabilityStatus: AvailabilityStatus | undefined): number {\r\n switch (availabilityStatus) {\r\n case AvailabilityStatus.Available:\r\n return 423\r\n case AvailabilityStatus.AvailableInAlternativeWarehouse:\r\n return 954\r\n case AvailabilityStatus.PartiallyAvailableInAlternativeWarehouse:\r\n return 957\r\n case AvailabilityStatus.AvailableInCentralWarehouse:\r\n return 955\r\n case AvailabilityStatus.PartiallyAvailableInCentralWarehouse:\r\n return 958\r\n case AvailabilityStatus.PartiallyAvailable:\r\n return 953\r\n case AvailabilityStatus.NotAvailable:\r\n case AvailabilityStatus.NoLongerAvailable:\r\n return 956\r\n case AvailabilityStatus.NightExpress:\r\n return 1288\r\n case AvailabilityStatus.NotYetDefined:\r\n case AvailabilityStatus.Undefined:\r\n case AvailabilityStatus.Unknown:\r\n default:\r\n return 171\r\n }\r\n}\r\n\r\nexport function mapAvailabilityStatusToLevel(availabilityStatus: AvailabilityStatus | undefined): number {\r\n let mappedStatus = 0\r\n\r\n Object.keys(statusMap).forEach((key) => {\r\n if (statusMap[key].indexOf(availabilityStatus || 0) >= 0) {\r\n mappedStatus = parseInt(key)\r\n }\r\n })\r\n\r\n return mappedStatus\r\n}\r\n\r\n// TODO: status 11 moved from NotAvalible to Available (STG)\r\nconst statusMap: { [index: string]: Array } = {\r\n \"1\": [2, 5, 13], // Available\r\n \"2\": [7, 11], // CentralWareHouseAvailable\r\n \"3\": [3, 6, 8], // PartiallyAvailable\r\n \"4\": [4, 14, 12], // NotAvailable\r\n \"5\": [10, 0, 1, 9], // Unknown\r\n}\r\n\r\nexport function mapPriceTypeToTextIdShort(priceType: PriceType): number {\r\n switch (priceType) {\r\n case PriceType.RecommendedRetail:\r\n return 1144\r\n case PriceType.Purchase:\r\n return 55\r\n case PriceType.Retail:\r\n return 56\r\n default:\r\n return 53 // \"Preis\"\r\n }\r\n}\r\n\r\nexport function mapPriceTypeToTextIdLong(priceType: PriceType): number {\r\n switch (priceType) {\r\n case PriceType.RecommendedRetail:\r\n return 1144\r\n case PriceType.Purchase:\r\n return 1132\r\n case PriceType.Retail:\r\n return 882\r\n default:\r\n return 53 // \"Preis\"\r\n }\r\n}\r\n","import { Base64 } from \"js-base64\"\r\n\r\nexport function encodeBase64(text: string) {\r\n return Base64.encode(text)\r\n}\r\n\r\nexport function decodeBase64(base64: string) {\r\n return Base64.decode(base64)\r\n}\r\n\r\nexport function objectToBase64(object: Object) {\r\n return Base64.encode(JSON.stringify(object))\r\n}\r\n\r\nconst BASE64_MARKER = \";base64,\"\r\nexport function getAdjustedValueFromDataUri(dataUri: string): string {\r\n const base64Index = dataUri.indexOf(BASE64_MARKER) + BASE64_MARKER.length\r\n return dataUri.substring(base64Index)\r\n}\r\n\r\nexport function convertDataURIToDecodedString(dataUri: string) {\r\n return window.atob(getAdjustedValueFromDataUri(dataUri))\r\n}\r\n","import { BasketMemoSection, channel, Customer, Vehicle, WorkTaskDetailsReadModel, EReplaceButtonBundle, RequestArticleListPayload } from \"@tm/models\"\r\n\r\nimport { notUndefinedOrNull } from \"..\"\r\nimport { WorkTaskTruckData } from \"../hooks\"\r\n\r\n/**\r\n * @deprecated Use `createBasketMemo` instead - see example below.\r\n *\r\n * @example\r\n * ```typescript\r\n * createBasketMemo({\r\n * vehicle,\r\n * customer,\r\n * truckData,\r\n * })\r\n * ```\r\n */\r\nexport function createBasketPartMemo(\r\n vehicle: Vehicle | undefined,\r\n customer: Customer | undefined,\r\n truckData: WorkTaskTruckData | undefined\r\n): string | undefined {\r\n const memoParts = []\r\n\r\n if (vehicle) {\r\n if (vehicle.plateId) {\r\n memoParts.push(vehicle.plateId)\r\n } else {\r\n memoParts.push(vehicle.manufacturer, vehicle.modelSeries, vehicle.model)\r\n }\r\n }\r\n\r\n if (customer?.firstName) {\r\n memoParts.push(customer.firstName)\r\n }\r\n\r\n if (customer?.lastName) {\r\n memoParts.push(customer.lastName)\r\n }\r\n\r\n if (!memoParts.length && truckData) {\r\n if (truckData.plateNr) {\r\n memoParts.push(truckData.plateNr)\r\n }\r\n\r\n if (truckData.customerName) {\r\n memoParts.push(truckData.customerName)\r\n }\r\n }\r\n\r\n if (memoParts.length) {\r\n return memoParts.join(\" \")\r\n }\r\n}\r\n\r\nexport type BasketMemoConfig = {\r\n sections: Array\r\n}\r\n\r\nexport type CreateBasketMemoOptions = {\r\n config?: BasketMemoConfig\r\n vehicle?: Vehicle\r\n customer?: Customer\r\n truckData?: WorkTaskTruckData\r\n workTask?: WorkTaskDetailsReadModel\r\n}\r\n\r\nexport function createBasketMemo({ config, vehicle, customer, truckData, workTask }: CreateBasketMemoOptions): string | undefined {\r\n // If no config was passed or the config did not contain any sections create the memo like before this change.\r\n if (!config?.sections.length) {\r\n return createBasketPartMemo(vehicle, customer, truckData)\r\n }\r\n\r\n function concat(separator: string, ...strings: Array): string | undefined {\r\n const string = strings.filter(notUndefinedOrNull)\r\n\r\n if (string.length) {\r\n return string.join(separator)\r\n }\r\n }\r\n\r\n function getMemoSectionValue(type: BasketMemoSection): string | undefined {\r\n switch (type) {\r\n case \"vehicleLicensePlate\":\r\n return vehicle?.plateId ?? truckData?.plateNr\r\n case \"vehicleLicensePlateWithVehicleDescriptionFallback\":\r\n return getMemoSectionValue(\"vehicleLicensePlate\") ?? concat(\" \", vehicle?.manufacturer, vehicle?.modelSeries, vehicle?.model)\r\n case \"customerFirstName\":\r\n return customer?.firstName\r\n case \"customerLastName\":\r\n return customer?.lastName\r\n case \"customerFullName\":\r\n return concat(\" \", customer?.firstName, customer?.lastName) ?? truckData?.customerName\r\n case \"customerCompanyName\":\r\n return customer?.companyName\r\n case \"voucherNumber\":\r\n return workTask?.voucherNo\r\n }\r\n }\r\n\r\n return concat(\" \", ...config.sections.map(getMemoSectionValue))\r\n}\r\n\r\nexport function isCentralOrder(): boolean {\r\n return window.location.pathname.includes(\"/order\") && !window.location.pathname.includes(\"/orderedArticles\")\r\n}\r\n\r\nexport function showWarehouseDataMissingError(translator: (id: number) => string) {\r\n channel(\"APP\").publish(\"TOAST_MESSAGE/SHOW\", {\r\n skin: \"danger\",\r\n message: translator(13187),\r\n closeDelay: 10000,\r\n icon: \"alert\",\r\n })\r\n}\r\n\r\nexport const getSearchQueryString = (articleNumber?: string, partToReplaceId?: string, quantity?: number) => {\r\n return {\r\n query: articleNumber,\r\n partToReplaceId,\r\n partToReplaceQuantity: quantity,\r\n }\r\n}\r\n\r\nexport const createRequestArticleListPayload = (\r\n articleNumber: string,\r\n productGroupIds?: number[],\r\n manufacturerIds?: number[],\r\n partToReplaceId?: string,\r\n partToReplaceQuantity?: number\r\n): RequestArticleListPayload => {\r\n return {\r\n direct: {\r\n query: articleNumber,\r\n productGroupIds,\r\n oeManufacturerIds: manufacturerIds,\r\n },\r\n partToReplaceId,\r\n partToReplaceQuantity,\r\n replaceButtonMicro: EReplaceButtonBundle.Basket,\r\n forceReload: true,\r\n inModal: true,\r\n useNewModal: true,\r\n }\r\n}\r\n\r\nexport const createRequestDirectSearchArticleListPayload = (\r\n articleNumber: string,\r\n partToReplaceId?: string,\r\n partToReplaceQuantity?: number\r\n): RequestArticleListPayload => {\r\n return {\r\n direct: {\r\n query: articleNumber,\r\n },\r\n partToReplaceId,\r\n partToReplaceQuantity,\r\n replaceButtonMicro: EReplaceButtonBundle.Basket,\r\n forceReload: true,\r\n inModal: true,\r\n useNewModal: true,\r\n }\r\n}\r\n\r\nexport const createRequestUniversalSearchArticleListPayload = (\r\n description: string,\r\n partToReplaceId?: string,\r\n partToReplaceQuantity?: number\r\n): RequestArticleListPayload => {\r\n return {\r\n uniSearch: {\r\n query: description,\r\n },\r\n partToReplaceId,\r\n partToReplaceQuantity,\r\n replaceButtonMicro: EReplaceButtonBundle.Basket,\r\n forceReload: true,\r\n inModal: true,\r\n useNewModal: true,\r\n }\r\n}\r\n","import { Component } from \"react\"\r\n\r\n// Alle handle* und render* Methoden werden an component gebunden\r\nexport function bindSpecialReactMethods(component: Component) {\r\n const comp = component as any\r\n\r\n Object.getOwnPropertyNames(Object.getPrototypeOf(comp)).forEach((key) => {\r\n if ((key.indexOf(\"handle\") == 0 || key.indexOf(\"render\") == 0) && typeof comp[key] == \"function\") {\r\n comp[key] = comp[key].bind(comp)\r\n }\r\n })\r\n}\r\n","import { Article, BonusSystem } from \"@tm/models\"\r\n\r\nexport function getArticleBonusSystemsWithoutPoints(article: Article): BonusSystem[] {\r\n return article.availableBonusSystems?.filter((x) => x.value === undefined) ?? []\r\n}\r\n\r\nexport function getArticleBonusSystemsWithPoints(article: Article): BonusSystem[] {\r\n return article.availableBonusSystems?.filter((x) => x.value !== undefined) ?? []\r\n}\r\n","type Params = {\r\n callService: (requests: Array) => Promise\r\n /** Decide what to return for each request. If this function returns undefined, the promise will be rejected. */\r\n mapServiceResponseToResponse: (serviceResponse: ServiceResponse, request: Request) => Response | undefined\r\n compareRequestsForFiltering?: (a: Request, b: Request) => boolean\r\n /** default: 25 - defines the timespan (in ms) in which the requests will be buffered. */\r\n bufferTimespanMs?: number\r\n /** defines the maximum number of items in a single service call. undefined = no limitation. */\r\n maxQueueLength?: number\r\n}\r\n\r\nexport function createBufferedRequestFunction({\r\n callService,\r\n mapServiceResponseToResponse,\r\n compareRequestsForFiltering,\r\n bufferTimespanMs = 25,\r\n maxQueueLength,\r\n}: Params) {\r\n type BufferedRequest = {\r\n request: Request\r\n resolve: (response: Response) => void\r\n reject: (error: string) => void\r\n /** If `true` this request is already existing and will be exluded in the service call but the `resolve` or `reject` will still be called afterwards. */\r\n isDuplicate: boolean\r\n }\r\n\r\n const queue: Array = []\r\n let bufferTimeout: number\r\n\r\n function sendRequest() {\r\n const requestItems = queue.splice(0, queue.length) // splice to remove request items from queue...\r\n\r\n if (!requestItems.length) {\r\n return\r\n }\r\n\r\n callService(requestItems.filter((x) => !x.isDuplicate).map((item) => item.request)).then(\r\n (data) => {\r\n requestItems.forEach((requestItem) => {\r\n const response = mapServiceResponseToResponse(data, requestItem.request)\r\n\r\n if (response !== undefined) {\r\n requestItem.resolve(response)\r\n } else {\r\n requestItem.reject(\"No corresponding item in response\")\r\n }\r\n })\r\n },\r\n (error) => {\r\n requestItems.forEach((item) => {\r\n item.reject(error)\r\n })\r\n }\r\n )\r\n }\r\n\r\n return (request: Request) => {\r\n return new Promise((resolve, reject) => {\r\n queue.push({\r\n request,\r\n resolve,\r\n reject,\r\n isDuplicate: compareRequestsForFiltering ? queue.some((x) => compareRequestsForFiltering(request, x.request)) : false,\r\n })\r\n\r\n window.clearTimeout(bufferTimeout)\r\n\r\n // Duplicate requests should not count towards the maximum queue length\r\n if (maxQueueLength && queue.filter((x) => !x.isDuplicate).length >= maxQueueLength) {\r\n sendRequest()\r\n return\r\n }\r\n\r\n bufferTimeout = window.setTimeout(sendRequest, bufferTimespanMs)\r\n })\r\n }\r\n}\r\n","/**\r\n * Return true if given dongleId or vin exists in @carMunMockValidData\r\n */\r\nexport const carMunValidate = (_dongleId?: string, _vin?: string) => {\r\n return carMunMockValidData.some(([dongleId, vin]) => _dongleId == dongleId || _vin == vin)\r\n}\r\n\r\nexport const carMunMockValidData = [\r\n [\"G9FA212043B8\", \"WAUZZZF23KN029537\"],\r\n [\"G9A3212043E1\", \"WBA8H71020K358088\"],\r\n [\"E48321235EAD\", \"W1K1770861J296501\"],\r\n [\"E4412123D2E3\", \"WDD2052041F319497\"],\r\n [\"E4DC2123D27E\", \"W1K2132161A856659\"],\r\n [\"E4F82123CE46\", \"WDC2539091F623964\"],\r\n [\"G97D21204238\", \"WVWZZZ3CZBE336296\"],\r\n [\"G9FB212043B9\", \"WV2ZZZ7HZBH026548\"],\r\n [\"G9F4212043B6\", \"WBA2C71000V782954\"],\r\n [\"G9392120437B\", \"WBAWZ510400U73201\"],\r\n [\"G92221204360\", \"WVWZZZAUZEW900654\"],\r\n [\"G9D0211031D4\", \"SALCA2DN3HH662883\"],\r\n [\"G90A21204348\", \"VF1AG000164872798\"],\r\n]\r\n","export function copyToClipboard(text: string): Promise {\r\n if (navigator.clipboard) {\r\n return navigator.clipboard.writeText(text)\r\n }\r\n\r\n const textArea = document.createElement(\"textarea\")\r\n textArea.value = text\r\n document.body.appendChild(textArea)\r\n textArea.focus()\r\n textArea.select()\r\n\r\n let success = true\r\n try {\r\n document.execCommand(\"copy\")\r\n } catch (err) {\r\n success = false\r\n console.error(\"Fallback: Unable to copy to clipboard: \", err)\r\n }\r\n\r\n document.body.removeChild(textArea)\r\n\r\n return success ? Promise.resolve() : Promise.reject()\r\n}\r\n","import { channel } from \"@tm/models\"\r\nimport Morpheus from \"@tm/morpheus\"\r\n\r\nexport function closeModalOrDrawer(isDrawer?: boolean, goBack?: boolean) {\r\n if (isDrawer) {\r\n channel(\"GLOBAL\").publish(\"DRAWER/CLOSE\", {})\r\n return\r\n }\r\n\r\n if (goBack) {\r\n Morpheus.getHistory().goBack()\r\n } else {\r\n Morpheus.closeView(\"1\")\r\n }\r\n}\r\n","/** can be used in creating memoized selectors using reselect\r\n *\r\n * usage\r\n * const selector = createSelector(\r\n vehicleSelector, using another selector\r\n s=> s.customer, using new selector\r\n combiner.array)\r\n\r\n component:\r\n const [vehicle,customer] = useSelector(selector)\r\n*/\r\n\r\nexport const combiner = {\r\n array: (...x: T) => x,\r\n object: (...x: T) => x.reduce((obj, item: S) => ({ ...obj, ...item }), {}),\r\n self: (x: T) => x,\r\n}\r\n\r\n// 1\r\nexport function initSelector(args_0: (x: T) => A1): (state: T) => [A1]\r\n\r\n// 2\r\nexport function initSelector(args_0: (x: T) => A1, args_1: (x: T) => A2): (state: T) => [A1, A2]\r\n\r\n// 3\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3\r\n): (state: T) => [A1, A2, A3]\r\n\r\n// 4\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4\r\n): (state: T) => [A1, A2, A3, A4]\r\n\r\n// 5\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4,\r\n args_4: (x: T) => A5\r\n): (state: T) => [A1, A2, A3, A4, A5]\r\n\r\n// 6\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4,\r\n args_4: (x: T) => A5,\r\n args_5: (x: T) => A6\r\n): (state: T) => [A1, A2, A3, A4, A5, A6]\r\n\r\n// 7\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4,\r\n args_4: (x: T) => A5,\r\n args_5: (x: T) => A6,\r\n args_6: (x: T) => A7\r\n): (state: T) => [A1, A2, A3, A4, A5, A6, A7]\r\n\r\n// 8\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4,\r\n args_4: (x: T) => A5,\r\n args_5: (x: T) => A6,\r\n args_6: (x: T) => A7,\r\n args_7: (x: T) => A8\r\n): (state: T) => [A1, A2, A3, A4, A5, A6, A7, A8]\r\n\r\n// 9\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4,\r\n args_4: (x: T) => A5,\r\n args_5: (x: T) => A6,\r\n args_6: (x: T) => A7,\r\n args_7: (x: T) => A8,\r\n args_8: (x: T) => A9\r\n): (state: T) => [A1, A2, A3, A4, A5, A6, A7, A8, A9]\r\n\r\n// 10\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4,\r\n args_4: (x: T) => A5,\r\n args_5: (x: T) => A6,\r\n args_6: (x: T) => A7,\r\n args_7: (x: T) => A8,\r\n args_8: (x: T) => A9,\r\n args_9: (x: T) => A10\r\n): (state: T) => [A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]\r\n\r\n// 11\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4,\r\n args_4: (x: T) => A5,\r\n args_5: (x: T) => A6,\r\n args_6: (x: T) => A7,\r\n args_7: (x: T) => A8,\r\n args_8: (x: T) => A9,\r\n args_9: (x: T) => A10,\r\n args_10: (x: T) => A11\r\n): (state: T) => [A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11]\r\n\r\n// 12\r\nexport function initSelector(\r\n args_0: (x: T) => A1,\r\n args_1: (x: T) => A2,\r\n args_2: (x: T) => A3,\r\n args_3: (x: T) => A4,\r\n args_4: (x: T) => A5,\r\n args_5: (x: T) => A6,\r\n args_6: (x: T) => A7,\r\n args_7: (x: T) => A8,\r\n args_8: (x: T) => A9,\r\n args_9: (x: T) => A10,\r\n args_10: (x: T) => A11,\r\n args_11: (x: T) => A12\r\n): (state: T) => [A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12]\r\n\r\nexport function initSelector(...args: Function[]) {\r\n return (state: unknown) => args.map((f: Function) => f?.(state))\r\n}\r\n","import { ComponentType, PropsWithChildren, ReactNode } from \"react\"\r\nimport escapeStringRegexp from \"escape-string-regexp\"\r\nimport reactStringReplace from \"react-string-replace\"\r\n\r\n/**\r\n * Returns an array of individual `ReactNode` elements for each match surrounded by the pre and post tags included in the given input.\r\n *\r\n * @param text The raw string containing the content surrounded by the pre and post tags.\r\n * @param preTag The string that will be used to identify the start of an escape sequence.\r\n * @param postTag The string that will be used to identify the end of an escape sequence.\r\n * @param replacer The replacement function that will be called with\r\n * the match (the content inside the pre and post tags),\r\n * the index (can be used for individualisation when multiple matches are found)\r\n * and the offset (the number of characters from the beginning of the text).\r\n * It should return the desired JSX (`ReactNode`) used for one match.\r\n *\r\n * @returns An array of the individual results of the replacement function.\r\n */\r\nexport function convertStringToReactNodes(\r\n text: string,\r\n preTag: string,\r\n postTag: string,\r\n replacer: (match: string, index: number, offset: number) => ReactNode\r\n): ReactNode[] {\r\n return reactStringReplace(text, new RegExp(`${escapeStringRegexp(preTag)}(.*?)${escapeStringRegexp(postTag)}`, \"g\"), replacer)\r\n}\r\n\r\nconst HitHighlightPreTag = \"\"\r\nconst HitHighlightPostTag = \"\"\r\n\r\n/**\r\n * Returns an array of components (type depending on the value of the wrapper argument) for each highlight match of this autosuggestion hit.\r\n *\r\n * @param text The raw string containing the autosuggestion value.\r\n * @param wrapper The React component used as a wrapper for each highlight match.\r\n *\r\n * @returns An array of the wrapper components for each highlight match or undefined if text is empty.\r\n */\r\nexport function convertAutosuggestHit(text: string | undefined, wrapper: ComponentType): ReactNode[] | undefined {\r\n if (!text) {\r\n return undefined\r\n }\r\n\r\n const Wrapper = wrapper\r\n\r\n return convertStringToReactNodes(text, HitHighlightPreTag, HitHighlightPostTag, (match, i) => {match})\r\n}\r\n","import { UserContext, UserModuleType } from \"@tm/models\"\r\n\r\n/**\r\n * Determines the country code by looking into the user context.\r\n * If a module with type \"catalog\" is found, the country code from that module is returned.\r\n * The fallback is always an empty string, to avoid displaying a wrong country code.\r\n * @param userContext The current user context.\r\n * @returns The country code from the catalog module, or an empty string as fallback.\r\n */\r\nexport function getShortCountryCodeByUserContext(userContext?: UserContext): string {\r\n return userContext?.modules?.find((x) => x.type === UserModuleType.Catalog)?.countryCode || \"\"\r\n}\r\n\r\nexport function getCountryDescriptionByCountryCode(userContext: UserContext, translateText: (key: string | number) => string): string {\r\n const countryCode = userContext?.modules?.find((x) => x.type === UserModuleType.Catalog)?.countryCode\r\n\r\n switch (countryCode) {\r\n case \"D\":\r\n default:\r\n return translateText(3147)\r\n case \"E\":\r\n return translateText(12710)\r\n case \"CZ\":\r\n return translateText(12704)\r\n case \"A\":\r\n return translateText(12705)\r\n case \"CH\":\r\n return translateText(12706)\r\n case \"GR\":\r\n return translateText(12707)\r\n case \"GB\":\r\n return translateText(12708)\r\n case \"USA\":\r\n return translateText(12717)\r\n case \"F\":\r\n return translateText(3115)\r\n case \"H\":\r\n return translateText(12711)\r\n case \"I\":\r\n return translateText(3114)\r\n case \"PL\":\r\n return translateText(12712)\r\n case \"RO\":\r\n return translateText(12713)\r\n case \"RUS\":\r\n return translateText(12714)\r\n case \"SK\":\r\n return translateText(12715)\r\n case \"TR\":\r\n return translateText(12716)\r\n }\r\n}\r\n","import { TitleType } from \"@tm/models\"\r\n\r\nexport function getTitleTypeTextId(titleType: TitleType): number | undefined {\r\n switch (titleType) {\r\n case TitleType.Mister:\r\n return 145\r\n case TitleType.Miss:\r\n return 146\r\n case TitleType.Company:\r\n return 108\r\n case TitleType.Undefined:\r\n default:\r\n return undefined\r\n }\r\n}\r\n","let _weekdays: Array | undefined\r\nlet _months: Array | undefined\r\n\r\n/**\r\n * This `RegExp` can match a `string` of the ISO 8601 format.\r\n * @see parseISODate @link https://en.wikipedia.org/wiki/ISO_8601\r\n */\r\nexport const ISO_DATE_REGEX =\r\n /^\\d{4}-(0[1-9]|1[0-2])-([12]\\d|0[1-9]|3[01])([T\\s](([01]\\d|2[0-3])\\:[0-5]\\d|24\\:00)(\\:[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3])\\:?([0-5]\\d)?)?)?$/\r\n\r\n/**\r\n * Parse a `string` of the ISO 8601 format to a JS `Date` object.\r\n * @see ISO_DATE_REGEX @link https://en.wikipedia.org/wiki/ISO_8601\r\n */\r\nexport function parseISODate(isoString: string): Date | null {\r\n return ISO_DATE_REGEX.test(isoString) ? new Date(isoString) : null\r\n}\r\n\r\nexport function initDateHelper(weekdays: Array, months: Array) {\r\n if (weekdays && weekdays.length == 7) {\r\n _weekdays = weekdays\r\n } else {\r\n console.error(\"Passed in weekdays Array has the wrong format\")\r\n }\r\n\r\n if (months && months.length == 12) {\r\n _months = months\r\n } else {\r\n console.error(\"Passed in months Array has the wrong format\")\r\n }\r\n}\r\n\r\nexport function formatConstructionYear(constructionYear: number): string {\r\n if (!constructionYear) {\r\n return \"\"\r\n }\r\n let result = constructionYear.toString()\r\n result = `${result.substr(4, 2)}/${result.substr(0, 4)}`\r\n return result\r\n}\r\n\r\nexport function dateFromString(date: string, format: string): Date | null {\r\n if (!date) {\r\n return null\r\n }\r\n\r\n if (format.length == 1) {\r\n const temp = getShortCodeFormat(format)\r\n if (temp) {\r\n format = temp\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n const result = new Date()\r\n\r\n result.setSeconds(0)\r\n result.setMinutes(0)\r\n result.setHours(0)\r\n result.setDate(1)\r\n result.setMonth(0)\r\n result.setFullYear(0)\r\n\r\n let startIndex = 0\r\n let length = 0\r\n let ctrlChar = \"\"\r\n\r\n for (let i = 0; i <= format.length; i++) {\r\n const char = format.charAt(i)\r\n\r\n if (ctrlChar == char) {\r\n length++\r\n continue\r\n }\r\n\r\n switch (ctrlChar) {\r\n case \"d\":\r\n result.setDate(parseInt(date.substr(startIndex, length)))\r\n break\r\n case \"H\":\r\n result.setHours(parseInt(date.substr(startIndex, length)))\r\n break\r\n case \"m\":\r\n result.setMinutes(parseInt(date.substr(startIndex, length)))\r\n break\r\n case \"M\":\r\n result.setMonth(parseInt(date.substr(startIndex, length)) - 1)\r\n break\r\n case \"s\":\r\n result.setSeconds(parseInt(date.substr(startIndex, length)))\r\n break\r\n case \"y\":\r\n result.setFullYear(parseInt(date.substr(startIndex, length)))\r\n break\r\n }\r\n\r\n ctrlChar = \"\"\r\n\r\n if (\"dHmMsy\".indexOf(char) >= 0) {\r\n ctrlChar = char\r\n startIndex += length\r\n length = 0\r\n }\r\n\r\n length++\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * returns a formated string of the given date/time using a predefined format.\r\n * @param {Date} date\r\n * @param {string} [format]\r\n * d: Kurzes Datumsmuster\r\n * D: Langes Datumsmuster\r\n * t: Kurzes Zeitmuster\r\n * T: Langes Zeitmuster\r\n * g: Allgemeines Datums-/Zeitmuster (kurze Zeit)\r\n * f: Vollständiges Datums-/Zeitmuster (kurze Zeit)\r\n * Y: Monat-Jahr-Muster (Monat als Wort)\r\n * y: Monat-Jahr-Muster (Monat als Zahl)\r\n * @returns {string}\r\n */\r\nexport function formatDate(date: Date, format: string, utc?: boolean): string {\r\n if (!date) {\r\n return \"\"\r\n }\r\n\r\n if (!_weekdays || !_months) {\r\n console.error(\"DateHelper was not initialized\")\r\n return \"\"\r\n }\r\n\r\n if (format.length == 1) {\r\n const temp = getShortCodeFormat(format)\r\n if (temp) {\r\n format = temp\r\n } else {\r\n return \"\"\r\n }\r\n }\r\n\r\n let sec\r\n let min\r\n let hrs\r\n let day\r\n let wdy\r\n let mth\r\n let yea\r\n\r\n if (utc == true) {\r\n sec = date.getUTCSeconds()\r\n min = date.getUTCMinutes()\r\n hrs = date.getUTCHours()\r\n day = date.getUTCDate()\r\n wdy = date.getUTCDay()\r\n mth = date.getUTCMonth() + 1\r\n yea = date.getUTCFullYear()\r\n } else {\r\n sec = date.getSeconds()\r\n min = date.getMinutes()\r\n hrs = date.getHours()\r\n day = date.getDate()\r\n wdy = date.getDay()\r\n mth = date.getMonth() + 1\r\n yea = date.getFullYear()\r\n }\r\n\r\n let result = \"\"\r\n let ctrlChar = \"\"\r\n let ctrlCount = 0\r\n\r\n for (let i = 0; i <= format.length; i++) {\r\n const char = format.charAt(i) || \"\"\r\n\r\n if (ctrlChar == char) {\r\n ctrlCount++\r\n continue\r\n }\r\n\r\n switch (ctrlChar) {\r\n case \"d\":\r\n switch (ctrlCount) {\r\n case 1:\r\n result += day\r\n break\r\n case 2:\r\n result += day.pad(2)\r\n break\r\n case 3:\r\n result += _weekdays[wdy].substr(0, 2)\r\n break\r\n default:\r\n result += _weekdays[wdy]\r\n }\r\n break\r\n case \"h\":\r\n switch (ctrlCount) {\r\n case 1:\r\n result += hrs > 12 ? hrs - 12 : hrs\r\n break\r\n default:\r\n result += (hrs > 12 ? hrs - 12 : hrs).pad(2)\r\n }\r\n break\r\n case \"H\":\r\n result += hrs.pad(ctrlCount)\r\n break\r\n case \"m\":\r\n result += min.pad(ctrlCount)\r\n break\r\n case \"M\":\r\n switch (ctrlCount) {\r\n case 1:\r\n result += mth\r\n break\r\n case 2:\r\n result += mth.pad(2)\r\n break\r\n case 3:\r\n result += _months[mth - 1].substr(0, 3)\r\n break\r\n default:\r\n result += _months[mth - 1]\r\n }\r\n break\r\n case \"s\":\r\n result += sec.pad(ctrlCount)\r\n break\r\n case \"y\":\r\n result += yea.pad(4).substr(4 - ctrlCount)\r\n break\r\n case \"t\":\r\n result += (hrs < 12 ? \"AM\" : \"PM\").substr(0, ctrlCount)\r\n break\r\n case \"w\":\r\n result += calendarWeek(date).pad(ctrlCount)\r\n break\r\n }\r\n\r\n ctrlChar = \"\"\r\n ctrlCount = 0\r\n\r\n if (\"dhHmMsytw\".indexOf(char) >= 0) {\r\n ctrlChar = char\r\n ctrlCount++\r\n } else {\r\n result += char\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\nfunction calendarWeek(date: Date): number {\r\n const thursday = new Date(date.getTime() + (3 - ((date.getDay() + 6) % 7)) * 86400000)\r\n const cwYear = thursday.getFullYear()\r\n const thursdayCw = new Date(new Date(cwYear, 0, 4).getTime() + (3 - ((new Date(cwYear, 0, 4).getDay() + 6) % 7)) * 86400000)\r\n const result = Math.floor(1.5 + (thursday.getTime() - thursdayCw.getTime()) / 86400000 / 7)\r\n return result\r\n}\r\n\r\nfunction getShortCodeFormat(shortCode: string) {\r\n switch (shortCode) {\r\n case \"d\":\r\n return \"dd.MM.yyyy\"\r\n case \"D\":\r\n return \"dddd, dd. MMMM yyyy\"\r\n case \"t\":\r\n return \"HH:mm\"\r\n case \"T\":\r\n return \"HH:mm:ss\"\r\n case \"g\":\r\n return \"dd.MM.yyyy HH:mm\"\r\n case \"f\":\r\n return \"dddd, dd. MMMM yyyy HH:mm\"\r\n case \"Y\":\r\n return \"MMMM yyyy\"\r\n case \"y\":\r\n return \"MM.yyyy\"\r\n }\r\n}\r\n\r\nexport function isSameDay(date1: Date, date2: Date) {\r\n return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate()\r\n}\r\n\r\n/**\r\n * @description\r\n * I parse a simple timespan string (ex, \"12h,30m,17s\" or \"12h30m17s\") into a number of MILLISECONDS.\r\n * Supports the following units (must be lowercase):\r\n --\r\n * d = days\r\n * h = hours\r\n * m = minutes\r\n * s = seconds\r\n --\r\n * Input may contain other delimiters, as desired, in order to make the input\r\n * more readable by the developers.\r\n * @copyright https://www.bennadel.com/blog/3583-code-kata-parsing-simple-timespan-strings-like-3h-12m-57s-using-javascript.htm (modified, returning ms instead of s)\r\n * @returns MILLISECONDS or 0 on failure (changed from seconds to milliseconds)\r\n * */\r\nexport function parseTimespan(input: string) {\r\n // CAUTION: On its own, this pattern does not require the input to only\r\n // contain tokens that can be matched by this pattern. Depending on how hard\r\n // you squint, this can be a good or bad thing.\r\n const pattern = /(\\d+)(d|h|m|s)/g\r\n const multiplier: { [key: string]: number } = {\r\n d: 86400,\r\n h: 3600,\r\n m: 60,\r\n s: 1,\r\n }\r\n\r\n let timespan = 0\r\n let match\r\n\r\n // Apply each matched magnitude-unit combination to the running total.\r\n try {\r\n match = pattern.exec(input)\r\n\r\n while (match) {\r\n const magnitude: any = match[1]\r\n const unit = match[2]\r\n timespan += magnitude * multiplier[unit]\r\n match = pattern.exec(input)\r\n }\r\n } catch (e) {\r\n console.error(\"whitelist ttl option could not be parsed\", input)\r\n timespan = 0\r\n }\r\n\r\n return timespan * 1000\r\n}\r\n\r\n/** Checks if the passed parameter `date` is a valid instance of `Date` and has a valid date value\r\n * @param date\r\n * @param checkNumberOfYears Optional parameter to check the number of digits in the year. Defaults to true, if not set explicitly.\r\n * @returns {boolean}\r\n */\r\nexport function isValidDate(date?: Date | null, checkNumberOfDigitsInYear: boolean = true): boolean {\r\n if (!date) {\r\n return false\r\n }\r\n\r\n let validDate = date instanceof Date && !Number.isNaN(date.getTime())\r\n if (checkNumberOfDigitsInYear) {\r\n validDate = validDate && date.getFullYear().toString().length === 4\r\n }\r\n return validDate\r\n}\r\n","export const debounce = (fn: Function, ms = 300) => {\r\n let timeoutId: ReturnType\r\n\r\n return function (this: any, ...args: any[]) {\r\n clearTimeout(timeoutId)\r\n timeoutId = setTimeout(() => fn.apply(this, args), ms)\r\n }\r\n}\r\n","import { ActivatableModule, GetActivatableModulesResponse, ModuleGroupId, ModuleId, ModuleOption, ModulePackage, VehicleType } from \"@tm/models\"\r\n\r\nexport function getModuleGroupIconName(moduleGroupId: ModuleGroupId) {\r\n switch (moduleGroupId) {\r\n case \"fastCalculator\":\r\n return \"fast-calculator\"\r\n case \"gpi\":\r\n return \"group\"\r\n case \"technicalData\":\r\n case \"technicalDataTruck\":\r\n return \"tech-data\"\r\n case \"damageCalculation\":\r\n return \"damage-calculation\"\r\n default:\r\n return \"\"\r\n }\r\n}\r\n\r\nexport function getModuleGroupTextId(moduleGroupId: ModuleGroupId, translateText: (key: string | number) => string) {\r\n switch (moduleGroupId) {\r\n case \"fastCalculator\": {\r\n return translateText(598)\r\n }\r\n case \"gpi\": {\r\n return translateText(1145)\r\n }\r\n case \"technicalData\": {\r\n return translateText(12987)\r\n }\r\n case \"technicalDataTruck\": {\r\n return translateText(12986)\r\n }\r\n case \"damageCalculation\": {\r\n return translateText(1718)\r\n }\r\n default:\r\n return \"\"\r\n }\r\n}\r\n\r\nexport function getModuleCompareRoute(moduleGroupId?: ModuleGroupId, vehicleType?: VehicleType) {\r\n switch (moduleGroupId) {\r\n case \"gpi\":\r\n return \"gpi\"\r\n case \"inspectionData\":\r\n case \"repairTimes\":\r\n case \"technicalData\":\r\n return vehicleType === VehicleType.CommercialVehicle ? \"td-truck\" : \"td\"\r\n case \"technicalDataTruck\":\r\n return \"td-truck\"\r\n case \"fastCalculator\":\r\n return \"fast-calc-next\"\r\n default:\r\n return \"\"\r\n }\r\n}\r\n\r\nexport function getDemoModule(activatableModules: GetActivatableModulesResponse | undefined, moduleGroupId: ModuleGroupId, moduleId: ModuleId) {\r\n return activatableModules?.moduleGroups?.find((moduleGroup) => moduleGroup.id === moduleGroupId)?.modules.find((module) => module.id === moduleId)\r\n}\r\n\r\nexport function getDemoModuleByVehicleType(\r\n activatableModules: GetActivatableModulesResponse | undefined,\r\n moduleGroupId: ModuleGroupId,\r\n moduleId: ModuleId,\r\n vehicleType: VehicleType\r\n) {\r\n return activatableModules?.moduleGroups\r\n ?.find((moduleGroup) => moduleGroup.id === moduleGroupId)\r\n ?.modules.find((module) => module.id === moduleId && module.vehicleType == vehicleType)\r\n}\r\n\r\nexport function getCombinedModuleOptionsAndPackages(module: ActivatableModule) {\r\n const defaultFullOptionModule = module.moduleOptions?.full\r\n const defaultDemoOptionModule = module.moduleOptions?.demo\r\n\r\n let fullModulePackage: ModulePackage | undefined\r\n let demoModulePackage: ModulePackage | undefined\r\n\r\n let fullOptionModule: ModuleOption | undefined\r\n let demoOptionModule: ModuleOption | undefined\r\n\r\n // demo 2.0 - packages\r\n if (defaultFullOptionModule?.active && module.modulePackages) {\r\n const fullModulePackageTemp = module.modulePackages.higherPackage?.moduleOptions?.full\r\n\r\n fullModulePackage =\r\n fullModulePackageTemp?.active || fullModulePackageTemp?.activatable\r\n ? module.modulePackages.higherPackage\r\n : module.modulePackages.currentPackage\r\n\r\n if (\r\n module.modulePackages.higherPackage?.moduleOptions.demo?.active ||\r\n module.modulePackages.higherPackage?.moduleOptions?.demo?.activatable\r\n ) {\r\n demoModulePackage = module.modulePackages.higherPackage\r\n }\r\n\r\n fullOptionModule = fullModulePackage?.moduleOptions.full\r\n demoOptionModule = demoModulePackage?.moduleOptions.demo\r\n }\r\n\r\n demoOptionModule = demoOptionModule ?? defaultDemoOptionModule\r\n fullOptionModule = fullOptionModule ?? defaultFullOptionModule\r\n\r\n const isFullPackageActive = defaultFullOptionModule?.active && (!fullModulePackage || (fullModulePackage && fullOptionModule?.active))\r\n\r\n return {\r\n defaultFullOptionModule,\r\n defaultDemoOptionModule,\r\n fullModulePackage,\r\n demoModulePackage,\r\n fullOptionModule,\r\n demoOptionModule,\r\n isFullPackageActive,\r\n }\r\n}\r\n","export function isDevtoolEnabled() {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, no-underscore-dangle\r\n if ((window as any).__NEXT_DEVTOOLS_EXTENSION__?.enabled) {\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n","import { Dictionary } from \"../types\"\r\n\r\nexport function mapDictionary(data: any, mapT?: (data: any) => T): Dictionary {\r\n const result: { [key: string]: T } = {}\r\n\r\n if (data) {\r\n Object.keys(data).forEach((key) => (result[key] = mapT ? mapT(data[key]) : data[key]))\r\n }\r\n\r\n return result\r\n}\r\n","export function getEnumName(enumType: Record, value: T): string {\r\n let result = \"\"\r\n Object.keys(enumType).forEach((key) => {\r\n if (enumType[key] == value) {\r\n result = key\r\n }\r\n })\r\n return result\r\n}\r\n","import { Article, ErpInformationRequestItem } from \"@tm/models\"\r\n\r\nexport function createErpInformationRequestItem(\r\n article: Article,\r\n vehicleId?: string,\r\n selectedShipmentModeId?: string,\r\n foundBySearchTerm?: string,\r\n externalBasketItemId?: string\r\n): ErpInformationRequestItem {\r\n return {\r\n itemId: article.id,\r\n wholesalerArticleNumber: article.traderArticleNo,\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: (article.supplier.id > 0 && article.supplier.id) || undefined,\r\n dataSupplierName: article.supplier.name,\r\n productGroupId: (article.productGroup.id > 0 && article.productGroup.id) || undefined,\r\n productGroupName: article.productGroup.name,\r\n articleDescription: article.description,\r\n quantityValue: article.quantity || 1,\r\n vehicleId,\r\n selectedShipmentModeId,\r\n foundBySearchTerm,\r\n externalBasketItemId,\r\n }\r\n}\r\n","import { Interruptions } from \"./interruption-handler\"\r\nimport { EventInterruptionHandler, EventListenerEvents, ListenerItem, EventRule } from \"./models\"\r\nimport { EventRules } from \"./event-rules\"\r\n\r\n/** *\r\n * Can hold multiple event listenerds and call em. For each event type there is only one listener added to the dom.\r\n * How to use: Create an export function which will use the static method for a specific event like this:\r\n *\r\n * const registerOutsideClick = (element: Element, handler: (e: Event) => void): (() => void) | undefined => {\r\n * // Example of registerOutsideClick which is already in use and will work with the EventListenerManager\r\n * const removeListenerAfterCallingHandler = true\r\n * return EventListenerHandler.registerOutsideClick(\"outsideClick\", element, handler, removeListenerAfterCallingHandler)\r\n * }\r\n *\r\n * Differences between the simple function and this class are\r\n * * Events will be saved as\r\n * * one listener per event\r\n * * event listener won't get removed before calling\r\n *\r\n * Improvements\r\n * * To avoid duplicated events, add another key to Listeners for specific events like\r\n * * * this.Listeners[\"mouseup\"][\"outsideClick\"] = Array\r\n * * * this.Listeners[\"scroll\"][\"scroller\"] = Array\r\n * * * this.Listeners[\"scroll\"][\"outsideClick\"] = Array // stuff like this would be possible now\r\n */\r\n\r\nexport class EventListenerManager {\r\n private static instance: EventListenerManager\r\n\r\n private Listeners: { [key: string]: Array }\r\n\r\n private initialClickTarget: EventTarget | null\r\n\r\n private interruptionHandler?: EventInterruptionHandler\r\n\r\n public static TriggerRules: { [eventName: string]: EventRule } = {}\r\n\r\n static Events: { [key: string]: EventListenerEvents } = {\r\n OutsideClick: \"outsideClick\",\r\n }\r\n\r\n /** *\r\n * HowToAddListener: Use existing event listener or introduce a new one\r\n * (new: add a listener function where registered listeners will be called)\r\n * @todo Register mouseUpListener as mouseDown, save the eventTarge bubble phase and what ever and register another mousedown to check if the callback should be executed\r\n */\r\n private constructor() {\r\n this.initialClickTarget = null\r\n window.document.body.addEventListener(\"mousedown\", this.mouseDownListener)\r\n window.document.body.addEventListener(\"mouseup\", this.mouseUpListener)\r\n this.Listeners = {}\r\n }\r\n\r\n private static getInstance = () => {\r\n if (!EventListenerManager.instance) {\r\n EventListenerManager.instance = new EventListenerManager()\r\n }\r\n\r\n return EventListenerManager.instance\r\n }\r\n\r\n private initializeListenerRepo = (eventName: string) => {\r\n this.Listeners[eventName] = this.Listeners[eventName] || []\r\n }\r\n\r\n /** *\r\n * HowToAddListener: create your static listener Method, don't forget to add your listener\r\n */\r\n static registerEventListener = (eventName: string, element: Element, handler: (e: Event) => void, removeAfterHandle: boolean): (() => void) => {\r\n const instance = EventListenerManager.getInstance()\r\n\r\n const unregisterHandler = () => {\r\n instance.removeListener(eventName, { element, handler })\r\n }\r\n\r\n instance.addListener(eventName, element, handler, removeAfterHandle ? unregisterHandler : undefined)\r\n\r\n return unregisterHandler\r\n }\r\n\r\n private removeListener = (event: string, listener: ListenerItem) => {\r\n this.Listeners[event] = this.Listeners[event].filter((listenerItem) => listenerItem.element != listener.element)\r\n }\r\n\r\n private addListener = (event: string, element: Element, handler: (e: Event) => void, afterHandle?: () => void) => {\r\n if (!this.Listeners || !this.Listeners[event]) {\r\n this.initializeListenerRepo(event)\r\n }\r\n\r\n if (!this.Listeners[event].find((item) => item.element == element)) {\r\n this.Listeners[event].push({ element, handler, afterHandle })\r\n }\r\n }\r\n\r\n /** *\r\n * Will trigger events\r\n * HowToAddListener: call your listener here\r\n */\r\n private mouseUpListener = (e: Event) => {\r\n this.triggerRegisteredEventListener(e, EventListenerManager.Events.OutsideClick)\r\n\r\n this.initialClickTarget = null\r\n }\r\n\r\n private mouseDownListener = (e: Event) => {\r\n this.initialClickTarget = e.srcElement\r\n }\r\n\r\n /** *\r\n * get all the registered callbacksfor this event\r\n */\r\n private triggerRegisteredEventListener = (e: Event, eventName: EventListenerEvents) => {\r\n const outsideClickListeners = this.getListenerCallbacks(eventName)\r\n if (outsideClickListeners.length == 0) {\r\n return\r\n }\r\n\r\n this.callEventListeners(e, outsideClickListeners, eventName)\r\n }\r\n\r\n private getListenerCallbacks = (eventName: string) => {\r\n return this.Listeners[eventName] ? this.Listeners[eventName].map((item) => item) : []\r\n }\r\n\r\n /** *\r\n * call each callback and remove ?\r\n */\r\n private callEventListeners = (e: Event, listeners: Array, eventName: EventListenerEvents) => {\r\n if (!e.srcElement) {\r\n return\r\n }\r\n\r\n const eventTriggerRule = EventListenerManager.TriggerRules[eventName]\r\n\r\n const shouldExecuteHandler = (listenerItem: ListenerItem) => {\r\n if (this.shouldInterruptEvent(eventName, listenerItem.element, e)) {\r\n return false\r\n }\r\n\r\n return eventTriggerRule.isFulfilled(this.initialClickTarget as Element, e.srcElement as Element, listenerItem.element)\r\n }\r\n\r\n if (eventTriggerRule) {\r\n const lastListener = listeners.last()\r\n if (lastListener && shouldExecuteHandler(lastListener)) {\r\n lastListener.handler(e)\r\n lastListener.afterHandle && lastListener.afterHandle()\r\n }\r\n\r\n // for (let i = 0; i < listeners.length; i++) {\r\n // const listener = listeners[i]\r\n // if (listener && shouldExecuteHandler(listener)) {\r\n // listener.handler(e)\r\n // listener.afterHandle && listener.afterHandle()\r\n // }\r\n // }\r\n }\r\n }\r\n\r\n private shouldInterruptEvent(eventName: EventListenerEvents, srcElement: Element, e: Event) {\r\n if (this.interruptionHandler) {\r\n if (this.interruptionHandler.processor(eventName, this.initialClickTarget as Element, srcElement, this.Listeners[eventName], e)) {\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n static addInterruptionHandler(handler: EventInterruptionHandler) {\r\n const instance = EventListenerManager.getInstance()\r\n if (!instance.interruptionHandler) {\r\n instance.interruptionHandler = handler\r\n } else {\r\n instance.interruptionHandler.addHandler(handler)\r\n }\r\n }\r\n\r\n static addEventRule(evRules: EventRule) {\r\n EventListenerManager.TriggerRules[evRules.eventName] = evRules\r\n }\r\n}\r\n\r\nEventRules.forEach(EventListenerManager.addEventRule)\r\n\r\nInterruptions.forEach(EventListenerManager.addInterruptionHandler)\r\n","import { OutsideClickRule } from \"./outside-click\"\r\nimport { EventRule } from \"../models\"\r\n\r\nexport const EventRules: EventRule[] = [new OutsideClickRule()]\r\n","import { EventRule, EventListenerEvents } from \"../models\"\r\n\r\nexport class OutsideClickRule implements EventRule {\r\n eventName: EventListenerEvents = \"outsideClick\"\r\n\r\n isFulfilled = (initialClickElement: Element, eventElement: Element, listenerElement: Element) => {\r\n let isOutside = this.isOutsideListenerElement(initialClickElement, listenerElement)\r\n isOutside = isOutside && this.isOutsideListenerElement(eventElement, listenerElement)\r\n return isOutside\r\n }\r\n\r\n private isOutsideListenerElement = (outsideElement: Element, sourceElement: Element) => {\r\n let currentElement: Element | null = outsideElement\r\n\r\n while (currentElement) {\r\n // don't send an outsideclick from a tooltip shown by a modal\r\n if (sourceElement.className.split(\" \").indexOf(\"modal\") != -1 && currentElement.attributes.getNamedItem(\"role\")?.value === \"tooltip\") {\r\n return false\r\n }\r\n if (currentElement.attributes.getNamedItem(\"role\")?.value === \"presentation\") {\r\n return false\r\n }\r\n if (currentElement === sourceElement) {\r\n return false\r\n }\r\n\r\n currentElement = currentElement.parentElement\r\n }\r\n return true\r\n }\r\n\r\n private initialElementIsOutside(initialClickElement: Element, listenerElement: Element) {\r\n let currentElement: Element | null = initialClickElement\r\n\r\n while (currentElement) {\r\n if (currentElement === listenerElement) {\r\n return false\r\n }\r\n\r\n currentElement = currentElement.parentElement\r\n }\r\n return true\r\n }\r\n}\r\n","import { PreventEventForPreviouslyShownModals } from \"./is-modal-the-currently-shown-modal\"\r\nimport { IsTheSameElementClickInterruption } from \"./outside-click\"\r\n\r\nexport const Interruptions = [new PreventEventForPreviouslyShownModals(), new IsTheSameElementClickInterruption()]\r\n","import { EventInterruptionHandler, EventListenerEvents } from \"../models\"\r\n\r\nexport class PreventEventForPreviouslyShownModals extends EventInterruptionHandler {\r\n ev = \"outsideClick\"\r\n\r\n process = (ev: EventListenerEvents, currentElement: Element, sourceElement: Element) => {\r\n return !this.isModalTheCurrentlyShownModal(sourceElement)\r\n }\r\n\r\n /**\r\n * When a modal is opened from within another modal (for example the \"GVA\" modal from the \"Article Details\" modal),\r\n * we have this html structure:\r\n *\r\n *
    \r\n *
    \r\n *
    \r\n *
    \r\n *
    \r\n *
    \r\n *
    \r\n *
    \r\n *\r\n * If we now click anywhere in the second modal, the outside click handler of the first modal is triggered and\r\n * both modals get closed.\r\n *\r\n * This method does two things:\r\n * 1. First it checks if the sourceElement is a modal. If no return true and the other checks in the calling method continue.\r\n * 2. If yes, it checks that the parent \"modal__container\" is the last open modal container.\r\n */\r\n private isModalTheCurrentlyShownModal = (sourceElement: Element) => {\r\n if (sourceElement.classList.contains(\"modal\") && sourceElement.parentElement && sourceElement.parentElement.parentElement) {\r\n const openModalContainers = sourceElement.parentElement.parentElement.querySelectorAll(\".modal__container.open\")\r\n const modalContainerLastChild = openModalContainers[openModalContainers.length - 1]\r\n\r\n if (modalContainerLastChild && sourceElement != modalContainerLastChild.firstElementChild) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n }\r\n}\r\n","import { EventInterruptionHandler, EventListenerEvents, ListenerItem } from \"../models\"\r\n\r\nexport class IsTheSameElementClickInterruption extends EventInterruptionHandler {\r\n ev = \"outsideClick\"\r\n\r\n process = (ev: EventListenerEvents, initiallyClickedElement: Element, sourceElement: Element, eventListeners: ListenerItem[], e: Event) => {\r\n // console.log(`i check if an registered outsideclick element is clicked ${ev} ${sourceElement.textContent}`)\r\n // console.log(e.target ,e.currentTarget,`${(e.srcElement as HTMLDivElement).textContent} was bubbled? ${e.BUBBLING_PHASE} - ${sourceElement.textContent}`, e)\r\n if ((e as any).target == sourceElement) {\r\n // console.log(`interrupting everything ${ev}`)\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n}\r\n","export interface EventRule {\r\n isFulfilled(...elements: Element[]): boolean\r\n eventName: EventListenerEvents\r\n // getRule() : EventRules\r\n}\r\n\r\nexport type EventListenerEvents = \"outsideClick\"\r\n// | \"scroll\"\r\n\r\nexport type ListenerItem = {\r\n element: Element\r\n handler: (e: Event) => void\r\n afterHandle?: () => void\r\n}\r\n\r\nexport abstract class EventInterruptionHandler {\r\n nextHandler?: EventInterruptionHandler\r\n\r\n abstract ev: string\r\n\r\n public addHandler(nextHandler: EventInterruptionHandler) {\r\n if (this.nextHandler) {\r\n this.nextHandler.addHandler(nextHandler)\r\n } else {\r\n this.nextHandler = nextHandler\r\n }\r\n }\r\n\r\n abstract process: (ev: EventListenerEvents, currentElement: Element, sourceElement: Element, eventListeners: ListenerItem[], e: Event) => boolean\r\n\r\n processor(ev: EventListenerEvents, currentElement: Element, sourceElement: Element, eventListeners: ListenerItem[], e: Event): boolean {\r\n if (this.ev != ev) {\r\n return false\r\n }\r\n\r\n let result = this.process(ev, currentElement, sourceElement, eventListeners, e)\r\n if (!result) {\r\n result = this.nextHandler?.processor(ev, currentElement, sourceElement, eventListeners, e) || false\r\n }\r\n\r\n return result\r\n }\r\n}\r\n","export function getFileContent(acceptedFile: File): Promise {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.onload = (e: any) => {\r\n if (e.target && e.target.result) {\r\n resolve(e.target.result)\r\n } else {\r\n reject()\r\n }\r\n }\r\n\r\n reader.onerror = () => {\r\n reject()\r\n }\r\n reader.readAsDataURL(acceptedFile)\r\n })\r\n}\r\n","import { MileType } from \"@tm/models\"\r\n\r\nexport function formatMileage(mileage: string, mileType?: MileType) {\r\n switch (mileType) {\r\n case MileType.Mile:\r\n return `${mileage} mi.`\r\n case MileType.Kilometer:\r\n default:\r\n return `${mileage} km.`\r\n }\r\n}\r\n\r\nexport function formatVin(vin: string) {\r\n return vin.toUpperCase().replace(/I/g, \"1\").replace(/[OQ]/g, \"0\")\r\n}\r\n\r\nexport function noEmojis(value: string): string {\r\n const emojiPattern =\r\n /[\\u{1F600}-\\u{1F64F}\\u{1F300}-\\u{1F5FF}\\u{1F680}-\\u{1F6FF}\\u{1F700}-\\u{1F77F}\\u{1F780}-\\u{1F7FF}\\u{1F800}-\\u{1F8FF}\\u{1F900}-\\u{1F9FF}\\u{1FA00}-\\u{1FA6F}\\u{1FA70}-\\u{1FAFF}\\u{2600}-\\u{26FF}\\u{2700}-\\u{27BF}\\u{2B50}\\u{2B55}]/gu\r\n\r\n return value.replace(emojiPattern, \"\")\r\n}\r\n","import { ConfigParams, RepairTimeProviderConfig, RepairTimesProvidersNames } from \"@tm/models\"\r\nimport Morpheus from \"@tm/morpheus\"\r\n\r\nexport function getRepairTimeProviders() {\r\n const repairTimeProvidersFromConfig = Morpheus.getParams().repairTimeProviders\r\n let repairTimeProviders: RepairTimeProviderConfig[] = []\r\n let repairTimeProviderIds: RepairTimesProvidersNames[] = []\r\n if (repairTimeProvidersFromConfig !== undefined) {\r\n repairTimeProviders = Object.keys(repairTimeProvidersFromConfig || {})\r\n .map((key) => ({ ...repairTimeProvidersFromConfig[key] }))\r\n .filter((x) => !!x && !!x.id)\r\n\r\n repairTimeProviderIds = repairTimeProviders.map((x) => x.id)\r\n }\r\n\r\n return { repairTimeProviders, repairTimeProviderIds }\r\n}\r\n","/** *\r\n * @description slightly modified version of the original, should be a fast hashing method\r\n * @source https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\r\n */\r\n\r\nexport function generateHash(value: string) {\r\n let hash = 0\r\n if (!value.length) {\r\n return hash\r\n }\r\n for (let i = 0, imax = value.length, n; i < imax; ++i) {\r\n n = value.charCodeAt(i)\r\n hash = (hash << 5) - hash + n\r\n hash &= hash // Convert to 32-bit integer\r\n }\r\n return Math.abs(hash)\r\n}\r\n","const heightObservables: { [key: string]: HTMLElement[] } = {}\r\nconst heightObservers: { [key: string]: [HTMLElement, ResizeObserver][] } = {}\r\n\r\nexport function useHeighAdjustment() {\r\n function setHeightAdjustment(element: HTMLElement, elementNames: string[]) {\r\n // if there are more than one elementNames we should check if they are available. in case they are not, no resizing should happen.\r\n elementNames.forEach((name) => {\r\n let observerPairs = heightObservers[name]\r\n\r\n if (!observerPairs) {\r\n heightObservers[name] = []\r\n observerPairs = heightObservers[name]\r\n }\r\n\r\n if (observerPairs.some((x) => x[0] === element)) {\r\n return removeHeightAdjustment\r\n }\r\n\r\n const observer = new ResizeObserver((observerEntries) => {\r\n let elements: HTMLElement[] = []\r\n\r\n // get entry observable name which are combined with this element\r\n const elementObservables = Object.entries(heightObservers)\r\n .filter(([, observerList]) => observerList.some(([el]) => el === element))\r\n .map(([key]) => key)\r\n elementObservables.forEach((key) => {\r\n elements = [...elements, ...(heightObservables[key] || [])]\r\n })\r\n\r\n const height = elements.reduce((prev, curr) => prev + curr.clientHeight, 0)\r\n\r\n element.style.height = `${height}px`\r\n })\r\n\r\n heightObservers[name] = [...observerPairs, [element, observer]]\r\n observerPairs = heightObservers[name]\r\n\r\n const observables = heightObservables[name]\r\n\r\n if (!observables) {\r\n return removeHeightAdjustment\r\n }\r\n\r\n observables.forEach((el) => observer.observe(el))\r\n })\r\n\r\n function removeHeightAdjustment() {\r\n Object.keys(heightObservers).forEach((key) => {\r\n const observerPair = heightObservers[key].find((x) => x[0] === element)\r\n if (!observerPair) {\r\n return\r\n }\r\n observerPair[1].disconnect()\r\n heightObservers[key] = heightObservers[key].filter((x) => x[0] !== element)\r\n })\r\n }\r\n\r\n return removeHeightAdjustment\r\n }\r\n\r\n function allowHeightObservation(element: HTMLElement, name: string) {\r\n let observables = heightObservables[name]\r\n if (!observables) {\r\n heightObservables[name] = []\r\n observables = heightObservables[name]\r\n }\r\n\r\n if (observables.indexOf(element) !== -1) {\r\n return declineHeightObservation\r\n }\r\n\r\n observables = [...observables, element]\r\n heightObservables[name] = [...heightObservables[name], element]\r\n ;(heightObservers[name] || []).forEach((observer) => observer[1].observe(element))\r\n\r\n function declineHeightObservation() {\r\n heightObservables[name] = observables.filter((x) => x != element)\r\n observables = heightObservables[name]\r\n }\r\n\r\n return declineHeightObservation\r\n }\r\n\r\n return {\r\n setHeightAdjustment,\r\n allowHeightObservation,\r\n }\r\n}\r\n","import { Config, sanitize as htmlSanitize } from \"dompurify\"\r\n\r\n/*\r\n Simple decorator for dompurify to be sure, that only valid HTML is returned even if you forgot to define the profiles.\r\n For more information see https://github.com/cure53/DOMPurify#can-i-configure-dompurify\r\n */\r\nexport const sanitize = (dirtyHtml: string | Node, config?: Config): string | HTMLElement | DocumentFragment | null => {\r\n return htmlSanitize(dirtyHtml, { ...config }) || null\r\n}\r\n","export function getLocalePrecisionSymbol() {\r\n const result = new RegExp(/\\d(,|\\.)\\d/).exec((0.2).toLocaleString())\r\n return result && result[1] ? result[1] : \".\"\r\n}\r\n\r\nexport function fixPrecisionSymbol(value: string) {\r\n const locale = getLocalePrecisionSymbol()\r\n if (value) {\r\n return value.toString().replace(locale == \".\" ? \",\" : \".\", locale)\r\n }\r\n return value\r\n}\r\n","import * as uuid from \"uuid\"\r\nimport baseX from \"base-x\"\r\nimport { Buffer } from \"buffer\"\r\n\r\nlet lastId = 0\r\nexport function elementId(prefix = \"el\") {\r\n return `${prefix}${lastId++}`\r\n}\r\n\r\nexport function uniqueId() {\r\n return uuid.v4()\r\n}\r\n\r\nconst base62 = baseX(\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\")\r\nconst encoding = \"hex\"\r\nconst encodedLength = 22\r\nconst uuidLength = 32\r\n\r\nexport function encodeUniqueId(input: string | Buffer): string {\r\n if (typeof input === \"string\") {\r\n // remove the dashes to save some space\r\n input = Buffer.from(input.replace(/-/g, \"\"), encoding)\r\n }\r\n\r\n return ensureLength(base62.encode(input), encodedLength)\r\n}\r\n\r\nexport function decodeUniqueId(b62Str: string) {\r\n if (!/^[a-z0-9]+$/i.test(b62Str)) {\r\n return\r\n }\r\n\r\n const res = ensureLength(Buffer.from(base62.decode(b62Str)).toString(encoding), uuidLength)\r\n\r\n // re-add the dashes so the result looks like an uuid\r\n const resArray = res.split(\"\")\r\n ;[8, 13, 18, 23].forEach((idx) => {\r\n resArray.splice(idx, 0, \"-\")\r\n })\r\n\r\n return resArray.join(\"\")\r\n}\r\n\r\n/**\r\n * ensureLength\r\n *\r\n * @api private\r\n */\r\nfunction ensureLength(str: string | Buffer, maxLen: number): string {\r\n // eslint-disable-next-line operator-assignment, prefer-template\r\n str = str + \"\"\r\n\r\n if (str.length < maxLen) {\r\n return padLeft(str, maxLen)\r\n }\r\n if (str.length > maxLen) {\r\n return trimLeft(str, maxLen)\r\n }\r\n\r\n return str\r\n}\r\n\r\n/**\r\n * padLeft\r\n *\r\n * @api private\r\n */\r\nfunction padLeft(str: string, padding: number): string {\r\n str += \"\"\r\n let pad = \"\"\r\n\r\n for (let i = str.length; i < padding; i++) {\r\n pad += \"0\"\r\n }\r\n\r\n return pad + str\r\n}\r\n\r\n/**\r\n * trimLeft\r\n *\r\n * @api private\r\n */\r\nfunction trimLeft(str: string, maxLen: number): string {\r\n str += \"\"\r\n let trim = 0\r\n\r\n while (str[trim] === \"0\" && str.length - trim > maxLen) {\r\n trim++\r\n }\r\n\r\n return str.slice(trim)\r\n}\r\n","import { convertDataURIToDecodedString } from \"..\"\r\n\r\nexport function getBase64FromImage(img: HTMLImageElement, overwriteWidth?: number, overwriteHeight?: number): Promise {\r\n return new Promise((resolve, reject) => {\r\n const c = document.createElement(\"canvas\")\r\n c.width = overwriteWidth ?? img.naturalWidth\r\n c.height = overwriteHeight ?? img.naturalHeight\r\n\r\n const context = c.getContext(\"2d\")\r\n if (context) {\r\n context.drawImage(img, 0, 0, c.width, c.height)\r\n const data = c.toDataURL(\"image/jpg\")\r\n resolve(data)\r\n } else {\r\n reject()\r\n }\r\n })\r\n}\r\n\r\nfunction convertDataURIToBinary(dataURI: string) {\r\n const raw = convertDataURIToDecodedString(dataURI)\r\n const rawLength = raw.length\r\n const array = new Uint8Array(new ArrayBuffer(rawLength))\r\n\r\n for (let i = 0; i < rawLength; i++) {\r\n array[i] = raw.charCodeAt(i)\r\n }\r\n\r\n return array\r\n}\r\n\r\nexport function convertBase64ImageToByteArray(image: string): Array {\r\n const uint8Array = convertDataURIToBinary(image)\r\n return [].slice.call(uint8Array)\r\n}\r\n\r\nexport function convertDataURIToBlob(dataURI: string) {\r\n return new Blob([convertDataURIToBinary(dataURI)])\r\n}\r\n","import { ReplaceButtonBundle, EReplaceButtonBundle } from \"@tm/models\"\r\n\r\n/**\r\n * please add a description if you know this function\r\n * @param value\r\n * @returns\r\n */\r\nexport function isBundleWithReplaceButtonMicro(value: string): value is ReplaceButtonBundle {\r\n return (\r\n value === EReplaceButtonBundle.DMGDat ||\r\n value === EReplaceButtonBundle.FastCalculatorNext ||\r\n value === EReplaceButtonBundle.FastService ||\r\n value === EReplaceButtonBundle.DMGEurotax ||\r\n value === EReplaceButtonBundle.DMGDatGlass ||\r\n value === EReplaceButtonBundle.Basket\r\n )\r\n}\r\n","import { Article } from \"@tm/models\"\r\n\r\nexport const isSameArticle = (oldArticle: Article, newArticle: Article) => {\r\n if (!oldArticle || !newArticle) {\r\n return\r\n }\r\n return (\r\n oldArticle?.supplierArticleNo === newArticle?.supplierArticleNo &&\r\n oldArticle?.supplier?.id === newArticle?.supplier?.id &&\r\n oldArticle?.productGroup?.id === newArticle?.productGroup?.id\r\n )\r\n}\r\n","export function parseIfStringifiedData(data: T): T | undefined {\r\n if (typeof data === \"string\" && /^\\{.*\\}$/.exec(data)) {\r\n try {\r\n return JSON.parse(data)\r\n } catch (ex) {\r\n console.warn(\"Postmessage API tried to parse: \", data, ex)\r\n return\r\n }\r\n }\r\n\r\n return data\r\n}\r\n","/**\r\n * @description loads a module using XMLHttpRequest\r\n */\r\nexport function loadModule(url: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.onloadend = () => {\r\n try {\r\n const obj = eval(xhr.responseText)\r\n resolve(obj)\r\n } catch (err) {\r\n reject(err)\r\n }\r\n }\r\n xhr.onerror = () => {\r\n // eslint-disable-next-line prefer-promise-reject-errors\r\n reject(`Module couldn't be loaded (${url})`)\r\n }\r\n xhr.open(\"GET\", url)\r\n xhr.send()\r\n })\r\n}\r\n","/**\r\n * copy from stackoverflow\r\n * to notify about location changes\r\n * https://stackoverflow.com/a/52809105\r\n */\r\nif (typeof window !== \"undefined\") {\r\n const createEvent = function (type: string) {\r\n let event: any = null\r\n if (typeof Event === \"function\") {\r\n event = new Event(type)\r\n } else {\r\n event = document.createEvent(\"Event\")\r\n event.initEvent(type, true, true)\r\n }\r\n\r\n return event\r\n }\r\n\r\n history.pushState = ((f) =>\r\n function pushState(...args) {\r\n const ret = f.apply(history, args)\r\n window.dispatchEvent(createEvent(\"pushState\"))\r\n window.dispatchEvent(createEvent(\"locationchange\"))\r\n return ret\r\n })(history.pushState)\r\n\r\n history.replaceState = ((f) =>\r\n function replaceState(...args) {\r\n const ret = f.apply(history as ThisType, args)\r\n window.dispatchEvent(createEvent(\"replaceState\"))\r\n window.dispatchEvent(createEvent(\"locationchange\"))\r\n return ret\r\n })(history.replaceState)\r\n\r\n window.addEventListener(\"popstate\", () => {\r\n window.dispatchEvent(createEvent(\"locationchange\"))\r\n })\r\n}\r\n\r\nexport {}\r\n","/**\r\n * Fits width and height values into maxWidth and maxHeight, while maintaining the original aspect ratio.\r\n * @param aspectRatio optional. If supplied the aspect ratio is changed to this. (examples: 2/1, 16/9)\r\n */\r\nexport function calculateMediaSizeLimit(originalWidth: number, originalHeight: number, maxWidth: number, maxHeight: number, aspectRatio?: number) {\r\n if (aspectRatio) {\r\n if (originalHeight > originalWidth / aspectRatio) {\r\n originalHeight = originalWidth / aspectRatio\r\n } else if (originalWidth > originalHeight * aspectRatio) {\r\n originalWidth = originalHeight * aspectRatio\r\n }\r\n }\r\n\r\n let width = Math.min(originalWidth, maxWidth)\r\n let height = originalHeight / (originalWidth / width)\r\n\r\n if (height > maxHeight) {\r\n height = maxHeight\r\n width = originalWidth / (originalHeight / height)\r\n }\r\n\r\n return { width, height }\r\n}\r\n","import { MessageType } from \"@tm/models\"\r\n\r\n// Used in Basket - SendOrder and cis - VoucherItem\r\n// response like in components: AlertColor = 'success' | 'info' | 'warning' | 'error'\r\nexport function getAlertColor(type: MessageType): \"success\" | \"info\" | \"warning\" | \"error\" {\r\n switch (type) {\r\n case MessageType.Error:\r\n return \"warning\"\r\n case MessageType.TechnicalError:\r\n return \"error\"\r\n case MessageType.Warning:\r\n return \"warning\"\r\n case MessageType.Information:\r\n return \"success\"\r\n default:\r\n return \"info\"\r\n }\r\n}\r\n","import { ModelState } from \"../types\"\r\n\r\nexport function getFieldErrors(modelState: ModelState, path: string | Array): Array {\r\n if (!modelState) {\r\n return []\r\n }\r\n\r\n let fieldName: string\r\n if (Array.isArray(path)) {\r\n fieldName = path.join(\".\")\r\n } else {\r\n fieldName = path\r\n }\r\n\r\n const list = modelState[fieldName]\r\n\r\n if (!list) {\r\n return []\r\n }\r\n\r\n return list\r\n}\r\n","import { ModuleMode } from \"@tm/models\"\r\n\r\nexport function getMvcComponentModuleMode(moduleMode?: ModuleMode | string | undefined) {\r\n switch (moduleMode) {\r\n case \"0\": // autodata\r\n case \"SD\": {\r\n return \"_inspection\"\r\n }\r\n\r\n case \"1\": // autodata\r\n case \"2\":\r\n case \"TD\":\r\n case \"GPI\":\r\n case \"RT\":\r\n default: {\r\n return \"\"\r\n }\r\n }\r\n}\r\n","import isEqual from \"react-fast-compare\"\r\nimport get from \"get-value\"\r\nimport cloneDeep from \"clone-deep\"\r\nimport set from \"set-value\"\r\n\r\nexport function clone(obj: T): T {\r\n return cloneDeep(obj)\r\n}\r\n\r\nexport function equals(actual: any, expected: any): boolean {\r\n return isEqual(actual, expected)\r\n}\r\n\r\nexport function getValue(obj: object, path: Array, fallback?: any) {\r\n if (!obj) {\r\n return fallback\r\n }\r\n\r\n return get(obj, path, { default: fallback })\r\n}\r\n\r\nexport function setValue(obj: object, path: Array, value: any): any {\r\n let pathString = \"\"\r\n path.forEach((x, idx) => {\r\n if (idx > 0) {\r\n pathString += \".\"\r\n }\r\n pathString += x.replace(/\\./g, \"\\\\.\")\r\n })\r\n return set(obj, pathString, value)\r\n}\r\n","import { channel } from \"@tm/models\"\r\nimport Bowser from \"bowser\"\r\n\r\ndeclare let window: Window & { navigator: Navigator & { msSaveOrOpenBlob: Function } }\r\n\r\nexport function openStreamPdf(stream: Array, translateText: (id: number) => string) {\r\n openPdfHandler(stream as any, translateText)\r\n}\r\n\r\nexport function openBase64Pdf(pdf: string, translateText: (id: number) => string) {\r\n const byteArray = Uint8Array.from(\r\n window\r\n .atob(pdf)\r\n .split(\"\")\r\n .map((char) => char.charCodeAt(0))\r\n )\r\n const file = new Blob([byteArray], { type: \"application/pdf\" })\r\n\r\n openPdfHandler(file, translateText)\r\n}\r\n\r\nfunction openPdfHandler(file: Blob | MediaSource, translateText: (id: number) => string) {\r\n let blocked = false\r\n\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n blocked = !window.navigator.msSaveOrOpenBlob(file, \"Document.pdf\")\r\n } else {\r\n const fileURL = URL.createObjectURL(file)\r\n const popup = window.open(fileURL, \"_blank\")\r\n\r\n blocked = !popup || popup?.closed || typeof popup?.closed === \"undefined\"\r\n }\r\n\r\n if (!blocked) {\r\n return\r\n }\r\n\r\n let textId\r\n const browser = Bowser.getParser(window.navigator.userAgent)\r\n\r\n switch (browser.getBrowserName()) {\r\n case \"Firefox\":\r\n textId = 12836\r\n break\r\n\r\n case \"Chrome\":\r\n default:\r\n textId = 12831\r\n break\r\n }\r\n\r\n channel(\"APP\").publish(\"TOAST_MESSAGE/SHOW\", {\r\n message: translateText(textId),\r\n icon: \"alert\",\r\n skin: \"warning\",\r\n closeDelay: 120000,\r\n })\r\n}\r\n","import { Warehouse } from \"@tm/models\"\r\n\r\nexport function mapPrices(prices: Warehouse[\"prices\"]) {\r\n if (!prices || Array.isArray(prices)) {\r\n return prices\r\n }\r\n return Object.keys(prices)\r\n .map((key) => prices[key])\r\n .filter((x) => x)\r\n}\r\n","export type CancelablePromise = {\r\n promise: Promise\r\n cancel(): void\r\n}\r\n\r\nexport type CancelError = {\r\n isCanceled: true\r\n}\r\n\r\n/**\r\n * Takes a `Promise` and wraps it into a new `Promise` that will be returned alongside with a `cancel` function.\r\n *\r\n * When this function was called the result of the supplied `Promise` will not be returned,\r\n * but instead the `Promise` will be rejected with the following error object: `{ isCanceled: true }`\r\n *\r\n * Use the function @see `isCanceled` to check if an rejection was due to cancellation.\r\n *\r\n * @param promise The `Promise` that will be made cancelable.\r\n * @returns An object containing the wrapped supplied `Promise` and a `cancel` function.\r\n */\r\nexport function makeCancelable(promise: Promise): CancelablePromise {\r\n let cancelError: CancelError | undefined\r\n\r\n const wrappedPromise = new Promise((resolve, reject) => {\r\n // eslint-disable-next-line prefer-promise-reject-errors\r\n promise.then((val) => (cancelError ? reject(cancelError) : resolve(val)))\r\n\r\n // eslint-disable-next-line prefer-promise-reject-errors\r\n promise.catch((error) => (cancelError ? reject(cancelError) : reject(error)))\r\n })\r\n\r\n return {\r\n promise: wrappedPromise,\r\n cancel() {\r\n cancelError = {\r\n isCanceled: true,\r\n }\r\n },\r\n }\r\n}\r\n\r\nfunction isCancelError(error: unknown): error is CancelError {\r\n return typeof error === \"object\" && !!error && \"isCanceled\" in error\r\n}\r\n\r\n/**\r\n * Check if an error indicates that the `Promise` was being canceled.\r\n *\r\n * @param error An error object from the `Promise` rejection.\r\n * @returns `true` if the error indicates the `Promise` was cancelled, otherwise `false`.\r\n */\r\nexport function isCanceled(error: unknown): boolean {\r\n return isCancelError(error) && error.isCanceled\r\n}\r\n","import { EventListenerManager } from \"..\"\r\n\r\n/**\r\n * Registers a [handler] function which will be called once you click outside of the given [element]\r\n */\r\nexport function registerOutsideClick(element: Element, handler: (e: Event) => void, listenOnce = true): () => void {\r\n if (!element) {\r\n return () => undefined\r\n }\r\n\r\n const removeEventListener = EventListenerManager.registerEventListener(\"outsideClick\", element, handler, listenOnce)\r\n\r\n return removeEventListener\r\n}\r\n","import { CountryFilter, RegistrationNoType, VehicleType } from \"@tm/models\"\r\nimport { VrcLookupModule } from \"@bundles/vehicle/data/model/vrc-lookup\"\r\nimport { isVin } from \"./vin\"\r\n\r\ntype RegistrationNumberFields = {\r\n placeholder?: number // vehicle search field\r\n exampleQuery?: string // vehicle search field\r\n tooltip?: number // vehicle search field\r\n label?: number // vehicle info (fallback), vehicle details, cost estimation\r\n labelShort?: number // vehicle info\r\n}\r\n\r\nexport function getRegistrationNumberTextIdByVrcLookupModule(module: VrcLookupModule): number | undefined {\r\n switch (module?.binLkz) {\r\n case CountryFilter.D:\r\n return 103\r\n case CountryFilter.A:\r\n case CountryFilter.F:\r\n return 1218\r\n case CountryFilter.CH:\r\n return 1730\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\nexport function getRegistrationNumberTypeTextIds(regNoType: RegistrationNoType | undefined, vehicleType: VehicleType): RegistrationNumberFields {\r\n switch (regNoType) {\r\n case RegistrationNoType.KennzeichenNiederlande:\r\n case RegistrationNoType.KennzeichenNiederlandeCarat:\r\n case RegistrationNoType.KennzeichenNiederlandeSchwenker:\r\n return { placeholder: 1726, exampleQuery: \"PPXF69\", tooltip: 21 } // No label to not show input field on vehicle details (because it's already existing as license plate field)\r\n\r\n case RegistrationNoType.LicencePlateDK:\r\n return { placeholder: 1726, exampleQuery: \"DG20236\", tooltip: 21 } // No label to not show input field on vehicle details (because it's already existing as license plate field)\r\n\r\n case RegistrationNoType.NationalcodeAustria:\r\n return { placeholder: 1219, exampleQuery: \"039557\", tooltip: 1218, label: 1218 }\r\n\r\n case RegistrationNoType.NationalcodeFrankreich:\r\n case RegistrationNoType.NationalcodeFrankreichHerthBuss:\r\n case RegistrationNoType.NationalCodeFrankreichCarat:\r\n return { placeholder: 1219, exampleQuery: \"000AC\", tooltip: 1218, label: 1218 }\r\n\r\n case RegistrationNoType.Kba:\r\n return {\r\n placeholder: 1113,\r\n exampleQuery: vehicleType === VehicleType.Motorcycle ? \"0005 ASN\" : \"0588 599\",\r\n tooltip: 103,\r\n label: 103,\r\n labelShort: 1490,\r\n }\r\n\r\n case RegistrationNoType.TypenscheinDehrendinger:\r\n case RegistrationNoType.TypenscheinSchweizCarat:\r\n case RegistrationNoType.TypenscheinSchweizEsa:\r\n case RegistrationNoType.TypenscheinSchweizEurotax:\r\n case RegistrationNoType.TypenscheinSchweizHoststettler:\r\n case RegistrationNoType.TypeApprovalNumberSwitzerlandRhiag:\r\n case RegistrationNoType.SchweizTypenscheinAtu:\r\n return { placeholder: 1790, exampleQuery: \"1BB345\", tooltip: 1730, label: 1730 }\r\n\r\n case RegistrationNoType.LicensePlateSwitzerlandAutoIDat_Eurotax:\r\n case RegistrationNoType.LicensePlateSwitzerlandAutoIDat_Hostettler:\r\n case RegistrationNoType.LicensePlateSwitzerlandAutoIDat_ESA:\r\n return { placeholder: 1726, exampleQuery: \"ZH660161\", tooltip: 1730, label: 1730 }\r\n case RegistrationNoType.LicensePlateSwitzerlandECOC_AutoIDat_Hostettler:\r\n case RegistrationNoType.LicensePlateSwitzerlandECOC_AutoIDat_Rhiag:\r\n case RegistrationNoType.LicensePlateSwitzerlandECOC_AutoIDat_Esa:\r\n case RegistrationNoType.LicensePlateSwitzerlandECOC_AutoIDat_Eurotax:\r\n case RegistrationNoType.LicensePlateSwitzerland_RhiagCH:\r\n return { placeholder: 13512, exampleQuery: \"ZH660161\", tooltip: 1730, label: 1730 }\r\n case RegistrationNoType.KennzeichenFinnlandHlGroup:\r\n return { placeholder: 1726, exampleQuery: \"EVG197\", tooltip: 21, label: 21 }\r\n\r\n default:\r\n return {}\r\n }\r\n}\r\n\r\nexport function getVehicleRegistrationNoLabelTextIds(regNoType?: RegistrationNoType): { label?: number; labelShort?: number } | undefined {\r\n const textId = getRegistrationNumberTypeTextIds(regNoType, VehicleType.PassengerCar)\r\n if (!textId.label && !textId.labelShort) {\r\n return undefined\r\n }\r\n\r\n return { label: textId.label, labelShort: textId.labelShort }\r\n}\r\n\r\nexport function isVinType(type: RegistrationNoType | undefined, query?: string): boolean {\r\n if (type === undefined) {\r\n return false\r\n }\r\n\r\n if (query && (type === RegistrationNoType.VLPortugalCreateBusiness || type === RegistrationNoType.VrmKennzeichenSpanienDGT)) {\r\n return isVin(query) // assume the query is a VIN\r\n }\r\n\r\n return type === RegistrationNoType.DatVin || type === RegistrationNoType.VrmVINSpanienInforauto\r\n}\r\n\r\nexport function isLicensePlateType(type: RegistrationNoType | undefined, query?: string): boolean {\r\n if (type === undefined) {\r\n return false\r\n }\r\n\r\n if (query && (type === RegistrationNoType.VLPortugalCreateBusiness || type === RegistrationNoType.VrmKennzeichenSpanienDGT)) {\r\n return !isVin(query) // assume the query is a license plate\r\n }\r\n\r\n return (\r\n type === RegistrationNoType.CartellIrlandKennzeichenWsvc ||\r\n type === RegistrationNoType.ItalienEdidomusWsvc ||\r\n type === RegistrationNoType.KennzeichenPortugal ||\r\n type === RegistrationNoType.KoivunenCatDataWsvc ||\r\n type === RegistrationNoType.LicensePlateBrazilDriveRight ||\r\n type === RegistrationNoType.LicensePlateDenmarkDriveRight ||\r\n type === RegistrationNoType.LicensePlateDriveRight ||\r\n type === RegistrationNoType.LicensePlateEireDriveRight ||\r\n type === RegistrationNoType.LicensePlateEstoniaAlm ||\r\n type === RegistrationNoType.LicensePlateFinlandDriveRight ||\r\n type === RegistrationNoType.LicensePlateFranceDriveRight ||\r\n type === RegistrationNoType.LicensePlateItalyDriveRight ||\r\n type === RegistrationNoType.LicensePlateItalyRhiag ||\r\n type === RegistrationNoType.LicensePlateNetherlandsDriveRight ||\r\n type === RegistrationNoType.LicensePlateNewZealandDriveRight ||\r\n type === RegistrationNoType.LicensePlateNorwayDriveRight ||\r\n type === RegistrationNoType.LicensePlatePortugalDriveRight ||\r\n type === RegistrationNoType.LicensePlateSpainDriveRight ||\r\n type === RegistrationNoType.LicensePlateSwedenDriveRight ||\r\n type === RegistrationNoType.LicensePlateSwitzerlandAutoIDat_ESA ||\r\n type === RegistrationNoType.LicensePlateSwitzerlandAutoIDat_Eurotax ||\r\n type === RegistrationNoType.LicensePlateSwitzerlandAutoIDat_Hostettler ||\r\n type === RegistrationNoType.LicensePlateSwitzerlandDriveRight ||\r\n type === RegistrationNoType.LicensePlateUKDriveRight ||\r\n type === RegistrationNoType.LicensePlateUSDriveRight ||\r\n type === RegistrationNoType.VINFranceInforauto ||\r\n type === RegistrationNoType.VrmKennzeichenSpanienDGT ||\r\n type === RegistrationNoType.VrmLicensePlateHaynesProIt\r\n )\r\n}\r\n\r\nexport function isRegNoType(type: RegistrationNoType | undefined): boolean {\r\n if (type === undefined) {\r\n return false\r\n }\r\n\r\n return (\r\n type === RegistrationNoType.NationalcodeAustria ||\r\n type === RegistrationNoType.SchweizTypenscheinAtu ||\r\n type === RegistrationNoType.TypenscheinDehrendinger ||\r\n type === RegistrationNoType.TypenscheinSchweizCarat ||\r\n type === RegistrationNoType.TypenscheinSchweizEsa ||\r\n type === RegistrationNoType.TypenscheinSchweizEurotax ||\r\n type === RegistrationNoType.TypenscheinSchweizHoststettler\r\n )\r\n}\r\n\r\nexport function useRegNoCaption(type?: RegistrationNoType): number {\r\n switch (type) {\r\n case RegistrationNoType.LicensePlateSwitzerlandAutoIDat_ESA:\r\n case RegistrationNoType.LicensePlateSwitzerlandAutoIDat_Eurotax:\r\n case RegistrationNoType.LicensePlateSwitzerlandAutoIDat_Hostettler:\r\n case RegistrationNoType.SchweizTypenscheinAtu:\r\n case RegistrationNoType.TypenscheinDehrendinger:\r\n case RegistrationNoType.TypenscheinSchweizCarat:\r\n case RegistrationNoType.TypenscheinSchweizEsa:\r\n case RegistrationNoType.TypenscheinSchweizEurotax:\r\n case RegistrationNoType.TypenscheinSchweizHoststettler:\r\n return 1730 // \"Typenscheinnr.\"\r\n case RegistrationNoType.DatVin:\r\n return 103 // \"KBA Nummer\"\r\n default:\r\n return 0\r\n }\r\n}\r\n","import {\r\n RepairTimeProvider,\r\n MainService,\r\n RepairTime,\r\n AddRepairTimeListRequest,\r\n CalculatedService,\r\n WorkCategory,\r\n PreparationWork,\r\n ServiceDirection,\r\n RepairTimesProvidersNames,\r\n UserContext,\r\n Vehicle,\r\n Customer,\r\n VehicleType,\r\n IncludedWorkRequest,\r\n FittingPosition,\r\n} from \"@tm/models\"\r\n\r\n/**\r\n * @deprecated Use getRepairTimesProviderStringByEnum\r\n */\r\nexport function getArticleRelatedRepairTimesProviderStringByEnum(provider: RepairTimeProvider) {\r\n switch (provider) {\r\n case RepairTimeProvider.AwDocCar:\r\n return \"awdoc\"\r\n case RepairTimeProvider.Autodata:\r\n return \"autodata\"\r\n case RepairTimeProvider.HaynesProCar:\r\n return \"haynespro\"\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @deprecated Use getRepairTimesProviderEnumByString\r\n */\r\nexport function getArticleRelatedRepairTimesProviderEnumByString(provider: string) {\r\n switch (provider) {\r\n case \"awdoc\":\r\n return RepairTimeProvider.AwDocCar\r\n case \"autodata\":\r\n return RepairTimeProvider.Autodata\r\n case \"haynespro\":\r\n return RepairTimeProvider.HaynesProCar\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @deprecated Use getRepairTimesProvider\r\n */\r\nexport function getArticleRelatedRepairTimesProvider(\r\n availableProvidersForPG: RepairTimeProvider[],\r\n sortableProviders: { id: RepairTimesProvidersNames; sort?: number }[],\r\n activeProvider?: RepairTimesProvidersNames\r\n): RepairTimesProvidersNames | undefined {\r\n let provider: RepairTimesProvidersNames | undefined\r\n\r\n const articleRelatedRTProvider = activeProvider && getArticleRelatedRepairTimesProviderEnumByString(activeProvider)\r\n\r\n if (\r\n activeProvider &&\r\n activeProvider !== \"tecrmi\" &&\r\n articleRelatedRTProvider &&\r\n availableProvidersForPG.indexOf(articleRelatedRTProvider) !== -1\r\n ) {\r\n provider = activeProvider as RepairTimesProvidersNames\r\n } else {\r\n const sortedAwProviders = sortableProviders.orderBy((x) => (x.sort != null ? x.sort : Number.MAX_VALUE))\r\n\r\n const foundProvider = sortedAwProviders.find((x) => {\r\n const prov = getArticleRelatedRepairTimesProviderEnumByString(x.id)\r\n if (!prov) {\r\n return false\r\n }\r\n return availableProvidersForPG.indexOf(prov) !== -1\r\n })\r\n\r\n if (foundProvider && foundProvider.id !== \"tecrmi\") {\r\n provider = foundProvider.id as RepairTimesProvidersNames\r\n }\r\n }\r\n\r\n return provider\r\n}\r\n\r\nexport function getRepairTimesProviderStringByEnum(provider: RepairTimeProvider) {\r\n switch (provider) {\r\n case RepairTimeProvider.AwDocCar:\r\n return \"awdoc\"\r\n case RepairTimeProvider.Autodata:\r\n return \"autodata\"\r\n case RepairTimeProvider.HaynesProCar:\r\n return \"haynespro\"\r\n case RepairTimeProvider.TecRmiCar:\r\n return \"tecrmi\"\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\nexport function getRepairTimesProviderEnumByString(provider: string | undefined) {\r\n switch (provider) {\r\n case \"awdoc\":\r\n return RepairTimeProvider.AwDocCar\r\n case \"autodata\":\r\n return RepairTimeProvider.Autodata\r\n case \"haynespro\":\r\n return RepairTimeProvider.HaynesProCar\r\n case \"tecrmi\":\r\n return RepairTimeProvider.TecRmiCar\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\nexport function getRepairTimesProvider(\r\n availableProvidersForPG: RepairTimeProvider[],\r\n sortableProviders: { id: RepairTimesProvidersNames; sort?: number }[],\r\n activeProvider?: RepairTimesProvidersNames\r\n): RepairTimesProvidersNames | undefined {\r\n let provider: RepairTimesProvidersNames | undefined\r\n\r\n const articleRelatedRTProvider = activeProvider && getRepairTimesProviderEnumByString(activeProvider)\r\n\r\n if (activeProvider && articleRelatedRTProvider && availableProvidersForPG.indexOf(articleRelatedRTProvider) !== -1) {\r\n provider = activeProvider as RepairTimesProvidersNames\r\n } else {\r\n const sortedAwProviders = sortableProviders.orderBy((x) => (x.sort != null ? x.sort : Number.MAX_VALUE))\r\n\r\n const foundProvider = sortedAwProviders.find((x) => {\r\n const prov = getRepairTimesProviderEnumByString(x.id)\r\n if (!prov) {\r\n return false\r\n }\r\n return availableProvidersForPG.indexOf(prov) !== -1\r\n })\r\n\r\n if (foundProvider) {\r\n provider = foundProvider.id as RepairTimesProvidersNames\r\n }\r\n }\r\n\r\n return provider\r\n}\r\n\r\nexport function mapMainServicesToAddRepairTimeListRequest(\r\n workTaskId: string,\r\n provider: RepairTimeProvider,\r\n mainServices: MainService[],\r\n vehicleId: string,\r\n repairTimeDivision: number,\r\n fittingSide?: FittingPosition\r\n): AddRepairTimeListRequest {\r\n return {\r\n workTaskId,\r\n provider,\r\n vehicleId,\r\n repairTimes: mainServices.map((mainService) => mapMainServiceToRepairTime(mainService, fittingSide)),\r\n repairTimeDivision,\r\n }\r\n}\r\n\r\nfunction mapMainServiceToRepairTime(mainService: MainService, fittingSide?: FittingPosition): RepairTime {\r\n let includedWorks = mapCalculatedServicesToIncludedWorkRequest(mainService.calculatedServices)\r\n if (!includedWorks) {\r\n includedWorks = mapPreparationWorksToIncludedWorkRequest(mainService.preparationWorks)\r\n }\r\n\r\n return {\r\n providerWorkId: mainService.repairTimeNo,\r\n displayNumber: mainService.repairTimeDisplayNo,\r\n categoryOfWork: mapCategoryOfWork(mainService.serviceType),\r\n description: mainService.description,\r\n time: mainService.repairTime || 0,\r\n linkageId: mainService.vehicleLinkageId ? mainService.vehicleLinkageId.toString() : undefined,\r\n sortNo: mainService.sortId,\r\n note: mainService.note ? mainService.note.description : undefined,\r\n isMaintenanceWork: false,\r\n includedWorks: includedWorks || [],\r\n productGroupIds: mainService.productGroupIds,\r\n fittingSide,\r\n oeReferenceNumber: mainService.oeReferenceNumber,\r\n }\r\n}\r\n\r\nfunction mapCalculatedServicesToIncludedWorkRequest(calculatedServices: CalculatedService[] | undefined): IncludedWorkRequest[] | undefined {\r\n if (!calculatedServices || !calculatedServices.length) {\r\n return undefined\r\n }\r\n\r\n return calculatedServices.map((calcService) => {\r\n return {\r\n providerWorkId: calcService.repairTimeNo,\r\n isCalculable: calcService.isCalculable,\r\n isVisible: calcService.isVisible,\r\n categoryOfWork: mapCategoryOfWork(calcService.serviceType),\r\n description: calcService.description,\r\n time: calcService.repairTime || 0,\r\n sortNo: calcService.sortId,\r\n }\r\n })\r\n}\r\n\r\nfunction mapPreparationWorksToIncludedWorkRequest(preparationWorks: PreparationWork[] | undefined): IncludedWorkRequest[] | undefined {\r\n const includedPreparationWorks =\r\n preparationWorks && preparationWorks.filter((preparationWork) => preparationWork.direction === ServiceDirection.Include)\r\n if (!includedPreparationWorks || !includedPreparationWorks.length) {\r\n return undefined\r\n }\r\n\r\n return includedPreparationWorks.map((calcService) => {\r\n return {\r\n providerWorkId: calcService.repairTimeNo,\r\n isCalculable: true,\r\n isVisible: true,\r\n categoryOfWork: mapCategoryOfWork(calcService.serviceType),\r\n description: calcService.description,\r\n time: calcService.repairTime || 0,\r\n sortNo: calcService.sortId,\r\n }\r\n })\r\n}\r\n\r\nexport function mapCategoryOfWork(categoryOfWork: string): WorkCategory {\r\n switch (categoryOfWork) {\r\n case \"KA\":\r\n return WorkCategory.BodyWork\r\n case \"ZB\":\r\n return WorkCategory.AccessoryWork\r\n case \"LA\":\r\n return WorkCategory.PaintWork\r\n case \"EL\":\r\n return WorkCategory.ElectricalWork\r\n case \"EK\":\r\n return WorkCategory.ElectronicWork\r\n case \"SA\":\r\n return WorkCategory.SaddlerWork\r\n case \"SR\":\r\n return WorkCategory.SmartRepair\r\n case \"DW\":\r\n return WorkCategory.Diagnose\r\n case \"WS\":\r\n default:\r\n return WorkCategory.WorkshopWork\r\n }\r\n}\r\n\r\nexport function getCategoryOfWorkDescriptionTextId(categoryOfWork: string | WorkCategory): number {\r\n switch (categoryOfWork) {\r\n case \"KA\":\r\n case WorkCategory.BodyWork:\r\n return 249\r\n case \"ZB\":\r\n case WorkCategory.AccessoryWork:\r\n return 250\r\n case \"LA\":\r\n case WorkCategory.PaintWork:\r\n return 251\r\n case \"EL\":\r\n case WorkCategory.ElectricalWork:\r\n return 252\r\n case \"EK\":\r\n case WorkCategory.ElectronicWork:\r\n return 253\r\n case \"SA\":\r\n case WorkCategory.SaddlerWork:\r\n return 929\r\n case \"SR\":\r\n case WorkCategory.SmartRepair:\r\n return 930\r\n case \"DW\":\r\n case WorkCategory.Diagnose:\r\n return 12981\r\n case \"WS\":\r\n case WorkCategory.WorkshopWork:\r\n default:\r\n return 248\r\n }\r\n}\r\n\r\nexport function mapPreparationWorksToAddRepairTimeListRequest(\r\n workTaskId: string,\r\n provider: RepairTimeProvider,\r\n preparationWorks: PreparationWork[],\r\n vehicleId: string,\r\n repairTimeDivision: number\r\n): AddRepairTimeListRequest {\r\n return {\r\n workTaskId,\r\n provider,\r\n vehicleId,\r\n repairTimes: preparationWorks.map(mapServiceBaseToRepairTime),\r\n repairTimeDivision,\r\n }\r\n}\r\n\r\nexport function mapServiceBaseToRepairTime(work: PreparationWork): RepairTime {\r\n return {\r\n providerWorkId: work.repairTimeNo,\r\n displayNumber: work.repairTimeDisplayNo,\r\n categoryOfWork: mapCategoryOfWork(work.serviceType),\r\n description: work.description,\r\n time: work.repairTime || 0,\r\n linkageId: work.vehicleLinkageId ? work.vehicleLinkageId.toString() : undefined,\r\n sortNo: work.sortId,\r\n isMaintenanceWork: false,\r\n includedWorks: [],\r\n }\r\n}\r\n\r\nexport function getRepairTimeProvidersByNames(repairTimesProvidersNames: RepairTimesProvidersNames[]) {\r\n const rtProviders = []\r\n if (repairTimesProvidersNames.indexOf(\"awdoc\") !== -1) {\r\n rtProviders.push(RepairTimeProvider.AwDocCar)\r\n }\r\n if (repairTimesProvidersNames.indexOf(\"autodata\") !== -1) {\r\n rtProviders.push(RepairTimeProvider.Autodata)\r\n }\r\n if (repairTimesProvidersNames.indexOf(\"haynespro\") !== -1) {\r\n rtProviders.push(RepairTimeProvider.HaynesProCar)\r\n }\r\n if (repairTimesProvidersNames.indexOf(\"tecrmi\") !== -1) {\r\n rtProviders.push(RepairTimeProvider.TecRmiCar)\r\n }\r\n return rtProviders\r\n}\r\n\r\nexport type ConfigFunctionType = (userContext: UserContext, vehicle?: Vehicle, customer?: Customer) => boolean | string\r\n\r\nexport const ConfigFunctions: Record = {\r\n \"HAS-VEHICLE\": (_, vehicle) => !!vehicle,\r\n\r\n \"HAS-NO-VEHICLE\": (_, vehicle) => !vehicle,\r\n\r\n \"HAS-NO-VEHICLE-VIN\": (_, vehicle) => !vehicle || !vehicle?.vin,\r\n\r\n \"EDS-DISABLED\": (_, vehicle) => (vehicle ? !vehicle?.vin : false),\r\n\r\n \"DRIVEMOTIVE-DISABLED\": (_, vehicle, customer) => !!(vehicle || customer),\r\n\r\n \"REPAIRTIMES-HAYNESPRO-DISABLED\": (_, vehicle?) =>\r\n !(\r\n (vehicle?.vehicleType === VehicleType.PassengerCar || vehicle?.vehicleType === VehicleType.CommercialVehicle) &&\r\n vehicle.dataAvailabilities?.repairTimes.haynesPro\r\n ),\r\n\r\n \"REPAIRTIMES-AWDOC-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.repairTimes.awDoc || vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"REPAIRTIMES-TECRMI-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.repairTimes.tecRMI || vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"REPAIRTIMES-AUTODATA-DISABLED\": (_, vehicle) =>\r\n !vehicle?.dataAvailabilities?.repairTimes.autodata || vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"TECHDATA-HAYNESPRO-DISABLED\": (_, vehicle?) =>\r\n !(\r\n (vehicle?.vehicleType === VehicleType.PassengerCar || vehicle?.vehicleType === VehicleType.CommercialVehicle) &&\r\n vehicle.dataAvailabilities?.technicalData.haynesPro\r\n ),\r\n\r\n \"TECHDATA-AUTODATA-DISABLED\": (_, vehicle) =>\r\n !vehicle?.dataAvailabilities?.technicalData.autodata || vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"TECHDATA-TECRMI-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.technicalData.tecRMI || vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"TECHDATA-ALLDATA-DISABLED\": (_, vehicle) => !vehicle || vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"TECHDATA-INSPECTIONDATA-HAYNESPRO-DISABLED\": (_, vehicle?) =>\r\n !(\r\n (vehicle?.vehicleType === VehicleType.PassengerCar &&\r\n (vehicle.dataAvailabilities?.technicalData.haynesPro || vehicle.dataAvailabilities?.inspectionData.haynesPro)) ||\r\n (vehicle?.vehicleType === VehicleType.CommercialVehicle && vehicle.dataAvailabilities?.technicalData.haynesPro)\r\n ),\r\n\r\n \"TECHDATA-INSPECTIONDATA-AUTODATA-DISABLED\": (_, vehicle) =>\r\n !(vehicle?.dataAvailabilities?.technicalData.autodata || vehicle?.dataAvailabilities?.inspectionData.autodata) ||\r\n vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"TECHDATA-INSPECTIONDATA-TECRMI-DISABLED\": (_, vehicle) =>\r\n !(vehicle?.dataAvailabilities?.technicalData.tecRMI || vehicle?.dataAvailabilities?.inspectionData.tecRMI) ||\r\n vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"INSPECTIONDATA-AUTODATA-DISABLED\": (_, vehicle) =>\r\n !vehicle?.dataAvailabilities?.inspectionData.autodata || vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"INSPECTIONDATA-HAYNESPRO-DISABLED\": (_, vehicle?) =>\r\n !(\r\n (vehicle?.vehicleType === VehicleType.PassengerCar || vehicle?.vehicleType === VehicleType.CommercialVehicle) &&\r\n vehicle.dataAvailabilities?.inspectionData.haynesPro\r\n ),\r\n\r\n \"INSPECTIONDATA-TECRMI-DISABLED\": (_, vehicle) =>\r\n !vehicle?.dataAvailabilities?.inspectionData.tecRMI || vehicle.vehicleType === VehicleType.Motorcycle,\r\n\r\n \"GPI-TEMOT-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.gpi.temot,\r\n\r\n \"GPI-DAT-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.gpi.dat,\r\n\r\n \"GPI-TECRMI-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.gpi.tecRMI,\r\n\r\n \"GPI-EUROTAX-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.gpi.eurotaxV3,\r\n\r\n \"TYRES-TECRMI-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.tyres.tecRMI,\r\n\r\n \"FASTCALC-ANY-DISABLED\": (_, vehicle) => !vehicle?.dataAvailabilities?.fastCalculator.hasAny,\r\n \"FASTSERVICE-DISABLED\": (_, vehicle) =>\r\n !vehicle?.dataAvailabilities?.inspectionData.haynesPro || !vehicle?.dataAvailabilities?.technicalData.haynesPro,\r\n}\r\n","export function registerScrollBottomHandler(handler: (e: Event) => void): () => void {\r\n function handleWindowScroll(e: Event) {\r\n const { documentElement } = document\r\n if (documentElement && documentElement.scrollTop + documentElement.clientHeight >= documentElement.scrollHeight - 10) {\r\n handler(e)\r\n }\r\n }\r\n\r\n window.addEventListener(\"scroll\", handleWindowScroll)\r\n return () => window.removeEventListener(\"scroll\", handleWindowScroll)\r\n}\r\n","import { getMemoryStorage, MemoryStorage } from \"./memory\"\r\n\r\nexport type StorageType = \"localStorage\" | \"sessionStorage\"\r\n\r\n/**\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API#Feature-detecting_localStorage\r\n */\r\nexport function isStorageAvailable(type: StorageType): boolean {\r\n let storage\r\n\r\n try {\r\n storage = window[type]\r\n const x = \"__storage_test__\"\r\n storage.setItem(x, x)\r\n storage.removeItem(x)\r\n\r\n return true\r\n } catch (e) {\r\n return !!(\r\n e instanceof DOMException &&\r\n // everything except Firefox\r\n (e.code === 22 ||\r\n // Firefox\r\n e.code === 1014 ||\r\n // test name field too, because code might not be present\r\n // everything except Firefox\r\n e.name === \"QuotaExceededError\" ||\r\n // Firefox\r\n e.name === \"NS_ERROR_DOM_QUOTA_REACHED\") &&\r\n // acknowledge QuotaExceededError only if there's something already stored\r\n storage &&\r\n storage.length !== 0\r\n )\r\n }\r\n}\r\n\r\nconst storageAvailability: Partial> = {}\r\n\r\nexport function getStorage(type: StorageType): MemoryStorage | Storage {\r\n if (storageAvailability[type] === undefined) {\r\n storageAvailability[type] = isStorageAvailable(type)\r\n }\r\n\r\n return storageAvailability[type] ? window[type] : getMemoryStorage()\r\n}\r\n","export class MemoryStorage {\r\n private storage: Record = {}\r\n\r\n setItem = (key: string, value: string | null) => {\r\n this.storage[key] = value\r\n }\r\n\r\n getItem = (key: string) => this.storage[key]\r\n\r\n removeItem = (key: string) => {\r\n delete this.storage[key]\r\n }\r\n\r\n clear = () => {\r\n this.storage = {}\r\n }\r\n\r\n key = (index: number) => Object.keys(this.storage)[index]\r\n}\r\n\r\nlet memoryStorage: MemoryStorage | null = null\r\n\r\nexport function getMemoryStorage() {\r\n if (!memoryStorage) {\r\n memoryStorage = new MemoryStorage()\r\n }\r\n\r\n return memoryStorage\r\n}\r\n","/**\r\n * Concatenat individual strings using the supplied separator.\r\n *\r\n * @param separator The string used two separate each part.\r\n * @param strings The strings which should be concatenated. Every falsy value like `\"\"`, `0`, `false`, `undefined` or `null` will be skipped.\r\n */\r\nexport function concat(separator: string, ...strings: Array): string {\r\n return strings.filter((x) => x).join(separator)\r\n}\r\n","/**\r\n * check if parameter is not null or undefined. With type guard.\r\n * https://github.com/microsoft/TypeScript/issues/20707#issuecomment-351874491\r\n */\r\nexport function notUndefinedOrNull(x: T | undefined | null): x is T {\r\n return x !== undefined && x !== null\r\n}\r\n","import { cssRaw } from \"typestyle\"\r\n\r\n/**\r\n * Generate a classname using an array. The first item of the array is the base class and the rest are used as a modifier\r\n * @returns {string}\r\n */\r\nexport function bem(...classes: (string | false | undefined | null)[]): string {\r\n if (classes.length < 2) {\r\n return classes.first() || \"\"\r\n }\r\n return classes\r\n .filter((c) => c)\r\n .map((x, idx) => (idx && `${classes.first()}--${x}`) || x)\r\n .join(\" \")\r\n}\r\n\r\n/**\r\n * Generate a classname using an array or an object as input. All inputs are coverted into a string with empty space as delimitator\r\n * @returns {string}\r\n */\r\nexport function classes(...classes: (string | false | undefined | null | { [className: string]: any })[]): string {\r\n return classes\r\n .map((c) => (c && typeof c === \"object\" ? Object.keys(c).map((key) => !!c[key] && key) : [c]))\r\n .reduce((flattened, c) => flattened.concat(c), [] as string[])\r\n .filter((c) => !!c)\r\n .join(\" \")\r\n}\r\n\r\n/**\r\n * Inject css directly into dom.\r\n * It's recomend to add style using (useStyle or withStyle HOC from @tm/contextDistribution)\r\n * usage css\\` body{display:none} \\`\r\n * @param {string} validCss\r\n * @returns {void}\r\n */\r\nexport function css(validCss: TemplateStringsArray): void {\r\n cssRaw(validCss as unknown as string)\r\n}\r\n","import {\r\n ETyresCarType,\r\n ETyresSeason,\r\n GetArticleListByMatchCodeResponse,\r\n GetArticlesListMappedResponse,\r\n ETyreCountType,\r\n TyresSeason,\r\n} from \"@tm/models\"\r\nimport { mapTyreArticleToArticle } from \"../mappers\"\r\n\r\nexport function mapArticleListResponse(response: GetArticleListByMatchCodeResponse, defaultQuantity?: number): GetArticlesListMappedResponse {\r\n return {\r\n ...response,\r\n uniArticles: response.uniArticles.map((x) => mapTyreArticleToArticle(x, defaultQuantity)),\r\n }\r\n}\r\n\r\nexport const getIconByGroup = (group: ETyresCarType | TyresSeason | ETyreCountType | string) => {\r\n // eslint-disable-next-line default-case\r\n switch (group) {\r\n case ETyresSeason.summer:\r\n return \"sun\"\r\n case ETyresSeason.allSeason:\r\n return \"all-weather\"\r\n case ETyresSeason.winter:\r\n return \"snow\"\r\n case ETyreCountType.singleTire:\r\n return \"tire\"\r\n case ETyreCountType.carTires:\r\n return \"axle-car\"\r\n case ETyreCountType.motorcycleTires:\r\n return \"axle-motorbike\"\r\n }\r\n\r\n // eslint-disable-next-line default-case\r\n switch (+group) {\r\n case ETyresCarType.Agrar:\r\n return \"tractor\"\r\n case ETyresCarType.Anhanger:\r\n return \"trailer\"\r\n case ETyresCarType.EM:\r\n return \"excavator\"\r\n\r\n case ETyresCarType.Industrie:\r\n return \"fork-lift\"\r\n case ETyresCarType.LKW:\r\n return \"truck2\"\r\n case ETyresCarType.LLKW:\r\n return \"transporter\"\r\n case ETyresCarType.Militar:\r\n return \"military\"\r\n case ETyresCarType.Motorrad:\r\n return \"bike\"\r\n case ETyresCarType.PKW:\r\n return \"car\"\r\n case ETyresCarType.SUV:\r\n return \"car\"\r\n }\r\n\r\n return \"\"\r\n}\r\n\r\nexport const getTitleByGroup = (value: ETyresCarType | TyresSeason | ETyreCountType | string) => {\r\n // eslint-disable-next-line default-case\r\n switch (value) {\r\n case ETyresSeason.summer:\r\n return 800\r\n case ETyresSeason.allSeason:\r\n return 725\r\n case ETyresSeason.winter:\r\n return 801\r\n case ETyreCountType.singleTire:\r\n return 13918\r\n case ETyreCountType.carTires:\r\n case ETyreCountType.motorcycleTires:\r\n return 13919\r\n }\r\n\r\n // eslint-disable-next-line default-case\r\n switch (+value) {\r\n case ETyresCarType.Agrar:\r\n return 12451\r\n case ETyresCarType.Anhanger:\r\n return 12457\r\n case ETyresCarType.EM:\r\n return 12452\r\n case ETyresCarType.Industrie:\r\n return 12453\r\n case ETyresCarType.LKW:\r\n return 12458\r\n case ETyresCarType.LLKW:\r\n return 683\r\n case ETyresCarType.Militar:\r\n return 12456\r\n case ETyresCarType.Motorrad:\r\n return 1447\r\n case ETyresCarType.PKW:\r\n return 12455\r\n case ETyresCarType.SUV:\r\n return 682\r\n }\r\n\r\n return \"\"\r\n}\r\n","import { compile } from \"path-to-regexp\"\r\nimport { parseISODate } from \"..\"\r\n\r\ntype QueryParamType_ = string | number | boolean | Date | undefined\r\ntype QueryParamType = QueryParamType_ | Record | Array\r\ntype QueryParams = Record | undefined\r\n\r\nexport function createQueryString(params: QueryParams): string {\r\n if (!params) {\r\n return \"\"\r\n }\r\n\r\n const queries = Object.entries(params)\r\n .map(([key, value]) => createQueryComponent(key, value))\r\n .filter((x) => typeof x == \"string\")\r\n\r\n if (!queries.length) {\r\n return \"\"\r\n }\r\n\r\n const result = queries.join(\"&\")\r\n return result ? `?${result}` : \"\"\r\n}\r\n\r\nfunction createQueryComponent(key: string, value: QueryParamType): string | undefined {\r\n if (value == undefined) {\r\n return\r\n }\r\n\r\n if (value instanceof Date) {\r\n value = value.toISOString()\r\n } else if (Array.isArray(value)) {\r\n value = value.join(\",\")\r\n } else if (typeof value == \"object\") {\r\n const queries = Object.entries(value)\r\n .map(([key2, value]) => createQueryComponent(`${key}.${key2}`, value))\r\n .filter((x) => typeof x == \"string\")\r\n\r\n if (!queries.length) {\r\n return\r\n }\r\n\r\n return queries.join(\"&\")\r\n }\r\n\r\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\r\n}\r\n\r\nexport function parseQueryString(query: string): { [key: string]: string | number | Date | boolean | undefined } {\r\n if (!query) {\r\n return {}\r\n }\r\n const params = query.replace(/^\\?/, \"\").split(\"&\").map(parseQueryComponent)\r\n if (params.length == 0) {\r\n return {}\r\n }\r\n const result: { [key: string]: string | number | Date | boolean | undefined } = {}\r\n params.forEach(({ key, value }) => (result[key] = value))\r\n return result\r\n}\r\n\r\nfunction parseQueryComponent(component: string): { key: string; value: string | number | Date | boolean | undefined } {\r\n let [key, value] = component.split(\"=\").map(decodeURIComponent) as [string, string | number | Date | boolean]\r\n\r\n if (typeof value == \"string\") {\r\n value = parseISODate(value) ?? value\r\n }\r\n\r\n return { key, value }\r\n}\r\n\r\nexport function renderRoute(path: string, params: { [key: string]: any }) {\r\n if (!path) {\r\n return \"\"\r\n }\r\n\r\n const stringParams: { [key: string]: string | undefined } = {}\r\n Object.keys(params).forEach((key) => (stringParams[key] = params[key] != null ? encodeURIComponent(String(params[key])) : undefined))\r\n path = path.replace(\"//\", \"/\")\r\n return compile(path)(stringParams)\r\n}\r\n\r\nexport function joinPaths(...parts: Array): string {\r\n let path = \"\"\r\n let keepLastSlash = false\r\n\r\n parts.forEach((x, idx) => {\r\n if (!x) {\r\n return\r\n }\r\n\r\n if (path && idx > 0 && x.startsWith(\"/\")) {\r\n x = x.substr(1)\r\n }\r\n\r\n if (x.endsWith(\"/\")) {\r\n keepLastSlash = true\r\n x = x.substr(0, x.length - 1)\r\n } else {\r\n keepLastSlash = false\r\n }\r\n\r\n path += `${x}/`\r\n })\r\n\r\n if (!keepLastSlash) {\r\n path = path.substring(0, path.length - 1)\r\n }\r\n\r\n return path\r\n}\r\n\r\n/**\r\n * This checks if the given string is a valid url used\r\n * for the DMS (GSI Remote) gateway iframe.\r\n *\r\n * It was introduced because an invalid url used for the iframe\r\n * could cause major problems in the application.\r\n * See NEXT-23708 for more information.\r\n *\r\n * @param url The url that should be validated.\r\n * @returns `true` if the supplied url is valid otherwise `false`.\r\n */\r\nexport function validateDmsApiUrl(url: string): boolean {\r\n // Regex: \"url\" must\r\n // start with \"http://\" or \"https://\"\r\n // and contains at least one following character\r\n // except a whitespace following anywhere afterwards\r\n return /^https?:\\/\\/[^ ]+$/i.test(url)\r\n}\r\n","import { ESubModules, EUserContextParameters, UserContext, UserModuleType } from \"@tm/models\"\r\n\r\nexport function getVatFromUserContext(userContext?: UserContext): number {\r\n return userContext?.modules?.find((x) => x.type == UserModuleType.Catalog)?.vat ?? 0\r\n}\r\n\r\nexport function getCurrencyFromUserContext(userContext?: UserContext): string {\r\n return userContext?.modules?.find((x) => x.type == UserModuleType.Catalog)?.currencyCode ?? \"EUR\"\r\n}\r\n\r\nexport const getCostPerCalculation = (moduleType: UserModuleType, submodule: ESubModules, userContext?: UserContext) => {\r\n const module = userContext?.modules?.find((x) => x.type == moduleType)\r\n\r\n if (module?.moduleSubId == submodule) {\r\n let costParameter: string | undefined\r\n\r\n if (moduleType === UserModuleType.TMDamageCalculationDat) {\r\n costParameter = module.parameters?.find((x: any) => x.key == EUserContextParameters.ModuleCostsDAT)?.value\r\n } else if (moduleType === UserModuleType.TMDamageCalculationEurotax || moduleType === UserModuleType.TMDamageCalculationGlass) {\r\n costParameter = module.parameters?.find((x: any) => x.key == EUserContextParameters.ModuleCostsGlassAndEurotax)?.value\r\n }\r\n\r\n if (costParameter) {\r\n return parseFloat(costParameter.replace(\",\", \".\"))\r\n }\r\n }\r\n}\r\nexport const getCountryCodeFromUserContext = (userContext?: UserContext) => {\r\n return userContext?.modules?.find((x) => x.type == UserModuleType.Catalog)?.countryCode\r\n}\r\n\r\nexport const getSystemTypeFromUserContext = (userContext?: UserContext) => {\r\n return userContext?.system.systemType\r\n}\r\n","const patternEmail =\r\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,}))$/\r\n\r\nexport class FieldValidation {\r\n private _value: any\r\n\r\n private _messages: Array\r\n\r\n private _valid: boolean\r\n\r\n constructor(value: any) {\r\n this._value = value\r\n this._messages = []\r\n this._valid = true\r\n }\r\n\r\n get messages() {\r\n return this._messages\r\n }\r\n\r\n get isValid() {\r\n return this._valid\r\n }\r\n\r\n required(msg: string): FieldValidation {\r\n if (!this._value) {\r\n this._valid = false\r\n this._messages.push(msg)\r\n }\r\n return this\r\n }\r\n\r\n noDigits(msg: string): FieldValidation {\r\n if (/\\d/.test(this._value)) {\r\n this._valid = false\r\n this._messages.push(msg)\r\n }\r\n return this\r\n }\r\n\r\n min(min: number, msg: string): FieldValidation {\r\n if (!this._value || this._value.trim().length < min) {\r\n this._valid = false\r\n this._messages.push(msg.replace(\"#1#\", min.toString()))\r\n }\r\n return this\r\n }\r\n\r\n max(max: number, msg: string): FieldValidation {\r\n if (this._value && this._value.trim().length > max) {\r\n this._valid = false\r\n this._messages.push(msg.replace(\"#1#\", max.toString()))\r\n }\r\n return this\r\n }\r\n\r\n email(msg: string): FieldValidation {\r\n if (this._value && !patternEmail.test(this._value)) {\r\n this._valid = false\r\n this._messages.push(msg)\r\n }\r\n return this\r\n }\r\n\r\n regExp(regExp: RegExp, msg: string): FieldValidation {\r\n if (!regExp.test(this._value)) {\r\n this._valid = false\r\n this._messages.push(msg)\r\n }\r\n return this\r\n }\r\n}\r\n\r\nexport function validateField(value: any): FieldValidation {\r\n return new FieldValidation(value)\r\n}\r\n\r\nexport function isValidWorkTaskId(id: string): boolean {\r\n return /[\\d\\w]{22}/g.test(id)\r\n}\r\n","import { Vehicle } from \"@tm/models\"\r\n\r\nexport function isVin(value?: string): boolean {\r\n return !!value && /^[^\\W_]{17}$/.test(value) // only (a-z, A-Z, 0-9) with length of 17\r\n}\r\n\r\nexport function isValidVin(vehicle?: Vehicle) {\r\n const VIN_LENGTH = 17\r\n const VIN_LENGTH_SMALL = 7\r\n const BMW_TecDoc_Id = 16\r\n\r\n return (\r\n !vehicle?.vin?.length ||\r\n vehicle.vin?.length === VIN_LENGTH ||\r\n (vehicle?.tecDocManufacturerId === BMW_TecDoc_Id && vehicle.vin?.length === VIN_LENGTH_SMALL)\r\n )\r\n}\r\n","import { ComponentClass, ComponentType, memo, useRef } from \"react\"\r\nimport { Route, RouteComponentProps, WithRouterProps, WithRouterStatics } from \"react-router\"\r\nimport hoistNonReactStatics, { NonReactStatics } from \"hoist-non-react-statics\"\r\n\r\nexport type { RouteComponentProps }\r\n\r\n/**\r\n * A customized withRouter higher order component to update the wrapped component whenever the changed url matches with the next parent route.\r\n * The original HOC doesn't react on query changes.\r\n */\r\nfunction withRouter

    , C extends ComponentType

    >(\r\n component: C & ComponentType

    \r\n): ComponentClass> & WithRouterProps> & WithRouterStatics {\r\n const Component = memo(component as any, (props, nextProps) => {\r\n const params = new URLSearchParams(nextProps.location.search)\r\n if (!props.firstLoadRef.current && !!params.get(\"modal\")) {\r\n // don't render if a modal is going to render, despite it's the first time (after reload)\r\n return true\r\n }\r\n props.firstLoadRef.current = false\r\n return false\r\n }) as any\r\n\r\n function WithRouter(props: P & WithRouterProps & WithRouterStatics & NonReactStatics) {\r\n const { wrappedComponentRef, ...remainingProps } = props\r\n const firstLoadRef = useRef(true)\r\n\r\n return (\r\n \r\n {(routeComponentProps) => (\r\n \r\n )}\r\n \r\n )\r\n }\r\n\r\n WithRouter.displayName = `withRouter(${Component.displayName || Component.name})`\r\n WithRouter.WrappedComponent = Component\r\n\r\n return hoistNonReactStatics(WithRouter, Component) as any\r\n}\r\n\r\nexport { withRouter }\r\n","import { useCallback } from \"react\"\r\nimport { useHistory, useParams } from \"react-router\"\r\nimport { encodeUniqueId } from \"../..\"\r\nimport { renderRoute } from \"../../helpers/url\"\r\n\r\ntype InputParams = {\r\n moduleName?: string\r\n partsDetailsUrl: string\r\n productGroupId?: number\r\n supplierArticleNumber?: string\r\n supplierId?: number\r\n workTaskId?: string\r\n openModal?(modalIndex: \"1\", url: string): void\r\n}\r\n\r\n/**\r\n * @deprecated Use `useOpenArticleDetailsClickHandle` instead. When only useOpenArticleDetailsClickHandle is used in ALL bundles, rename it to useOpenArticleDetails\r\n */\r\nexport function useOpenArticleDetails({\r\n moduleName,\r\n partsDetailsUrl,\r\n productGroupId,\r\n supplierArticleNumber,\r\n supplierId,\r\n workTaskId,\r\n openModal,\r\n}: InputParams) {\r\n const history = useHistory()\r\n const matchParams = useParams<{ workTaskId?: string }>()\r\n\r\n const handleOpenArticleDetails = useCallback(\r\n (subPage?: string, scrollTo?: string) => {\r\n if (supplierId && supplierArticleNumber && productGroupId) {\r\n const url = renderRoute(partsDetailsUrl, {\r\n ...matchParams,\r\n module: moduleName,\r\n productGroupId,\r\n supplierId,\r\n supplierArticleNo: supplierArticleNumber ? encodeURIComponent(supplierArticleNumber) : undefined,\r\n partsDetailsSubPage: subPage ? encodeURIComponent(subPage) : undefined,\r\n scrollTo: subPage && scrollTo ? encodeURIComponent(scrollTo) : undefined,\r\n workTaskId: workTaskId ? encodeUniqueId(workTaskId) : matchParams.workTaskId,\r\n })\r\n if (openModal) {\r\n openModal(\"1\", url)\r\n } else {\r\n history.push(url)\r\n }\r\n }\r\n },\r\n [history, matchParams, partsDetailsUrl, supplierId, supplierArticleNumber, moduleName, productGroupId, workTaskId, openModal]\r\n )\r\n\r\n return handleOpenArticleDetails\r\n}\r\n","import { useCallback } from \"react\"\r\nimport { useHistory, useParams } from \"react-router\"\r\nimport { useSetRecoilState } from \"recoil\"\r\nimport { encodeUniqueId, selectedExternalArticleDetailsState } from \"../..\"\r\nimport { renderRoute } from \"../../helpers/url\"\r\n\r\ntype InputParams = {\r\n moduleName?: string\r\n partsDetailsUrl: string\r\n workTaskId?: string\r\n openModal?(modalIndex: \"1\", url: string): void\r\n}\r\n\r\n// TODO: When only 'useOpenArticleDetailsClickHandle' is used in ALL bundles instead of useOpenArticleDetails, rename it to useOpenArticleDetails\r\nexport function useOpenArticleDetailsClickHandle({ moduleName, partsDetailsUrl, workTaskId, openModal }: InputParams) {\r\n const history = useHistory()\r\n const matchParams = useParams<{ workTaskId?: string }>()\r\n\r\n const setExternalArticleDetailsState = useSetRecoilState(selectedExternalArticleDetailsState)\r\n\r\n const handleOpenArticleDetails = useCallback(\r\n (\r\n productGroupId?: number,\r\n supplierArticleNumber?: string,\r\n supplierId?: number,\r\n subPage?: string,\r\n scrollTo?: string,\r\n externalBasketItemId?: string\r\n ) => {\r\n if (externalBasketItemId) {\r\n setExternalArticleDetailsState((prev) => ({ ...prev, externalBasketItemId }))\r\n }\r\n\r\n if (supplierId && supplierArticleNumber && productGroupId) {\r\n const url = renderRoute(partsDetailsUrl, {\r\n ...matchParams,\r\n module: moduleName,\r\n productGroupId,\r\n supplierId,\r\n supplierArticleNo: supplierArticleNumber ? encodeURIComponent(supplierArticleNumber) : undefined,\r\n partsDetailsSubPage: subPage ? encodeURIComponent(subPage) : undefined,\r\n scrollTo: subPage && scrollTo ? encodeURIComponent(scrollTo) : undefined,\r\n workTaskId: workTaskId ? encodeUniqueId(workTaskId) : matchParams.workTaskId,\r\n })\r\n if (openModal) {\r\n openModal(\"1\", url)\r\n } else {\r\n history.push(url)\r\n }\r\n }\r\n },\r\n [history, matchParams, partsDetailsUrl, moduleName, workTaskId, openModal, setExternalArticleDetailsState]\r\n )\r\n\r\n return handleOpenArticleDetails\r\n}\r\n","import { useQuery, useQueryClient, useMutation, UseMutateAsyncFunction } from \"react-query\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { RegisteredModels, PartsContainer, Note } from \"@tm/models\"\r\nimport { atom, useSetRecoilState } from \"recoil\"\r\n\r\nconst KEY_LOAD_ARTICLE_NOTE = \"articleNote_load\"\r\n\r\nexport const ArticleNotesState = atom({ key: \"ArticleNotesState\", default: [] })\r\n\r\nexport const useLoadNotes = (articleIds: string[]): { articleNotes: Note[]; isLoading: boolean; error: any } => {\r\n const { data, isLoading, error } = useQuery(\r\n [KEY_LOAD_ARTICLE_NOTE, articleIds.join(\",\")],\r\n () => {\r\n const container = Container.getInstance(RegisteredModels.Article_Notes) as PartsContainer\r\n return container.action(\"loadArticleNoteByNoteIds\")(articleIds).then()\r\n },\r\n { staleTime: 60 * 1000, enabled: !!articleIds.length }\r\n )\r\n\r\n return { articleNotes: data || [], isLoading, error }\r\n}\r\n\r\nexport const useSaveNote = (): { saveNote: UseMutateAsyncFunction; saveNoteInProgress: boolean } => {\r\n const queryClient = useQueryClient()\r\n const setNotes = useSetRecoilState(ArticleNotesState)\r\n const container = Container.getInstance(RegisteredModels.Article_Notes) as PartsContainer\r\n const mutation = useMutation(\r\n (articleNote: Note) => {\r\n return container.action(\"saveArticleNote\")(articleNote)\r\n },\r\n {\r\n onSuccess: async (_, note) => {\r\n queryClient.resetQueries([KEY_LOAD_ARTICLE_NOTE])\r\n const savedNote = (await container.action(\"loadArticleNoteByNoteIds\")([note.noteId]))[0]\r\n setNotes((prev) => {\r\n const existing = prev.find((x) => x.noteId === savedNote.noteId)\r\n return [...prev.filter((x) => x !== existing), savedNote]\r\n })\r\n },\r\n }\r\n )\r\n\r\n return { saveNote: mutation.mutateAsync, saveNoteInProgress: mutation.isLoading }\r\n}\r\n\r\nexport const useDeleteNote = (): { deleteNote: UseMutateAsyncFunction; deleteNoteInProgress: boolean } => {\r\n const queryClient = useQueryClient()\r\n const setNotes = useSetRecoilState(ArticleNotesState)\r\n const mutation = useMutation(\r\n (articleNoteId: string) => {\r\n const container = Container.getInstance(RegisteredModels.Article_Notes) as PartsContainer\r\n return container.action(\"deleteArticleNote\")(articleNoteId)\r\n },\r\n {\r\n onSuccess: (_, noteId) => {\r\n queryClient.resetQueries([KEY_LOAD_ARTICLE_NOTE])\r\n setNotes((prev) => prev.filter((x) => x.noteId !== noteId))\r\n },\r\n }\r\n )\r\n\r\n return { deleteNote: mutation.mutateAsync, deleteNoteInProgress: mutation.isLoading }\r\n}\r\n","import { useQuery } from \"react-query\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { RegisteredModels, UrlResolverContainer, UserContext } from \"@tm/models\"\r\nimport { ExternalCatalogUrlParams, ExternalCatalogUrlResult } from \"./models\"\r\n\r\nfunction externalCatalogUrlRequest(request: ExternalCatalogUrlParams, userContext: UserContext) {\r\n if (!request.externalSystemId) {\r\n return undefined\r\n }\r\n\r\n const container = Container.getInstance(RegisteredModels.UrlResolver) as UrlResolverContainer\r\n return container\r\n .action(\"getExternalCatalogUrl\")(request.externalSystemId, request.telesalesCustomerNo, userContext)\r\n .catch(() => undefined)\r\n}\r\n\r\n/**\r\n * get an external catalog url, there is a config param called \"enabledExternalCatalogCacheUrlReset\" to control if a module should cache the url for 60mins\r\n * @param request ExternalCatalogUrlParams\r\n * @param externalCatalogUrlCachingDuration [optional] number - used to control if the catalog url should be cached and for how long (in seconds)\r\n * @returns ExternalCatalogUrlResult\r\n */\r\nexport function useExternalCatalogUrl(\r\n request: ExternalCatalogUrlParams,\r\n externalCatalogUrlCachingDuration?: number,\r\n allowRequest?: () => boolean\r\n): ExternalCatalogUrlResult {\r\n const { userContext } = window\r\n let staleTime: number | undefined\r\n\r\n if (externalCatalogUrlCachingDuration !== undefined) {\r\n if (externalCatalogUrlCachingDuration === -1) {\r\n staleTime = Infinity\r\n } else {\r\n staleTime = externalCatalogUrlCachingDuration * 1000\r\n }\r\n }\r\n\r\n const result = useQuery(\r\n [\"authority_externalCatalogUrlSelector\", request, userContext],\r\n () => {\r\n return externalCatalogUrlRequest(request, userContext)\r\n },\r\n {\r\n staleTime,\r\n enabled: allowRequest ? allowRequest() : true,\r\n }\r\n )\r\n\r\n if (result.isSuccess) {\r\n return { loadingExternalCatalogUrl: false, externalCatalogUrl: result.data }\r\n }\r\n\r\n return { loadingExternalCatalogUrl: result.isFetching }\r\n}\r\n","import { useEffect, useRef } from \"react\"\r\n\r\nexport function useUnsubscribe() {\r\n const unsubscribe = useRef<() => void | undefined>()\r\n\r\n useEffect(() => {\r\n return () => {\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n unsubscribe.current?.()\r\n }\r\n }, [])\r\n\r\n return unsubscribe\r\n}\r\n","import { useRecoilState } from \"recoil\"\r\nimport { multiWidgetTab } from \"../../../appState/dashboard/multiWidget\"\r\n\r\nexport type ModulePropsMultiWidget = {\r\n storeId?: string\r\n}\r\n\r\nexport const useMultiWidgetState = (moduleProps?: ModulePropsMultiWidget) => {\r\n return useRecoilState(multiWidgetTab(moduleProps?.storeId || \"default\"))\r\n}\r\n","import { RegisteredModels, ShowDefaultWarehouseRequest, ShowDefaultWarehouseResponse } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useCallback, useMemo } from \"react\"\r\nimport { useQuery } from \"react-query\"\r\n\r\nconst KEY = \"erp_showDefaultOrderWarehouse\"\r\nexport function useDefaultOrderWarehouse(request: ShowDefaultWarehouseRequest, enabled?: boolean) {\r\n const {\r\n data: warehouseData,\r\n isLoading: warehouseDataIsLoading,\r\n refetch,\r\n } = useQuery(\r\n [KEY, request],\r\n () => {\r\n return Container.getInstance(RegisteredModels.ERP_ShowDefaultWarehouse)\r\n .subscribe(request)\r\n .load()\r\n .catch(() => ({ hasErrors: true }))\r\n },\r\n {\r\n enabled,\r\n staleTime: Infinity,\r\n }\r\n )\r\n\r\n const refetchWarehouseData = useCallback(async () => {\r\n await refetch()\r\n }, [refetch])\r\n\r\n return useMemo(\r\n () => ({ warehouseData, warehouseDataIsLoading, refetchWarehouseData }),\r\n [warehouseData, warehouseDataIsLoading, refetchWarehouseData]\r\n )\r\n}\r\n","import { useCallback } from \"react\"\r\nimport { atomFamily, useRecoilState } from \"recoil\"\r\nimport { Article, ErpInformation } from \"@tm/models\"\r\nimport \"../../extensions/array\"\r\n\r\nconst detailedErpResponses = atomFamily({ key: \"detailedErpResponses\", default: [] })\r\n\r\nexport function useDetailedErpInfoStore(workTaskId?: string) {\r\n const [infos, setInfos] = useRecoilState(detailedErpResponses(workTaskId))\r\n\r\n const addInfo = useCallback(\r\n (erpInfo: ErpInformation) => {\r\n const index = infos.findIndex((x) => equalsInfo(erpInfo, x))\r\n if (index !== -1) {\r\n setInfos(infos.with(index, erpInfo))\r\n return\r\n }\r\n setInfos([...infos, erpInfo])\r\n },\r\n [infos]\r\n )\r\n\r\n const addInfos = useCallback(\r\n (erpInfos: ErpInformation[]) => {\r\n erpInfos.forEach((erpInfo) => {\r\n addInfo(erpInfo)\r\n })\r\n },\r\n [addInfo]\r\n )\r\n\r\n const findInfo = useCallback(\r\n (article: Article, quantity?: number) => {\r\n return infos.find(\r\n (x) =>\r\n x.dataSupplierArticleNumber === article.supplierArticleNo &&\r\n x.dataSupplierId === article.supplier.id &&\r\n x.quantity?.requestedValue === (quantity ?? article.quantity)\r\n )\r\n },\r\n [infos]\r\n )\r\n\r\n return { infos, addInfo, addInfos, findInfo }\r\n}\r\n\r\nfunction equalsInfo(erpInfo1: ErpInformation, erpInfo2: ErpInformation) {\r\n return (\r\n erpInfo1.wholesalerArticleNumber === erpInfo2.wholesalerArticleNumber &&\r\n erpInfo1.dataSupplierArticleNumber === erpInfo2.dataSupplierArticleNumber &&\r\n erpInfo1.dataSupplierId === erpInfo2.dataSupplierId &&\r\n erpInfo1.quantity?.value === erpInfo2.quantity?.value\r\n )\r\n}\r\n","import { GetErpConfigResponse, RegisteredModels } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { selector, useRecoilValue, useRecoilValueLoadable } from \"recoil\"\r\n\r\nconst erpConfigSelector = selector({\r\n key: \"erp_getErpConfig\",\r\n get: () =>\r\n Container.getInstance(RegisteredModels.ERP_GetErpConfig)\r\n .subscribe()\r\n .load()\r\n .then((response) => {\r\n window.erpConfig = response\r\n return response\r\n }),\r\n})\r\n\r\nexport function useErpConfig() {\r\n return useRecoilValue(erpConfigSelector)\r\n}\r\n\r\nexport function useErpConfigLoadable() {\r\n const getErpConfigResponse = useRecoilValueLoadable(erpConfigSelector).valueMaybe()\r\n const erpSystemConfigs = getErpConfigResponse?.erpSystemConfigs\r\n const isErpInfoEnabled = erpSystemConfigs?.some((erpSystem) => erpSystem.useForGetErpInformation) ?? false\r\n return { erpSystemConfigs, isErpInfoEnabled }\r\n}\r\n","import { ErpSystemConfigMode, ErpSystemConfig } from \"@tm/models\"\r\nimport { useErpConfig } from \"./useErpConfig\"\r\n\r\nexport function useDefaultErpSystem(erpSystemConfig?: ErpSystemConfig) {\r\n const erpConfig = useErpConfig()\r\n\r\n if (!erpSystemConfig && erpConfig.mode === ErpSystemConfigMode.Partnersystems) {\r\n return {\r\n erpSystemConfig: erpConfig.erpSystemConfigs?.find((x) => x.isDefaultGetErpInfoSystem) ?? erpConfig.erpSystemConfigs?.[0],\r\n erpConfig,\r\n }\r\n }\r\n\r\n return { erpSystemConfig, erpConfig }\r\n}\r\n","import { useQueryClient, UseQueryOptions, useQueries, QueryClient } from \"react-query\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { Article, ErpBundleParams, ErpContainer, ErpInformation, ErpInformationRequestItem, RegisteredModels } from \"@tm/models\"\r\n\r\nimport { useRecoilValue } from \"recoil\"\r\nimport Morpheus from \"@tm/morpheus\"\r\nimport { createErpInformationRequestItem } from \"../../helpers/erp\"\r\nimport { selectedExternalArticleDetailsState, selectedOrderOptionState } from \"../../appState/parts/partDetails\"\r\n\r\ntype Request = {\r\n articles: Article[]\r\n type?: \"list\" | \"details\"\r\n telesalesCustomerNo?: string\r\n distributorId?: number\r\n vehicleId?: string\r\n searchQuery?: string\r\n}\r\n\r\nfunction getQueryKey(\r\n { type, telesalesCustomerNo, distributorId, searchQuery }: Omit,\r\n requestItem: ErpInformationRequestItem\r\n) {\r\n return [\"ERP_INFORMATION\", { type, telesalesCustomerNo, distributorId, searchQuery }, requestItem]\r\n}\r\n\r\ntype QueryOptions = UseQueryOptions\r\n\r\nfunction generateQueryBody(\r\n request: Omit,\r\n requestItem: ErpInformationRequestItem,\r\n queryOptions: QueryOptions,\r\n queryClient: QueryClient\r\n): QueryOptions {\r\n const { erpCacheStaleTimeSeconds = 0 } = Morpheus.getParams(\"erp\")\r\n\r\n // https://jira.dvse.de/browse/NEXT-24571\r\n // Problem liegt beim erstellen das Keys, hier wird immer der erste Artikel genommen, wenn dieser durch die verfügbarkeit weg gefiltert wird\r\n // wie im Ticket beschrieben, ändert sich der Key und der QUerry store wird invalide, das müssen wir abfangen / ändern, vielleicht die Filteroptionen als Key setzen?\r\n const queryKey = getQueryKey(request, requestItem)\r\n\r\n // console.log(\"ABCK: \", queryKey)\r\n\r\n return {\r\n queryKey,\r\n queryFn: () => {\r\n const Erp: ErpContainer = Container.getInstance(RegisteredModels.ERP)\r\n return Erp.action(request.type === \"details\" ? \"getErpInfoDetails\" : \"getErpInfo\")({\r\n item: requestItem,\r\n distributorId: request.distributorId,\r\n telesalesCustomerNo: request.telesalesCustomerNo,\r\n foundBySearchTerm: request.searchQuery,\r\n })\r\n },\r\n ...queryOptions,\r\n // The staleTime is being used to avoid a second request when the quantity is automatically changed to match the division\r\n // In combination with \"setQueryData\" in \"onSuccess\"\r\n staleTime: (queryOptions.staleTime ?? erpCacheStaleTimeSeconds > 0) ? erpCacheStaleTimeSeconds * 1000 : undefined,\r\n onSuccess: (data) => {\r\n queryOptions.onSuccess?.(data)\r\n\r\n const selectedShipmentId = data.specialProcurementErpInformation?.orderOptions.shipmentModes?.shipmentModes.find((e) => e.isSelected)?.id\r\n\r\n // Also store response with a different key in cache to avoid a second request when the shipment mode is automatically selected to match the default\r\n // In combination with \"staleTime\"\r\n if (requestItem && selectedShipmentId !== undefined) {\r\n queryClient.setQueryData(\r\n getQueryKey(request, {\r\n ...requestItem,\r\n selectedShipmentModeId: selectedShipmentId,\r\n }),\r\n data\r\n )\r\n }\r\n\r\n // Also store response with a different key in cache to avoid a second request when the quantity is automatically changed to match the division\r\n // In combination with \"staleTime\"\r\n if (requestItem && requestItem.quantityValue === 1 && data.quantity?.division !== undefined && data.quantity.division !== 1) {\r\n queryClient.setQueryData(\r\n getQueryKey(request, {\r\n ...requestItem,\r\n selectedShipmentModeId: selectedShipmentId,\r\n quantityValue: data.quantity.division,\r\n }),\r\n data\r\n )\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function useGetDetailedErpInfo(request: Request, queryOptions: QueryOptions = {}): { data: ErpInformation[] | undefined; isLoading: boolean } {\r\n const queryClient = useQueryClient()\r\n const selectedOrderOption = useRecoilValue(selectedOrderOptionState)\r\n const selectedExternalArticleDetails = useRecoilValue(selectedExternalArticleDetailsState)\r\n const { externalBasketItemId } = selectedExternalArticleDetails\r\n\r\n const result = useQueries(\r\n request.articles\r\n .filter((x) => x.requestErpInfo)\r\n .map((x) =>\r\n generateQueryBody(\r\n request,\r\n createErpInformationRequestItem(x, request.vehicleId, selectedOrderOption?.orderOption?.id, undefined, externalBasketItemId),\r\n queryOptions,\r\n queryClient\r\n )\r\n )\r\n )\r\n\r\n let isLoading = false\r\n let isFetching = false\r\n const data: ErpInformation[] = []\r\n\r\n result.forEach((x) => {\r\n isLoading ||= x.isLoading\r\n isFetching ||= x.isFetching\r\n\r\n if (x.data) {\r\n data.push(x.data)\r\n }\r\n })\r\n\r\n return {\r\n data: !isFetching && data.length ? data : undefined,\r\n isLoading: isLoading || isFetching,\r\n }\r\n}\r\n","import { useEffect, useRef } from \"react\"\r\n\r\nexport * from \"./articleDetails\"\r\nexport * from \"./articleNotes\"\r\nexport * from \"./authority\"\r\nexport * from \"./dashboard/multiWidget\"\r\nexport * from \"./erp\"\r\nexport * from \"./memoTool\"\r\nexport * from \"./parts\"\r\nexport * from \"./postMessages\"\r\nexport * from \"./resize\"\r\nexport * from \"./statemanagement\"\r\nexport * from \"./useSelection\"\r\nexport * from \"./useSessionStorage\"\r\nexport * from \"./useLocalStorage\"\r\nexport * from \"./vatRate\"\r\nexport * from \"./vehicle\"\r\nexport * from \"./worktask\"\r\nexport * from \"./useMainHistory\"\r\nexport * from \"./channel\"\r\n\r\n/** https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state */\r\nexport function usePrevious(value: T) {\r\n const ref = useRef()\r\n useEffect(() => {\r\n ref.current = value\r\n }, [value])\r\n return ref.current\r\n}\r\n","import { CheckHasMemoResponse, RegisteredModels } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useCallback } from \"react\"\r\nimport { useQuery, useQueryClient } from \"react-query\"\r\n\r\nexport const KEY = \"memotool_useCheckHasMemo\"\r\n\r\nconst cacheTime = {\r\n staleTime: 30 * 60 * 1000,\r\n cacheTime: 60 * 60 * 1000,\r\n retry: 3,\r\n}\r\n\r\nconst getData = async (memoToolEnabled: boolean, manufacturerName: string, tecDocTypeId: number, engineCode?: string) => {\r\n const response: CheckHasMemoResponse = await Container.getInstance(RegisteredModels.MemoTool).action(\r\n \"checkHasMemo\"\r\n )(manufacturerName, tecDocTypeId, engineCode)\r\n\r\n return {\r\n ...response,\r\n isEnabled: memoToolEnabled,\r\n }\r\n}\r\n\r\nexport function useCheckHasMemo(memoToolEnabled?: boolean, manufacturerName?: string, tecDocTypeId?: number, engineCode?: string) {\r\n const queryEnabled = !!memoToolEnabled && !!manufacturerName && !!tecDocTypeId\r\n\r\n const { data, isLoading, error } = useQuery(\r\n [KEY, tecDocTypeId, engineCode],\r\n () => getData(!!memoToolEnabled, manufacturerName!, tecDocTypeId!, engineCode),\r\n { ...cacheTime, enabled: queryEnabled }\r\n )\r\n\r\n return { checkHasMemo: data, isMemoLoading: isLoading, error }\r\n}\r\n\r\nexport function useFetchCheckHasMemo(memoToolEnabled?: boolean, manufacturerName?: string, tecDocTypeId?: number, engineCode?: string) {\r\n const queryClient = useQueryClient()\r\n const queryEnabled = !!memoToolEnabled && !!manufacturerName && !!tecDocTypeId\r\n\r\n return useCallback(() => {\r\n if (!queryEnabled) {\r\n return Promise.resolve({\r\n isEnabled: !!memoToolEnabled,\r\n hasMemoInfo: false,\r\n hasTechnicalNotes: false,\r\n })\r\n }\r\n\r\n return queryClient.fetchQuery(\r\n [KEY, tecDocTypeId, engineCode],\r\n () => getData(!!memoToolEnabled, manufacturerName!, tecDocTypeId!, engineCode),\r\n { ...cacheTime }\r\n )\r\n }, [queryEnabled, engineCode, memoToolEnabled])\r\n}\r\n","import { GetMemoImportantNoteRequest, MemoToolContainer, RegisteredModels } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useQuery } from \"react-query\"\r\n\r\nconst KEY = \"memotool_useGetMemoImportantNote\"\r\n\r\nexport function useGetMemoImportantNote(request: GetMemoImportantNoteRequest, vehicleId?: string, memoToolEnabled?: boolean) {\r\n const queryEnabled = !!request.manufacturerName && memoToolEnabled\r\n\r\n const { data, isLoading, error } = useQuery(\r\n [KEY, vehicleId],\r\n () => {\r\n const container: MemoToolContainer = Container.getInstance(RegisteredModels.MemoTool)\r\n return container.action(\"getMemoImportantNote\")(request)\r\n },\r\n { staleTime: 0, cacheTime: 0, enabled: queryEnabled }\r\n )\r\n\r\n return { response: data, isLoading, error }\r\n}\r\n","import { GetCatMemoVKNRequest, MemoToolContainer, RegisteredModels } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useQuery } from \"react-query\"\r\nimport { useKeyValue } from \"../statemanagement\"\r\n\r\nconst KEY = \"memotool_useVehicleModelMemoInfo\"\r\n\r\nexport function useVehicleModelMemoInfo(request: GetCatMemoVKNRequest, vehicleId?: string, memoToolEnabled?: boolean) {\r\n const [savedVehicleMemoInfo, saveVehicleMemoInfo, stateSavedVehicleMemoInfo] = useKeyValue({\r\n key: `MEMOTOOL_VEHICLEMEMOINFO_${vehicleId}`,\r\n ownedByRepairShop: false,\r\n })\r\n\r\n const [savedCompletedSteps, updateSavedCompletedSteps, stateSavedCompletedSteps] = useKeyValue({\r\n key: `MEMOTOOL_VEHICLEMEMOINFO_COMPLETEDSTEPS_${vehicleId}`,\r\n ownedByRepairShop: false,\r\n })\r\n\r\n const queryEnabled = !!request.manufacturerId && !!vehicleId && memoToolEnabled\r\n\r\n const { data, isLoading, error } = useQuery(\r\n [KEY, vehicleId, request],\r\n () => {\r\n const container: MemoToolContainer = Container.getInstance(RegisteredModels.MemoTool)\r\n return container.action(\"getKTypeMemoInfo\")(request)\r\n },\r\n {\r\n staleTime: 60 * 60 * 1000,\r\n cacheTime: 60 * 60 * 1000,\r\n enabled: queryEnabled,\r\n }\r\n )\r\n\r\n if (error || stateSavedVehicleMemoInfo == \"hasError\" || stateSavedCompletedSteps === \"hasError\") {\r\n return {\r\n vehicleMemoInfoError: error,\r\n }\r\n }\r\n\r\n if (stateSavedVehicleMemoInfo == \"loading\" || isLoading || stateSavedCompletedSteps === \"loading\") {\r\n return {\r\n vehicleMemoInfoIsLoading: true,\r\n }\r\n }\r\n\r\n if (stateSavedVehicleMemoInfo == \"hasValue\" && !!savedVehicleMemoInfo?.length && !!data && !!Object.keys(data)?.length) {\r\n const dataHash = JSON.stringify(data)?.hashCode()?.toString()\r\n\r\n if (dataHash != savedVehicleMemoInfo && !!saveVehicleMemoInfo) {\r\n return {\r\n vehicleMemoInfo: data,\r\n saveVehicleMemoInfo,\r\n memoWasConfirmed: false,\r\n stepsChanged: true,\r\n vehicleHasMemoInfo: true,\r\n showVehicleMemoDialog: true,\r\n savedCompletedSteps: savedCompletedSteps ? (JSON.parse(savedCompletedSteps) as Record) : {},\r\n updateSavedCompletedSteps,\r\n }\r\n }\r\n\r\n return {\r\n vehicleMemoInfo: data,\r\n memoWasConfirmed: true,\r\n showVehicleMemoDialog: false,\r\n vehicleHasMemoInfo: true,\r\n savedCompletedSteps: savedCompletedSteps ? (JSON.parse(savedCompletedSteps) as Record) : {},\r\n updateSavedCompletedSteps,\r\n }\r\n }\r\n\r\n return {\r\n vehicleMemoInfo: data,\r\n saveVehicleMemoInfo,\r\n memoWasConfirmed: false,\r\n showVehicleMemoDialog: !!data && !!Object.keys(data)?.length,\r\n vehicleHasMemoInfo: !!data && !!Object.keys(data)?.length,\r\n savedCompletedSteps: savedCompletedSteps ? (JSON.parse(savedCompletedSteps) as Record) : {},\r\n updateSavedCompletedSteps,\r\n }\r\n}\r\n","import { Article, ArticleIdentifier, RegisteredModels } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useQuery } from \"react-query\"\r\n\r\nexport function useArticleByArticleNumberWithOptionalVehicle(request: ArticleIdentifier | undefined, language?: string) {\r\n const { articles } = useArticlesByArticleNumbersWithOptionalVehicle(request ? [request] : undefined, language)\r\n return articles?.first()\r\n}\r\n\r\nexport function useArticlesByArticleNumbersWithOptionalVehicle(requests: Array | undefined, language?: string) {\r\n const { data, isLoading, status } = useQuery({\r\n queryKey: [\"parts_useArticlesByArticleNumbersWithOptionalVehicle\", requests, language],\r\n queryFn: () => {\r\n return Container.getInstance>(RegisteredModels.Articles_ByArticleNumbersWithOptionalVehicle).subscribe(requests).load()\r\n },\r\n enabled: !!requests?.length,\r\n staleTime: 4 * 60 * 60 * 1000, // 4 hours\r\n })\r\n\r\n return { articles: data, isLoading, status }\r\n}\r\n","import { PartsContainer, RegisteredModels, SupplierArticle } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useQuery } from \"react-query\"\r\n\r\nconst KEY = \"parts_useArticlesBySupplierArticleNumber\"\r\nexport function useArticlesBySupplierArticleNumber(request: SupplierArticle | undefined) {\r\n const { data } = useQuery(\r\n [KEY, request],\r\n () => {\r\n if (request) {\r\n const container: PartsContainer = Container.getInstance(RegisteredModels.Articles)\r\n return container.action(\"getArticlesBySupplierArticleNumber\")(request)\r\n }\r\n },\r\n {\r\n staleTime: 4 * 60 * 60 * 1000, // 4 hours\r\n enabled: !!request,\r\n }\r\n )\r\n\r\n return { articles: data }\r\n}\r\n","import { Article, RegisteredModels } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useQuery } from \"react-query\"\r\n\r\nconst KEY = \"parts_useArticlesByWholesalerArticleNumber\"\r\nexport function useArticlesByWholesalerArticleNumber(wholesalerArticleNumber: string | undefined) {\r\n const { data } = useQuery(\r\n [KEY, wholesalerArticleNumber],\r\n () => {\r\n return Container.getInstance>(RegisteredModels.Articles_ByWholesalerArticleNumber)\r\n .subscribe(wholesalerArticleNumber)\r\n .load()\r\n },\r\n {\r\n staleTime: 4 * 60 * 60 * 1000, // 4 hours\r\n enabled: !!wholesalerArticleNumber,\r\n }\r\n )\r\n\r\n return { articles: data }\r\n}\r\n","import { Article, RegisteredModels } from \"@tm/models\"\r\nimport { Dictionary } from \"@tm/morpheus\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useQuery } from \"react-query\"\r\n\r\nconst KEY = \"parts_useArticlesByWholesalerArticleNumbers\"\r\n\r\nexport function useArticlesByWholesalerArticleNumbers(wholesalerArticleNumbers: string[] | undefined) {\r\n const { data, isLoading, status } = useQuery(\r\n [KEY, wholesalerArticleNumbers],\r\n () => {\r\n return Container.getInstance>(RegisteredModels.Articles_ByWholesalerArticleNumbers)\r\n .subscribe(wholesalerArticleNumbers)\r\n .load()\r\n },\r\n {\r\n staleTime: 4 * 60 * 60 * 1000, // 4 hours\r\n enabled: !!wholesalerArticleNumbers?.length,\r\n }\r\n )\r\n\r\n return { articles: data, isLoading, status }\r\n}\r\n","import { useCallback, useEffect } from \"react\"\r\nimport { parseIfStringifiedData } from \"../../helpers/json\"\r\n\r\nconst BLACKLIST = [\"source\", \"data\", \"type\"]\r\n\r\nexport const useMessage = (calBack?: (data: any, source: Window) => void) => {\r\n const handleMessage = useCallback(\r\n (event: MessageEvent) => {\r\n const data = parseIfStringifiedData(event.data)\r\n if (!data) {\r\n return\r\n }\r\n\r\n const dataKeys = Object.keys(data)\r\n if (dataKeys.some((x) => BLACKLIST.some((y) => y === x))) {\r\n return\r\n }\r\n\r\n const commandKeys = dataKeys.filter((x) => x != \"sourceId\")\r\n if (commandKeys.length === 0) {\r\n console.warn(\"API Call: No Command found.\")\r\n }\r\n\r\n calBack?.(event.data, event.source as Window)\r\n },\r\n [calBack]\r\n )\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"message\", handleMessage)\r\n return () => window.removeEventListener(\"message\", handleMessage)\r\n }, [handleMessage])\r\n}\r\n","import { useLayoutEffect, useState } from \"react\"\r\nimport { BoxSize } from \".\"\r\n\r\nexport function useWindowSize(): BoxSize {\r\n const getSize = (): BoxSize => [window.innerWidth, window.innerHeight]\r\n\r\n const [size, setSize] = useState(getSize())\r\n\r\n useLayoutEffect(() => {\r\n function updateSize() {\r\n setSize(getSize())\r\n }\r\n\r\n window.addEventListener(\"resize\", updateSize)\r\n updateSize()\r\n return () => window.removeEventListener(\"resize\", updateSize)\r\n }, [])\r\n\r\n return size\r\n}\r\n","import { KeyValueStateContainer, RegisteredModels, UseKeyValueRequest } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useMemo } from \"react\"\r\nimport { atomFamily, selectorFamily, useRecoilStateLoadable } from \"recoil\"\r\n\r\nconst keyValueAtom = atomFamily({\r\n key: \"statemanagement_keyValuesAtom\",\r\n default: selectorFamily({\r\n key: \"statemanagement_keyValuesAtom/defaultSelector\",\r\n get: (request) => () => {\r\n if (!request || request.key.includes(\"undefined\")) {\r\n return undefined\r\n }\r\n\r\n const container: KeyValueStateContainer = Container.getInstance(RegisteredModels.KeyValueStore)\r\n return container.action(\"loadKeyValue\")(request.key, request.ownedByRepairShop).catch()\r\n },\r\n }),\r\n})\r\n\r\n/** Only works correctly if the value of this key is always set using this hook! */\r\nexport function useKeyValue(request: UseKeyValueRequest | undefined) {\r\n const [state, setState] = useRecoilStateLoadable(keyValueAtom(request))\r\n\r\n const saveKeyValue = useMemo(() => {\r\n if (!request) {\r\n return\r\n }\r\n\r\n return (value: string | undefined) => {\r\n const container: KeyValueStateContainer = Container.getInstance(RegisteredModels.KeyValueStore)\r\n return container\r\n .action(\"saveKeyValue\")(request.key, value, request.ownedByRepairShop)\r\n .then(() => {\r\n setState(value)\r\n })\r\n }\r\n }, [request?.key, request?.ownedByRepairShop])\r\n\r\n let value\r\n if (state.state === \"hasValue\") {\r\n value = state.contents\r\n }\r\n\r\n return [value, saveKeyValue, state.state] as [typeof value, typeof saveKeyValue, typeof state.state]\r\n}\r\n","import { useMemo } from \"react\"\r\n\r\nexport function useLocalStorage(\r\n key: string,\r\n data?: T\r\n): { localStorageData: T | undefined; setLocalStorageData(data: T): void; removeKey(): void } {\r\n function setLocalStorageData(data: T) {\r\n data && localStorage.setItem(key, JSON.stringify(data))\r\n }\r\n\r\n if (!localStorage[key] && data) {\r\n setLocalStorageData(data)\r\n }\r\n\r\n const localStorageData: T | undefined = useMemo(() => {\r\n return localStorage[key] ? JSON.parse(localStorage[key]) : undefined\r\n }, [localStorage[key]])\r\n\r\n const removeKey = () => {\r\n localStorage.removeItem(key)\r\n }\r\n\r\n return { localStorageData, setLocalStorageData, removeKey }\r\n}\r\n","import type { History } from \"history\"\r\n\r\nlet mainHistory: History\r\n\r\nexport function initMainHistory(history: History) {\r\n if (!mainHistory && history) {\r\n mainHistory = history\r\n }\r\n}\r\n\r\nexport function useMainHistory() {\r\n return mainHistory\r\n}\r\n","import { RefObject, useEffect, useMemo, useState } from \"react\"\r\n\r\nexport function useOnScreen(ref: RefObject) {\r\n const [isIntersecting, setIntersecting] = useState(false)\r\n\r\n const observer = useMemo(() => new IntersectionObserver(([entry]) => setIntersecting(entry.isIntersecting)), [ref])\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n observer.observe(ref.current)\r\n }\r\n return () => observer.disconnect()\r\n }, [ref.current])\r\n\r\n return isIntersecting\r\n}\r\n","import { useState } from \"react\"\r\n\r\nexport function useResizeObserver(callback: (entry: ResizeObserverEntry) => void): [(el: T) => void, () => void] {\r\n const [observer, setObserver] = useState()\r\n const [element, setElement] = useState()\r\n\r\n function ref(el: T) {\r\n if (!el || el === element) {\r\n return\r\n }\r\n if (element && observer) {\r\n observer.unobserve(element)\r\n }\r\n let ob: ResizeObserver | undefined = observer\r\n if (!ob) {\r\n ob = new ResizeObserver((entries: ResizeObserverEntry[]) => entries.length && callback(entries[0]))\r\n setObserver(observer)\r\n }\r\n ob?.observe(el)\r\n setElement(el)\r\n }\r\n\r\n return [ref, () => observer?.disconnect()]\r\n}\r\n","import { useState, useCallback } from \"react\"\r\n\r\n/**\r\n * @param getAllIds should be a memoized function with useCallback or useMemo\r\n */\r\nexport function useSelection(getAllIds: () => Array) {\r\n const [selectedIds, setSelectedIds] = useState>([])\r\n\r\n const toggleSelected = useCallback((id: string) => {\r\n setSelectedIds((prev) => (prev.includes(id) ? prev.filter((x) => x !== id) : [...prev, id]))\r\n }, [])\r\n\r\n const selectAll = useCallback(() => {\r\n setSelectedIds(getAllIds())\r\n }, [getAllIds])\r\n\r\n const unselectAll = useCallback(() => {\r\n setSelectedIds([])\r\n }, [])\r\n\r\n return { selectedIds, toggleSelected, selectAll, unselectAll }\r\n}\r\n","import { useMemo } from \"react\"\r\n\r\nexport function useSessionStorage(key: string, data?: T): { sessionStorageData: T | undefined; setSessionStorageData(data: T): void } {\r\n function setSessionStorageData(data: T) {\r\n data && sessionStorage.setItem(key, JSON.stringify(data))\r\n }\r\n\r\n if (!sessionStorage[key] && data) {\r\n setSessionStorageData(data)\r\n }\r\n\r\n const sessionStorageData: T | undefined = useMemo(() => {\r\n return sessionStorage[key] ? JSON.parse(sessionStorage[key]) : undefined\r\n }, [sessionStorage[key]])\r\n\r\n return { sessionStorageData, setSessionStorageData }\r\n}\r\n","import { VatRate, VatRateType } from \"@tm/models\"\r\n\r\nexport function useVatRateText(translateText: (id: number) => string) {\r\n const vatRateTypeDisplayShortText = (vatRate: VatRate) => {\r\n if (!vatRate.vatRate) {\r\n return \"-\"\r\n }\r\n switch (vatRate.vatType) {\r\n case VatRateType.Normal:\r\n case VatRateType.Reduced: {\r\n return `${vatRate.vatRate.round(0.01)}% `\r\n }\r\n case VatRateType.Replacement: {\r\n return translateText(12829)\r\n }\r\n case VatRateType.WithoutRate:\r\n default: {\r\n return \"-\"\r\n }\r\n }\r\n }\r\n\r\n function getVatRateInPercent(vatRate: VatRate) {\r\n if (!vatRate.vatRate) {\r\n return undefined\r\n }\r\n const vatRateInPercent = `${vatRate.vatRate.round(0.01)}% ${translateText(706)}.`\r\n return vatRateInPercent\r\n }\r\n\r\n const vatRateTypeDisplayLongText = (vatRate: VatRate) => {\r\n switch (vatRate.vatType) {\r\n case VatRateType.Normal: {\r\n return `${getVatRateInPercent(vatRate)} (${translateText(12825)})`\r\n }\r\n case VatRateType.Reduced: {\r\n return `${getVatRateInPercent(vatRate)} (${translateText(12826)})`\r\n }\r\n case VatRateType.Replacement: {\r\n return `${getVatRateInPercent(vatRate)} + ${translateText(12827)}`\r\n }\r\n case VatRateType.WithoutRate: {\r\n return translateText(12828)\r\n }\r\n default: {\r\n return \"\"\r\n }\r\n }\r\n }\r\n\r\n return { vatRateTypeDisplayShortText, vatRateTypeDisplayLongText }\r\n}\r\n","import { ActiveVehicleDataProviders, RegisteredModels, ViewState } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { atomFamily, useRecoilStateLoadable } from \"recoil\"\r\nimport { encodeUniqueId } from \"../..\"\r\n\r\nfunction getSubscription(workTaskId: string) {\r\n const key = `${encodeUniqueId(workTaskId)}__ACTIVE_VEHICLE_DATA_PROVIDERS`\r\n const subscription = Container.getInstance>(RegisteredModels.ViewState).subscribe(key)\r\n return { key, subscription }\r\n}\r\n\r\nconst ActiveVehicleDataProvidersState = atomFamily({\r\n key: \"activeVehicleDataProvidersForWorkTask\",\r\n default: undefined,\r\n})\r\n\r\n// TODO: Currently every newly rendered component starts an API request.\r\n// Maybe change this to a recoil atomFamily with a default value from a selector?\r\n\r\nexport function useActiveVehicleDataProviders(workTaskId: string | undefined) {\r\n const [recoilState, setRecoilState] = useRecoilStateLoadable(ActiveVehicleDataProvidersState(workTaskId ?? \"\"))\r\n const [isLoading, setIsLoading] = useState(recoilState.state !== \"hasValue\")\r\n\r\n useEffect(() => {\r\n if (!workTaskId) {\r\n return\r\n }\r\n\r\n const { subscription } = getSubscription(workTaskId)\r\n\r\n const unsubs = [\r\n subscription.addListener(\r\n \"loaded\",\r\n (response) => {\r\n setRecoilState(response.value)\r\n setIsLoading(false)\r\n },\r\n () => {\r\n setIsLoading(false)\r\n }\r\n ),\r\n subscription.addListener(\"updated\", (response) => {\r\n setRecoilState(response.value)\r\n setIsLoading(false)\r\n }),\r\n ]\r\n\r\n subscription.load()\r\n\r\n return () => {\r\n unsubs.forEach((unsub) => unsub())\r\n }\r\n }, [workTaskId, setRecoilState])\r\n\r\n return {\r\n isLoading,\r\n activeProviders: recoilState.state === \"hasValue\" ? recoilState.contents : undefined,\r\n }\r\n}\r\n","import { useState, useEffect } from \"react\"\r\nimport { useQuery } from \"react-query\"\r\n\r\nexport const useIsUrlAvailable = (url?: string) => {\r\n const [isAvailable, setIsAvailable] = useState(false)\r\n const [isLoading, setIsLoading] = useState(true)\r\n\r\n useEffect(() => {\r\n const timeout = () => {\r\n return new Promise((_resolve, reject) => {\r\n setTimeout(reject, 2000, \"Request timed out\")\r\n })\r\n }\r\n const fetchUrl = async () => {\r\n if (!url) {\r\n setIsLoading(false)\r\n return\r\n }\r\n try {\r\n await Promise.race([timeout(), fetch(url)]).then((response: any) => {\r\n if (response?.ok) {\r\n setIsLoading(false)\r\n setIsAvailable(true)\r\n } else {\r\n throw new Error(\"Url was not available or request timed out.\")\r\n }\r\n })\r\n } catch (e) {\r\n setIsLoading(false)\r\n setIsAvailable(false)\r\n }\r\n }\r\n\r\n fetchUrl()\r\n }, [url])\r\n return { isAvailable, isLoading }\r\n}\r\n\r\nexport const useIsUrlAvailableCached = (url = \"\") => {\r\n const timeout = () => {\r\n return new Promise((_resolve, reject) => {\r\n setTimeout(reject, 2000, \"Request timed out\")\r\n })\r\n }\r\n\r\n function fetchUrl() {\r\n return Promise.race([timeout(), fetch(url)])\r\n .then((response: any) => !!response?.ok)\r\n .catch(() => false)\r\n }\r\n\r\n const { data, isLoading } = useQuery(url, fetchUrl, {\r\n staleTime: Infinity,\r\n cacheTime: Infinity,\r\n enabled: !!url,\r\n })\r\n\r\n return {\r\n isAvailable: !!data,\r\n isLoading,\r\n }\r\n}\r\n","import { RegisteredModels, RegistrationNoType, ShowCarModelDetailsResponse, VehicleType } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { selectorFamily, useRecoilValue } from \"recoil\"\r\n\r\nexport type RequestWithVehicleType = {\r\n vehicleType: VehicleType\r\n}\r\n\r\ntype ModelDetailsRequest = Partial & {\r\n modelId?: number\r\n selectedLookupType?: RegistrationNoType\r\n registrationNoTypeId?: RegistrationNoType\r\n}\r\n\r\ntype ModelDetailsResponse = ShowCarModelDetailsResponse | undefined\r\n\r\nexport const modelDetailsSelector = selectorFamily({\r\n key: \"vehicle_modelDetails\",\r\n get:\r\n ({ vehicleType, modelId }) =>\r\n async () => {\r\n if (!vehicleType || !modelId) {\r\n return\r\n }\r\n\r\n return Container.getInstance(RegisteredModels.Vehicle_ModelDetails)\r\n .subscribe({ modelId }, vehicleType)\r\n .load()\r\n },\r\n})\r\n\r\nexport function useModelDetails(request: ModelDetailsRequest) {\r\n return useRecoilValue(modelDetailsSelector(request))\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { useQuery, useQueryClient } from \"react-query\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { RegisteredModels, RegistrationNoType, ShowConfigResponse } from \"@tm/models\"\r\n\r\nconst showOptionsKey = \"vehicle_show_options\"\r\nexport function useGetAvailableVehicleSearchOptions() {\r\n const { data, isLoading, isIdle } = useQuery(\r\n [showOptionsKey],\r\n () => Container.getInstance(RegisteredModels.Vehicle_ShowOptions).subscribe().load(),\r\n {\r\n staleTime: Infinity,\r\n }\r\n )\r\n\r\n return {\r\n availableVehicleSearches: data,\r\n isLoading,\r\n isIdle,\r\n }\r\n}\r\n\r\nexport const SkippedRegNoSearches = [\r\n RegistrationNoType.None,\r\n RegistrationNoType.KeywordSearch,\r\n RegistrationNoType.RückwFahrzeugVkn,\r\n RegistrationNoType.KTypNr,\r\n RegistrationNoType.NkwId,\r\n RegistrationNoType.VehicleBase,\r\n RegistrationNoType.Motorcode,\r\n RegistrationNoType.Fahrzeugbaum,\r\n RegistrationNoType.DatVin,\r\n RegistrationNoType.TopmotiveVin,\r\n RegistrationNoType.TopmotiveTypeId,\r\n]\r\n\r\nexport function useAvailableVehicleSearchOptions() {\r\n const queryClient = useQueryClient()\r\n const { availableVehicleSearches: vehicleSearches, isLoading, isIdle } = useGetAvailableVehicleSearchOptions()\r\n\r\n const availableVehicleSearches = useMemo(() => {\r\n if (!vehicleSearches) {\r\n return { configuredVehicleLookups: [] }\r\n }\r\n return vehicleSearches\r\n }, [vehicleSearches])\r\n\r\n const vehicleSearchesUsedInDefaultSearch = useMemo(() => {\r\n return availableVehicleSearches.configuredVehicleLookups?.filter((x) => x.isUsedInDefaultSearch)\r\n }, [availableVehicleSearches])\r\n\r\n const vehicleSearchesForSpecialLicensePlateField = useMemo(() => {\r\n return availableVehicleSearches.configuredVehicleLookups?.filter((x) => !x.isUsedInDefaultSearch)\r\n }, [availableVehicleSearches])\r\n\r\n const invalidateStore = () => {\r\n queryClient.invalidateQueries(showOptionsKey)\r\n }\r\n\r\n return {\r\n availableVehicleSearches,\r\n vehicleSearchesUsedInDefaultSearch,\r\n vehicleSearchesForSpecialLicensePlateField,\r\n isLoading,\r\n isIdle,\r\n invalidateStore,\r\n }\r\n}\r\n","import { Note, RegisteredModels, WorkTaskContainer } from \"@tm/models\"\r\nimport { Container } from \"@tm/nexus\"\r\nimport { useQuery, UseMutateAsyncFunction, useQueryClient, useMutation } from \"react-query\"\r\n\r\nconst KEY_LOAD_WORKTASKNOTE = \"workTaskNote_Load\"\r\n\r\nexport type SaveWorkTaskNoteRequest = { noteId: string; text: string }\r\n\r\nexport const useLoadWorkTaskNote = (workTaskIds: string[]): { workTaskNote: Note[]; isLoading: boolean } => {\r\n const { data, isLoading } = useQuery(\r\n [KEY_LOAD_WORKTASKNOTE, workTaskIds.join(\",\")],\r\n () => {\r\n const container = Container.getInstance(RegisteredModels.WorkTask_Notes) as WorkTaskContainer\r\n return container.action(\"loadWorkTaskNotesByNoteId\")(workTaskIds).then()\r\n },\r\n { enabled: workTaskIds.length > 0 }\r\n )\r\n return { workTaskNote: data || [], isLoading }\r\n}\r\n\r\nexport const useSaveWorkTaskNote = (): { saveWorkTaskNote: UseMutateAsyncFunction; saveInProgress: boolean } => {\r\n const queryClient = useQueryClient()\r\n const mutation = useMutation(\r\n (request: Note) => {\r\n const container = Container.getInstance(RegisteredModels.WorkTask_Notes) as WorkTaskContainer\r\n return container.action(\"saveWorkTaskNote\")(request).then()\r\n },\r\n {\r\n onSuccess: () => {\r\n queryClient.resetQueries(KEY_LOAD_WORKTASKNOTE)\r\n },\r\n }\r\n )\r\n return { saveWorkTaskNote: mutation.mutateAsync, saveInProgress: mutation.isLoading }\r\n}\r\n\r\nexport const useDeleteWorkTaskNote = (): { deleteWorkTaskNote: UseMutateAsyncFunction; deleteInProgress: boolean } => {\r\n const queryClient = useQueryClient()\r\n const mutation = useMutation(\r\n (noteId: string) => {\r\n const container = Container.getInstance(RegisteredModels.WorkTask_Notes) as WorkTaskContainer\r\n return container.action(\"deleteWorkTaskNote\")(noteId).then()\r\n },\r\n {\r\n onSuccess: () => {\r\n queryClient.resetQueries(KEY_LOAD_WORKTASKNOTE)\r\n },\r\n }\r\n )\r\n return { deleteWorkTaskNote: mutation.mutateAsync, deleteInProgress: mutation.isLoading }\r\n}\r\n","import { useMemo } from \"react\"\r\nimport { useKeyValue } from \"../statemanagement\"\r\n\r\nexport type WorkTaskTruckData = {\r\n vehicleNr?: string\r\n plateNr?: string\r\n vinNr?: string\r\n customerName?: string\r\n vehicleName?: string\r\n}\r\n\r\nexport function useWorkTaskTruckData(workTaskId: string | undefined) {\r\n const [value, setValue] = useKeyValue(workTaskId ? { key: `${workTaskId}_TRUCK-DATA`, ownedByRepairShop: true } : undefined)\r\n\r\n const workTaskTruckData = useMemo(() => {\r\n return value ? (JSON.parse(value) as WorkTaskTruckData) : undefined\r\n }, [value])\r\n\r\n const setWorkTaskTruckData = useMemo(() => {\r\n if (!setValue) {\r\n return\r\n }\r\n return (data: WorkTaskTruckData | undefined) => {\r\n return setValue(data ? JSON.stringify(data) : undefined)\r\n }\r\n }, [setValue])\r\n\r\n return { workTaskTruckData, setWorkTaskTruckData }\r\n}\r\n","import { Customer, RegistrationNoType, Vehicle, VehicleShortInfo } from \"@tm/models\"\r\n\r\nexport function mapVehicle(data: any): Vehicle {\r\n return {\r\n ...data,\r\n registrationTypeId:\r\n data.registrationTypeId === undefined && data.countryCode?.toLowerCase() === \"de\" ? RegistrationNoType.Kba : data.registrationTypeId, // dotnet removes the 0 in the response. so when country code is set and this field is empty we assume it's kba\r\n created: data.created ? new Date(data.created) : undefined,\r\n modified: data.modified ? new Date(data.modified) : undefined,\r\n initialRegistration: data.initialRegistration ? new Date(data.initialRegistration) : undefined,\r\n nextGeneralInspection: data.nextGeneralInspection ? new Date(data.nextGeneralInspection) : undefined,\r\n lastGeneralInspection: data.lastGeneralInspection ? new Date(data.lastGeneralInspection) : undefined,\r\n nextServiceDate: data.nextServiceDate ? new Date(data.nextServiceDate) : undefined,\r\n attachedOn: data.attachedOn ? new Date(data.attachedOn) : undefined,\r\n countryCode: data.countryCode?.toLowerCase(),\r\n }\r\n}\r\n\r\nexport function mapVehicleShortInfo(data: any): VehicleShortInfo | undefined {\r\n if (!data) {\r\n return\r\n }\r\n\r\n return {\r\n ...data,\r\n attachedOn: data.attachedOn ? new Date(data.attachedOn) : undefined,\r\n initialRegistration: data.initialRegistration ? new Date(data.initialRegistration) : undefined,\r\n }\r\n}\r\n\r\nexport function mapCustomer(data: any): Customer {\r\n return {\r\n ...data,\r\n birthDate: data.birthDate ? new Date(data.birthDate) : undefined,\r\n created: data.created ? new Date(data.created) : undefined,\r\n modified: data.modified ? new Date(data.modified) : undefined,\r\n }\r\n}\r\n","import { DispatchType } from \"@tm/models\"\r\nimport { mapTour } from \"..\"\r\n\r\nexport function mapDispatchType(data: any): DispatchType | undefined {\r\n if (!data) {\r\n return\r\n }\r\n\r\n return {\r\n ...data,\r\n tours: data.tours && data.tours.map(mapTour),\r\n }\r\n}\r\n","import { TeccomErpInformation, Warehouse } from \"@tm/models\"\r\n\r\nexport function mapTeccomERPtoWarehouse(teccom: TeccomErpInformation, label: string): Warehouse {\r\n return {\r\n id: teccom.itemId,\r\n name: teccom.specialProcurementErpInformation?.availability.description || label,\r\n prices: teccom.prices,\r\n quantities: [\r\n {\r\n availability: teccom.specialProcurementErpInformation?.availability || {},\r\n requestedValue: teccom.quantity?.requestedValue || 0,\r\n confirmedValue: teccom.quantity?.confirmedValue,\r\n value: teccom.quantity?.value,\r\n division: teccom.quantity?.division,\r\n expectedDeliveryTimeString: teccom.specialProcurementErpInformation?.message,\r\n description: teccom.specialProcurementErpInformation?.availability.shortDescription,\r\n },\r\n ],\r\n shortDescription: teccom.specialProcurementErpInformation?.availability.shortDescription || \"\",\r\n description: teccom.specialProcurementErpInformation?.availability.description || \"\",\r\n showWarehouseInfo: false,\r\n isDefault: false,\r\n isManufacturerWarehouse: !!teccom.specialProcurementErpInformation,\r\n }\r\n}\r\n","import { OE, OePart } from \"@tm/models\"\r\n\r\nexport function mapOePartToOeOePart(part: OePart): OE.OePart {\r\n return {\r\n id: part.oeArticleNumber,\r\n description: part.description,\r\n manufacturerName: part.vehicleManufacturerName,\r\n manufacturerId: part.vehicleManufacturerId,\r\n number: part.oeArticleNumber,\r\n additionalDescription: part.additionalDescription,\r\n quantity: part.quantityValue,\r\n traderNumber: part.wholesalerArticleNumber,\r\n oeArticleOrigin: part.oeArticleOrigin,\r\n prices: [\r\n {\r\n value: part.oePriceValue ?? 0,\r\n currency: part.currencyCode,\r\n },\r\n ],\r\n thumbnailUrl: part.thumbnailUrl,\r\n }\r\n}\r\n","import { OE, OePart } from \"@tm/models\"\r\n\r\nexport function mapOePart(part: OE.OePart, quantity: number, hidePrice?: boolean): OePart {\r\n return {\r\n additionalDescription: part.additionalDescription,\r\n vehicleManufacturerId: part.manufacturerId,\r\n vehicleManufacturerName: part.manufacturerName?.length ? part.manufacturerName : \"OE\", // vehicleManufacturerName cannot be undefined or empty\r\n description: part.description,\r\n oeArticleNumber: part.number ?? part.traderNumber,\r\n quantityValue: quantity,\r\n oePriceValue: !hidePrice && part.prices?.length ? part.prices[0].value : undefined,\r\n currencyCode: !hidePrice && part.prices?.length ? part.prices[0].currency : \"\",\r\n wholesalerArticleNumber: part.traderNumber,\r\n oeArticleOrigin: part.oeArticleOrigin,\r\n }\r\n}\r\n","export function plateCountryCodeMapper(shortCountryCode: string) {\r\n switch (shortCountryCode.toLowerCase()) {\r\n case \"no\": {\r\n return \"N\"\r\n }\r\n case \"pt\": {\r\n return \"P\"\r\n }\r\n case \"de\": {\r\n return \"D\"\r\n }\r\n case \"ie\": {\r\n return \"IRL\"\r\n }\r\n case \"fr\": {\r\n return \"F\"\r\n }\r\n case \"fi\": {\r\n return \"FIN\"\r\n }\r\n case \"es\": {\r\n return \"E\"\r\n }\r\n case \"se\": {\r\n return \"S\"\r\n }\r\n case \"ee\": {\r\n return \"EST\"\r\n }\r\n case \"it\": {\r\n return \"I\"\r\n }\r\n case \"gb\": {\r\n return \"UK\"\r\n }\r\n default: {\r\n return shortCountryCode.toUpperCase()\r\n }\r\n }\r\n}\r\n","import { Quantity } from \"@tm/models\"\r\nimport { mapTour } from \"..\"\r\n\r\nexport function mapQuantity(data: any): Quantity | undefined {\r\n if (!data) {\r\n return\r\n }\r\n\r\n return {\r\n ...data,\r\n expectedDeliveryTime: data.expectedDeliveryTime ? new Date(data.expectedDeliveryTime) : undefined,\r\n tour: mapTour(data.tour),\r\n }\r\n}\r\n","import { ItemTour } from \"@tm/models\"\r\n\r\nexport function mapTour(data: any): ItemTour | undefined {\r\n if (!data) {\r\n return\r\n }\r\n\r\n return {\r\n ...data,\r\n expectedDelivery: data.expectedDelivery ? new Date(data.expectedDelivery) : undefined,\r\n tourStart: data.tourStart ? new Date(data.tourStart) : undefined,\r\n tourOrderAcceptanceTimeLimit: data.tourOrderAcceptanceTimeLimit ? new Date(data.tourOrderAcceptanceTimeLimit) : undefined,\r\n }\r\n}\r\n","import { TyreArticle, TyreArticleAttributes } from \"@tm/models\"\r\nimport { uniqueId } from \"../helpers/id\"\r\n\r\nexport function mapTyreArticleToArticle(item: TyreArticle, defaultQuantity?: number): TyreArticle {\r\n return {\r\n ...item,\r\n quantity: defaultQuantity ?? 4,\r\n id: uniqueId(),\r\n internalId: +item.id,\r\n initialQuantity: defaultQuantity ?? 4,\r\n attributes: mapArticleAttributes(item),\r\n lastUpdate: item.lastUpdate ? new Date(item.lastUpdate) : undefined,\r\n vehicleInformation: item.vehicleInformation || [],\r\n }\r\n}\r\n\r\nfunction mapArticleAttributes(data: any): TyreArticleAttributes[] {\r\n if (!data) {\r\n return []\r\n }\r\n\r\n const attributes: TyreArticleAttributes = {\r\n topAttributes: data.attributes || [],\r\n articleAttributes: data.articleAttributes || [],\r\n vehicleAttributes: data.vehicleAttributes || [],\r\n partsListAttributes: data.partsListAttributes || [],\r\n }\r\n\r\n return [attributes]\r\n}\r\n","import { VoucherType } from \"@tm/models\"\r\n\r\nexport function mapVoucherTypeForUrl(type: VoucherType): string | undefined {\r\n switch (type) {\r\n case VoucherType.Order:\r\n return \"orders\"\r\n case VoucherType.CostEstimation:\r\n return \"cost-estimation\"\r\n case VoucherType.Return:\r\n return \"returns\"\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\nexport function mapVoucherTypeFromUrl(type: string | undefined): VoucherType {\r\n switch (type) {\r\n case \"orders\":\r\n return VoucherType.Order\r\n case \"returns\":\r\n return VoucherType.Return\r\n case \"cost-estimation\":\r\n default:\r\n return VoucherType.CostEstimation\r\n }\r\n}\r\n","import { Action, BundleComponent } from \"@tm/morpheus\"\r\nimport { CommunicationChannel } from \"../channel/communicationChannel\"\r\nimport { getComponentFromBundle } from \"./getComponentFromBundle\"\r\n\r\nexport async function getComponent(\r\n bundleComponentPromise: Promise,\r\n communicationChannel?: CommunicationChannel,\r\n communicationId?: string\r\n): Promise> {\r\n const bundleComponent = await bundleComponentPromise\r\n\r\n return getComponentFromBundle(bundleComponent.default, communicationChannel, communicationId)\r\n}\r\n\r\nexport async function getNamedComponent(\r\n bundleComponentPromise: Promise,\r\n componentName: K,\r\n communicationChannel?: CommunicationChannel,\r\n communicationId?: string\r\n): Promise> {\r\n const bundleComponent = await bundleComponentPromise\r\n\r\n return getComponentFromBundle(bundleComponent[componentName], communicationChannel, communicationId)\r\n}\r\n","import { PropsWithChildren } from \"react\"\r\nimport { applyMiddleware, compose, createStore, Action, MiddlewareAPI, Dispatch } from \"redux\"\r\nimport thunk from \"redux-thunk\"\r\nimport { BundleComponent, useMicro } from \"@tm/morpheus\"\r\nimport { CommunicationChannel, CommunicationContext } from \"../channel\"\r\n\r\nexport type TransmitAction = Action & {\r\n targetComponentId?: string\r\n}\r\n\r\nexport function getComponentFromBundle(\r\n bundleComponent: C,\r\n communicationChannel?: CommunicationChannel,\r\n communicationId?: string\r\n): NonNullable {\r\n const { transmit, receive, component: Component } = bundleComponent\r\n let { reduce } = bundleComponent\r\n\r\n if (!reduce && transmit) {\r\n reduce = (state: unknown, action: unknown) => state\r\n }\r\n\r\n if (reduce) {\r\n const transmitter = (api: MiddlewareAPI) => (next: Dispatch) => (action: TransmitAction) => {\r\n if (transmit) {\r\n const transmitAction = transmit(action)\r\n\r\n if (transmitAction) {\r\n communicationChannel?.forEach((channelItem) => {\r\n const [targetReceive, targetStore] = channelItem\r\n\r\n // don't publish into the same component from where the transmit comes\r\n if (targetReceive === receive) {\r\n return\r\n }\r\n\r\n // receive only into targetComponentId if it's set\r\n if (!!action.targetComponentId && action.targetComponentId !== communicationId) {\r\n return\r\n }\r\n\r\n targetReceive(transmitAction, targetStore.dispatch, targetStore.getState)\r\n })\r\n }\r\n }\r\n\r\n return next(action)\r\n }\r\n\r\n const extReduce = (state: unknown, action: Action) => {\r\n if (typeof action != \"function\" && action.type === \"@@redux/INIT\") {\r\n return reduce!(undefined, action)\r\n }\r\n\r\n return reduce!(state, action)\r\n }\r\n\r\n const store = createStore(extReduce, compose(applyMiddleware(thunk, transmitter)))\r\n if (receive) {\r\n communicationChannel?.push([receive, store])\r\n }\r\n\r\n return function ReduxStoreWrapper(props: PropsWithChildren) {\r\n // Should be great to be able to start with an empty state, but NEXT was built to use the old state\r\n // useMemo(() => {\r\n // store.dispatch({type: \"@@redux/INIT\"})\r\n // }, [])\r\n\r\n const { renderMicro } = useMicro()\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n } as NonNullable\r\n }\r\n\r\n return Component\r\n}\r\n","import { channel, getCurrentWorkTaskId } from \"@tm/models\"\r\nimport { BaseTrackingModel, TmaEvent, TrackingModel, EventRequestType } from \"./models/models\"\r\n\r\nimport { getWorkTaskIdFromLocation } from \"./helper/context\"\r\nimport { TmaSender } from \"./events/tma-sender\"\r\nimport { StoreContext } from \"./events/event-storage\"\r\n\r\nexport class TmaEventTracker {\r\n private static instance: TmaEventTracker\r\n\r\n private tmaEnabled: boolean\r\n\r\n private worktaskChangedEventHandler: ((id?: string, previousId?: string) => void)[]\r\n\r\n private latestWorkTaskChangedData: { id?: string; previousId?: string } = {}\r\n\r\n private constructor(worktaskId?: string) {\r\n this.tmaEnabled = true\r\n this.worktaskChangedEventHandler = []\r\n this.latestWorkTaskChangedData.id = getCurrentWorkTaskId() || worktaskId\r\n channel(\"GLOBAL\").subscribe(\"WORKTASK/ID_CHANGED\", this.handleWorkTaskChange, true)\r\n }\r\n\r\n static getInstance() {\r\n if (!TmaEventTracker.instance) {\r\n // workaround to get the worktaskId even if the user refreshes the page\r\n const workTaskId = getWorkTaskIdFromLocation()\r\n TmaEventTracker.instance = new TmaEventTracker(workTaskId)\r\n }\r\n\r\n return TmaEventTracker.instance\r\n }\r\n\r\n private tmaEventHandlerCollection: Array = []\r\n\r\n addEvent(event: TmaEvent & TmaSender) {\r\n if (!event) {\r\n return\r\n }\r\n this.tmaEventHandlerCollection.push(event)\r\n this.addToWorktaskChangeSubscription(event)\r\n }\r\n\r\n addCollection(events: Array) {\r\n if (!events) {\r\n return\r\n }\r\n events.forEach((event) => {\r\n this.addToWorktaskChangeSubscription(event)\r\n })\r\n this.tmaEventHandlerCollection.push(...events)\r\n }\r\n\r\n addToWorktaskChangeSubscription(event: TmaEvent) {\r\n const possibleHandler = (event as any).handleWorkTaskChange\r\n if (possibleHandler && typeof possibleHandler == \"function\") {\r\n possibleHandler(this.latestWorkTaskChangedData.id, this.latestWorkTaskChangedData.previousId)\r\n this.worktaskChangedEventHandler.push(possibleHandler)\r\n }\r\n }\r\n\r\n handleWorkTaskChange = (content: { id?: string; previousId?: string }) => {\r\n this.latestWorkTaskChangedData = content\r\n this.worktaskChangedEventHandler.forEach((handler) => {\r\n try {\r\n handler(content.id, content.previousId)\r\n } catch (e) {\r\n TmaErrors.log(e)\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * could be called out of this context?\r\n * @param data the data which comes from @track or dispatchTrack\r\n */\r\n private notifyEventHandlers(data: TrackingModel | BaseTrackingModel): void | Promise {\r\n performance.mark(\"TmaNotifyEventHandlers\")\r\n\r\n if (!data.tmaEvent || !this.tmaEnabled) {\r\n return\r\n }\r\n const eventHandlers = this.tmaEventHandlerCollection\r\n const concreteHandler = eventHandlers.find((event) => event.key.toLocaleLowerCase() == data.tmaEvent.toLocaleLowerCase())\r\n\r\n if (!concreteHandler) {\r\n return\r\n }\r\n\r\n // handle event and remove if it's completed\r\n const eventIsCompleted = concreteHandler.handle(data as TrackingModel)\r\n\r\n if (typeof eventIsCompleted === \"object\" && (eventIsCompleted as Promise).then) {\r\n return eventIsCompleted as void | Promise\r\n }\r\n performance.measure(\"eventHandled\", \"TmaNotifyEventHandlers\")\r\n }\r\n\r\n /**\r\n * this function is used to override the react-tracking default dispatch\r\n * will be called out of this context\r\n * @param data information which should be tracked\r\n */\r\n dispatchTrack = (data: BaseTrackingModel): void | Promise => {\r\n const instance = TmaEventTracker.getInstance()\r\n return instance.notifyEventHandlers(data)\r\n }\r\n\r\n disableTracker = () => {\r\n this.tmaEnabled = false\r\n }\r\n\r\n enableTracker = () => {\r\n this.tmaEnabled = true\r\n }\r\n\r\n getRequestData: EventRequestType = (key: string) => {\r\n const event = this.tmaEventHandlerCollection.find((event) => event.key === key) as TmaRequestHandle\r\n\r\n if (!event) {\r\n return\r\n }\r\n\r\n if (event.temporaryRequestBody) {\r\n const foundContext = event.temporaryRequestBody.context?.contextId.replace(/\\s/g, \"+\")\r\n const currentContextId = event.storage?.getContextId().replace(/\\s/g, \"+\")\r\n\r\n if (foundContext === currentContextId) {\r\n return event.temporaryRequestBody as any\r\n }\r\n\r\n if (!foundContext) {\r\n return event.temporaryRequestBody\r\n }\r\n }\r\n\r\n if (event && event.requestBody) {\r\n return event.requestBody as any\r\n }\r\n\r\n // vehicle_selection_log does not use tmasender, has a fake sessionStorage implementation, maybe temporaryRequestBody\r\n if (event && event.data) {\r\n return event.data as any\r\n }\r\n }\r\n}\r\n\r\ntype TmaRequestHandle = TmaEvent &\r\n Pick, \"requestBody\" | \"storage\"> & { temporaryRequestBody?: { context: StoreContext }; data?: unknown }\r\nclass TmaErrors {\r\n static instance?: TmaErrors\r\n\r\n static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new TmaErrors()\r\n }\r\n\r\n return this.instance\r\n }\r\n\r\n static log(e: any) {\r\n const errors = JSON.parse(sessionStorage.getItem(\"errors\") || \"{}\")\r\n errors.tma = errors.tma || {}\r\n errors.tma = e\r\n sessionStorage.setItem(\"errors\", JSON.stringify(errors))\r\n }\r\n\r\n static showlog() {\r\n const errors = JSON.parse(sessionStorage.getItem(\"errors\") || \"{}\")\r\n errors.tma = errors.tma || {}\r\n console.warn(errors)\r\n }\r\n}\r\n","import ArticleListFilteredEvent from \"./events/article-list-filtered\"\r\nimport LoggedIn from \"./events/logged-in\"\r\nimport AddToBasket from \"./events/add-to-basket\"\r\nimport VehicleSelection from \"./events/vehicle-selection/event-handle\"\r\nimport ModuleCalledSwitch from \"./events/module-called\"\r\nimport PremiumUniPartsSearchEvent from \"./events/premium-uni-parts-search\"\r\nimport ArticleListErpInfoShownEvent from \"./events/article-list-erp-info-shown/event-handle\"\r\nimport ArticleEvent from \"./events/article\"\r\nimport ArticleDetailsPDFEvent from \"./events/articlePDFClick\"\r\nimport DetailsFormCallEvent from \"./events/detailsFormCall\"\r\nimport ArticleComparisonEvent from \"./events/articleComparison\"\r\nimport GeneralCountEvent from \"./events/generalCount\"\r\n\r\nexport const EventCollection = [\r\n AddToBasket,\r\n ArticleListFilteredEvent,\r\n LoggedIn,\r\n VehicleSelection,\r\n ModuleCalledSwitch,\r\n PremiumUniPartsSearchEvent,\r\n ArticleListErpInfoShownEvent,\r\n ArticleEvent,\r\n ArticleDetailsPDFEvent,\r\n DetailsFormCallEvent,\r\n ArticleComparisonEvent,\r\n GeneralCountEvent,\r\n]\r\n","import { RepairTimeProvider, TmaEModule, UserInteractionLog } from \"@tm/models\"\r\nimport { TmaEventTracking } from \"../..\"\r\nimport { uniqueId } from \"../../..\"\r\nimport { getCatalogOrigin } from \"../../helper/origin\"\r\n\r\nfunction getCatalogOriginByRepairTimeProvider(repairTimeProvider: RepairTimeProvider) {\r\n switch (repairTimeProvider) {\r\n case RepairTimeProvider.AwDocCar:\r\n return TmaEModule.REPTIMES_AWDOC\r\n case RepairTimeProvider.Autodata:\r\n return TmaEModule.REPTIMES_AUTODATA\r\n case RepairTimeProvider.HaynesProCar:\r\n return TmaEModule.REPTIMES_HAYNES\r\n case RepairTimeProvider.TecRmiCar:\r\n return TmaEModule.REPTIMES_AUDACON\r\n default:\r\n return TmaEModule.UNDEFINED\r\n }\r\n}\r\n\r\nfunction isRepairTimeModule(repairTimeProvider: RepairTimeProvider, origin?: TmaEModule) {\r\n origin = origin ?? getCatalogOrigin()\r\n\r\n return origin === getCatalogOriginByRepairTimeProvider(repairTimeProvider)\r\n}\r\n\r\nexport const AddRepairTimeListEventHelper = {\r\n AddRepairTimeList: {\r\n GetUserInteractionLog: (repairTimeProvider: RepairTimeProvider): UserInteractionLog => {\r\n const origin = getCatalogOrigin()\r\n\r\n if (isRepairTimeModule(repairTimeProvider, origin)) {\r\n return {\r\n eventId: uniqueId(),\r\n origin,\r\n }\r\n }\r\n\r\n const articleListFilteredRequest = TmaEventTracking.getRequestData(\"ARTICLE_LIST_FILTERED\")\r\n\r\n if (articleListFilteredRequest?.searchStep) {\r\n return {\r\n eventId: uniqueId(),\r\n id: articleListFilteredRequest.searchStep!.processId,\r\n stepNumber: articleListFilteredRequest.searchStep!.number,\r\n fromPageNumber: articleListFilteredRequest.articleList?.paging.pageIndex,\r\n fromPositionNumber: undefined,\r\n origin: articleListFilteredRequest.origin ?? origin,\r\n }\r\n }\r\n\r\n return {\r\n eventId: uniqueId(),\r\n origin,\r\n }\r\n },\r\n },\r\n}\r\n","import { Article, ErpPartsModifiers, AvailabilityStatus, TmaEModule } from \"@tm/models\"\r\nimport { CatalogPartAddedRequest } from \"./models\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { EventStorage } from \"../event-storage\"\r\nimport { ArticleListFilteredEvent } from \"../article-list-filtered/event-handle\"\r\nimport { ArticleListFilteredRequest } from \"../article-list-filtered/models\"\r\nimport { TmaEvent, TrackingModel } from \"../../models/models\"\r\n\r\nexport type AddToBasketEventPayload = {\r\n article: Article\r\n vehicleId?: string\r\n foundBySearchTerm?: string\r\n quantityModifiers?: ErpPartsModifiers\r\n\r\n vehicleEngineCode?: string\r\n}\r\n\r\nexport class AddToBasketEvent extends TmaSender implements TmaEvent {\r\n key = \"ADD_TO_BASKET\"\r\n\r\n autocompleteResults: Array = []\r\n\r\n constructor() {\r\n // extending tma sender needs to set\r\n super(`/basket/catalogPartAdded`)\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: TrackingModel): boolean => {\r\n if (trackingData.tmaEvent && trackingData.tmaEvent == this.key && trackingData.payload) {\r\n // check needed props\r\n // check if previous request is fullfilled\r\n const { article, foundBySearchTerm, quantityModifiers, vehicleEngineCode, vehicleId } = trackingData.payload\r\n\r\n this.requestBody.origin = TmaEModule.SHOPPING_CART\r\n\r\n if (article) {\r\n this.requestBody.catalogPart = {\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: article.supplier.id,\r\n productGroupIds: [article.productGroup.id],\r\n wholesalerArticleNumber: article.traderArticleNo,\r\n availabilityState: {\r\n id:\r\n (quantityModifiers?.availability &&\r\n quantityModifiers.availability !== AvailabilityStatus.Unknown &&\r\n AvailabilityStatus[quantityModifiers.availability]) ||\r\n \"\",\r\n description: quantityModifiers?.availability?.toString() || \"\",\r\n },\r\n }\r\n }\r\n\r\n if (vehicleId) {\r\n this.requestBody.vehicleId = vehicleId\r\n }\r\n\r\n if (vehicleEngineCode) {\r\n this.requestBody.vehicleIdentification = {\r\n key: \"\", // TODO ADD\r\n typeId: 0, // TODO ADD\r\n }\r\n }\r\n\r\n if (foundBySearchTerm) {\r\n this.requestBody.foundByQuery = foundBySearchTerm\r\n }\r\n\r\n this.extendStepNumber()\r\n }\r\n\r\n return false\r\n }\r\n\r\n extendStepNumber = () => {\r\n const articleFilteredEventStore = new EventStorage(ArticleListFilteredEvent.serviceEndpoint)\r\n const requestBody = articleFilteredEventStore.get()\r\n if (requestBody && requestBody.searchStep) {\r\n this.requestBody.searchStepContext = {\r\n pageNumber: (requestBody.articleList && requestBody.articleList.paging.pageIndex) || 0,\r\n searchStep: {\r\n processId: requestBody.searchStep.processId,\r\n number: requestBody.searchStep.number,\r\n },\r\n }\r\n }\r\n }\r\n}\r\n","import { UserInteractionLog, TmaEModule, ArticleListRouteKey } from \"@tm/models\"\r\nimport { TmaEventTracking } from \"../..\"\r\nimport { uniqueId } from \"../../..\"\r\nimport { AddToBasketTrigger } from \"./models\"\r\nimport { getCatalogOrigin } from \"../../helper/origin\"\r\n\r\nexport interface ArticleListViewOptions {\r\n compactView: boolean\r\n showArticleImages: boolean\r\n showVehicleRecordsFilters: boolean\r\n}\r\n\r\nexport const AddToBasket = {\r\n AddCatalogPartToBasket: {\r\n GetUserInteractionLog: (positionNumber?: number, origin?: TmaEModule, skip?: boolean): UserInteractionLog | undefined => {\r\n const request = TmaEventTracking.getRequestData(\"ARTICLE_LIST_FILTERED\")\r\n\r\n if (request?.searchStep) {\r\n return {\r\n eventId: uniqueId(),\r\n id: request.searchStep!.processId,\r\n stepNumber: request.searchStep!.number,\r\n fromPageNumber: request.articleList?.paging.pageIndex,\r\n fromPositionNumber: positionNumber,\r\n foundByQuery: request.querySearch?.query,\r\n origin: origin ?? request.origin,\r\n vin: request.vin,\r\n searchFilters: request.searchFilters,\r\n vehicleDataSourceId: request.vehicleIdentification?.typeId,\r\n query: request.vehicleIdentification?.key\r\n }\r\n }\r\n\r\n return skip ? undefined : AddToBasket.AddCustomToBasket.GetUserInteractionLog(undefined, origin)\r\n },\r\n },\r\n AddUniPartToBasket: {\r\n GetUserInteractionLog: (positionNumber?: number, origin?: TmaEModule, skip?: boolean): UserInteractionLog | undefined => {\r\n const request = TmaEventTracking.getRequestData(\"PREMIUM_UNI_PARTS_SEARCH\")\r\n\r\n if (request?.searchStep) {\r\n return {\r\n eventId: uniqueId(),\r\n id: request.searchStep.processId,\r\n stepNumber: request.searchStep.number,\r\n fromPageNumber: request.articleList?.paging.pageIndex,\r\n fromPositionNumber: positionNumber,\r\n foundByQuery: request.query,\r\n origin: origin ?? request.origin,\r\n }\r\n }\r\n\r\n return skip ? undefined : AddToBasket.AddCustomToBasket.GetUserInteractionLog(undefined, origin)\r\n },\r\n },\r\n AddCustomToBasket: {\r\n GetUserInteractionLog: (addToBasketTrigger?: AddToBasketTrigger, origin?: TmaEModule): UserInteractionLog => {\r\n origin = origin ?? getCatalogOrigin()\r\n\r\n // TODO - remove trigger if all cases have been taken into account\r\n switch (addToBasketTrigger) {\r\n case \"import\":\r\n case \"customArticle\":\r\n case \"wholesalerPartList\":\r\n case \"oeArticle\":\r\n case \"externalArticle\":\r\n break\r\n }\r\n\r\n return {\r\n eventId: uniqueId(),\r\n id: uniqueId(),\r\n origin,\r\n }\r\n },\r\n },\r\n DeterminePartsListOriginByRouteKey: (routeKey: ArticleListRouteKey | undefined): TmaEModule | undefined => {\r\n switch (routeKey) {\r\n case \"details-partslist\":\r\n case \"details-mainpartslist\":\r\n return TmaEModule.ARTICLE_DETAILS_PARTSLIST\r\n case \"details-mainaccessories\":\r\n case \"details-accessories\":\r\n return TmaEModule.AERTICLE_DETAILS_ACCESSORYLIST\r\n case \"details-erp-pawn-articles\":\r\n case \"details-erp-obligated-articles\":\r\n case \"details-erp-accessory-articles\":\r\n return TmaEModule.ARTICLE_ERPINFOFORM\r\n case \"details-erp-alternative-articles\":\r\n case \"details-erp-replacement-articles\":\r\n case \"details-erp-linked-articles\":\r\n case \"vehicle-ordered-articles\":\r\n return TmaEModule.ARTICLE_DETAILS\r\n // case \"parts-offers-list\":\r\n // case \"part-alternatives\":\r\n // case \"parts-vehicles-list\":\r\n // case \"parts-direct-list\":\r\n // return TmaEModule.ARTICLE_LIST\r\n // case \"parts-universal-list\":\r\n // return TmaEModule.PREMIUMUNIPARTSSEARCH_ARTICLE_LIST\r\n default:\r\n return undefined\r\n }\r\n },\r\n}\r\n","import { AddToBasketEvent } from \"./event-handle\"\r\n\r\nexport type AddToBasketTrackEvent = {\r\n action: string // \"parts-search\"\r\n bundle: string // \"parts\"\r\n component: string // \"tree\"\r\n initiateProcess: boolean // true\r\n payload: any // (4) [{…}, {…}, {…}, {…}]\r\n source: string // \"searchtree\"\r\n step: number // 1\r\n tmaEvent: string // \"ARTICLE_LIST_FILTERED\"\r\n type: string // \"search\"\r\n}\r\n\r\nexport default new AddToBasketEvent()\r\n","import { Article, ErpInformation, GetArticlesRequest, GetArticlesResponse } from \"@tm/models\"\r\nimport { CatalogPartErpInfo } from \"./models\"\r\nimport { TmaSender } from \"../tma-sender\"\r\n\r\nimport { TmaEventTracking } from \"../..\"\r\nimport { TmaEvent, TrackingModel } from \"../../models/models\"\r\nimport { PagingDto, SearchStepDto } from \"../../models/requests\"\r\nimport { mapErpInformation } from \"./event-helper\"\r\n\r\ntype RequestBody = {\r\n distributorId?: number\r\n catalogPartErpInfos: CatalogPartErpInfo[]\r\n paging?: PagingDto\r\n searchStep?: SearchStepDto\r\n}\r\n\r\nconst InitialRequestBody: RequestBody = {\r\n catalogPartErpInfos: [],\r\n}\r\n\r\ntype GetArticlesPayload = {\r\n request: GetArticlesRequest\r\n result: GetArticlesResponse | undefined\r\n}\r\n\r\ntype AddErpResponsePayload = {\r\n distributorId: number\r\n erpInfo: ErpInformation[]\r\n}\r\n\r\ntype SendEventPayload = {\r\n distributorId: number\r\n}\r\n\r\ntype Payload = GetArticlesPayload | AddErpResponsePayload | SendEventPayload\r\nexport type { Payload as ArticleListErpInfoShownPayload }\r\n\r\nexport class ArticleListErpInfoShownEvent extends TmaSender implements TmaEvent {\r\n public key = \"ArticleList_ErpInfo_Shown\"\r\n\r\n /** Contain the latest data for the current article list. */\r\n articleList: Article[]\r\n\r\n /** Contains the latest data for each configured erp system. */\r\n erpData: Map\r\n\r\n constructor() {\r\n super(`/articles/articleListErpInfoShown`)\r\n this.requestBody = InitialRequestBody\r\n this.articleList = []\r\n this.erpData = new Map()\r\n }\r\n\r\n public handle = (trackingData: TrackingModel): boolean => {\r\n const { tmaEvent, action, payload } = trackingData\r\n\r\n if (tmaEvent !== this.key || !payload) {\r\n return false\r\n }\r\n\r\n if (Array.isArray(action)) {\r\n action.forEach((value) => this.processEventHandle(value, payload))\r\n } else {\r\n this.processEventHandle(action, payload)\r\n }\r\n\r\n return false\r\n }\r\n\r\n private processEventHandle = (action: string, payload: Payload): void => {\r\n switch (action) {\r\n /** This will be called when the article list was loaded so we can save the current article data. */\r\n case \"get-articles\": {\r\n const { request, result } = payload as GetArticlesPayload\r\n\r\n if (typeof request === \"object\") {\r\n this.articleList = result?.articles?.filter((x) => x.requestErpInfo) ?? [] // Only consider articles for which erp requests should be made.\r\n this.erpData.clear() // Reset the stored erp data as it is not valid for this article list anymore.\r\n }\r\n\r\n break\r\n }\r\n\r\n /** This will be called when the erp information was loaded. */\r\n case \"add-erp-response\": {\r\n const { distributorId, erpInfo } = payload as AddErpResponsePayload\r\n\r\n // Sanity check: When there is no erp information we don't have to do anything.\r\n if (erpInfo.length == 0) {\r\n break\r\n }\r\n\r\n const erpData = this.erpData.get(distributorId)\r\n if (erpData) {\r\n erpData.push(...erpInfo)\r\n } else {\r\n this.erpData.set(distributorId, [...erpInfo])\r\n }\r\n\r\n break\r\n }\r\n\r\n /** This will be called when all erp information for a distributor was loaded and the event should be sent. */\r\n case \"send-event\": {\r\n const { distributorId } = payload as SendEventPayload\r\n\r\n const erpData = this.erpData.get(distributorId)\r\n\r\n // Sanity check: When there is no erp data for this distributor we don't have to do anything.\r\n if (!erpData) {\r\n break\r\n }\r\n\r\n // Get the latest data for the \"ARTICLE_LIST_FILTERED\" event because we also need that data for this event.\r\n const articleListFilteredEvent = TmaEventTracking.getRequestData(\"ARTICLE_LIST_FILTERED\")\r\n\r\n this.requestBody = {\r\n distributorId: distributorId > 0 ? distributorId : undefined, // Only send valid values for distributorId\r\n catalogPartErpInfos: erpData.map((x) => {\r\n const { productGroup, articleListPosition } = this.articleList.find((article) => article.id == x.itemId) ?? {}\r\n return mapErpInformation(x, productGroup?.id, articleListPosition)\r\n }),\r\n paging: articleListFilteredEvent?.articleList?.paging,\r\n searchStep: articleListFilteredEvent?.searchStep,\r\n }\r\n\r\n this.sendEvent()\r\n this.resetEvent(InitialRequestBody)\r\n\r\n this.erpData.delete(distributorId)\r\n\r\n break\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default new ArticleListErpInfoShownEvent()\r\n","import { AvailabilityStatus, ErpInformation, ErpPrice, PriceDictionary, PriceType } from \"@tm/models\"\r\nimport { TmaEventTracking } from \"../..\"\r\nimport { ArticleListErpInfoShownPayload } from \"./event-handle\"\r\nimport { CatalogPartErpInfo } from \"./models\"\r\n\r\nexport const ArticleListErpInfoShownHelper = {\r\n async AddErpResponse(distributorId: number, erpInfo: ErpInformation[]) {\r\n if (!erpInfo) {\r\n return\r\n }\r\n\r\n try {\r\n const payload: ArticleListErpInfoShownPayload = {\r\n distributorId,\r\n erpInfo,\r\n }\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ArticleList_ErpInfo_Shown\",\r\n action: \"add-erp-response\",\r\n bundle: \"erp\",\r\n component: \"erp-prices\",\r\n source: \"ajax\",\r\n type: \"request\",\r\n payload,\r\n })\r\n } catch {}\r\n },\r\n async SendEvent(distributorId: number) {\r\n try {\r\n const payload: ArticleListErpInfoShownPayload = {\r\n distributorId,\r\n }\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ArticleList_ErpInfo_Shown\",\r\n action: \"send-event\",\r\n bundle: \"erp\",\r\n component: \"erp-prices\",\r\n source: \"ajax\",\r\n type: \"request\",\r\n payload,\r\n })\r\n } catch {}\r\n },\r\n async AddErpInfoAndSend(distributorId: number, erpInfo?: ErpInformation[]) {\r\n try {\r\n const payload: ArticleListErpInfoShownPayload = {\r\n distributorId,\r\n erpInfo,\r\n }\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ArticleList_ErpInfo_Shown\",\r\n action: [\"add-erp-response\", \"send-event\"],\r\n bundle: \"erp\",\r\n component: \"erp-prices\",\r\n source: \"ajax\",\r\n type: \"request\",\r\n payload,\r\n })\r\n } catch {}\r\n },\r\n}\r\n\r\nfunction mapPrices(erpPrices: ErpPrice[]) {\r\n const prices: PriceDictionary = {}\r\n\r\n erpPrices.forEach((price) => {\r\n prices[price.type] = {\r\n currencyCode: price.currencyCode_Iso_4217,\r\n currencySymbol: price.currencySymbol,\r\n type: price.type,\r\n value: price.value,\r\n memos: price.memos,\r\n rebate: price.rebate,\r\n typeName: PriceType[price.type],\r\n unit: price.priceUnit,\r\n vat: price.vat,\r\n }\r\n })\r\n return prices\r\n}\r\n\r\nexport function mapErpInformation(\r\n erpInfoItem: ErpInformation,\r\n productGroupId: number | undefined,\r\n positionNumber: number | undefined\r\n): CatalogPartErpInfo {\r\n return {\r\n id: erpInfoItem.itemId,\r\n catalogPart: {\r\n availabilityState: {\r\n description: erpInfoItem.availability.description ?? \"\",\r\n id: (erpInfoItem.availability.type ?? AvailabilityStatus.Unknown).toString(),\r\n },\r\n dataSupplierArticleNumber: erpInfoItem.dataSupplierArticleNumber,\r\n dataSupplierId: erpInfoItem.dataSupplierId,\r\n wholesalerArticleNumber: erpInfoItem.wholesalerArticleNumber,\r\n productGroupIds: productGroupId ? [productGroupId] : [],\r\n },\r\n hasImsChange: false,\r\n positionNumber: positionNumber ?? -1,\r\n prices: mapPrices(erpInfoItem.prices ?? []),\r\n }\r\n}\r\n","import { CategoryType, channel, GetArticlesRequest, GetArticlesResponse, Article, Vehicle, TmaEModule } from \"@tm/models\"\r\nimport { getCategoryTypeFromUrl, uniqueId } from \"../../..\"\r\n\r\nimport { Dictionary } from \"../../../types\"\r\nimport { Filter, QuerySearchType, TmaEvent, TrackingModel } from \"../../models/models\"\r\nimport { ArticleListViewOptionsType } from \"../../models/requests\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { ArticleListViewOptions } from \"./event-helper\"\r\nimport { EventSubmitDelay } from \"./event-submit-delay\"\r\nimport { compareContext, createEvent, getPageIndexMax, isModal } from \"./helper\"\r\nimport { AnalyticsData, ArticleListFilteredRequest, ProductGroupDataSupplier, SearchFilter, SearchFilterCount } from \"./models\"\r\nimport { StoreContext } from \"../event-storage\"\r\nimport { QuerySearch } from \"../base-event-models\"\r\nimport { cleanContextUrl } from \"../../helper/context\"\r\nimport { isArray } from \"lodash\"\r\n\r\ntype SearchQueryPayload = {\r\n query: string\r\n categoryType: CategoryType\r\n origin: TmaEModule\r\n searchType: QuerySearchType\r\n}\r\n\r\nexport class ArticleListFilteredEvent extends TmaSender implements TmaEvent {\r\n key = \"ARTICLE_LIST_FILTERED\"\r\n\r\n static serviceEndpoint = \"/articles/articleListFiltered\"\r\n\r\n currentVehicleId?: string\r\n\r\n searchFilters: Array = []\r\n\r\n autocompleteResults: Array = []\r\n\r\n additionalAnalyticsData: AnalyticsData\r\n\r\n categories: Dictionary = {}\r\n\r\n moduleMode: string | undefined\r\n\r\n plugin: EventSubmitDelay\r\n\r\n shouldSendEvent: boolean\r\n\r\n temporaryRequestBody: ArticleListFilteredRequest\r\n\r\n constructor(plugin: EventSubmitDelay) {\r\n // extending tma sender needs to set\r\n super(ArticleListFilteredEvent.serviceEndpoint)\r\n\r\n this.additionalAnalyticsData = {\r\n filter: {\r\n available: undefined,\r\n },\r\n }\r\n this.shouldSendEvent = false\r\n this.temporaryRequestBody = createEvent.initial()\r\n\r\n this.plugin = plugin.init(this)\r\n\r\n this.initializePortalEvents()\r\n }\r\n\r\n initializePortalEvents = () => {\r\n const globalChannel = channel(\"GLOBAL\")\r\n globalChannel.subscribe(\"VEHICLE/RESET\", () => {\r\n this.currentVehicleId = undefined\r\n })\r\n globalChannel.subscribe(\r\n \"VEHICLE/LOADED\",\r\n (vehicle: Vehicle) => {\r\n this.currentVehicleId = vehicle.id\r\n },\r\n true\r\n )\r\n globalChannel.subscribe(\"MVC/RESIZE\", (data: any) => (this.moduleMode = data.moduleMode))\r\n globalChannel.subscribe(\"WORKTASK/ID_CHANGED\", (worktask) => {\r\n if (worktask.id && worktask.previousId) {\r\n this.finalizeEventAndReset()\r\n }\r\n })\r\n }\r\n\r\n handle = (trackingData: TrackingModel): boolean => {\r\n if (!trackingData.tmaEvent || trackingData.tmaEvent !== this.key || !trackingData.payload) {\r\n return false\r\n }\r\n\r\n const currentContext = this.storage.getContext()\r\n const tmpContext = this.temporaryRequestBody?.context\r\n\r\n if (tmpContext && tmpContext.contextId.indexOf(\"startpage\") >= 0 && !compareContext(currentContext, tmpContext)) {\r\n this.contextChanged(currentContext)\r\n }\r\n\r\n if (!this.temporaryRequestBody.searchStep) {\r\n if (!this.requestBody.searchStep) {\r\n this.temporaryRequestBody = createEvent.initial()\r\n this.shouldSendEvent = false\r\n } else {\r\n // if no searchstep is available and there is a stored (sessionStorage) requestbody use this\r\n this.loadRequest()\r\n }\r\n }\r\n\r\n this.handleEvent(trackingData)\r\n\r\n return false\r\n }\r\n\r\n private handleEvent = (trackingData: TrackingModel) => {\r\n switch (trackingData.bundle) {\r\n case \"parts\":\r\n case \"api\": {\r\n if (Array.isArray(trackingData.action)) {\r\n trackingData.action.forEach((action) => this.fillRequest(trackingData, action))\r\n } else {\r\n this.fillRequest(trackingData, trackingData.action)\r\n }\r\n\r\n if (this.shouldSendEvent) {\r\n this.saveChanges(this.temporaryRequestBody) // to make sure the current state is saved to the sessionStorage\r\n\r\n try {\r\n this.sendEvent(this.temporaryRequestBody)\r\n } catch (ex) {\r\n console.error(ex)\r\n }\r\n\r\n this.shouldSendEvent = false\r\n }\r\n\r\n break\r\n }\r\n default: {\r\n break\r\n }\r\n }\r\n }\r\n\r\n private fillRequest = (trackingData: TrackingModel, action: string) => {\r\n const { payload } = trackingData\r\n const { request, result } = payload\r\n\r\n switch (action) {\r\n case \"get-articles\": {\r\n this.temporaryRequestBody.workTaskId = payload.worktaskId\r\n this.temporaryRequestBody.vehicleIdentification = payload.vehicleIdentification\r\n this.temporaryRequestBody.extendedAssortment = request.extendedAssortment\r\n\r\n // before calling attachSearchQuery the event should always be resetted.\r\n // this was because in earlier version on reload the query was los\r\n // this.attachSearchQuery(payload)\r\n\r\n this.temporaryRequestBody.fittingSideFilter = request.fittingSideFilter as any\r\n this.attachQueryAndOrigin(payload)\r\n this.attachArticleListInfo(request, result)\r\n this.attachSearchTree(request)\r\n this.attachProductGroupsToSupplier(result)\r\n this.saveRequestForCategorySwap()\r\n this.setOriginIfUnset(payload.origin) // this is needed due to a reload of the articlelist\r\n\r\n if (this.temporaryRequestBody.vehicleId != this.currentVehicleId) {\r\n this.temporaryRequestBody.vehicleId = this.currentVehicleId\r\n }\r\n\r\n this.shouldSendEvent = !!this.temporaryRequestBody.articleList\r\n break\r\n }\r\n\r\n case \"cdm\": {\r\n // component did mount\r\n const vehicle = payload\r\n if (vehicle) {\r\n this.temporaryRequestBody.vehicleId = vehicle?.id?.toString()\r\n }\r\n\r\n break\r\n }\r\n\r\n case \"autocomplete\": {\r\n const { hits } = payload\r\n\r\n if (hits && Array.isArray(hits)) {\r\n this.autocompleteResults = hits\r\n }\r\n break\r\n }\r\n\r\n case \"trackAnalyticsData\": {\r\n const { filter } = payload\r\n const currentContext = this.storage.getContext()\r\n if (this.temporaryRequestBody.context && !compareContext(currentContext, this.temporaryRequestBody.context)) {\r\n this.finalizeEventAndReset()\r\n }\r\n\r\n if (filter) {\r\n this.attachFilters(filter)\r\n }\r\n break\r\n }\r\n\r\n case \"oe-position-changed\": {\r\n const { oeNumber } = payload\r\n\r\n if (oeNumber?.length) {\r\n this.temporaryRequestBody.querySearch = this.createQuerySearch(oeNumber, QuerySearchType.Direct)\r\n }\r\n break\r\n }\r\n\r\n case \"nodeSelected\":\r\n case \"handleSelectNode\":\r\n case \"handleChangeBreadcrumbs\":\r\n {\r\n const { nodeId, treeId, origin } = payload\r\n\r\n this.finalizeEventAndReset()\r\n\r\n this.temporaryRequestBody.origin = this.temporaryRequestBody.origin || origin\r\n\r\n if (treeId || nodeId) {\r\n this.temporaryRequestBody.searchTree = {\r\n nodeId,\r\n treeId,\r\n }\r\n }\r\n }\r\n\r\n break\r\n\r\n case \"keyword-search-utilityno-click\": {\r\n this.finalizeEventAndReset() // this is a new event i don't know if the old event is still handled by the delayed submit\r\n // reset is function overwritten inside the delayed handler and the temporary request has to be resetted immediatly.\r\n // in the future both handler normal and delayed will be merged or completly rewritten\r\n this.attachQueryAndOrigin(payload)\r\n break\r\n }\r\n\r\n case \"keyword-search-context\": {\r\n if (this.temporaryRequestBody.eventStatus !== \"initial\" && this.temporaryRequestBody.querySearch?.query !== payload.query) {\r\n this.finalizeEventAndReset()\r\n }\r\n\r\n this.attachQueryAndOrigin(payload)\r\n break\r\n }\r\n\r\n case \"keyword-search-redirect\": {\r\n const { query, origin, targetUrl } = payload\r\n\r\n this.resetTemporaryRequest()\r\n this.reset()\r\n\r\n this.temporaryRequestBody.context = {\r\n identifier: this.serviceEndpoint,\r\n contextId: cleanContextUrl(targetUrl),\r\n }\r\n this.attachQueryAndOrigin(query)\r\n this.setOrigin(origin)\r\n break\r\n }\r\n\r\n case \"handleSearch\": {\r\n const { query } = this.temporaryRequestBody.querySearch || {}\r\n if (query != payload.query) {\r\n this.finalizeEventAndReset()\r\n }\r\n this.attachQueryAndOrigin(payload)\r\n break\r\n }\r\n\r\n case \"handleExternalSearch\":\r\n case \"search-context\": {\r\n // this one is duplicated. use keyword-search-context, inside attachSearchQeury the origin get set. could be moved to switch case\r\n this.resetTemporaryRequest()\r\n this.attachQueryAndOrigin(payload)\r\n this.setOrigin(payload.origin)\r\n this.temporaryRequestBody.vin = payload.extraData?.vin\r\n break\r\n }\r\n\r\n case \"increase-step-number\": {\r\n this.temporaryRequestBody.searchStep = {\r\n number: !this.temporaryRequestBody.searchStep ? 1 : ++this.temporaryRequestBody.searchStep.number,\r\n processId: !this.temporaryRequestBody.searchStep ? uniqueId() : this.temporaryRequestBody.searchStep.processId,\r\n }\r\n break\r\n }\r\n\r\n case \"viewoptions-set\": {\r\n // ARTLISTVIEWOPT\r\n // wird nicht aufgerufen\r\n const payload = trackingData.payload as { viewOptions: ArticleListViewOptions }\r\n if (payload && payload.viewOptions) {\r\n const { viewOptions } = payload\r\n this.temporaryRequestBody.viewOptions = viewOptions.compactView\r\n ? ArticleListViewOptionsType.Compact\r\n : ArticleListViewOptionsType.Detailed\r\n this.temporaryRequestBody.viewOptions = viewOptions.showArticleImages\r\n ? this.temporaryRequestBody.viewOptions | ArticleListViewOptionsType.Images\r\n : this.temporaryRequestBody.viewOptions\r\n }\r\n break\r\n }\r\n\r\n case \"viewoptions-changed\": {\r\n // ARTLISTVIEWOPT\r\n // wird nicht aufgerufen\r\n const payload = trackingData.payload as { viewOptions: ArticleListViewOptions }\r\n if (payload && payload.viewOptions) {\r\n const { viewOptions } = payload\r\n this.temporaryRequestBody.viewOptions = viewOptions.compactView\r\n ? ArticleListViewOptionsType.Compact\r\n : ArticleListViewOptionsType.Detailed\r\n this.temporaryRequestBody.viewOptions = viewOptions.showArticleImages\r\n ? this.temporaryRequestBody.viewOptions | ArticleListViewOptionsType.Images\r\n : this.temporaryRequestBody.viewOptions\r\n\r\n if (this.temporaryRequestBody.searchStep) {\r\n this.temporaryRequestBody.searchStep.number = this.temporaryRequestBody.searchStep.number + 1\r\n }\r\n }\r\n break\r\n }\r\n case \"init-search-filters\": {\r\n this.searchFilters = payload.searchFilters\r\n this.temporaryRequestBody.searchFilters = this.searchFilters\r\n break\r\n }\r\n case \"set-search-filters-count\": {\r\n const isDirectSearch = this.temporaryRequestBody.querySearch?.searchType == QuerySearchType.Direct\r\n || getCategoryTypeFromUrl(document.location.pathname) == \"directSearch\"\r\n\r\n if (isDirectSearch && isArray(payload?.searchFiltersCount)) {\r\n payload.searchFiltersCount.forEach((searchFilterCount: SearchFilterCount) => {\r\n const match = this.searchFilters.find((searchFilter) => searchFilter.id === searchFilterCount.filterType)\r\n\r\n if (match) {\r\n match.articleCount = searchFilterCount.count\r\n }\r\n })\r\n }\r\n\r\n this.temporaryRequestBody.searchFilters = this.searchFilters\r\n break\r\n }\r\n case \"set-search-filters\": {\r\n this.searchFilters = payload.searchFilters\r\n if (\r\n this.temporaryRequestBody.querySearch?.searchType == QuerySearchType.Direct ||\r\n getCategoryTypeFromUrl(document.location.pathname) == \"directSearch\"\r\n ) {\r\n this.temporaryRequestBody.searchFilters = this.searchFilters\r\n }\r\n\r\n break\r\n }\r\n case \"swap-category\": {\r\n this.resetTemporaryRequest() // now resetprocess to generate a new process and stepnumber\r\n break\r\n }\r\n }\r\n }\r\n\r\n private setOriginIfUnset = (origin: TmaEModule) => {\r\n this.temporaryRequestBody.origin = this.temporaryRequestBody.origin || origin\r\n }\r\n\r\n saveRequestForCategorySwap = () => {\r\n const searchType = this.temporaryRequestBody.querySearch?.searchType\r\n\r\n switch (searchType) {\r\n case QuerySearchType.Direct: {\r\n this.categories.directSearch = this.temporaryRequestBody\r\n break\r\n }\r\n case QuerySearchType.Synonym: {\r\n this.categories.vehicleParts = this.temporaryRequestBody\r\n break\r\n }\r\n }\r\n }\r\n\r\n reset = () => {\r\n const { context, searchStep } = this.temporaryRequestBody\r\n if (context) {\r\n this.storage.delete(context)\r\n searchStep && this.storage.removeModifiedState(searchStep.processId)\r\n }\r\n }\r\n\r\n resetTemporaryRequest = () => {\r\n const initialEvent = createEvent.initial(this.temporaryRequestBody.vehicleId)\r\n this.temporaryRequestBody = initialEvent\r\n this.shouldSendEvent = false\r\n }\r\n\r\n finalizeEventAndReset = () => {\r\n this.reset()\r\n this.resetTemporaryRequest()\r\n }\r\n\r\n contextChanged = (newContext: StoreContext) => {\r\n if (!this.temporaryRequestBody.context) {\r\n return\r\n }\r\n\r\n const { contextId } = this.temporaryRequestBody.context\r\n\r\n if (contextId === \"startpage\" || contextId === \"dashboard\") {\r\n this.storage.delete(this.temporaryRequestBody.context)\r\n this.temporaryRequestBody.context = newContext\r\n }\r\n\r\n this.saveChanges(this.temporaryRequestBody)\r\n }\r\n\r\n initOrRestoreContent = (newContext: StoreContext) => {\r\n const storedRequest = this.storage.loadContent(newContext)\r\n if (storedRequest) {\r\n this.temporaryRequestBody = storedRequest\r\n } else {\r\n this.reset() // call reset because of the completed event\r\n this.temporaryRequestBody.context = newContext\r\n }\r\n\r\n if (this.temporaryRequestBody.context?.contextId.includes(\"modal\")) {\r\n this.temporaryRequestBody.eventStatus = \"completed\"\r\n }\r\n }\r\n\r\n saveChanges = (newRequestBody: ArticleListFilteredRequest) => {\r\n if (newRequestBody.context && isModal(newRequestBody.context?.contextId)) {\r\n newRequestBody.eventStatus = \"completed\" // modal event s will not be saved and send directly\r\n return\r\n }\r\n // todo future changes, change this to something like this.storage.saveRequest()\r\n this.requestBody = newRequestBody\r\n }\r\n\r\n loadRequest = () => {\r\n return (this.temporaryRequestBody = this.requestBody || createEvent.initial())\r\n }\r\n\r\n private setOrigin = (origin: TmaEModule) => {\r\n this.temporaryRequestBody.origin = origin\r\n }\r\n\r\n private attachQueryAndOrigin = ({ query, origin, searchType }: SearchQueryPayload) => {\r\n this.temporaryRequestBody.origin = this.temporaryRequestBody.origin || origin\r\n\r\n if (query) {\r\n this.temporaryRequestBody.querySearch = this.mergeQuerySearch(this.createQuerySearch(query, searchType))\r\n }\r\n }\r\n\r\n private mergeQuerySearch = (querySearch: QuerySearch) => {\r\n if (!this.temporaryRequestBody.querySearch) {\r\n return querySearch\r\n }\r\n const tmpQuerySearch = this.temporaryRequestBody.querySearch\r\n tmpQuerySearch.autocompleteEntryExists = querySearch.autocompleteEntryExists\r\n tmpQuerySearch.query = tmpQuerySearch.query ?? querySearch.query\r\n tmpQuerySearch.searchType = tmpQuerySearch.searchType ?? querySearch.searchType\r\n return tmpQuerySearch\r\n }\r\n\r\n private createQuerySearch = (query: string, searchType: QuerySearchType) => {\r\n return {\r\n autocompleteEntryExists: !!this.autocompleteResults.find((item) => !!query && item.toLowerCase().startsWith(query.toLowerCase())),\r\n query,\r\n searchType,\r\n }\r\n }\r\n\r\n attachFilters = (filters: any) => {\r\n filters.available && this.attachSupplierFilters(filters.available.dataSupplierFilters || [])\r\n filters.available && this.attachProductGroupFilters(filters.available.productGroupFilters || [])\r\n }\r\n\r\n attachSupplierFilters = (suppliers: Array) => {\r\n if (!suppliers || suppliers.length === 0) {\r\n return\r\n }\r\n\r\n this.temporaryRequestBody.dataSupplierFilters = suppliers.map(\r\n ({ articleCount, id, isSelected, priority }) => ({\r\n articleCount: articleCount || 0,\r\n id,\r\n isSelected: !!isSelected,\r\n priority\r\n })\r\n )\r\n }\r\n\r\n attachProductGroupFilters = (productGroupFilters: Array) => {\r\n if (!productGroupFilters || productGroupFilters.length === 0) {\r\n return\r\n }\r\n\r\n this.temporaryRequestBody.productGroupFilters = productGroupFilters.map(\r\n ({ articleCount, id, isSelected, priority }) => ({\r\n articleCount: articleCount || 0,\r\n id,\r\n isSelected: !!isSelected,\r\n priority\r\n })\r\n )\r\n }\r\n\r\n attachArticleListInfo(request: GetArticlesRequest, result: GetArticlesResponse | undefined) {\r\n const articles = result?.articles ?? []\r\n\r\n const productGroupDataSuppliers: Array = []\r\n const productGroupDataSupplierSet = new Set()\r\n\r\n let wholesalerArticleCount = 0\r\n\r\n for (const article of articles) {\r\n if (article.traderArticleNo) {\r\n wholesalerArticleCount++\r\n }\r\n\r\n if (article.supplier && article.productGroup) {\r\n const key = `${article.supplier.id}_${article.productGroup.id}`\r\n\r\n if (!productGroupDataSupplierSet.has(key)) {\r\n productGroupDataSupplierSet.add(key)\r\n productGroupDataSuppliers.push({\r\n dataSupplierId: article.supplier.id,\r\n productGroupId: article.productGroup.id\r\n })\r\n }\r\n }\r\n }\r\n\r\n const maxArticleCount = result?.articleListCount ?? 0\r\n const pageSize = result?.pageSize ?? request.pageSize\r\n const pageIndexMax = getPageIndexMax(maxArticleCount, pageSize)\r\n\r\n const previousPageIndex = this.temporaryRequestBody.articleList?.paging.pageIndex ?? 1\r\n\r\n if (\r\n previousPageIndex < (result?.pageIndex ?? request.pageIndex ?? 1) &&\r\n this.temporaryRequestBody.searchStep\r\n ) {\r\n this.temporaryRequestBody.searchStep.number++\r\n }\r\n\r\n this.temporaryRequestBody.articleList = {\r\n articleCount: articles.length,\r\n maxArticleCount,\r\n paging: {\r\n pageIndex: result?.pageIndex ?? request.pageIndex,\r\n pageSize,\r\n pageIndexMax\r\n },\r\n wholesalerArticleCount,\r\n productGroupDataSuppliers\r\n }\r\n }\r\n\r\n attachSearchTree(request: GetArticlesRequest) {\r\n if (request.nodeId || request.treeId) {\r\n this.temporaryRequestBody.searchTree = {\r\n nodeId: request.nodeId,\r\n treeId: request.treeId,\r\n }\r\n }\r\n }\r\n\r\n augmentFiltersWithArticleCount = (result: GetArticlesResponse) => {\r\n if (!result || !result?.articles || result?.articles?.length == 0) {\r\n return\r\n }\r\n\r\n const { dataSupplierFilters, productGroupFilters } = this.temporaryRequestBody\r\n const { articles } = result\r\n\r\n if (dataSupplierFilters) {\r\n dataSupplierFilters.forEach((filter) => {\r\n const articleCount = articles.filter((article: Article) => article.supplier.id == filter.id).length\r\n filter.articleCount = articleCount\r\n })\r\n }\r\n\r\n if (productGroupFilters) {\r\n productGroupFilters.forEach((filter) => {\r\n const articleCount = articles.filter((article: Article) => article.productGroup.id == filter.id).length\r\n filter.articleCount = articleCount\r\n })\r\n }\r\n }\r\n\r\n attachProductGroupsToSupplier = (result: GetArticlesResponse) => {\r\n result.articles.forEach((article: Article) => {\r\n if (!article?.supplier?.id || !article?.productGroup?.id) {\r\n return\r\n }\r\n\r\n this.temporaryRequestBody.productGroupsPerSupplier[article.supplier.id] = article.productGroup.id\r\n })\r\n }\r\n}\r\n","import { CategoryType, GetArticlesRequest, GetArticlesResponse, TmaEModule, Vehicle } from \"@tm/models\"\r\nimport { TmaEventTracking, getCategoryTypeFromUrl } from \"../..\"\r\nimport { AnalyticsData, BaseTrackingModel, QuerySearchType } from \"../../models/models\"\r\nimport { ArticleListErpInfoShownPayload } from \"../article-list-erp-info-shown/event-handle\"\r\nimport { PayloadExtraData, SearchFilter, SearchFilterCount, VehicleIdentificationDto } from \"./models\"\r\nimport { determineKeywordSearchOrigin, determineKeywordSearchOriginFromDashboard, determineOrigin, determineSearchTreeTmaModule } from \"./originDetection\"\r\nimport { getCatalogOrigin } from \"../../helper/origin\"\r\nimport { getQuerySearchType } from \"./helper\"\r\n\r\n\r\nconst TMA_EVENT = \"ARTICLE_LIST_FILTERED\"\r\nexport interface ArticleListViewOptions {\r\n compactView: boolean\r\n showArticleImages: boolean\r\n showVehicleRecordsFilters: boolean\r\n}\r\n\r\nexport const ArticleListFilteredEventHelper = {\r\n ArticleListFiltered: {\r\n Event: {\r\n IncreaseStepNumber: async () => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n bundle: \"parts\",\r\n component: \"searchtree\",\r\n action: \"increase-step-number\",\r\n type: \"click\",\r\n source: \"selected-filter\",\r\n payload: true,\r\n })\r\n },\r\n SwapSearchType: async (category: CategoryType) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n bundle: \"parts\",\r\n component: \"area-swap\",\r\n action: \"swap-category\",\r\n type: \"click\",\r\n source: \"selected-filter\",\r\n payload: { category },\r\n })\r\n },\r\n },\r\n List: {\r\n Results: async (\r\n request: GetArticlesRequest,\r\n result: GetArticlesResponse | undefined,\r\n worktaskId: string,\r\n url: string,\r\n searchedNodeId?: string\r\n ) => {\r\n const match = /nodeId=(\\d+)/.exec(document.location.search)\r\n const latestSearchedNodeId = match?.last()\r\n const vehicleData = TmaEventTracking.getRequestData(\"VEHICLE_SELECTION\")\r\n const vehicleIdentification: VehicleIdentificationDto|undefined = vehicleData && {\r\n typeId: vehicleData.dataSourceId!,\r\n key: vehicleData.searchTerm!\r\n }\r\n\r\n if (!searchedNodeId || searchedNodeId == latestSearchedNodeId) {\r\n const origin = determineOrigin()\r\n const activeCategory = getCategoryTypeFromUrl(document.location.pathname)\r\n // getArticles will be executed on every node click (from article list tree) so every request get his node id, so only the one with the same as in the url will be handle, if no nodeid is given it should be a direct or synonym search\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n action: \"get-articles\", // [\"get-articles\", \"send-event\"],\r\n type: \"request\",\r\n payload: {\r\n request,\r\n result,\r\n worktaskId,\r\n origin,\r\n categoryType: activeCategory,\r\n query: request.query,\r\n searchType: getQuerySearchType(activeCategory),\r\n vehicleIdentification,\r\n },\r\n source: url,\r\n contextData: request.pageIndex\r\n ? {\r\n paging: {\r\n pageIndex: request.pageIndex,\r\n },\r\n }\r\n : undefined,\r\n })\r\n }\r\n\r\n const payload: ArticleListErpInfoShownPayload = { request, result }\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ArticleList_ErpInfo_Shown\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n action: \"get-articles\",\r\n type: \"request\",\r\n payload,\r\n source: url,\r\n contextData: request.pageIndex\r\n ? {\r\n paging: {\r\n pageIndex: request.pageIndex,\r\n },\r\n }\r\n : undefined,\r\n })\r\n },\r\n FilterChanged: async (data: AnalyticsData, source: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n action: \"trackAnalyticsData\", // source == \"getOeReferenceFilters\" ? \"trackAnalyticsData\" : [\"trackAnalyticsData\", \"increase-step-number\"], // maybe refactor after artile list refactoring, *1\r\n bundle: \"parts\",\r\n component: \"helper\",\r\n payload: data,\r\n source,\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n type: \"request\",\r\n })\r\n },\r\n OePositionChanged: async (oeNumber: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n action: \"oe-position-changed\",\r\n bundle: \"parts\",\r\n component: \"list\",\r\n payload: { oeNumber },\r\n source: \"button\",\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n type: \"click\",\r\n })\r\n },\r\n ViewOptions: async (viewOptions: ArticleListViewOptions) => {\r\n const trackingData: BaseTrackingModel<{ viewOptions: ArticleListViewOptions }> = {\r\n action: \"viewoptions-set\",\r\n bundle: \"parts\",\r\n component: \"list\",\r\n source: \"dropdown\",\r\n tmaEvent: TMA_EVENT,\r\n type: \"click\",\r\n payload: {\r\n viewOptions,\r\n },\r\n }\r\n\r\n TmaEventTracking.dispatchTrack(trackingData)\r\n },\r\n ViewOptionsChanged: async (viewOptions: ArticleListViewOptions) => {\r\n const trackingData: BaseTrackingModel<{ viewOptions: ArticleListViewOptions }> = {\r\n // atm i dont know if we should do this. i like it a lot but complexity and array order is important, mb renaming to actionQueue would help 😣\r\n action: \"viewoptions-changed\", // [\"increase-step-number\", \"viewoptions-changed, \"send-event\"],\r\n bundle: \"parts\",\r\n component: \"list\",\r\n source: \"dropdown\",\r\n tmaEvent: TMA_EVENT,\r\n type: \"click\",\r\n payload: {\r\n viewOptions,\r\n },\r\n }\r\n\r\n TmaEventTracking.dispatchTrack(trackingData)\r\n },\r\n },\r\n Search: {\r\n AttachVehicle: (vehicle?: Vehicle) => {\r\n TmaEventTracking.dispatchTrack({\r\n action: \"cdm\",\r\n bundle: \"parts\",\r\n type: \"component\",\r\n source: \"worktask-vehicle\",\r\n component: \"list\",\r\n payload: vehicle,\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n })\r\n },\r\n Direct: (query: string, fromWidget: boolean = false) => {\r\n const origin = determineKeywordSearchOrigin(\"directSearch\", fromWidget)\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"keyword-search-context\",\r\n bundle: \"parts\",\r\n component: \"partslist\",\r\n payload: {\r\n origin,\r\n query,\r\n categoryType: \"directSearch\",\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n Assistent: (targetUrl: string, query: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"keyword-search-redirect\",\r\n bundle: \"parts\",\r\n component: \"partslist\",\r\n payload: {\r\n origin: TmaEModule.PREMIUMUNIPARTSSEARCH_SEARCH_ASSISTENT,\r\n query,\r\n categoryType: \"directSearch\",\r\n targetUrl,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n WithRedirect: (targetUrl: string, query: string, eventStartOrigin: TmaEModule) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"keyword-search-redirect\",\r\n bundle: \"parts\",\r\n component: \"partslist\",\r\n payload: {\r\n origin: eventStartOrigin,\r\n query,\r\n categoryType: \"directSearch\",\r\n targetUrl,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n Parts: (query: string, fromWidget: boolean = false) => {\r\n const origin = determineKeywordSearchOriginFromDashboard(\"vehicleParts\", fromWidget)\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"keyword-search-context\",\r\n bundle: \"parts\",\r\n component: \"partslist\",\r\n payload: {\r\n origin,\r\n query,\r\n categoryType: \"vehicleParts\",\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n UtilityNoClick: (query: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"keyword-search-utilityno-click\",\r\n bundle: \"parts\",\r\n payload: {\r\n origin: TmaEModule.ARTICLE_LIST_UTILITY_NUMBER,\r\n query,\r\n categoryType: \"directSearch\",\r\n },\r\n source: \"parts\",\r\n component: \"articleitem\",\r\n type: \"click\",\r\n })\r\n },\r\n KeywordSearch: (query: string, categoryType: CategoryType, fromWidget: boolean = false, workTaskId?: string) => {\r\n const origin = determineKeywordSearchOrigin(categoryType, fromWidget)\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"keyword-search-context\",\r\n bundle: \"parts\",\r\n component: \"navigation\",\r\n payload: {\r\n origin,\r\n query,\r\n workTaskId,\r\n searchType: categoryType === \"directSearch\" ? QuerySearchType.Direct : QuerySearchType.Synonym,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n SetSearchContext: (categoryType: CategoryType, query: string, workTaskId?: string, fromWidget?: boolean) => {\r\n const origin = determineKeywordSearchOrigin(categoryType, fromWidget)\r\n const searchType = getQuerySearchType(categoryType || getCategoryTypeFromUrl(document.location.pathname))\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"keyword-search-context\",\r\n bundle: \"parts\",\r\n component: \"navigation\",\r\n payload: {\r\n searchType,\r\n query,\r\n workTaskId,\r\n origin,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n SetSearchContextV2: (origin: TmaEModule, query: string, searchType?: QuerySearchType) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"keyword-search-context\",\r\n bundle: \"parts\",\r\n component: \"navigation\",\r\n payload: {\r\n origin,\r\n query,\r\n searchType,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n Submit: (origin: TmaEModule, query: string, searchType?: QuerySearchType) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"handleSearch\",\r\n bundle: \"parts\",\r\n component: \"SearchComponent\",\r\n payload: {\r\n query,\r\n origin,\r\n searchType,\r\n },\r\n source: \"searchfield\",\r\n type: \"request\",\r\n })\r\n },\r\n SubmitExternal: (query?: string, eventStartOrigin?: TmaEModule, extraData?: PayloadExtraData) => {\r\n const origin = eventStartOrigin ?? getCatalogOrigin()\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"handleExternalSearch\",\r\n bundle: \"api\",\r\n component: \"post-message-controller\",\r\n payload: {\r\n query,\r\n origin,\r\n extraData,\r\n },\r\n source: \"searchfield\",\r\n type: \"request\",\r\n })\r\n },\r\n TreeChanged: (mode?: \"fastClick\" | \"fast-click-2.0\", thumbnailClicked?: boolean) => {\r\n TmaEventTracking.dispatchTrack({\r\n // move this to business actions? function changeBreadcrumbs(breadcrumbs: Array, startSearch?: boolean): AsyncAction {\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n bundle: \"parts\",\r\n component: \"searchtree\",\r\n action: \"handleChangeBreadcrumbs\",\r\n type: \"search\",\r\n source: thumbnailClicked ? \"thumbnail\" : \"label\",\r\n payload: {\r\n mode: mode || \"fast-click-2.0\",\r\n },\r\n })\r\n },\r\n NodeSelected: (data: {\r\n mode?: \"fastClick\" | \"fast-click-2.0\" | \"buttons\" | \"hide\"\r\n nodeId: number\r\n treeId?: number\r\n origin?: TmaEModule\r\n }) => {\r\n // not clear when and how and why to use this, it's implemented in handleSelectNode, but there is no further handling\r\n const eventOrigin = data.origin || determineSearchTreeTmaModule(getCatalogOrigin(), data.mode)\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"nodeSelected\",\r\n // source: data.mode || \"fast-click-2.0\",\r\n source: \"useless\",\r\n payload: {\r\n ...data,\r\n origin: eventOrigin,\r\n },\r\n bundle: \"parts\",\r\n component: \"shared/tree\",\r\n type: \"commit\",\r\n })\r\n },\r\n AutoCompleteResults: (hits: string[]) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"autocomplete\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n payload: { hits },\r\n source: \"product-group-search\",\r\n type: \"request\",\r\n })\r\n },\r\n /**\r\n * this is used inside the old articlelist searchfulters component\r\n * transfers a qualified array of searchtypes\r\n * @param searchFilters\r\n */\r\n SetSearchFilters: async (searchFilters: Array) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"set-search-filters\",\r\n bundle: \"parts\",\r\n component: \"search\",\r\n payload: { searchFilters },\r\n source: \"directSearch\",\r\n type: \"request\",\r\n })\r\n },\r\n /**\r\n * used to catch the result of the searchfilter count request\r\n * @param searchFiltersCount response of the request\r\n */\r\n SetSearchFiltersCount: async (searchFiltersCount: Array) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"set-search-filters-count\",\r\n bundle: \"parts\",\r\n component: \"search\",\r\n payload: { searchFiltersCount },\r\n source: \"directSearch\",\r\n type: \"request\",\r\n })\r\n },\r\n InitSearchFilters: async (searchFilters: Array) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"init-search-filters\",\r\n payload: { searchFilters },\r\n\r\n bundle: \"parts\",\r\n component: \"search\",\r\n source: \"directSearch\",\r\n type: \"request\",\r\n })\r\n }\r\n },\r\n },\r\n Tree: {\r\n SelectNode: (props: any, node: any, group: any) => {\r\n TmaEventTracking.dispatchTrack({\r\n action: \"handleSelectNode\",\r\n bundle: \"parts\",\r\n component: \"shared/tree\",\r\n payload: {\r\n props,\r\n node,\r\n group,\r\n },\r\n source: props.mode || \"fast-click-2.0\",\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n type: \"commit\",\r\n })\r\n },\r\n },\r\n Parts: {\r\n Search: {\r\n AutoCompleteResults: (hits: string[]) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_LIST_FILTERED\",\r\n action: \"autocomplete\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n payload: { hits },\r\n source: \"product-group-search\",\r\n type: \"request\",\r\n })\r\n },\r\n },\r\n /**\r\n * @deprecated use ArticleListFiltered namespace instead of Parts\r\n */\r\n List: {\r\n /**\r\n * @deprecated use ArticleListFiltered namespace instead of Parts\r\n */\r\n ViewOptions: (viewOptions: ArticleListViewOptions) => {\r\n const trackingData: BaseTrackingModel<{ viewOptions: ArticleListViewOptions }> = {\r\n action: \"viewoptions-set\",\r\n bundle: \"parts\",\r\n component: \"list\",\r\n source: \"dropdown\",\r\n tmaEvent: TMA_EVENT,\r\n type: \"click\",\r\n payload: {\r\n viewOptions,\r\n },\r\n }\r\n\r\n TmaEventTracking.dispatchTrack(trackingData)\r\n },\r\n },\r\n },\r\n}\r\n/**\r\n * @deprecated ArticleListFilteredEvents was renamed to ArticleListFilteredEventHelper\r\n */\r\nexport const ArticleListFilteredEvents = ArticleListFilteredEventHelper\r\n","import { channel } from \"@tm/models\"\r\nimport cloneDeep from \"clone-deep\"\r\nimport { encodeUniqueId } from \"../../../helpers/id\"\r\nimport { StoreContext } from \"../event-storage\"\r\nimport { TmaMode } from \"../models\"\r\nimport { ArticleListFilteredEvent } from \"./event-handle\"\r\nimport { compareEvents, isModal } from \"./helper\"\r\nimport { ArticleListFilteredRequest, EventPlugin } from \"./models\"\r\nimport { getCategoryTypeFromUrl } from \"../..\"\r\n\r\ntype TmaWindow = Window & typeof globalThis & { tma: { subscribedEvents: Array } }\r\n;(window as TmaWindow).tma = { subscribedEvents: [] }\r\n\r\n/**\r\n * @description This class is used as a plugin inside the eventhandler and will replace the reset and send functions. New properties will be added and the ajax request will be delayed and executed\r\n * @property { ArticleListFilteredEvent } eventHandler is the origin event handle\r\n * @property { number } delayTimer the amount of seconds the submit request will be delayed\r\n * @property { string } currentCategory is used to store and detect the active catogory of the article list\r\n * @property { Function } OriginalResetEvent the origin reset function\r\n * @property { Function } OriginalSendEvent the origin send function\r\n * @property { {[suppliedId: number]: number[]}} productGroupsPerSupplier all productgroups per supplier combinations which occured in one processid\r\n */\r\nexport class EventSubmitDelay extends EventPlugin {\r\n eventHandler: ArticleListFilteredEvent\r\n\r\n delayTimer = 15\r\n\r\n subscriptions: { unsubscribe: Function; name: string }[] = []\r\n\r\n currentCategory: string\r\n\r\n OriginalResetEvent: Function\r\n\r\n OriginalSendEvent: Function\r\n\r\n productGroupsPerSupplier: { [supplierId: number]: number[] }\r\n\r\n private interval?: number /// delete me, because it's only used for console logs\r\n\r\n private timeoutId?: number = undefined\r\n\r\n constructor() {\r\n super(\"submit\")\r\n }\r\n\r\n /**\r\n * @description initialize some properties, replace send and reset functions\r\n * @param eventHandler ArticleListFilteredEvent Handle\r\n * @returns the reference of this object\r\n */\r\n init = (eventHandler: ArticleListFilteredEvent) => {\r\n this.productGroupsPerSupplier = {}\r\n this.eventHandler = eventHandler\r\n\r\n this.OriginalSendEvent = this.eventHandler.sendEvent.bind(this.eventHandler)\r\n this.eventHandler.sendEvent = this.send\r\n\r\n this.OriginalResetEvent = this.eventHandler.reset.bind(this.eventHandler)\r\n this.eventHandler.reset = this.reset\r\n ;(window as any).setTmaDelay = (seconds: number) => {\r\n this.delayTimer = seconds\r\n }\r\n\r\n window.addEventListener(\"beforeunload\", (e) => {\r\n const _THIS = this\r\n const requests: { [key: string]: ArticleListFilteredRequest } =\r\n JSON.parse(sessionStorage.getItem(\"tma\") || `{}`)[_THIS.eventHandler.storage.identifier] || {}\r\n const keys = Object.keys(requests)\r\n for (let i = 0; i < keys.length; i++) {\r\n try {\r\n _THIS.submitCompletedEvents(requests[keys[i]])\r\n } catch (e) {\r\n // will occur if there is no authorization available after logout. just catching the reject.\r\n }\r\n }\r\n })\r\n return this\r\n }\r\n\r\n /**\r\n * @description strip the new properties and submit\r\n * @param request the request params\r\n */\r\n classicSend = (request: any) => {\r\n const { allProductGroupsPerSupplier, eventStatus, ...rest } = request\r\n this.OriginalSendEvent(rest)\r\n }\r\n\r\n /**\r\n * @description will recognize the mdm controlled TmaMode, if delayed the productGroupPerSupplier property will be added\r\n * @param request request params\r\n * @returns {Promise}\r\n */\r\n send = (request?: ArticleListFilteredRequest): Promise => {\r\n const requestBody = request\r\n\r\n if (!requestBody) {\r\n return Promise.reject()\r\n }\r\n\r\n const requestBodyClone = cloneDeep(requestBody)\r\n const tmaMode = (window as any).userContext?.parameter?.tmaMode ?? TmaMode.Classic\r\n\r\n if (tmaMode !== TmaMode.LessRequests) {\r\n this.classicSend(requestBodyClone)\r\n\r\n if (tmaMode !== TmaMode.Combined) {\r\n return Promise.resolve()\r\n }\r\n }\r\n\r\n Object.keys(requestBody.productGroupsPerSupplier).forEach((supplierId: any) => {\r\n const pgs = requestBody.productGroupsPerSupplier[supplierId]\r\n const all = (this.productGroupsPerSupplier[supplierId] = this.productGroupsPerSupplier[supplierId] || [])\r\n if (all.indexOf(pgs) < 0) {\r\n all.push(pgs)\r\n }\r\n })\r\n\r\n this.submit(requestBody)\r\n return Promise.resolve()\r\n }\r\n\r\n reset = () => {\r\n const resetFunc = () => {\r\n this.productGroupsPerSupplier = {}\r\n this.OriginalResetEvent()\r\n }\r\n\r\n // temporärer requestbody prüfen abfrage ob es nicht das gleiche event ist\r\n if (this.eventHandler.temporaryRequestBody?.eventStatus && this.eventHandler.temporaryRequestBody.eventStatus !== \"completed\") {\r\n this.finishEvent().then(resetFunc)\r\n } else {\r\n resetFunc()\r\n }\r\n }\r\n\r\n /**\r\n * @description request validation\r\n * @returns true or false\r\n */\r\n isValidRequest = () => {\r\n return !this.eventHandler.temporaryRequestBody?.articleList\r\n }\r\n\r\n submit = (rquest: ArticleListFilteredRequest) => {\r\n if ((window as any).__NEXT_WORKTASKID__) {\r\n const url = window.location?.pathname\r\n this.currentCategory = getCategoryTypeFromUrl(url)\r\n const activeRequest = rquest || this.eventHandler.requestBody\r\n const processId = activeRequest.searchStep?.processId\r\n\r\n if (activeRequest.eventStatus === \"initial\") {\r\n this.submitInitial(activeRequest)\r\n this.subscriptions = []\r\n } else if (processId && this.eventHandler.storage.getModified(processId)) {\r\n this.submitProgress(activeRequest)\r\n } else if (activeRequest.context && isModal(activeRequest.context.contextId)) {\r\n this.sendOriginEvent(activeRequest)\r\n } else {\r\n console.log(`%c${processId} was not modified`, \"color:red\", activeRequest)\r\n }\r\n\r\n if (this.subscriptions.length === 0) {\r\n this.subscribeCompletedEvents()\r\n this.subscribeProgressEvents()\r\n }\r\n }\r\n }\r\n\r\n submitInitial = (rquest?: ArticleListFilteredRequest) => {\r\n const activeRequest = rquest || this.eventHandler.temporaryRequestBody\r\n if (activeRequest.eventStatus === \"initial\") {\r\n if (\r\n sessionStorage.getItem(\"storeIdent\") === \"*\" ||\r\n this.eventHandler.storage.identifier === (sessionStorage.getItem(\"storeIdent\") || \"/articles/articleListFiltered\")\r\n ) {\r\n console.log(`%c${\"submitInitial\"}`, \"color: blue;\", activeRequest.eventStatus, activeRequest.searchStep?.processId)\r\n }\r\n this.sendOriginEvent(activeRequest)\r\n this.setEventStatus(\"progress\")\r\n }\r\n }\r\n\r\n submitProgress = (rquest?: ArticleListFilteredRequest) => {\r\n const event = this.eventHandler.temporaryRequestBody || rquest\r\n if (this.eventHandler.temporaryRequestBody && rquest && JSON.stringify(rquest) === JSON.stringify(this.eventHandler.temporaryRequestBody)) {\r\n console.log(\"ERROR \", rquest, \"UNEQUAL\", this.eventHandler.temporaryRequestBody)\r\n }\r\n if (event?.eventStatus === \"progress\") {\r\n if (\r\n sessionStorage.getItem(\"storeIdent\") === \"*\" ||\r\n this.eventHandler.storage.identifier === (sessionStorage.getItem(\"storeIdent\") || \"/articles/articleListFiltered\")\r\n ) {\r\n console.log(`%c${\"submitProgress\"}`, \"color: blue;\", event.eventStatus, event.searchStep?.processId, event)\r\n }\r\n this.timeout(event)\r\n }\r\n }\r\n\r\n setEventStatus = (status: \"initial\" | \"progress\" | \"completed\") => {\r\n if (this.eventHandler.temporaryRequestBody.searchStep) {\r\n this.eventHandler.temporaryRequestBody.eventStatus = status\r\n this.eventHandler.saveChanges(this.eventHandler.temporaryRequestBody)\r\n }\r\n }\r\n\r\n submitCompletedEvents = (requestBody: ArticleListFilteredRequest) => {\r\n if (!requestBody) {\r\n return requestBody\r\n }\r\n\r\n requestBody.eventStatus = \"completed\"\r\n return this.sendOriginEvent(requestBody)\r\n }\r\n\r\n submitCompletedWhenOutOfContext = (context: StoreContext) => {\r\n const requestBody: ArticleListFilteredRequest = this.eventHandler.storage.loadContent(context)\r\n if (!requestBody) {\r\n return requestBody\r\n }\r\n\r\n requestBody.eventStatus = \"completed\"\r\n this.eventHandler.storage.set(requestBody)\r\n\r\n console.log(\"submitCompleted\", requestBody?.searchStep?.processId)\r\n\r\n return this.sendOriginEvent(requestBody).then(() => {\r\n if (requestBody.context) {\r\n if (compareEvents(this.eventHandler.temporaryRequestBody, requestBody)) {\r\n requestBody.context && this.eventHandler.storage.delete(requestBody.context)\r\n this.eventHandler.resetTemporaryRequest()\r\n } else {\r\n this.eventHandler.storage.delete(requestBody.context)\r\n console.log(\"%cremoved out of context\", \"color: red\")\r\n }\r\n requestBody.searchStep && this.eventHandler.storage.removeModifiedState(requestBody.searchStep.processId)\r\n }\r\n })\r\n }\r\n\r\n submitCompleted = () => {\r\n let { requestBody } = this.eventHandler\r\n\r\n if (!requestBody || !requestBody.articleList || !requestBody.allProductGroupsPerSupplier) {\r\n requestBody = this.eventHandler.loadRequest()\r\n }\r\n\r\n this.setEventStatus(\"completed\")\r\n requestBody.eventStatus = \"completed\"\r\n\r\n return this.sendOriginEvent(requestBody).then(() => {\r\n requestBody.context && this.eventHandler.storage.delete(requestBody.context)\r\n })\r\n }\r\n\r\n timeout = (rquest: ArticleListFilteredRequest) => {\r\n this.timeoutId && this.clearTimeout()\r\n this.interval && window.clearInterval(this.interval)\r\n if (\r\n sessionStorage.getItem(\"storeIdent\") === \"*\" ||\r\n this.eventHandler.storage.identifier === (sessionStorage.getItem(\"storeIdent\") || \"/articles/articleListFiltered\")\r\n ) {\r\n console.log(`%c${\"timeout\"}`, \"color: blue;\", `eventStatus: ${rquest.eventStatus}`, `processId: ${rquest.searchStep?.processId}`)\r\n }\r\n\r\n this.interval && console.timeEnd(\"waiting\")\r\n console.time(\"waiting\")\r\n this.interval = window.setInterval(() => {\r\n console.timeLog(\"waiting\", rquest.searchStep?.processId)\r\n }, 2000)\r\n this.timeoutId = window.setTimeout(() => {\r\n this.interval && window.clearInterval(this.interval)\r\n this.interval = undefined\r\n this.sendOriginEvent(rquest)\r\n this.eventHandler.saveChanges(rquest)\r\n console.timeEnd(\"waiting\")\r\n }, this.delayTimer * 1000)\r\n }\r\n\r\n sendOriginEvent = (rquest?: ArticleListFilteredRequest) => {\r\n const requestBody = rquest || this.eventHandler.requestBody\r\n if (!requestBody) {\r\n console.log(\"need a request to submit\")\r\n return\r\n }\r\n requestBody.allProductGroupsPerSupplier = rquest?.allProductGroupsPerSupplier || this.productGroupsPerSupplier // do we really need this?\r\n const processId = requestBody.searchStep?.processId\r\n if (processId && (requestBody.eventStatus === \"completed\" || this.eventHandler.storage.getModified(processId))) {\r\n if (\r\n sessionStorage.getItem(\"storeIdent\") === \"*\" ||\r\n this.eventHandler.storage.identifier === (sessionStorage.getItem(\"storeIdent\") || \"/articles/articleListFiltered\")\r\n ) {\r\n console.log(\r\n `%c${requestBody.eventStatus}\\r\\n${document.location.pathname}\\r\\n${processId}\\r\\nevent will be send now\\r\\n`,\r\n \"color:green\",\r\n rquest || requestBody\r\n )\r\n }\r\n\r\n return this.OriginalSendEvent(rquest).then(() => {\r\n const contextId = rquest?.context?.contextId\r\n if (contextId && isModal(contextId)) {\r\n // modal events wont be saved\r\n return\r\n }\r\n\r\n if (requestBody.eventStatus === \"initial\") {\r\n requestBody.eventStatus = \"progress\" // wird der temporary eventStatus hier auch gesetzt? Unwahrscheinlich. und in den sessionStorage wird es auch nicht geschrieben. da requestBody nicht getzt\r\n }\r\n\r\n processId && this.eventHandler.storage.setModifiedToFalse(processId)\r\n\r\n if (\r\n sessionStorage.getItem(\"storeIdent\") === \"*\" ||\r\n this.eventHandler.storage.identifier === (sessionStorage.getItem(\"storeIdent\") || \"/articles/articleListFiltered\")\r\n ) {\r\n console.log(\r\n \"%cajax set modified to false\",\r\n \"color:green\",\r\n processId ? this.eventHandler.storage.getModified(processId) : \"no processid\"\r\n )\r\n }\r\n })\r\n }\r\n requestBody.eventStatus === \"completed\"\r\n ? console.log(\" % calready completed\", requestBody.searchStep?.processId, \"color:orange\")\r\n : processId\r\n ? console.log(\"%cshouldn't send unmodified data\", \"color:red\")\r\n : console.log(\"%cCan't send because processId is missing\")\r\n }\r\n\r\n finishEvent = async (context?: StoreContext) => {\r\n // module close -> if context matches with temporary request context, take that request, if not load an event\r\n const { temporaryRequestBody } = this.eventHandler\r\n const storedRequest = context && this.eventHandler.storage.loadContent(context)\r\n let request: ArticleListFilteredRequest = storedRequest || temporaryRequestBody\r\n\r\n if (compareEvents(storedRequest, temporaryRequestBody)) {\r\n request = temporaryRequestBody\r\n }\r\n\r\n const { allProductGroupsPerSupplier, articleList } = request\r\n\r\n if (!articleList || !allProductGroupsPerSupplier) {\r\n return Promise.resolve()\r\n }\r\n\r\n this.clearTimeout()\r\n this.deleteSubscriptions()\r\n\r\n if (request.context) {\r\n await this.submitCompletedWhenOutOfContext(request.context)\r\n } else {\r\n await this.submitCompleted()\r\n }\r\n\r\n return Promise.resolve()\r\n }\r\n\r\n clearTimeout = () => {\r\n this.interval && clearInterval(this.interval)\r\n this.timeoutId && clearTimeout(this.timeoutId)\r\n }\r\n\r\n deleteSubscriptions = () => {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe())\r\n this.subscriptions = []\r\n }\r\n\r\n subscribeCompletedEvents = () => {\r\n const storageContext = { identifier: this.eventHandler.storage.identifier, contextId: this.eventHandler.storage.getContextId() }\r\n\r\n const closeHandler = (params: any) => {\r\n this.finishEvent(storageContext).catch((e) => {\r\n // if there was a corrupted event in the queue, delete it from the storage\r\n this.eventHandler.storage.delete(storageContext)\r\n this.reset()\r\n })\r\n }\r\n\r\n const moduleClosed = {\r\n name: \"MODULE/CLOSED\",\r\n unsubscribe: channel(\"WORKTASK\", (window as any).__NEXT_WORKTASKID__).subscribe(\"MODULE/CLOSED\", closeHandler),\r\n }\r\n\r\n this.subscriptions.push(moduleClosed)\r\n\r\n this.subscriptions.push({\r\n name: \"worktaskClose\",\r\n unsubscribe: channel(\"GLOBAL\").subscribe(\"WORKTASK/CLOSED\", (content: { ids: string[] }) => {\r\n const { ids } = content\r\n\r\n if (\r\n ids.some((id) => {\r\n const uniqueid = encodeUniqueId(id)\r\n return storageContext.contextId.includes(id) || storageContext.contextId.includes(uniqueid)\r\n })\r\n ) {\r\n closeHandler(ids)\r\n }\r\n }),\r\n })\r\n }\r\n\r\n subscribeProgressEvents = () => {\r\n this.subscriptions.push({\r\n name: \"basketArticleAdded\",\r\n unsubscribe: channel(\"WORKTASK\", (window as any).__NEXT_WORKTASKID__).subscribe(\"BASKET/ARTICLE_ADDED\", () => {\r\n console.log(\r\n `%c${\"BASKET/ARTICLE_ADDED\"}`,\r\n \"color: blue;\",\r\n \" unsub subscriptions -> submitProgress \",\r\n this.eventHandler.requestBody.eventStatus,\r\n this.eventHandler.requestBody.searchStep?.processId\r\n )\r\n\r\n this.submitProgress()\r\n }),\r\n })\r\n\r\n this.subscriptions.push({\r\n name: \"categoryChanged\",\r\n unsubscribe: channel(\"WORKTASK\", (window as any).__NEXT_WORKTASKID__).subscribe(\"PARTS/CATEGORY_CHANGED\", (content: any) => {\r\n console.log(\r\n `%c${\"PARTS/CATEGORY_CHANGED\"}`,\r\n \"color: yellow;\",\r\n \" unsub subscriptions -> submitProgress \",\r\n this.eventHandler.requestBody?.eventStatus,\r\n this.eventHandler.requestBody.searchStep?.processId\r\n )\r\n\r\n if (this.currentCategory !== content.category) {\r\n this.submitProgress()\r\n this.currentCategory = content.category\r\n }\r\n }),\r\n })\r\n }\r\n}\r\n","import { CategoryType, TmaEModule } from \"@tm/models\"\r\nimport { uniqueId } from \"../../../helpers/id\"\r\nimport { ArticleListFilteredRequest } from \"./models\"\r\nimport { StoreContext } from \"../event-storage\"\r\nimport { QuerySearchType } from \"../..\"\r\n\r\nexport function getSearchQueryFromUrl() {\r\n const searchParams = new URLSearchParams(window.location.search)\r\n return searchParams.get(\"query\")\r\n}\r\n\r\nexport function getPageIndexMax(maxArticleCount: number | undefined, pageSize: number | undefined): number | undefined {\r\n if (!pageSize || !maxArticleCount) {\r\n return\r\n }\r\n\r\n const pageIndexMax = maxArticleCount / pageSize\r\n\r\n if (isNaN(pageIndexMax)) {\r\n return\r\n }\r\n\r\n return Math.ceil(pageIndexMax)\r\n}\r\n\r\nexport const createEvent = {\r\n initial: (vehicleId?: string): ArticleListFilteredRequest => {\r\n return {\r\n searchStep: {\r\n number: 1, // can be delete later on, but set searchStep.number to 1 when inside reset()\r\n processId: uniqueId(),\r\n },\r\n origin: TmaEModule.UNDEFINED,\r\n vehicleId,\r\n productGroupsPerSupplier: {},\r\n searchFilters: undefined,\r\n eventStatus: \"initial\"\r\n }\r\n },\r\n}\r\n\r\n/**\r\n *\r\n * @param a ArticleListFilteredRequest\r\n * @param b ArticleListFilteredRequest\r\n * @returns true if it's equal, false if it's unequal\r\n */\r\nexport function compareEvents(a: ArticleListFilteredRequest, b: ArticleListFilteredRequest) {\r\n if (a && b) {\r\n const storedContext = a.context\r\n const tempContext = b.context\r\n if (\r\n storedContext?.contextId === tempContext?.contextId &&\r\n storedContext?.identifier === tempContext?.identifier &&\r\n a.searchStep?.processId === b.searchStep?.processId &&\r\n a.searchStep?.number === b.searchStep?.number\r\n ) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n *\r\n * @param a StoreContext\r\n * @param b StoreContext\r\n * @returns true if it's equal, false if it's unequal\r\n */\r\nexport function compareContext(a: StoreContext, b: StoreContext) {\r\n //\r\n return (a || b) && a.contextId === b.contextId && a.identifier === b.identifier\r\n}\r\n\r\n/**\r\n *\r\n * @param contextId current context id\r\n * @returns true if its a modal\r\n */\r\nexport function isModal(contextId: string) {\r\n return contextId.includes(\"modal\")\r\n}\r\n\r\n/**\r\n * use to get the correct keywordsearchtype\r\n * @param categoryType which search category is active, like \"vehicleParts\" | \"universalParts\" | \"directSearch\" | ...\r\n * @returns the keywordsearchtype\r\n */\r\nexport function getQuerySearchType(categoryType: CategoryType): QuerySearchType {\r\n let querySearchTyp: QuerySearchType = QuerySearchType.Undefined\r\n switch (categoryType) {\r\n case \"partsIndicator\":\r\n case \"dtcSearch\": {\r\n querySearchTyp = QuerySearchType.ProductGroup // QuerySearchType.ErrorCode\r\n break\r\n }\r\n case \"directSearch\": {\r\n querySearchTyp = QuerySearchType.Direct\r\n break\r\n }\r\n case \"vehicleParts\":\r\n case \"universalParts\": {\r\n querySearchTyp = QuerySearchType.Synonym\r\n break\r\n }\r\n }\r\n return querySearchTyp\r\n}\r\n","import { ArticleListFilteredEvent } from \"./event-handle\"\r\nimport { EventSubmitDelay } from \"./event-submit-delay\"\r\n\r\nexport * from \"./event-helper\"\r\n\r\nexport type ArticleListFilteredTrackEvent = {\r\n action: string // \"parts-search\"\r\n bundle: string // \"parts\"\r\n component: string // \"tree\"\r\n initiateProcess: boolean // true\r\n payload: any // (4) [{…}, {…}, {…}, {…}]\r\n source: string // \"searchtree\"\r\n step: number // 1\r\n tmaEvent: string // \"ARTICLE_LIST_FILTERED\"\r\n type: string // \"search\"\r\n}\r\n\r\nexport default new ArticleListFilteredEvent(new EventSubmitDelay())\r\n","import { QuerySearch } from \"../base-event-models\"\r\nimport { SearchStepDto, SearchFilterType, FittingSideType, ArticleListViewOptionsType } from \"../../models/requests\"\r\nimport { Filter } from \"../../models/models\"\r\nimport { TmaEModule } from \"@tm/models\"\r\nimport { StoreContext } from \"../event-storage\"\r\n\r\nexport interface AttributeFilter {\r\n /**\r\n * @property Also known as KritNr, Kriteriumsnummer\r\n */\r\n id: number\r\n\r\n /**\r\n * @property Also known as KritBez, Bez, Kriteriumsbezeichnung (eg. Color, Size)\r\n */\r\n description: string\r\n\r\n /**\r\n * @property Also known as KritVal, KritWert, Kriteriumswert (eg. Blue, 1.6)\r\n */\r\n value: string\r\n}\r\n\r\nexport interface DataSupplierFilter {\r\n /// Article Count for this Data Supplier\r\n /// Also known as CntArt, Artikelmenge\r\n articleCount: number\r\n\r\n /// Data Supplier Id\r\n /// Also known as EinspNr, Einspeisernummer, Data Supplier Number\r\n id: number\r\n\r\n /// Indicates if the Data Supplier is selected\r\n /// Also known as Checked\r\n isSelected: boolean\r\n\r\n /// Also known as Prio\r\n priority?: number\r\n}\r\n\r\nexport interface ProductGroupFilter {\r\n /// Article Count for this Product Group\r\n /// Also known as CntArt, Artikelmenge\r\n articleCount: number\r\n\r\n /// Also known as GenArtNr, Generische Artikelnummer, Generic Article Number\r\n id: number\r\n\r\n /// Indicates if the Product Group is selected\r\n /// Also known as Checked\r\n isSelected: boolean\r\n\r\n /// Also known as Prio\r\n priority?: number\r\n}\r\n/**\r\n * SearchFilter Interfaces\r\n */\r\n\r\nexport interface SearchFilter {\r\n id: SearchFilterType\r\n articleCount: number\r\n isSelected: boolean\r\n}\r\n\r\nexport interface ProductGroupDataSupplier {\r\n productGroupId: number\r\n dataSupplierId: number\r\n}\r\n\r\nexport interface PagingDto {\r\n /**\r\n * @property [optional] The Page Index.\r\n */\r\n pageIndex?: number\r\n\r\n /**\r\n * @property [optional] The Page Size.\r\n */\r\n pageSize?: number\r\n\r\n /**\r\n * @property [optional] The Page Index of the last page.\r\n */\r\n pageIndexMax?: number\r\n}\r\n\r\nexport interface ArticleListInfo {\r\n /// Found product group data supplier combinations.\r\n productGroupDataSuppliers: Array\r\n\r\n /// Count of all articles in the list.\r\n articleCount: number\r\n\r\n /// Count of wholesaler articles in the list.\r\n wholesalerArticleCount: number\r\n\r\n /**\r\n * @property [optional] Restriction of article maximum for an article list.\r\n */\r\n maxArticleCount?: number\r\n\r\n paging: PagingDto\r\n}\r\n\r\nexport interface SearchTreeDto {\r\n /// [optional] The Search Tree Id.\r\n /// Requires NodeId.\r\n /// Also known as Tree, TreeId, Suchbaumnummer\r\n treeId?: number\r\n\r\n /// [optional] The Node Id to receive.\r\n /// Requires TreeId.\r\n /// Also known as NodeId, Suchbaumknotennummer\r\n nodeId?: number\r\n}\r\n\r\nexport interface VehicleIdentificationDto {\r\n /// The value of the id can be taken from the MDM list for available types of vehicle identification\r\n /// (see Visual Studio TeamExplorer - Project MDM - Documents - Development - Kundenverwaltung.xlsx - System-AddOn).\r\n /// IdentificationTypeId defines type of the identification process like identification by vehicle tree search,\r\n /// plateId, motor code, TecDocTypeId, Gerausiv webservice, etc.\r\n typeId: number\r\n\r\n /// Search keyword. In case of a plateId search the plateId.\r\n key: string\r\n}\r\n\r\ntype ProductGroupId = number\r\nexport interface ArticleListFilteredRequest {\r\n context?: StoreContext\r\n workTaskId?: string\r\n eventStatus: \"initial\" | \"progress\" | \"completed\"\r\n /**\r\n * @property [optional] Selected vehicle.\r\n */\r\n vehicleId?: string\r\n querySearch?: QuerySearch\r\n attributeFilters?: Array\r\n dataSupplierFilters?: Array\r\n productGroupFilters?: Array\r\n\r\n /**\r\n * @property [optional] The Search Filter. Used for Query Search. Also known as SearchArea, Bitvektor für die Suchbereiche, Bitvector for the Search Areas\r\n */\r\n searchFilters?: Array\r\n productGroupsPerSupplier: {\r\n [supplierId: number]: ProductGroupId\r\n }\r\n allProductGroupsPerSupplier?: {\r\n [supplierId: number]: ProductGroupId[]\r\n }\r\n /// Indicates the state of the checkbox \"Extended assortment\"\r\n extendedAssortment?: boolean\r\n\r\n /// Fitting Side Filter\r\n /// Used as Filter for SupplierArticleNos\r\n /// Also known as BinKrit100, Bitvektor für die Einbauseite, Bitvector for the Installation Location\r\n fittingSideFilter?: FittingSideType\r\n viewOptions?: ArticleListViewOptionsType\r\n articleList?: ArticleListInfo\r\n searchTree?: SearchTreeDto\r\n vehicleIdentification?: VehicleIdentificationDto\r\n searchStep: SearchStepDto\r\n origin: TmaEModule\r\n vin?: string\r\n}\r\nexport interface ArticleListFilteredEventType {\r\n ARTICLE_LIST_FILTERED: ArticleListFilteredRequest\r\n}\r\n\r\nexport type CategoryType = \"vehicleParts\" | \"universalParts\" | \"directSearch\" | \"predictive\"\r\n\r\n/**\r\n * Data which is needed to be stored in order to augment the tma event data\r\n * add more properties if needed\r\n */\r\nexport type AnalyticsData = {\r\n filter?: Filters\r\n}\r\n\r\nexport type Filters = {\r\n // selected?: AvailableData,\r\n available?: AvailableData\r\n}\r\nexport type SelectedData = {\r\n productGroupIds?: Array\r\n supplierIds?: Array\r\n oeReferences?: Array\r\n}\r\n\r\nexport type AvailableData = {\r\n productGroupFilters?: Array\r\n dataSupplierFilters?: Array\r\n oeReferences?: Array\r\n}\r\n\r\nexport type EventPluginTypes = \"submit\" | \"trackData\" | \"whatever\"\r\nexport class EventPlugin {\r\n constructor(type: EventPluginTypes) {\r\n this.type = type\r\n }\r\n\r\n type: EventPluginTypes\r\n}\r\n\r\nexport type PayloadExtraData = {\r\n vin?: string\r\n}\r\n\r\nexport type SearchFilterCount = { filterType: number, count: number }\r\n","import { CategoryType, TmaEModule } from \"@tm/models\"\r\nimport { getCategoryTypeFromUrl } from \"../../helper/category\"\r\nimport { getCatalogOrigin } from \"../../helper/origin\"\r\n\r\nexport function determineOrigin() {\r\n const origin = getCatalogOrigin()\r\n const isKeywordSearch = document.location.search.toLowerCase().includes(\"query\")\r\n const category = getCategoryTypeFromUrl(document.location.pathname)\r\n const eventOrigin = isKeywordSearch\r\n ? determineKeywordSearchOriginFromDashboard(category, TmaEModule.DASHBOARD === origin)\r\n : determineSearchTreeTmaModule(origin)\r\n return eventOrigin\r\n}\r\n\r\nexport function determineSearchTreeTmaModule(\r\n eventStartOrigin: TmaEModule,\r\n mode: \"fastClick\" | \"fast-click-2.0\" | \"buttons\" | \"hide\" | \"default\" = \"fast-click-2.0\"\r\n) {\r\n let eModule = TmaEModule.UNDEFINED\r\n if (TmaEModule.ARTICLE_LIST === eventStartOrigin) {\r\n switch (mode) {\r\n case \"fastClick\": {\r\n eModule = TmaEModule.FAST_CLICK_ARTICLE_LIST\r\n break\r\n }\r\n case \"fast-click-2.0\":\r\n case \"buttons\":\r\n case \"default\": {\r\n eModule = TmaEModule.FAST_CLICK_V2_ARTICLE_LIST\r\n }\r\n default: {\r\n }\r\n }\r\n } else if (TmaEModule.DASHBOARD === eventStartOrigin) {\r\n switch (mode) {\r\n case \"fastClick\": {\r\n eModule = TmaEModule.FAST_CLICK_DASHBOARD\r\n break\r\n }\r\n case \"fast-click-2.0\":\r\n case \"buttons\":\r\n case \"default\": {\r\n eModule = TmaEModule.FAST_CLICK_V2_DASHBOARD\r\n }\r\n\r\n default: {\r\n }\r\n }\r\n } else if (TmaEModule.PREMIUMUNIPARTSSEARCH === eventStartOrigin || TmaEModule.PREMIUMUNIPARTSSEARCH_ARTICLE_LIST === eventStartOrigin) {\r\n eModule = determineUniSearchTreeTmaModule(eventStartOrigin)\r\n }\r\n\r\n if (eModule === TmaEModule.UNDEFINED) {\r\n eModule = eventStartOrigin\r\n }\r\n\r\n return eModule\r\n}\r\n\r\nexport function determineUniSearchTreeTmaModule(\r\n eventStartOrigin: TmaEModule,\r\n mode: \"fastClick\" | \"fast-click-2.0\" | \"buttons\" | \"hide\" | \"default\" = \"fast-click-2.0\"\r\n) {\r\n let eModule = TmaEModule.UNDEFINED\r\n if (TmaEModule.PREMIUMUNIPARTSSEARCH === eventStartOrigin || TmaEModule.PREMIUMUNIPARTSSEARCH_ARTICLE_LIST === eventStartOrigin) {\r\n switch (mode) {\r\n case \"fastClick\": {\r\n eModule = TmaEModule.FAST_CLICK_UNIPARTSSEARCH\r\n break\r\n }\r\n case \"fast-click-2.0\":\r\n case \"buttons\":\r\n case \"default\": {\r\n eModule = TmaEModule.FAST_CLICK_V2_UNIPARTSSEARCH_ARTICLE_LIST\r\n }\r\n default: {\r\n }\r\n }\r\n } else if (TmaEModule.DASHBOARD === eventStartOrigin) {\r\n switch (mode) {\r\n case \"fastClick\": {\r\n eModule = TmaEModule.FAST_CLICK_DASHBOARD\r\n break\r\n }\r\n case \"fast-click-2.0\":\r\n case \"buttons\":\r\n case \"default\": {\r\n eModule = TmaEModule.FAST_CLICK_V2_UNIPARTSSEARCH_DASHBOARD\r\n }\r\n\r\n default: {\r\n }\r\n }\r\n } else if (TmaEModule.START_PAGE === eventStartOrigin) {\r\n eModule = TmaEModule.PREMIUMUNIPARTSSEARCH_START_PAGE\r\n }\r\n\r\n if (eModule === TmaEModule.UNDEFINED) {\r\n eModule = eventStartOrigin\r\n }\r\n\r\n return eModule\r\n}\r\n\r\nexport function determineKeywordSearchOrigin(category: CategoryType, fromWidget: boolean = false) {\r\n const origin = getCatalogOrigin()\r\n let eventOrigin = TmaEModule.UNDEFINED\r\n if (origin === TmaEModule.START_PAGE && (category === \"directSearch\" || category === \"universalParts\")) {\r\n eventOrigin = category === \"directSearch\" ? TmaEModule.ARTICLE_DIRECT_SEARCH_START_PAGE : TmaEModule.PREMIUMUNIPARTSSEARCH_START_PAGE\r\n } else {\r\n eventOrigin = determineKeywordSearchOriginFromDashboard(category, fromWidget)\r\n }\r\n\r\n return eventOrigin\r\n}\r\n\r\n/**\r\n * get the origin for a keywordsearch from dashboard or (uni-)articlelist\r\n * @param category active category like uni parts direct\r\n * @param fromWidget called from a widget?\r\n * @returns event origin\r\n */\r\nexport function determineKeywordSearchOriginFromDashboard(category: CategoryType, fromWidget: boolean = false): TmaEModule {\r\n let origin = TmaEModule.UNDEFINED\r\n\r\n switch (category) {\r\n case \"vehicleParts\": {\r\n origin = fromWidget ? TmaEModule.PRODUCT_GROUP_KEYWORD_SEARCH_DASHBOARD : TmaEModule.PRODUCT_GROUP_KEYWORD_SEARCH_ARTICLE_LIST\r\n break\r\n }\r\n case \"directSearch\": {\r\n origin = fromWidget ? TmaEModule.ARTICLE_DIRECT_SEARCH_DASHBOARD : TmaEModule.ARTICLE_DIRECT_SEARCH_ARTICLE_LIST\r\n break\r\n }\r\n case \"universalParts\": {\r\n origin = fromWidget ? TmaEModule.PREMIUMUNIPARTSSEARCH_DASHBOARD : TmaEModule.PREMIUMUNIPARTSSEARCH_ARTICLE_LIST\r\n break\r\n }\r\n }\r\n\r\n if (origin === TmaEModule.UNDEFINED) {\r\n console.warn(`TMA determineKeywordSearchOrigin could not resolve category >> ${category}`)\r\n }\r\n\r\n return origin\r\n}\r\n","import { AvailabilityStatus } from \"@tm/models\"\r\nimport { TmaEvent, TrackingModel } from \"../../models/models\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { ArticleComparison, ArticleWithAvailability } from \"./models\"\r\n\r\nexport class ArticleComparisonEventHandler extends TmaSender implements TmaEvent {\r\n key = \"ARTICLE_COMPARISON\"\r\n\r\n static serviceEndpoint = \"/articles/articleComparison\"\r\n\r\n constructor() {\r\n super(ArticleComparisonEventHandler.serviceEndpoint)\r\n }\r\n\r\n handle = (trackingData: TrackingModel): boolean => {\r\n if (trackingData.tmaEvent && trackingData.tmaEvent == this.key && trackingData.payload && trackingData.bundle == \"parts\") {\r\n if (Array.isArray(trackingData.action)) {\r\n trackingData.action.forEach((action) => this.fillRequest(trackingData, action))\r\n } else {\r\n this.fillRequest(trackingData, trackingData.action)\r\n }\r\n\r\n return false\r\n }\r\n\r\n return false\r\n }\r\n\r\n fillRequest = (trackingData: TrackingModel, action: string) => {\r\n const { articles } = trackingData.payload\r\n\r\n if (action === \"article-comparison-click\") {\r\n if (articles) {\r\n this.requestBody.catalogParts = articles.map((article: ArticleWithAvailability) => {\r\n return {\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: article.supplier.id,\r\n productGroupIds: [article.productGroup.id],\r\n wholesalerArticleNumber: article.traderArticleNo,\r\n availabilityState: {\r\n id:\r\n (article.availability &&\r\n article.availability !== AvailabilityStatus.Unknown &&\r\n AvailabilityStatus[article.availability]) ||\r\n \"\",\r\n description: article.availability?.toString() || \"\",\r\n },\r\n }\r\n })\r\n\r\n this.sendEvent()\r\n }\r\n }\r\n }\r\n}\r\n","import { TmaEventTracking } from \"../..\"\r\nimport { ArticleWithAvailability } from \"./models\"\r\n\r\nexport const ArticleComparisonEventHelper = {\r\n Parts: {\r\n Click: (articles?: ArticleWithAvailability[], vehicleId?: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_COMPARISON\",\r\n action: \"article-comparison-click\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n payload: { articles, vehicleId },\r\n source: \"product-group-search\",\r\n type: \"click\",\r\n })\r\n },\r\n },\r\n}\r\n","import { ArticleComparisonEventHandler } from \"./event-handle\"\r\n\r\nexport * from \"./event-helper\"\r\n\r\nexport default new ArticleComparisonEventHandler()\r\n","import { AvailabilityStatus } from \"@tm/models\"\r\nimport { TmaEvent, TrackingModel } from \"../../models/models\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { ArticlePDFClick } from \"./models\"\r\n\r\nexport class ArticlePDFClickEventHandler extends TmaSender implements TmaEvent {\r\n key = \"ARTICLE_PDFCALL\"\r\n\r\n static serviceEndpoint = \"/articles/pdfClick\"\r\n\r\n constructor() {\r\n super(ArticlePDFClickEventHandler.serviceEndpoint)\r\n\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: TrackingModel): boolean => {\r\n if (!trackingData.tmaEvent || trackingData.tmaEvent !== this.key || !trackingData.payload) {\r\n return false\r\n }\r\n\r\n if (!this.requestBody) {\r\n this.requestBody = {}\r\n }\r\n\r\n if (trackingData.bundle == \"parts\") {\r\n if (Array.isArray(trackingData.action)) {\r\n trackingData.action.forEach((action) => this.fillRequest(trackingData, action))\r\n } else {\r\n this.fillRequest(trackingData, trackingData.action)\r\n }\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n fillRequest = (trackingData: TrackingModel, action: string) => {\r\n const { article, quantityModifiers, vehicleId } = trackingData.payload\r\n\r\n if (action === \"article-PDF-click\") {\r\n if (article) {\r\n this.requestBody.catalogPart = {\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: article.supplier.id,\r\n productGroupIds: [article.productGroup.id],\r\n wholesalerArticleNumber: article.traderArticleNo,\r\n availabilityState: {\r\n id:\r\n (quantityModifiers?.availability &&\r\n quantityModifiers.availability !== AvailabilityStatus.Unknown &&\r\n AvailabilityStatus[quantityModifiers.availability]) ||\r\n \"\",\r\n description: quantityModifiers?.availability?.toString() || \"\",\r\n },\r\n }\r\n }\r\n\r\n if (vehicleId) {\r\n this.requestBody.vehicleId = vehicleId\r\n }\r\n\r\n this.sendEvent()\r\n }\r\n }\r\n}\r\n","import { Article } from \"@tm/models\"\r\nimport { TmaEventTracking } from \"../..\"\r\n\r\nexport const ArticleDetailsPDFEventHelper = {\r\n Parts: {\r\n PDFClick: {\r\n Click: (article?: Article, vehicleId?: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_PDFCALL\",\r\n action: \"article-PDF-click\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n payload: { article, vehicleId },\r\n source: \"product-group-search\",\r\n type: \"click\",\r\n })\r\n },\r\n },\r\n },\r\n}\r\n","import { ArticlePDFClickEventHandler } from \"./event-handle\"\r\n\r\nexport * from \"./event-helper\"\r\n\r\nexport default new ArticlePDFClickEventHandler()\r\n","import { AvailabilityStatus } from \"@tm/models\"\r\nimport { TmaEvent, TrackingModel } from \"../../models/models\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { ArticleImageClick } from \"./models\"\r\n\r\nexport class ArticleEvent extends TmaSender implements TmaEvent {\r\n key = \"ARTICLE_IMAGE_CLICKED\"\r\n\r\n static serviceEndpoint = \"/articles/imageClick\"\r\n\r\n constructor() {\r\n super(ArticleEvent.serviceEndpoint)\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: TrackingModel): boolean => {\r\n if (trackingData.tmaEvent && trackingData.tmaEvent == this.key) {\r\n if (trackingData.payload && trackingData.bundle == \"parts\") {\r\n if (Array.isArray(trackingData.action)) {\r\n trackingData.action.forEach((action) => this.fillRequest(trackingData, action))\r\n } else {\r\n this.fillRequest(trackingData, trackingData.action)\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n return false\r\n }\r\n\r\n fillRequest = (trackingData: TrackingModel, action: string) => {\r\n const { article, quantityModifiers, vehicleId } = trackingData.payload\r\n\r\n switch (action) {\r\n case \"article-image-click\": {\r\n this.requestBody = {}\r\n if (article) {\r\n this.requestBody.catalogPart = {\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: article.supplier.id,\r\n productGroupIds: [article.productGroup.id],\r\n wholesalerArticleNumber: article.traderArticleNo,\r\n availabilityState: {\r\n id:\r\n (quantityModifiers?.availability &&\r\n quantityModifiers.availability !== AvailabilityStatus.Unknown &&\r\n AvailabilityStatus[quantityModifiers.availability]) ||\r\n \"\",\r\n description: quantityModifiers?.availability?.toString() || \"\",\r\n },\r\n }\r\n }\r\n\r\n if (vehicleId) {\r\n this.requestBody.vehicleId = vehicleId\r\n }\r\n this.sendEvent()\r\n break\r\n }\r\n }\r\n }\r\n}\r\n","import { Article } from \"@tm/models\"\r\nimport { TmaEventTracking } from \"../..\"\r\n\r\nconst TMA_EVENT = \"ARTICLE_LIST_FILTERED\"\r\nexport interface ArticleListViewOptions {\r\n compactView: boolean\r\n showArticleImages: boolean\r\n showVehicleRecordsFilters: boolean\r\n}\r\n\r\nexport const ArticleEventHelper = {\r\n Parts: {\r\n ImageClick: {\r\n Click: (article: Article, vehicleId?: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_IMAGE_CLICKED\",\r\n action: \"article-image-click\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n payload: { article, vehicleId },\r\n source: \"product-group-search\",\r\n type: \"click\",\r\n })\r\n },\r\n },\r\n },\r\n}\r\n","import { ArticleEvent } from \"./event-handle\"\r\n\r\nexport * from \"./event-helper\"\r\n\r\nexport default new ArticleEvent()\r\n","import { AvailabilityStatus } from \"@tm/models\"\r\nimport { TmaEvent, TrackingModel } from \"../../models/models\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { DetailsFormCall } from \"./models\"\r\n\r\nexport class DetailsFormCallEventHandler extends TmaSender implements TmaEvent {\r\n key = \"ARTICLE_DETAILSFORMCALL\"\r\n\r\n static serviceEndpoint = \"/articles/detailsFormCall\"\r\n\r\n constructor() {\r\n super(DetailsFormCallEventHandler.serviceEndpoint)\r\n\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: TrackingModel): boolean => {\r\n if (trackingData.tmaEvent && trackingData.tmaEvent == this.key && trackingData.payload && trackingData.bundle == \"parts\") {\r\n if (Array.isArray(trackingData.action)) {\r\n trackingData.action.forEach((action) => this.fillRequest(trackingData, action))\r\n } else {\r\n this.fillRequest(trackingData, trackingData.action)\r\n }\r\n\r\n return false\r\n }\r\n\r\n return false\r\n }\r\n\r\n fillRequest = (trackingData: TrackingModel, action: string) => {\r\n const { article, quantityModifiers, vehicleId } = trackingData.payload\r\n\r\n if (action === \"details-form-call\") {\r\n if (article) {\r\n this.requestBody.catalogPart = {\r\n dataSupplierArticleNumber: article.supplierArticleNo,\r\n dataSupplierId: article.supplier.id,\r\n productGroupIds: [article.productGroup.id],\r\n wholesalerArticleNumber: article.traderArticleNo,\r\n availabilityState: {\r\n id:\r\n (quantityModifiers?.availability &&\r\n quantityModifiers.availability !== AvailabilityStatus.Unknown &&\r\n AvailabilityStatus[quantityModifiers.availability]) ||\r\n \"\",\r\n description: quantityModifiers?.availability?.toString() || \"\",\r\n },\r\n }\r\n }\r\n\r\n if (vehicleId) {\r\n this.requestBody.vehicleId = vehicleId\r\n }\r\n\r\n this.sendEvent()\r\n }\r\n }\r\n}\r\n","import { Article } from \"@tm/models\"\r\nimport { TmaEventTracking } from \"../..\"\r\n\r\nexport const DetailsFormCallEventHelper = {\r\n Call: (article?: Article, vehicleId?: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"ARTICLE_DETAILSFORMCALL\",\r\n action: \"details-form-call\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n payload: { article, vehicleId },\r\n source: \"product-group-search\",\r\n type: \"call\",\r\n })\r\n },\r\n}\r\n","import { DetailsFormCallEventHandler } from \"./event-handle\"\r\n\r\nexport * from \"./event-helper\"\r\n\r\nexport default new DetailsFormCallEventHandler()\r\n","import { Dictionary } from \"@tm/morpheus\"\r\nimport { getWorkTaskId, cleanContextUrl } from \"../helper/context\"\r\n\r\n/** *\r\n * kennt nur stores welche über einen identifier identifiziert werden (zb /parts/direct/list)\r\n * tmaStoreKey ist die id für den local/session/storage\r\n */\r\nexport class EventStorage {\r\n tmaStoreKey = \"tma\"\r\n\r\n identifier: string\r\n\r\n contextUrl: string\r\n\r\n /**\r\n * represents request content\r\n */\r\n body?: any\r\n\r\n private isModified: { [prcoessId: string]: boolean }\r\n\r\n constructor(identifier: string) {\r\n const tmaStore = sessionStorage.getItem(this.tmaStoreKey)\r\n\r\n this.identifier = identifier\r\n this.contextUrl = window.document.location.pathname\r\n this.isModified = {}\r\n\r\n if (!tmaStore) {\r\n this.writeToSessionStorage(\"{}\")\r\n }\r\n }\r\n\r\n removeModifiedState(processId: string) {\r\n const modifiedKey = this.identifier + processId\r\n if (this.isModified[modifiedKey] !== undefined) {\r\n delete this.isModified[modifiedKey]\r\n this.deleteModifiedKeyFromStorage(modifiedKey)\r\n } else {\r\n console.log(\"%ctrying to delete unknown modified state\", \"color: red\", processId, this.identifier, this.getTmaStore().modified)\r\n }\r\n }\r\n\r\n deleteModifiedKeyFromStorage(modifiedKey: string) {\r\n const baseStorage = this.getTmaStore()\r\n const modified = { ...(baseStorage.modified || {}) }\r\n delete modified[modifiedKey]\r\n const updatedStoraged = { ...baseStorage, modified }\r\n this.writeToSessionStorage(updatedStoraged)\r\n }\r\n\r\n setModified = (processId: string, modified: boolean) => {\r\n if (this.isModified[this.identifier + processId] === modified) {\r\n return\r\n }\r\n const baseStorage = this.getTmaStore()\r\n const modifiedKey = this.identifier + processId\r\n this.isModified[modifiedKey] = modified\r\n baseStorage.modified = baseStorage.modified || {}\r\n baseStorage.modified[modifiedKey] = this.isModified[modifiedKey]\r\n this.writeToSessionStorage(baseStorage)\r\n }\r\n\r\n getModified = (processId: string) => {\r\n const baseStorage = this.getTmaStore()\r\n if (baseStorage.modified) {\r\n this.isModified[this.identifier + processId] = baseStorage.modified[this.identifier + processId]\r\n }\r\n return this.isModified[this.identifier + processId]\r\n }\r\n\r\n setModifiedToFalse = (processId: string) => {\r\n this.isModified[this.identifier + processId] = false\r\n this.setModified(processId, false)\r\n }\r\n\r\n set = (content: TStoredData) => {\r\n this.body = content\r\n // store inside tma namespace, aswell as in the property body\r\n this.storeContent(content)\r\n }\r\n\r\n get = (): TStoredData | undefined => {\r\n if (this.body?.context && (this.body.context.identifier !== this.identifier || this.body.context.contextId !== this.getContextId())) {\r\n this.body = undefined\r\n }\r\n\r\n if (!this.body) {\r\n // looking up if body already exists\r\n const storedBody = this.getContent()\r\n if (storedBody) {\r\n this.body = storedBody\r\n }\r\n }\r\n\r\n return this.body || {}\r\n }\r\n\r\n loadContent = (context: StoreContext) => {\r\n return this.getContent(context)\r\n }\r\n\r\n delete = (context: StoreContext) => {\r\n const { identifier, contextId } = context\r\n const tmaStore = this.getTmaStore()\r\n\r\n if (!(tmaStore[identifier] && tmaStore[identifier][contextId])) {\r\n return\r\n }\r\n\r\n delete tmaStore[identifier][contextId]\r\n const stringifiedStore = JSON.stringify(tmaStore)\r\n sessionStorage.setItem(this.tmaStoreKey, stringifiedStore)\r\n }\r\n\r\n // store content depending on the current worktask (identifier) and the catalog context (contextid)\r\n private storeContent = (content: any) => {\r\n if (Object.keys(content).length === 0) {\r\n return\r\n }\r\n\r\n if (!content.context) {\r\n content.context = this.getContext()\r\n }\r\n const contextId = content.context?.contextId ? cleanContextUrl(content.context.contextId) : this.getContextId()\r\n const identifier = content.context?.identifier || this.identifier\r\n\r\n this.checkForModifications(content)\r\n\r\n const tmaStore = this.getTmaStore()\r\n tmaStore[identifier] = tmaStore[identifier] || { [contextId]: {} }\r\n\r\n tmaStore[identifier] = {\r\n ...tmaStore[identifier],\r\n [contextId]: {\r\n ...tmaStore[identifier][contextId],\r\n ...content,\r\n context: {\r\n contextId,\r\n identifier,\r\n },\r\n },\r\n }\r\n\r\n this.writeToSessionStorage(tmaStore)\r\n }\r\n\r\n private writeToSessionStorage = (newTmaStore: any) => {\r\n const stringifiedStore = typeof newTmaStore === \"string\" ? newTmaStore : JSON.stringify(newTmaStore)\r\n sessionStorage.setItem(this.tmaStoreKey, stringifiedStore)\r\n }\r\n\r\n /** *\r\n * returns a context object\r\n * @return { context: string, identifier: string }\r\n */\r\n public getContext() {\r\n return {\r\n contextId: this.getContextId(),\r\n identifier: this.identifier,\r\n }\r\n }\r\n\r\n /**\r\n * need to get a clear id to identify the concrete context (articlelist in modal, articlelist, ...)\r\n * @returns id of the current context\r\n */\r\n getContextId() {\r\n const wkId = getWorkTaskId()\r\n if (!wkId) {\r\n return \"startpage\"\r\n }\r\n\r\n const contextId = document.location.pathname + document.location.search\r\n return cleanContextUrl(contextId) // ?.hashCode()\r\n }\r\n\r\n /**\r\n * Get the content depending on the worktaskid\r\n * if we start from dashboard the worktaskid will be set as contextId and the event will search for a full pathname like '/0lZjPL1rmOuC9M81CTh2P5/parts/universal/list/uninode'\r\n\r\n * @returns returns the stored content\r\n */\r\n private getContent = (storeContext?: StoreContext) => {\r\n const tmaStore = this.getTmaStore()\r\n const context = storeContext || {\r\n identifier: this.identifier,\r\n contextId: this.getContextId(),\r\n }\r\n\r\n const storedContent = tmaStore[context.identifier] ?? {}\r\n const parsedContent = storedContent[context.contextId]\r\n return parsedContent\r\n }\r\n\r\n private getTmaStore = () => {\r\n const raw = sessionStorage.getItem(this.tmaStoreKey) || \"{}\"\r\n return JSON.parse(raw)\r\n }\r\n\r\n private checkForModifications = (currentObject: any) => {\r\n const processId = currentObject?.searchStep?.processId\r\n if (!processId || processId.toString() === \"-1\") {\r\n return false\r\n }\r\n if (this.getModified(processId)) {\r\n return true\r\n }\r\n\r\n const contextId = currentObject.context?.contextId || this.getContextId()\r\n const identifier = currentObject.context?.identifier || this.identifier\r\n\r\n const storedObject = this.getTmaStore()[identifier]?.[contextId]\r\n\r\n const stored = JSON.stringify(storedObject || {})\r\n const current = JSON.stringify(currentObject || {})\r\n\r\n this.setModified(processId, stored !== current)\r\n }\r\n\r\n private swapToQualifiedContextId = (\r\n currentContext: StoreContext,\r\n initialContextId: string,\r\n initialContent: any,\r\n store: { [key: string]: { [key: string]: any } }\r\n ) => {\r\n if (initialContent && currentContext.contextId.length > initialContextId.length && currentContext.contextId.startsWith(initialContextId)) {\r\n delete store[currentContext.identifier][initialContextId]\r\n initialContent.context = currentContext\r\n store[currentContext.identifier][currentContext.contextId] = initialContent\r\n this.writeToSessionStorage(store)\r\n this.body = initialContent\r\n }\r\n }\r\n\r\n public initWithPreInitializedContent = (currentContext: StoreContext, storage?: { [key: string]: { [key: string]: any } }) => {\r\n const preInitializedContextId = /(\\/[a-zA-Z0-9]{22})/.exec(currentContext.contextId)\r\n if (preInitializedContextId) {\r\n const fullStorage = storage || this.getTmaStore()\r\n const preInitContextId = preInitializedContextId[0]\r\n const storedContext = fullStorage[currentContext.identifier]\r\n const preInitContent = storedContext ? storedContext[preInitContextId] : null\r\n\r\n if (preInitContent) {\r\n this.swapToQualifiedContextId(currentContext, preInitContextId, preInitContent, fullStorage)\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport type StoreContext = { identifier: string; contextId: string }\r\n","import { ECounterType } from \"@tm/models\"\r\nimport { TmaEvent, TrackingModel } from \"../../models/models\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { CounterPayload, GeneralCountClick } from \"./models\"\r\n\r\nexport class GeneralCountEventHandler extends TmaSender implements TmaEvent {\r\n key = \"GENERAL_COUNT\"\r\n\r\n static serviceEndpoint = \"general/countSubmitted\"\r\n\r\n constructor() {\r\n super(GeneralCountEventHandler.serviceEndpoint)\r\n\r\n this.storage.getContextId = () => ECounterType.Undefined.toString()\r\n }\r\n\r\n handle = (trackingData: TrackingModel): boolean => {\r\n if (!trackingData.tmaEvent || trackingData.tmaEvent !== this.key || !trackingData.payload) {\r\n return false\r\n }\r\n\r\n const { counterType, toggleValue } = trackingData.payload\r\n\r\n // this is needed to get the correct context! Do not remove!\r\n this.storage.getContextId = () => counterType.toString()\r\n\r\n const temporaryRequestBody = this.requestBody\r\n\r\n temporaryRequestBody.counterType = counterType\r\n temporaryRequestBody.counterValue = toggleValue === undefined || toggleValue ? 1 : 0\r\n\r\n this.requestBody = temporaryRequestBody\r\n\r\n this.sendEvent(temporaryRequestBody).catch()\r\n\r\n return true\r\n }\r\n}\r\n","import { ECounterType } from \"@tm/models\"\r\nimport { TmaEventTracking, TmaHelper } from \"../..\"\r\nimport { OriginTypes } from \"../../models/originTypes\"\r\n\r\nexport const GeneralCountEventHelper = {\r\n Call: async (counterType?: ECounterType, toggleValue?: boolean) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"GENERAL_COUNT\",\r\n action: \"general_count_called\",\r\n bundle: \"general\",\r\n component: \"repository\",\r\n payload: { counterType, toggleValue },\r\n source: \"general\",\r\n type: \"click\",\r\n })\r\n },\r\n\r\n CallModule: async (url: string, toggleValue?: boolean) => {\r\n const counterType = getModuleOrigin(url)\r\n\r\n if (!counterType) {\r\n return\r\n }\r\n\r\n TmaHelper.GeneralCountEvent.Call(counterType, toggleValue)\r\n },\r\n}\r\n\r\nfunction getModuleOrigin(url: string): ECounterType | undefined {\r\n let counter: ECounterType | undefined = ECounterType.Undefined\r\n\r\n for (const generalCounterType of OriginTypes) {\r\n for (const cPath of generalCounterType.paths) {\r\n if (url.indexOf(cPath) >= 0) {\r\n counter = generalCounterType.counterType\r\n break\r\n }\r\n }\r\n }\r\n return counter\r\n}\r\n","import { GeneralCountEventHandler } from \"./event-handle\"\r\n\r\nexport * from \"./event-helper\"\r\n\r\nexport default new GeneralCountEventHandler()\r\n","import Bowser from \"bowser\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { LoginType, LoggedInRequest } from \"./models\"\r\nimport { TmaEvent, BaseTrackingModel } from \"../../models/models\"\r\nimport { checkNetworkType, getBrowserFeatures, getGraphicCard } from \"./helper\"\r\n\r\nexport class LoggedIn extends TmaSender implements TmaEvent {\r\n key = \"LOGGED_IN\"\r\n\r\n constructor() {\r\n // when extending tma sender we need to set the endpoint\r\n super(\"/logins/loggedin\")\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: BaseTrackingModel): Promise | void => {\r\n if (trackingData.tmaEvent && trackingData.tmaEvent.toLocaleLowerCase() != this.key.toLocaleLowerCase()) {\r\n return\r\n }\r\n\r\n if (trackingData.payload) {\r\n this.requestBody.loginType = trackingData.payload == \"hidden\" ? LoginType.hidden : LoginType.form\r\n }\r\n\r\n const browser = Bowser.getParser(window.navigator.userAgent)\r\n const features = getBrowserFeatures()\r\n\r\n this.requestBody.clientInfo = {\r\n ApplicationVersion: (window as any).__version || \"\",\r\n Browser: navigator.userAgent, // https://jira.dvse.de/browse/NEXT-29801 (comments)\r\n BrowserVersion: browser.getBrowserVersion(),\r\n CookiesEnabled: features.allowsCookies,\r\n ScreenHeight: features.desktop.height,\r\n ScreenWidth: features.desktop.width,\r\n ViewportHeight: features.window.height,\r\n ViewportWidth: features.window.width,\r\n OperatingSystem: browser.getOSName(),\r\n OperatingSystemVersion: browser.getOSVersion(),\r\n JavascriptEnabled: true,\r\n\r\n DotNetFrameworkVersion: undefined,\r\n DriveSpaceFree: undefined,\r\n DriveSpaceTotal: undefined,\r\n GraphicCard: getGraphicCard(),\r\n NetworkType: checkNetworkType(),\r\n ProcessorType: undefined, // we can get logical cores\r\n RamFree: undefined,\r\n RamTotal: undefined, // we can get an approximately value, in my case: i have 20gb ram but it will show me 8gib\r\n }\r\n\r\n if (window.tmJSShellMeta) {\r\n this.requestBody.shellMeta = window.tmJSShellMeta\r\n }\r\n\r\n if (this.requestBody.clientInfo && this.requestBody.loginType !== undefined) {\r\n return this.sendEvent()\r\n }\r\n }\r\n}\r\n","import isMobile from \"is-mobile\"\r\nimport { NetworkType } from \"./models\"\r\n\r\nexport function checkNetworkType() {\r\n if (isMobile()) {\r\n return NetworkType.mobile\r\n }\r\n\r\n const info = (window.navigator as any).connection\r\n if (!info || !info.type) {\r\n return undefined\r\n }\r\n\r\n switch (info.type) {\r\n case \"wifi\": {\r\n return NetworkType.wifi\r\n }\r\n case \"ethernet\": {\r\n return NetworkType.lan\r\n }\r\n default: {\r\n return undefined\r\n }\r\n }\r\n}\r\n\r\nexport function getGraphicCard() {\r\n const canvas = document.createElement(\"canvas\")\r\n\r\n let context\r\n try {\r\n context = canvas.getContext(\"webgl\") || canvas.getContext(\"experimental-webgl\")\r\n } catch (e) {\r\n return undefined\r\n }\r\n\r\n const debugInfo = (context as WebGLRenderingContext)?.getExtension(\"WEBGL_debug_renderer_info\")\r\n if (debugInfo) {\r\n const renderer = (context as WebGLRenderingContext).getParameter(debugInfo.UNMASKED_RENDERER_WEBGL)\r\n return renderer\r\n }\r\n\r\n return undefined\r\n}\r\n\r\nexport function getBrowserFeatures() {\r\n const { hardwareConcurrency, cookieEnabled } = navigator\r\n return {\r\n window: {\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n },\r\n desktop: {\r\n width: window.screen.width * window.devicePixelRatio,\r\n height: window.screen.height * window.devicePixelRatio,\r\n },\r\n numberOfLogicalProcessorCores: hardwareConcurrency,\r\n allowsCookies: !!cookieEnabled,\r\n }\r\n}\r\n","import { LoggedIn } from \"./event-handle\"\r\n\r\nexport type LoggedInTrackEvent = {\r\n action: string // \"parts-search\"\r\n bundle: string // \"parts\"\r\n component: string // \"tree\"\r\n payload: \"hidden\" | \"form\"\r\n tmaEvent: string // \"ARTICLE_LIST_FILTERED\"\r\n type: string // \"search\"\r\n}\r\n\r\nexport default new LoggedIn()\r\n","import { TMShellMetaData } from \"@tm/models\"\r\n\r\nexport interface LoggedInRequest {\r\n clientInfo?: ClientInfo\r\n loginType?: LoginType\r\n shellMeta?: TMShellMetaData\r\n}\r\n\r\nexport interface ClientInfo {\r\n ApplicationVersion: string\r\n\r\n Browser: string\r\n\r\n BrowserVersion: string\r\n\r\n CookiesEnabled: boolean\r\n\r\n DotNetFrameworkVersion?: string\r\n\r\n DriveSpaceFree?: number\r\n\r\n DriveSpaceTotal?: number\r\n\r\n GraphicCard?: string\r\n\r\n JavascriptEnabled: boolean\r\n\r\n NetworkType?: NetworkType\r\n\r\n ///

    \r\n /// Unique id of the os.\r\n /// \r\n OperatingSystem: string\r\n\r\n /// \r\n /// VersionId of the os.\r\n /// \r\n OperatingSystemVersion: string\r\n\r\n ProcessorType?: string\r\n\r\n /// \r\n /// Free space of RAM\r\n /// \r\n RamFree?: number\r\n\r\n /// \r\n /// Total space of RAM\r\n /// \r\n RamTotal?: number\r\n\r\n /// \r\n /// Screen height in px\r\n /// \r\n ScreenHeight: number\r\n\r\n /// \r\n /// Screen width in px\r\n /// \r\n ScreenWidth: number\r\n\r\n /// \r\n /// Viewport height in px. Mandatory for web application.\r\n /// \r\n ViewportHeight: number\r\n\r\n /// \r\n /// Viewport width in px. Mandatory for web application.\r\n /// \r\n ViewportWidth: number\r\n}\r\n\r\nexport enum LoginType {\r\n form = 0,\r\n hidden = 1,\r\n}\r\n\r\nexport enum NetworkType {\r\n lan = 0,\r\n wifi = 1,\r\n mobile = 2,\r\n}\r\n","export enum TmaMode {\r\n None = 0,\r\n Classic = 1,\r\n Combined = 2,\r\n LessRequests = 3,\r\n}\r\n","import { TmaSender } from \"../../tma-sender\"\r\nimport { DamageCalculationModuleCalledRequest } from \"../models\"\r\nimport { TmaEvent, BaseTrackingModel } from \"../../../models/models\"\r\n\r\nexport type AllDataTechDataModuleCalledRequest = {\r\n vehicleId?: string\r\n allDataVehicleId?: string\r\n}\r\n\r\nexport class AllDataTechDataModuleCalled extends TmaSender implements TmaEvent {\r\n key = \"td/alldata\"\r\n\r\n constructor() {\r\n // when extending tma sender we need to set the endpoint\r\n super(\"/alldata/technicalDataModuleCalled\")\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: BaseTrackingModel): Promise | void => {\r\n if (trackingData.payload) {\r\n const { vehicleId } = trackingData.payload\r\n this.requestBody.vehicleId = trackingData.payload.vehicleId\r\n }\r\n\r\n return this.sendEvent()\r\n }\r\n}\r\n","import { AllDataTechDataModuleCalled } from \"./event-handle\"\r\n\r\nexport default new AllDataTechDataModuleCalled()\r\n","import { TmaSender } from \"../../tma-sender\"\r\nimport { DamageCalculationModuleCalledRequest } from \"../models\"\r\nimport { TmaEvent, BaseTrackingModel } from \"../../../models/models\"\r\n\r\nexport class DamageCalculationDatModuleCalled extends TmaSender implements TmaEvent {\r\n key = \"damage-calculation/dat\"\r\n\r\n constructor() {\r\n super(\"/dat/repairEstimateModuleCalled\")\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: BaseTrackingModel): Promise | void => {\r\n if (trackingData.payload?.vehicleId) {\r\n this.requestBody.vehicleId = trackingData.payload.vehicleId\r\n }\r\n\r\n return this.sendEvent()\r\n }\r\n}\r\n","import { DamageCalculationDatModuleCalled } from \"./event-handle\"\r\n\r\nexport default new DamageCalculationDatModuleCalled()\r\n","import { TmaSender } from \"../../tma-sender\"\r\nimport { DamageCalculationModuleCalledRequest } from \"../models\"\r\nimport { TmaEvent, BaseTrackingModel } from \"../../../models/models\"\r\n\r\nexport class DamageCalculationEurotaxModuleCalled extends TmaSender implements TmaEvent {\r\n key = \"damage-calculation/eurotax\"\r\n\r\n constructor() {\r\n // when extending tma sender we need to set the endpoint\r\n super(\"/eurotax/repairEstimateModuleCalled\")\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: BaseTrackingModel): Promise | void => {\r\n if (trackingData.payload?.vehicleId) {\r\n this.requestBody.vehicleId = trackingData.payload.vehicleId\r\n }\r\n\r\n return this.sendEvent() // if it's called from the module itself cdm send the event\r\n }\r\n}\r\n","import { DamageCalculationEurotaxModuleCalled } from \"./event-handle\"\r\n\r\nexport default new DamageCalculationEurotaxModuleCalled()\r\n","import { TmaEventTracking } from \"../..\"\r\nimport { BaseTrackingModel } from \"../../models/models\"\r\nimport {\r\n ModuleCalledRequest,\r\n RepairTimesModuleCalledRequest,\r\n DamageCalculationModuleCalledRequest,\r\n TMA_EVENT,\r\n GPIModuleCalledRequest,\r\n} from \"./models\"\r\n\r\nexport const ModuleCalledRequestHelper = (\r\n data: ModuleCalledRequest & (RepairTimesModuleCalledRequest | DamageCalculationModuleCalledRequest | GPIModuleCalledRequest)\r\n) => {\r\n const trackingData: BaseTrackingModel<\r\n ModuleCalledRequest & (RepairTimesModuleCalledRequest | DamageCalculationModuleCalledRequest | GPIModuleCalledRequest)\r\n > = {\r\n action: \"module-called\",\r\n bundle: \"any\",\r\n tmaEvent: TMA_EVENT,\r\n payload: {\r\n ...data,\r\n },\r\n component: \"widget-navigation-dropdown\",\r\n source: \"any\",\r\n type: \"click\",\r\n }\r\n\r\n TmaEventTracking.dispatchTrack(trackingData)\r\n}\r\n","import { TmaSender } from \"../../tma-sender\"\r\nimport { GPIModuleCalledRequest } from \"../models\"\r\nimport { TmaEvent, BaseTrackingModel } from \"../../../models/models\"\r\n\r\nexport class GPIModuleCalled extends TmaSender implements TmaEvent {\r\n key = \"eurotax\"\r\n\r\n constructor() {\r\n // when extending tma sender we need to set the endpoint\r\n super(\"/gpi/gpiModuleCalled\")\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: BaseTrackingModel): Promise | void => {\r\n if (trackingData.payload?.vehicleId) {\r\n this.requestBody.vehicleId = trackingData.payload.vehicleId\r\n }\r\n\r\n return this.sendEvent() // if it's called from the module itself cdm send the event\r\n }\r\n}\r\n","import { GPIModuleCalled } from \"./event-handle\"\r\n\r\nexport default new GPIModuleCalled()\r\n","import { TmaEvent, BaseTrackingModel } from \"../../models/models\"\r\nimport {\r\n DamageCalculationModuleCalledRequest,\r\n GPIModuleCalledRequest,\r\n ModuleCalledRequest,\r\n RepairTimesModuleCalledRequest,\r\n TMA_EVENT,\r\n} from \"./models\"\r\nimport AllDataTechDataModuleCalled from \"./alldata-techdata\"\r\nimport DamageCalculationDatModuleCalled from \"./damage-calculation-dat\"\r\nimport DamageCalculationEurotaxModuleCalled from \"./damage-calculation-eurotax\"\r\nimport GPIModuleCalled from \"./gpi\"\r\nimport RepairTimesAutoDataModuleCalled from \"./repairtimes-autodata\"\r\nimport RepairTimesAwDocModuleCalled from \"./repairtimes-awdoc\"\r\n\r\nexport * from \"./event-helper\"\r\n\r\nexport class ModuleCalledSwitch implements TmaEvent {\r\n key = TMA_EVENT\r\n\r\n modules = [\r\n RepairTimesAutoDataModuleCalled,\r\n RepairTimesAwDocModuleCalled,\r\n DamageCalculationDatModuleCalled,\r\n AllDataTechDataModuleCalled,\r\n DamageCalculationEurotaxModuleCalled,\r\n GPIModuleCalled,\r\n ]\r\n\r\n handle = (\r\n trackingData: BaseTrackingModel<\r\n ModuleCalledRequest & (RepairTimesModuleCalledRequest | DamageCalculationModuleCalledRequest | GPIModuleCalledRequest)\r\n >\r\n ): Promise | void => {\r\n if (trackingData.tmaEvent && trackingData.tmaEvent.toLocaleLowerCase() != this.key.toLocaleLowerCase()) {\r\n return\r\n }\r\n if (!trackingData.payload) {\r\n return\r\n }\r\n\r\n const { route } = trackingData.payload\r\n const module = this.getModule(route)\r\n\r\n module?.handle(trackingData)\r\n }\r\n\r\n getModule(route: string) {\r\n return this.modules.find((module) => {\r\n return route && route.indexOf(module.key) >= 0 // called url could look like this \"/4cv6UeZpovkZCIgjEVo8zF/repair-times/awdoc/select\"\r\n })\r\n }\r\n}\r\n\r\nexport default new ModuleCalledSwitch()\r\n","export type ModuleCalledRequest = {\r\n route: string\r\n}\r\nexport interface DamageCalculationModuleCalledRequest {\r\n vehicleId?: string\r\n}\r\n\r\nexport interface GPIModuleCalledRequest {\r\n vehicleId?: string\r\n}\r\n\r\nexport interface RepairTimesModuleCalledRequest {\r\n vehicleId?: string\r\n productGroupIds?: number[]\r\n}\r\n\r\nexport const TMA_EVENT = \"MODULE_CALLED\"\r\n","import { TmaSender } from \"../../tma-sender\"\r\nimport { RepairTimesModuleCalledRequest } from \"../models\"\r\nimport { TmaEvent, BaseTrackingModel } from \"../../../models/models\"\r\n\r\nexport class RepairTimesAutoDataModuleCalled extends TmaSender implements TmaEvent {\r\n key = \"repair-times/autodata\"\r\n\r\n constructor() {\r\n // when extending tma sender we need to set the endpoint\r\n super(\"/autodata/repairTimesModuleCalled\")\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: BaseTrackingModel): Promise | void => {\r\n if (trackingData.payload) {\r\n this.requestBody.productGroupIds = trackingData.payload.productGroupIds\r\n this.requestBody.vehicleId = trackingData.payload.vehicleId\r\n }\r\n\r\n return this.sendEvent() // if it's called from the module itself cdm send the event\r\n }\r\n}\r\n","import { RepairTimesAutoDataModuleCalled } from \"./event-handle\"\r\n\r\nexport default new RepairTimesAutoDataModuleCalled()\r\n","import { TmaSender } from \"../../tma-sender\"\r\nimport { RepairTimesModuleCalledRequest } from \"../models\"\r\nimport { TmaEvent, BaseTrackingModel } from \"../../../models/models\"\r\n\r\nexport class RepairTimesAwDocModuleCalled extends TmaSender implements TmaEvent {\r\n key = \"repair-times/awdoc\"\r\n\r\n constructor() {\r\n // when extending tma sender we need to set the endpoint\r\n super(\"/awdoc/repairTimesModuleCalled\")\r\n this.requestBody = {}\r\n }\r\n\r\n handle = (trackingData: BaseTrackingModel): Promise | void => {\r\n if (trackingData.payload) {\r\n this.requestBody.productGroupIds = trackingData.payload.productGroupIds\r\n this.requestBody.vehicleId = trackingData.payload.vehicleId\r\n }\r\n\r\n return this.sendEvent() // if it's called from the module itself cdm send the event\r\n }\r\n}\r\n","import { RepairTimesAwDocModuleCalled } from \"./event-handle\"\r\n\r\nexport default new RepairTimesAwDocModuleCalled()\r\n","import { SearchExecutedRequest, ArticleListInfo } from \"./models\"\r\nimport { GetArticlesRequest, getCurrentWorkTaskId, GetUniArticlesResponse, Article, TmaEModule } from \"@tm/models\"\r\nimport { TmaSender } from \"../tma-sender\"\r\nimport { TmaEvent, TrackingModel } from \"../../models/models\"\r\n\r\nimport { uniqueId } from \"../../../helpers/id\"\r\nimport { ProductGroupDataSupplier } from \"../article-list-filtered/models\"\r\nimport { getPageIndexMax } from \"../article-list-filtered/helper\"\r\nimport { determineOrigin } from \"../article-list-filtered/originDetection\"\r\nimport { cleanContextUrl } from \"../../helper/context\"\r\n\r\nexport class PremiumUniPartsSearchEvent extends TmaSender implements TmaEvent {\r\n static serviceEndpoint = \"/uniArticles/searchExecuted\"\r\n\r\n key = \"PREMIUM_UNI_PARTS_SEARCH\"\r\n\r\n workTaskId: string\r\n\r\n autocompleteResults: Array\r\n\r\n temporaryRequestBody: SearchExecutedRequest\r\n\r\n constructor() {\r\n // extending tma sender needs to set\r\n super(PremiumUniPartsSearchEvent.serviceEndpoint)\r\n\r\n this.workTaskId = \"\"\r\n this.autocompleteResults = []\r\n this.reset()\r\n }\r\n\r\n reset = () => {\r\n const resetRequest = {\r\n criterionFilters: [],\r\n articleList: {\r\n articleCount: 0,\r\n paging: {\r\n pageIndex: undefined,\r\n pageIndexMax: undefined,\r\n pageSize: undefined,\r\n },\r\n productGroupDataSuppliers: [],\r\n wholesalerArticleCount: 0,\r\n maxArticleCount: undefined,\r\n },\r\n origin: TmaEModule.UNDEFINED,\r\n searchStep: {\r\n number: 1,\r\n processId: uniqueId(),\r\n },\r\n searchTree: undefined,\r\n query: undefined,\r\n }\r\n this.temporaryRequestBody = resetRequest\r\n }\r\n\r\n public handle = (trackingData: TrackingModel): boolean => {\r\n if (!trackingData.tmaEvent || trackingData.tmaEvent !== this.key || !trackingData.payload) {\r\n return false\r\n }\r\n\r\n // when the event doesnt have a searchstep it was called from the dashboard with no worktask id.\r\n if (!this.temporaryRequestBody?.searchStep) {\r\n this.temporaryRequestBody = {\r\n ...this.temporaryRequestBody,\r\n searchStep: {\r\n number: 1,\r\n processId: uniqueId(),\r\n },\r\n origin: trackingData.payload.origin || TmaEModule.UNDEFINED,\r\n }\r\n }\r\n let caseFound = false\r\n switch (trackingData.bundle) {\r\n case \"parts\":\r\n case \"tyres\":\r\n case \"api\": {\r\n this.workTaskId = trackingData.payload.workTaskId ?? getCurrentWorkTaskId()\r\n\r\n if (Array.isArray(trackingData.action)) {\r\n trackingData.action.forEach((action) => this.fillRequest(trackingData, action))\r\n } else {\r\n this.fillRequest(trackingData, trackingData.action)\r\n }\r\n\r\n caseFound = true\r\n break\r\n }\r\n case \"worktask\": {\r\n if (trackingData.action == \"reset-process-id\") {\r\n if (Array.isArray(trackingData.payload.worktaskIds) && trackingData.payload.worktaskIds.indexOf(this.workTaskId) >= 0) {\r\n this.reset()\r\n }\r\n }\r\n caseFound = true\r\n break\r\n }\r\n\r\n default:\r\n caseFound = false\r\n break\r\n }\r\n\r\n return caseFound\r\n }\r\n\r\n private swapOnPreinitialized = () => {\r\n this.storage.initWithPreInitializedContent(this.storage.getContext())\r\n }\r\n\r\n private fillRequest(trackingData: TrackingModel, action: string) {\r\n const { payload } = trackingData\r\n\r\n switch (action) {\r\n case \"articlesLoaded\": {\r\n this.swapOnPreinitialized()\r\n this.handleBrowserRefresh()\r\n const { request, result } = payload\r\n this.temporaryRequestBody.workTaskId = payload.worktaskId\r\n if (request.query) {\r\n this.attachSearchQuery(request.query)\r\n }\r\n this.attachArticleListInfo(request, result)\r\n\r\n this.saveContext()\r\n console.log(\r\n `%c${this.serviceEndpoint}\\r\\n${document.location.pathname}\\r\\nprocessId: ${this.temporaryRequestBody.searchStep.processId}\\r\\norigin: ${this.temporaryRequestBody.origin}\\r\\nquery: ${this.temporaryRequestBody.query}\\r\\ntree: ${this.temporaryRequestBody.searchTree}\\r\\nevent will be send now\\r\\n`,\r\n \"color:green\",\r\n this.temporaryRequestBody\r\n )\r\n this.sendEvent(this.temporaryRequestBody).then(() => {\r\n if (this.temporaryRequestBody.context) {\r\n this.storage.delete(this.temporaryRequestBody.context)\r\n this.temporaryRequestBody.searchStep.processId &&\r\n this.storage.removeModifiedState(this.temporaryRequestBody.searchStep.processId)\r\n }\r\n })\r\n\r\n break\r\n }\r\n\r\n case \"autocomplete\": {\r\n const { hits } = payload\r\n\r\n if (hits && Array.isArray(hits)) {\r\n this.autocompleteResults = hits\r\n }\r\n break\r\n }\r\n case \"nodeSelected\":\r\n case \"handleChangeBreadcrumbs\": {\r\n const { nodeId, treeId, origin } = payload\r\n this.reset()\r\n this.addSearchTree(treeId, nodeId)\r\n this.temporaryRequestBody.origin = origin\r\n break\r\n }\r\n\r\n case \"increase-step-number\": {\r\n this.temporaryRequestBody.searchStep = {\r\n number: !this.temporaryRequestBody.searchStep ? 1 : ++this.temporaryRequestBody.searchStep.number,\r\n processId: !this.temporaryRequestBody.searchStep ? uniqueId() : this.temporaryRequestBody.searchStep.processId,\r\n }\r\n break\r\n }\r\n\r\n case \"filterChanged\": {\r\n if (payload.criterionFilters) {\r\n this.temporaryRequestBody.criterionFilters = payload.criterionFilters\r\n }\r\n break\r\n }\r\n\r\n case \"keyword-search-redirect\": {\r\n const { query, origin, targetUrl } = payload\r\n\r\n this.reset()\r\n this.temporaryRequestBody.context = {\r\n identifier: this.serviceEndpoint,\r\n contextId: cleanContextUrl(targetUrl),\r\n }\r\n this.attachSearchQuery(query)\r\n this.temporaryRequestBody.origin = origin\r\n break\r\n }\r\n\r\n case \"handleExternalSearch\":\r\n case \"keyword-search-context\":\r\n case \"handleSearch\":\r\n case \"tyresSelection\": {\r\n const { origin, query } = payload\r\n\r\n this.reset()\r\n this.attachSearchQuery(query)\r\n this.temporaryRequestBody.origin = origin\r\n break\r\n }\r\n\r\n case \"reset\": {\r\n // this.reset()\r\n break\r\n }\r\n }\r\n }\r\n\r\n private handleBrowserRefresh = () => {\r\n if (this.temporaryRequestBody.origin === TmaEModule.UNDEFINED) {\r\n this.temporaryRequestBody.origin = determineOrigin()\r\n }\r\n }\r\n\r\n private addSearchTree = (treeId: number, nodeId: number) => {\r\n this.temporaryRequestBody.searchTree = { nodeId, treeId }\r\n this.temporaryRequestBody.query = undefined // if searchtree is used, query will not be considered\r\n }\r\n\r\n private attachSearchQuery = (query: string) => {\r\n let searchQuery: string | undefined = query\r\n\r\n if (!searchQuery) {\r\n const params = window.location.search.split(\"&\")\r\n params.forEach((param) => {\r\n const regexMatch = /query=(.*)/.exec(param)\r\n if (regexMatch && regexMatch[1]) {\r\n searchQuery = decodeURIComponent(regexMatch[1]).replace(/\\+/g, \" \")\r\n }\r\n })\r\n }\r\n\r\n if (!searchQuery || searchQuery == \"\") {\r\n this.temporaryRequestBody.query = undefined\r\n return\r\n }\r\n\r\n this.temporaryRequestBody.query = searchQuery\r\n this.temporaryRequestBody.searchTree = undefined // if it's a query search, the searchtree will not be considered\r\n }\r\n\r\n attachArticleListInfo(request: GetArticlesRequest, result: GetUniArticlesResponse) {\r\n let wholesalerArticleCount = 0\r\n const productGroupDataSuppliers: Array = []\r\n\r\n result?.uniArticles?.forEach((article: Article) => {\r\n if (article.traderArticleNo) {\r\n ++wholesalerArticleCount\r\n }\r\n\r\n if (article.supplier) {\r\n const { supplier, productGroup } = article\r\n const productGroupDataSupplierPair = {\r\n dataSupplierId: supplier.id,\r\n productGroupId: productGroup.id,\r\n }\r\n\r\n if (\r\n !productGroupDataSuppliers.find(\r\n (item) =>\r\n item.dataSupplierId == productGroupDataSupplierPair.dataSupplierId &&\r\n item.productGroupId == productGroupDataSupplierPair.productGroupId\r\n )\r\n ) {\r\n productGroupDataSuppliers.push(productGroupDataSupplierPair)\r\n }\r\n }\r\n })\r\n\r\n const maxArticleCount = result?.articleListCount ?? 0\r\n const pageSize = result?.pageSize ?? request.pageSize\r\n const pageIndexMax = getPageIndexMax(maxArticleCount, pageSize)\r\n\r\n const articleListInfo: ArticleListInfo = {\r\n articleCount: result?.uniArticles?.length ?? 0,\r\n maxArticleCount,\r\n paging: {\r\n pageIndex: result?.pageIndex ?? request.pageIndex,\r\n pageSize,\r\n pageIndexMax,\r\n },\r\n wholesalerArticleCount,\r\n productGroupDataSuppliers,\r\n }\r\n this.temporaryRequestBody.articleList = articleListInfo\r\n }\r\n\r\n private saveContext() {\r\n this.requestBody = this.temporaryRequestBody\r\n }\r\n}\r\n","import { CategoryType, GetArticlesRequest, GetUniArticlesResponse, TmaEModule } from \"@tm/models\"\r\nimport { TmaEventTracking } from \"../..\"\r\nimport { BaseTrackingModel, QuerySearchType } from \"../../models/models\"\r\nimport { CriterionFilter, PremiumUniPartsSearchCriterion, TreeMode } from \"./models\"\r\nimport { getCatalogOrigin } from \"../../helper/origin\"\r\nimport { determineKeywordSearchOrigin, determineOrigin, determineUniSearchTreeTmaModule } from \"../article-list-filtered/originDetection\"\r\n\r\nconst TMA_EVENT = \"PREMIUM_UNI_PARTS_SEARCH\"\r\nexport interface ArticleListViewOptions {\r\n compactView: boolean\r\n showArticleImages: boolean\r\n showVehicleRecordsFilters: boolean\r\n}\r\n\r\nexport const PremiumUniPartsSearchEventHelper = {\r\n UniParts: {\r\n Event: {\r\n IncreaseStepNumber: () => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n bundle: \"parts\",\r\n component: \"searchtree\",\r\n action: \"increase-step-number\",\r\n type: \"click\",\r\n source: \"selected-filter\",\r\n payload: true,\r\n })\r\n },\r\n Reset: () => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n bundle: \"parts\",\r\n component: \"area-swap\",\r\n action: \"reset\",\r\n type: \"click\",\r\n source: \"selected-filter\",\r\n payload: true,\r\n })\r\n },\r\n Swap: () => {\r\n // nothing to do here, for now .....\r\n },\r\n },\r\n SearchTree: {\r\n NodeSelected: async (data: { mode?: TreeMode; nodeId?: number; treeId?: number; origin?: TmaEModule }) => {\r\n const { mode, nodeId, treeId } = data\r\n const eventOrigin = determineUniSearchTreeTmaModule(data.origin || getCatalogOrigin(), mode)\r\n // not clear when and how and why to use this, it's implemented in handleSelectNode, but there is no further handling\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"nodeSelected\",\r\n source: mode || \"fast-click-2.0\",\r\n payload: { mode, origin: eventOrigin, nodeId, treeId },\r\n bundle: \"parts\",\r\n component: \"shared/tree\",\r\n type: \"commit\",\r\n })\r\n },\r\n },\r\n Search: {\r\n AutoCompleteResults: (hits: string[]) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"autocomplete\",\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n payload: { hits },\r\n source: \"uni-product-group-search\",\r\n type: \"request\",\r\n })\r\n },\r\n KeywordSearchFromStartPage: (query: string, targetUrl: string) => {\r\n const origin = determineKeywordSearchOrigin(\"universalParts\", true)\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"keyword-search-redirect\",\r\n bundle: \"parts\",\r\n component: \"navigation\",\r\n payload: {\r\n query,\r\n origin,\r\n targetUrl,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n Assistent: (targetUrl: string, query: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"keyword-search-redirect\",\r\n bundle: \"parts\",\r\n component: \"partslist\",\r\n payload: {\r\n origin: TmaEModule.ARTICLE_DIRECT_SEARCH_SEARCH_ASSISTENT,\r\n query,\r\n targetUrl,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n SetSearchContext: (categoryType: CategoryType, query: string, workTaskId?: string, fromWidget?: boolean) => {\r\n const origin = determineKeywordSearchOrigin(categoryType, fromWidget)\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"keyword-search-context\",\r\n bundle: \"parts\",\r\n component: \"navigation\",\r\n payload: {\r\n categoryType,\r\n query,\r\n workTaskId,\r\n fromWidget,\r\n origin,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n Submit: (origin: TmaEModule, query: string, categoryType: CategoryType) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"handleSearch\",\r\n bundle: \"parts\",\r\n component: \"SearchComponent\",\r\n payload: {\r\n query,\r\n origin,\r\n categoryType,\r\n },\r\n source: \"searchfield\",\r\n type: \"request\",\r\n })\r\n },\r\n SubmitExternal: (query?: string, origin?: TmaEModule) => {\r\n origin = origin ?? getCatalogOrigin()\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"handleExternalSearch\",\r\n bundle: \"api\",\r\n component: \"post-message-controller\",\r\n payload: {\r\n query,\r\n origin,\r\n },\r\n source: \"searchfield\",\r\n type: \"request\",\r\n })\r\n },\r\n TreeChanged: (mode?: \"fastClick\" | \"fast-click-2.0\", thumbnailClicked?: boolean) => {\r\n TmaEventTracking.dispatchTrack({\r\n // move this to business actions? function changeBreadcrumbs(breadcrumbs: Array, startSearch?: boolean): AsyncAction {\r\n tmaEvent: TMA_EVENT,\r\n bundle: \"parts\",\r\n component: \"searchtree\",\r\n action: [\"handleChangeBreadcrumbs\"],\r\n type: \"search\",\r\n source: thumbnailClicked ? \"thumbnail\" : \"label\",\r\n payload: {\r\n mode: mode || \"fast-click-2.0\",\r\n },\r\n })\r\n },\r\n TyresSelection: (query?: string, origin?: TmaEModule) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"tyresSelection\",\r\n bundle: \"tyres\",\r\n component: \"\",\r\n payload: {\r\n query,\r\n origin: origin ?? TmaEModule.TM_TYRE_SEARCH,\r\n },\r\n source: \"searchfield\",\r\n type: \"request\",\r\n })\r\n },\r\n WheelsSelection: (query: string) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n action: \"keyword-search-context\",\r\n bundle: \"parts\",\r\n component: \"navigation\",\r\n payload: {\r\n query,\r\n origin: TmaEModule.WHEEL_CONFIGURATOR,\r\n },\r\n source: \"widget\",\r\n type: \"render\",\r\n })\r\n },\r\n },\r\n List: {\r\n Results: async (\r\n request: GetArticlesRequest,\r\n result: GetUniArticlesResponse | undefined,\r\n worktaskId: string,\r\n url: string,\r\n searchedNodeId?: string\r\n ) => {\r\n const match = /nodeId=(\\d+)/.exec(document.location.search)\r\n const latestSearchedNodeId = match?.last()\r\n\r\n if (!searchedNodeId || searchedNodeId == latestSearchedNodeId) {\r\n const origin = determineOrigin()\r\n // look at article-list-filtered/helper.ts\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n bundle: \"parts\",\r\n component: \"repository\",\r\n action: \"articlesLoaded\",\r\n type: \"request\",\r\n payload: { request, result, worktaskId, origin },\r\n source: url,\r\n contextData: request.pageIndex\r\n ? {\r\n paging: {\r\n pageIndex: request.pageIndex,\r\n },\r\n }\r\n : undefined,\r\n })\r\n }\r\n },\r\n FilterChanged: (data: { criterionFilters: Array }) => {\r\n const criterionFilters: Array = data.criterionFilters.map((critFilter) => {\r\n return {\r\n group: critFilter.group,\r\n id: critFilter.id,\r\n name: critFilter.name,\r\n }\r\n })\r\n\r\n TmaEventTracking.dispatchTrack({\r\n action: \"filterChanged\",\r\n bundle: \"parts\",\r\n component: \"helper\",\r\n payload: { criterionFilters },\r\n source: \"loadUniFilters\",\r\n tmaEvent: TMA_EVENT,\r\n type: \"request\",\r\n })\r\n },\r\n ViewOptions: (viewOptions: ArticleListViewOptions) => {\r\n const trackingData: BaseTrackingModel<{ viewOptions: ArticleListViewOptions }> = {\r\n action: \"viewoptions-changed\",\r\n bundle: \"parts\",\r\n component: \"list\",\r\n source: \"dropdown\",\r\n tmaEvent: TMA_EVENT,\r\n type: \"click\",\r\n payload: {\r\n viewOptions,\r\n },\r\n }\r\n\r\n TmaEventTracking.dispatchTrack(trackingData)\r\n },\r\n },\r\n },\r\n}\r\n\r\n/**\r\n * @deprecated ArticleListFilteredEvents was renamed to ArticleListFilteredEventHelper\r\n */\r\nexport const ArticleListFilteredEvents = PremiumUniPartsSearchEventHelper\r\n","import { PremiumUniPartsSearchEvent } from \"./event-handle\"\r\nimport { Filter } from \"../../models/models\"\r\n\r\nexport * from \"./event-helper\"\r\nexport * from \"./models\"\r\n\r\nexport type PremiumUniPartsSearchTrackEvent = {\r\n action: string // \"parts-search\"\r\n bundle: string // \"parts\"\r\n component: string // \"tree\"\r\n initiateProcess: boolean // true\r\n payload: any // (4) [{…}, {…}, {…}, {…}]\r\n source: string // \"searchtree\"\r\n step: number // 1\r\n tmaEvent: string // \"ARTICLE_LIST_FILTERED\"\r\n type: string // \"search\"\r\n}\r\n\r\n/**\r\n * Data which is needed to be stored in order to augment the tma event data\r\n * add more properties if needed\r\n */\r\nexport type AnalyticsData = {\r\n filter?: Filters\r\n}\r\n\r\nexport type Filters = {\r\n available?: AvailableData\r\n}\r\nexport type SelectedData = {\r\n productGroupIds?: Array\r\n supplierIds?: Array\r\n oeReferences?: Array\r\n}\r\n\r\nexport type AvailableData = {\r\n productGroupFilters?: Array\r\n dataSupplierFilters?: Array\r\n oeReferences?: Array\r\n}\r\n\r\nexport default new PremiumUniPartsSearchEvent()\r\n","import { getCurrentWorkTaskId } from \"@tm/models\"\r\nimport { getStoredAuthorization } from \"../../helpers/auth\"\r\nimport { ajax } from \"../../helpers/ajax\"\r\nimport { uniqueId } from \"../../helpers/id\"\r\nimport { EventStorage } from \"./event-storage\"\r\n\r\nexport class TmaSender {\r\n storage: EventStorage\r\n\r\n serviceBaseUrl: string\r\n\r\n serviceEndpoint: string\r\n\r\n constructor(serviceEndpoint: string) {\r\n this.serviceBaseUrl = \"/data/TM.Next.Logging\"\r\n this.serviceEndpoint = `${serviceEndpoint.startsWith(\"/\") ? serviceEndpoint : `/${serviceEndpoint}`}`\r\n this.storage = new EventStorage(this.serviceEndpoint)\r\n }\r\n\r\n set requestBody(request: TRequestBody) {\r\n this.storage.set(request)\r\n }\r\n\r\n get requestBody(): TRequestBody {\r\n return this.storage.get()\r\n }\r\n\r\n sendEvent = (requestCopy?: TRequestBody) => {\r\n const url = `${this.serviceBaseUrl}${this.serviceEndpoint}`\r\n const authorization = getStoredAuthorization()\r\n\r\n if (!authorization) {\r\n return Promise.reject(\"No authorization\")\r\n }\r\n\r\n const body = {\r\n ...(requestCopy || this.requestBody),\r\n eventId: uniqueId(),\r\n }\r\n\r\n return ajax({ url, body, authorization, method: \"POST\" })\r\n }\r\n\r\n resetEvent = (data?: TRequestBody) => {\r\n this.requestBody = data || ({} as TRequestBody)\r\n }\r\n}\r\n","import { TmaEModule } from \"@tm/models\"\r\nimport { EventStorage } from \"../event-storage\"\r\nimport { TmaEvent, BaseTrackingModel } from \"../../models/models\"\r\nimport { VehicleSelectionLog } from \"./models\"\r\nimport { DataPublisher } from \"../../publishing-service/models\"\r\n\r\nconst CatalogContextCollection: { [key: string]: TmaEModule } = {\r\n \"vehicle.list\": TmaEModule.UNDEFINED,\r\n}\r\n\r\nexport class VehicleSelection extends DataPublisher implements TmaEvent {\r\n key: string\r\n\r\n private data: VehicleSelectionLog\r\n\r\n storageId?: string\r\n\r\n /**\r\n * FakeTmaSender\r\n */\r\n get requestBody() {\r\n let data = this.storage.get()\r\n if (data && this.storageId) {\r\n // @ts-ignore\r\n data = data[this.storageId]\r\n }\r\n return data\r\n }\r\n\r\n set requestBody(data: VehicleSelectionLog | undefined) {\r\n let tData: any = data\r\n if (this.storageId) {\r\n tData = {\r\n ...tData,\r\n [this.storageId]: data,\r\n }\r\n }\r\n\r\n this.storage.set(tData)\r\n }\r\n\r\n handleWorkTaskChange(workTaskId?: string, previousWorkTaskId?: string) {\r\n this.storageId = workTaskId\r\n }\r\n\r\n constructor() {\r\n const key = \"VEHICLE_SELECTION\"\r\n super(new EventStorage(key))\r\n this.key = key\r\n\r\n this.data = {\r\n origin: TmaEModule.UNDEFINED,\r\n }\r\n\r\n this.handleWorkTaskChange = this.handleWorkTaskChange.bind(this)\r\n }\r\n\r\n handle(data: BaseTrackingModel) {\r\n if (this.key != data.tmaEvent) {\r\n return\r\n }\r\n\r\n const { action, payload, bundle, component } = data\r\n\r\n switch (action) {\r\n case \"setIdentification\": {\r\n this.data.dataSourceId = payload.dataSourceId\r\n this.data.searchTerm = payload.searchTerm\r\n this.data.origin = payload.origin\r\n break\r\n }\r\n\r\n case \"setContextType\": {\r\n this.data.origin = payload.origin\r\n }\r\n\r\n case \"setOrigin\": {\r\n this.data.origin = payload.origin\r\n }\r\n\r\n case \"selectConstructionYearFilter\": {\r\n if (!payload) {\r\n return\r\n }\r\n\r\n this.data.selectedConstructionYearFilter = payload.year // can be undefined\r\n break\r\n }\r\n\r\n case \"handleApply\": {\r\n if (!payload || !payload.dataSourceId) {\r\n return\r\n }\r\n\r\n this.data.dataSourceId = payload.dataSourceId\r\n\r\n this.setCatalogContextType(bundle, component)\r\n break\r\n }\r\n\r\n case \"search\": {\r\n this.data.searchTerm = payload?.searchTerm\r\n break\r\n }\r\n }\r\n\r\n this.requestBody = this.data\r\n }\r\n\r\n private setCatalogContextType(bundle: string, component: string) {\r\n const origin = CatalogContextCollection[`${bundle}.${component}`]\r\n\r\n if (origin) {\r\n this.data.origin = origin\r\n }\r\n }\r\n}\r\n\r\nexport default new VehicleSelection()\r\n","import { TmaEModule } from \"@tm/models\"\r\nimport { TmaEventTracking } from \"../..\"\r\nimport { BaseTrackingModel } from \"../../models/models\"\r\nimport { VehicleSelectionLog } from \"./models\"\r\nimport { getCatalogOrigin } from \"../../helper/origin\"\r\nimport { uniqueId } from \"../../../helpers/id\"\r\n\r\nexport const VehicleSelectionEventHelper = {\r\n GetVehicleSelectionLog: () => {\r\n const data = TmaEventTracking.getRequestData(\"VEHICLE_SELECTION\")\r\n if (data) {\r\n const log: VehicleSelectionLog = {\r\n eventId: uniqueId(),\r\n origin: data.origin || TmaEModule.UNDEFINED,\r\n dataSourceId: data.dataSourceId!,\r\n searchTerm: data.searchTerm!,\r\n selectedConstructionYearFilter: data.selectedConstructionYearFilter,\r\n }\r\n return log\r\n }\r\n },\r\n List: {\r\n Graphical: (dataSourceId?: number) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n action: \"setIdentification\",\r\n bundle: \"vehicle\",\r\n component: \"repository\",\r\n payload: {\r\n origin: TmaEModule.VEHICLE_GRAPHIC_SEARCH,\r\n dataSourceId,\r\n },\r\n type: \"models\",\r\n source: \"models\",\r\n })\r\n },\r\n Search: (data: { dataSourceId?: number; query?: string }) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n action: \"setIdentification\",\r\n bundle: \"vehicle\",\r\n component: \"repository\",\r\n payload: {\r\n origin: TmaEModule.VEHICLE_GRAPHIC_SEARCH,\r\n dataSourceId: data.dataSourceId,\r\n searchTerm: data.query,\r\n },\r\n type: \"models\",\r\n source: \"models\",\r\n })\r\n },\r\n },\r\n Search: {\r\n FromWidget: (data: { dataSourceId?: number; query?: string }) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n action: \"setIdentification\",\r\n bundle: \"vehicle\",\r\n component: \"repository\",\r\n payload: {\r\n origin: document.location.pathname == \"/\" ? TmaEModule.START_PAGE : TmaEModule.DASHBOARD,\r\n dataSourceId: data.dataSourceId,\r\n searchTerm: data.query,\r\n },\r\n type: \"models\",\r\n source: \"models\",\r\n })\r\n },\r\n\r\n ModelYearFilter: (year: number) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n action: \"selectConstructionYearFilter\",\r\n bundle: \"vehicle\",\r\n component: \"ModelYearFilter\",\r\n payload: {\r\n year,\r\n },\r\n type: \"click\",\r\n source: \"filter\",\r\n })\r\n },\r\n },\r\n Apply: (dataSourceId?: number) => {\r\n const origin = getCatalogOrigin()\r\n let action = \"setContextType\"\r\n let payload: {} = {\r\n origin,\r\n }\r\n if (dataSourceId) {\r\n action = \"setIdentification\"\r\n payload = {\r\n ...payload,\r\n dataSourceId,\r\n }\r\n }\r\n\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n action,\r\n bundle: \"vehicle\",\r\n component: \"repository\",\r\n payload,\r\n type: \"models\",\r\n source: \"models\",\r\n })\r\n },\r\n}\r\n\r\nclass VehicleSelectionEventTracker {\r\n private _trackingData: { [key: string]: string } = {\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n }\r\n\r\n get Vehicle() {\r\n this._trackingData.bundle = \"vehicle\"\r\n const _this = this\r\n return {\r\n get Filter() {\r\n _this._trackingData.action = \"setModelYearFilter\"\r\n _this._trackingData.component = \"action\"\r\n return {\r\n setModelYearFilter: (year: number) => {\r\n TmaEventTracking.dispatchTrack({\r\n ..._this._trackingData,\r\n payload: {\r\n year,\r\n },\r\n type: \"click\",\r\n source: \"filter\",\r\n } as BaseTrackingModel)\r\n },\r\n }\r\n },\r\n get List() {\r\n _this._trackingData.action = \"handleApply\"\r\n _this._trackingData.component = \"list\"\r\n return {\r\n handleApplyButtonClick: (dataSourceId: number) => {\r\n TmaEventTracking.dispatchTrack({\r\n ..._this._trackingData,\r\n payload: {\r\n dataSourceId,\r\n },\r\n type: \"click\",\r\n source: \"button\",\r\n } as BaseTrackingModel)\r\n },\r\n }\r\n },\r\n Widget: {\r\n uniqueVehicleFound: (dataSourceId: number) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n action: \"handleUniqueVehicleFound\",\r\n bundle: \"vehicle\",\r\n component: \"widget\",\r\n payload: {\r\n dataSourceId,\r\n },\r\n type: \"request\",\r\n source: \"input\",\r\n })\r\n },\r\n },\r\n }\r\n }\r\n\r\n Crm = {\r\n List: {\r\n handleApplyButtonClick: (dataSourceId: number) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n action: \"handleApply\",\r\n bundle: \"crm\",\r\n component: \"list\",\r\n payload: {\r\n dataSourceId,\r\n },\r\n type: \"click\",\r\n source: \"button\",\r\n })\r\n },\r\n },\r\n Widget: {\r\n // TODO: rename to correct name\r\n applyCustomerWithVehicle: (dataSourceId: number) => {\r\n TmaEventTracking.dispatchTrack({\r\n tmaEvent: \"VEHICLE_SELECTION\",\r\n action: \"applyCustomerWithVehicle\",\r\n bundle: \"crm\",\r\n component: \"widget\",\r\n payload: {\r\n dataSourceId,\r\n },\r\n type: \"request\",\r\n source: \"input\",\r\n })\r\n },\r\n },\r\n }\r\n}\r\n\r\nexport const VehicleSelectionEvents = new VehicleSelectionEventTracker()\r\n","import { VehicleSelection } from \"./event-handle\"\r\n\r\nexport * from \"./event-helper\"\r\nexport default new VehicleSelection()\r\n","import { CategoryType } from \"@tm/models\"\r\n\r\nexport function getCategoryTypeFromUrl(url: string): CategoryType {\r\n if (url.includes(\"/parts/direct\")) {\r\n return \"directSearch\"\r\n }\r\n\r\n if (url.includes(\"/parts/vehicles\")) {\r\n return \"vehicleParts\"\r\n }\r\n\r\n if (url.includes(\"/parts/universal\")) {\r\n return \"universalParts\"\r\n }\r\n\r\n if (url.includes(\"/fastdtc\")) {\r\n return \"dtcSearch\"\r\n }\r\n\r\n if (url.includes(\"/wheels\")) {\r\n // todo tma : correct path?\r\n return \"wheels\"\r\n }\r\n if (url.includes(\"/basket\")) {\r\n // todo tma : correct path?\r\n return \"basket\"\r\n }\r\n if (url.includes(\"/haynes\")) {\r\n // todo tma : correct path?\r\n return \"haynes\"\r\n }\r\n if (url.includes(\"/tyres\")) {\r\n // todo tma : correct path?\r\n return \"tyres\"\r\n }\r\n if (url.includes(\"/tyresTecRmi\")) {\r\n // todo tma : correct path?\r\n return \"tyresTecRmi\"\r\n }\r\n\r\n if (url.includes(\"/partsIndicator\")) {\r\n // todo tma : correct path?\r\n return \"partsIndicator\"\r\n }\r\n if (url.includes(\"/tiresSearch\")) {\r\n // todo tma : correct path?\r\n return \"tiresSearch\"\r\n }\r\n if (url.includes(\"/predictive\")) {\r\n // todo tma : correct path?\r\n return \"predictive\"\r\n }\r\n if (url.includes(\"/eurotaxSearch\")) {\r\n // todo tma : correct path?\r\n return \"eurotaxSearch\"\r\n }\r\n if (url.includes(\"/basket\")) {\r\n // todo tma : correct path?\r\n return \"basket\"\r\n }\r\n\r\n if (false) {\r\n // todo tma : correct path?\r\n return \"partAlternatives\"\r\n }\r\n\r\n return \"directSearch\"\r\n}\r\n","import { encodeUniqueId } from \"../../helpers/id\"\r\n\r\nexport function getWorkTaskId() {\r\n let wkid = (window as any).__NEXT_WORKTASKID__ && encodeUniqueId((window as any).__NEXT_WORKTASKID__)\r\n if (!wkid) {\r\n wkid = getWorkTaskIdFromLocation()\r\n }\r\n return wkid\r\n}\r\n\r\nexport function getWorkTaskIdFromLocation(): string | undefined {\r\n const match = /^\\/[\\d\\w]{22}\\/?/.exec(document.location.pathname)\r\n let workTaskId: string | undefined\r\n\r\n if (match) {\r\n workTaskId = match[0].replace(/\\//g, \"\")\r\n }\r\n\r\n return workTaskId\r\n}\r\n\r\nconst RemovableParams = [\"forceReload\", \"history\", \"searchFilter\"]\r\n/**\r\n * @description removes specific params, like forceReload from context url\r\n * @param contextId string\r\n * @returns qualified contextId\r\n */\r\nexport function cleanContextUrl(contextId: string): string {\r\n if (contextId.indexOf(\"?\") < 0) {\r\n return contextId\r\n }\r\n\r\n const params = new URLSearchParams(contextId)\r\n RemovableParams.forEach((param) => params.delete(param))\r\n\r\n return decodeURIComponent(params.toString())\r\n}\r\n","import { PostMessageSourceId, TmaEModule } from \"@tm/models\"\r\n\r\nexport function mapSourceIdToTmaModule(fallback: TmaEModule, sourceId?: PostMessageSourceId): TmaEModule {\r\n switch (sourceId) {\r\n case \"TM_MVC_AD_SERVICE_INTERVALS\":\r\n return TmaEModule.SERVICE_AUTODATA\r\n case \"TM_MVC_HP_AD\":\r\n case \"TM_MVC_HP_INSP\":\r\n return TmaEModule.SERVICE_HAYNES\r\n case \"TM_MVC_HP_COMMON\":\r\n case \"TM_MVC_HP_FASTTD\":\r\n case \"TM_MVC_HP_TD\":\r\n return TmaEModule.TECH_HAYNES\r\n case \"TM_MVC_HP_REPAIR_TIMES\":\r\n return TmaEModule.REPTIMES_HAYNES\r\n case \"TM_MVC_TECRMI_DIRECT_SEARCH\":\r\n return TmaEModule.TYRES_AUDACON\r\n case \"TM_MVC_TECRMI_INSP\":\r\n return TmaEModule.SERVICE_AUDACON\r\n case \"TM_MVC_TECRMI_REPAIR_ITEMS\":\r\n return TmaEModule.REPTIMES_AUDACON\r\n case \"TM_MVC_TECRMI_TD\":\r\n return TmaEModule.TECH_AUDACON\r\n case \"TM_MVC_TEMOT\":\r\n return TmaEModule.GPI_TEMOT\r\n case \"TM_MVC_TMTRUCK\":\r\n return TmaEModule.TRUCKVIN\r\n case \"TM_MVC_TRUCK_GARAGE\":\r\n return TmaEModule.TRUCKGARAGE\r\n case \"TM_MVC_WTC\":\r\n return TmaEModule.WHEEL_CONFIGURATOR\r\n default:\r\n return fallback\r\n }\r\n}\r\n","import { TmaEModule, getCurrentModuleMode } from \"@tm/models\"\r\nimport { getWorkTaskId } from \"./context\"\r\nimport { OriginTypes } from \"../models/originTypes\"\r\n\r\nexport function getCatalogOrigin(): TmaEModule {\r\n const path = decodeURIComponent(document.location.pathname)\r\n const workTaskId = getWorkTaskId()\r\n\r\n if (path == \"/\") {\r\n return TmaEModule.START_PAGE\r\n }\r\n if (path == `/${workTaskId}`) {\r\n return TmaEModule.DASHBOARD\r\n }\r\n\r\n let origin: TmaEModule = TmaEModule.UNDEFINED\r\n\r\n for (const originType of OriginTypes) {\r\n for (const cPath of originType.paths) {\r\n if (path.indexOf(cPath) >= 0) {\r\n origin = originType.origin\r\n break\r\n }\r\n }\r\n }\r\n\r\n return origin\r\n}\r\n","import { PostMessageSourceId, TmaEModule, UserInteractionLog } from \"@tm/models\"\r\nimport { mapSourceIdToTmaModule } from \"./mapper\"\r\nimport { uniqueId } from \"../..\"\r\n\r\nexport const PostMessageHelper = {\r\n AddToBasket: {\r\n GetUserInteractionLog: (sourceId?: PostMessageSourceId): UserInteractionLog => {\r\n return {\r\n origin: mapSourceIdToTmaModule(TmaEModule.EXTERNALCATALOGUE, sourceId),\r\n eventId: uniqueId(),\r\n }\r\n },\r\n },\r\n SearchTyre: {\r\n GetOrigin: (sourceId?: PostMessageSourceId): TmaEModule => {\r\n return mapSourceIdToTmaModule(TmaEModule.TM_TYRE_SEARCH, sourceId)\r\n },\r\n },\r\n}\r\n","import { CategoryType, SearchFilters, UserInteractionLog, TmaEModule } from \"@tm/models\"\r\nimport { ArticleListFilteredEventHelper } from \"../events/article-list-filtered/event-helper\"\r\nimport { PremiumUniPartsSearchEventHelper } from \"../events/premium-uni-parts-search\"\r\nimport { AddToBasket } from \"../events/add-to-basket/event-helper\"\r\nimport { TmaHelper, getCategoryTypeFromUrl } from \"./tma\"\r\nimport { getCatalogOrigin } from \"./origin\"\r\nimport { determineKeywordSearchOriginFromDashboard } from \"../events/article-list-filtered/originDetection\"\r\nimport { QuerySearchType } from \"..\"\r\n\r\nexport const SharedHelper = {\r\n ByArticleAndUniParts: {\r\n /**\r\n * @param category which search category (parts, direct or uni)\r\n * @param query search string from user input\r\n * @param workTaskId current worktask\r\n * @param fromWidget search is located in a widget\r\n */\r\n KeywordSearch: async (category: CategoryType, query: string, workTaskId?: string, fromWidget?: boolean) => {\r\n if (category === \"universalParts\") {\r\n PremiumUniPartsSearchEventHelper.UniParts.Search.SetSearchContext(category, query, workTaskId, fromWidget)\r\n return\r\n }\r\n\r\n ArticleListFilteredEventHelper.ArticleListFiltered.Search.KeywordSearch(query, category, !!fromWidget, workTaskId)\r\n },\r\n /**\r\n * @description use this for widgets from dash- or startpage\r\n */\r\n SetSearchContext: async (category: CategoryType, query: string, workTaskId?: string, fromWidget?: boolean) => {\r\n switch (category) {\r\n case \"dtcSearch\":\r\n case \"partsIndicator\":\r\n case \"vehicleParts\":\r\n case \"directSearch\":\r\n case \"basket\": {\r\n return ArticleListFilteredEventHelper.ArticleListFiltered.Search.SetSearchContext(category, query, workTaskId, fromWidget)\r\n }\r\n case \"universalParts\":\r\n case \"wheels\":\r\n case \"tyresTecRmi\":\r\n case \"tyres\": {\r\n return PremiumUniPartsSearchEventHelper.UniParts.Search.SetSearchContext(category, query, workTaskId, fromWidget)\r\n }\r\n }\r\n },\r\n\r\n GetUserInteractionLog: (positionNumber?: number, origin?: TmaEModule): UserInteractionLog | undefined => {\r\n const currentOrigin = origin ?? getCatalogOrigin()\r\n\r\n // there are multiple cases, currently we are determine the current origin to route the request,\r\n // if 'origin' parameter is filled it will be overridden and not taken from previous search!\r\n // TODO check if the cases are needed\r\n switch (currentOrigin) {\r\n case TmaEModule.PREMIUMUNIPARTSSEARCH:\r\n case TmaEModule.PREMIUMUNIPARTSSEARCH_ARTICLE_LIST:\r\n case TmaEModule.PREMIUMUNIPARTSSEARCH_START_PAGE:\r\n case TmaEModule.PREMIUMUNIPARTSSEARCH_DASHBOARD:\r\n case TmaEModule.UNIPARTSSEARCH:\r\n case TmaEModule.UNIPARTSSEARCH_PRODUCT_GROUP_KEYWORD_SEARCH:\r\n\r\n case TmaEModule.WHEEL_CONFIGURATOR:\r\n case TmaEModule.TM_TYRE_SEARCH:\r\n case TmaEModule.TYRE_SEARCH_START_PAGE: {\r\n return AddToBasket.AddUniPartToBasket.GetUserInteractionLog(positionNumber, origin)\r\n }\r\n\r\n default: {\r\n return AddToBasket.AddCatalogPartToBasket.GetUserInteractionLog(positionNumber, origin)\r\n }\r\n }\r\n },\r\n IncreaseStepNumber: async () => {\r\n // TODO call the correct handler directly from component\r\n switch (getCatalogOrigin()) {\r\n case TmaEModule.PREMIUMUNIPARTSSEARCH:\r\n case TmaEModule.PREMIUMUNIPARTSSEARCH_ARTICLE_LIST:\r\n case TmaEModule.PREMIUMUNIPARTSSEARCH_START_PAGE:\r\n case TmaEModule.PREMIUMUNIPARTSSEARCH_DASHBOARD:\r\n case TmaEModule.UNIPARTSSEARCH:\r\n case TmaEModule.UNIPARTSSEARCH_PRODUCT_GROUP_KEYWORD_SEARCH: {\r\n PremiumUniPartsSearchEventHelper.UniParts.Event.IncreaseStepNumber()\r\n break\r\n }\r\n\r\n default: {\r\n ArticleListFilteredEventHelper.ArticleListFiltered.Event.IncreaseStepNumber()\r\n break\r\n }\r\n }\r\n },\r\n SubmitKeywordSearch: (query: string, categoryType: CategoryType, searchFilter: SearchFilters) => {\r\n const origin = determineKeywordSearchOriginFromDashboard(categoryType, false)\r\n\r\n switch (categoryType) {\r\n case \"basket\": // TODO check if this is used\r\n case \"directSearch\": {\r\n ArticleListFilteredEventHelper.ArticleListFiltered.Search.Submit(origin, query, QuerySearchType.Direct)\r\n break\r\n }\r\n case \"vehicleParts\": {\r\n ArticleListFilteredEventHelper.ArticleListFiltered.Search.Submit(origin, query, QuerySearchType.Synonym)\r\n break\r\n }\r\n case \"universalParts\": {\r\n PremiumUniPartsSearchEventHelper.UniParts.Search.Submit(origin, query, categoryType)\r\n break\r\n }\r\n }\r\n },\r\n NoSearchResultAssistent: (targetUrl: string, query: string) => {\r\n const categoryType = getCategoryTypeFromUrl(targetUrl)\r\n if (categoryType === \"directSearch\") {\r\n TmaHelper.ArticleListFiltered.ArticleListFiltered.Search.Assistent(targetUrl, query)\r\n } else {\r\n TmaHelper.UniParts.Search.Assistent(targetUrl, query)\r\n }\r\n },\r\n /**\r\n * @deprecated try to call the specific helper function for uni or article list\r\n * @param data\r\n */\r\n SearchTreeNodeSelected: async (data: {\r\n mode?: \"fastClick\" | \"fast-click-2.0\" | \"buttons\" | \"hide\"\r\n nodeId: number\r\n treeId?: number\r\n searchTreeType?: CategoryType\r\n }) => {\r\n switch (data.searchTreeType) {\r\n case \"universalParts\": {\r\n TmaHelper.UniParts.SearchTree.NodeSelected(data)\r\n break\r\n }\r\n case \"vehicleParts\":\r\n case \"directSearch\": {\r\n TmaHelper.ArticleListFiltered.ArticleListFiltered.Search.NodeSelected(data)\r\n break\r\n }\r\n default: {\r\n console.warn(`TMA could not resolve data.searchTreeType: ${data.searchTreeType}`)\r\n }\r\n }\r\n },\r\n CategoryChanged: async (category: CategoryType) => {\r\n switch (category) {\r\n case \"directSearch\":\r\n case \"vehicleParts\": {\r\n ArticleListFilteredEventHelper.ArticleListFiltered.Event.SwapSearchType(category)\r\n break\r\n }\r\n case \"universalParts\": {\r\n // PremiumUniPartsSearchEventHelper.UniParts.Event.Swap()\r\n\r\n break\r\n }\r\n }\r\n },\r\n },\r\n}\r\n","import { ArticleListFilteredEventHelper } from \"../events/article-list-filtered/event-helper\"\r\nimport { PremiumUniPartsSearchEventHelper } from \"../events/premium-uni-parts-search\"\r\nimport { VehicleSelectionEventHelper } from \"../events/vehicle-selection\"\r\nimport { AddToBasket } from \"../events/add-to-basket/event-helper\"\r\nimport { ModuleCalledRequestHelper } from \"../events/module-called\"\r\nimport { ArticleListErpInfoShownHelper } from \"../events/article-list-erp-info-shown/event-helper\"\r\nimport { AddRepairTimeListEventHelper } from \"../events/add-repairtime-list\"\r\nimport { ArticleEventHelper } from \"../events/article/event-helper\"\r\nimport { SharedHelper } from \"./shared\"\r\nimport { ArticleDetailsPDFEventHelper } from \"../events/articlePDFClick/event-helper\"\r\nimport { DetailsFormCallEventHelper } from \"../events/detailsFormCall/event-helper\"\r\nimport { ArticleComparisonEventHelper } from \"../events/articleComparison/event-helper\"\r\nimport { GeneralCountEventHelper } from \"../events/generalCount/event-helper\"\r\nimport { PostMessageHelper } from \"./postMessage\"\r\n\r\nexport * from \"./category\"\r\n\r\nexport const TmaHelper = {\r\n /**\r\n * @deprecated use ArticleListFiltered\r\n */\r\n articleListFiltered: ArticleListFilteredEventHelper,\r\n /**\r\n * @deprecated use ArticleListFiltered\r\n */\r\n repairTimes: { Module: { Called: ModuleCalledRequestHelper } },\r\n\r\n /**\r\n * @deprecated use ArticleListFiltered\r\n */\r\n RepairTimes: { Module: { Called: ModuleCalledRequestHelper } },\r\n\r\n ModuleCalled: ModuleCalledRequestHelper,\r\n ArticleListFiltered: ArticleListFilteredEventHelper,\r\n VehicleSelection: VehicleSelectionEventHelper,\r\n Erp: ArticleListErpInfoShownHelper,\r\n ...PremiumUniPartsSearchEventHelper,\r\n ...AddToBasket,\r\n Shared: SharedHelper,\r\n ...AddRepairTimeListEventHelper,\r\n Article: ArticleEventHelper,\r\n ArticleDetailsPDFClick: ArticleDetailsPDFEventHelper,\r\n DetailsFormCall: DetailsFormCallEventHelper,\r\n ArticleComparison: ArticleComparisonEventHelper,\r\n GeneralCountEvent: GeneralCountEventHelper,\r\n PostMessage: PostMessageHelper,\r\n}\r\n","import { TmaEventTracker } from \"./event-tracker\"\r\n\r\nimport { EventCollection } from \"./events\"\r\n\r\nconst TmaEventTracking = TmaEventTracker.getInstance()\r\nTmaEventTracking.addCollection(EventCollection)\r\n\r\nexport { TmaEventTracking }\r\nexport * from \"./helper/tma\"\r\nexport * from \"./models/models\"\r\n","import { PagingDto, ArticleListFilteredRequest } from \"../events/article-list-filtered/models\"\r\nimport { SearchExecutedRequest } from \"../events/premium-uni-parts-search/models\"\r\nimport { VehicleSelectionLog } from \"../events/vehicle-selection/models\"\r\n\r\nexport type { AnalyticsData } from \"../events/article-list-filtered/models\"\r\n\r\nexport enum QuerySearchType {\r\n Undefined = 0,\r\n Direct = 1,\r\n Synonym = 2,\r\n ErrorCode = 3,\r\n ProductGroup = 4,\r\n}\r\n\r\nexport interface BaseTrackingModel

    {\r\n /**\r\n * @property type of event e.g. ArticleListFiltered\r\n */\r\n tmaEvent: string\r\n /**\r\n * @property name of the bundle\r\n */\r\n bundle: string\r\n /**\r\n * @property name of the component\r\n */\r\n component: string\r\n /**\r\n * @property which action/method/function is called e.g. getArticles\r\n */\r\n action: string | Array\r\n /**\r\n * @property type of the action, like request, input, click\r\n */\r\n type: string\r\n /**\r\n * @property some informations like vehicle id oder query\r\n */\r\n payload?: P\r\n /**\r\n * @property start of the tracking\r\n */\r\n source: string\r\n /**\r\n * @property handle this as a standalone/fireOnce event\r\n */\r\n singleEvent?: boolean\r\n /**\r\n * @property use this property to store any comprehensive context related data\r\n */\r\n contextData?: {\r\n paging?: PagingDto\r\n }\r\n}\r\nexport interface TrackingModel

    extends BaseTrackingModel

    {\r\n /**\r\n * @property initiate an event queue to generate a process id\r\n */\r\n initiateProcess?: boolean\r\n}\r\n\r\nexport type TmaEvent = {\r\n key: string\r\n /**\r\n * @todo implement typescript generic variable definition of the trackingmodel depending on the parameter tmaEvent\r\n * @param data Event data structure\r\n * @returns indicator for event completed\r\n */\r\n handle: ((data: TrackingModel) => Promise | boolean | void) | ((data: BaseTrackingModel) => Promise | boolean | void)\r\n}\r\n\r\nexport interface EventRequestType {\r\n (key: \"ARTICLE_LIST_FILTERED\"): ArticleListFilteredRequest | undefined\r\n (key: \"PREMIUM_UNI_PARTS_SEARCH\"): SearchExecutedRequest | undefined\r\n (key: \"VEHICLE_SELECTION\"): VehicleSelectionLog | undefined\r\n}\r\n\r\nexport type Filter = {\r\n id: number\r\n name?: string\r\n group?: string\r\n query?: string\r\n priority?: number\r\n isTopPriority?: boolean\r\n articleCount?: number\r\n topPriorityArticleCount?: number\r\n isSelected?: boolean\r\n}\r\n","import { ECounterType, TmaEModule } from \"@tm/models\"\r\n\r\nexport const OriginTypes: { paths: string[]; origin: TmaEModule; counterType?: ECounterType }[] = [\r\n {\r\n origin: TmaEModule.WHEEL_CONFIGURATOR,\r\n paths: [\"/wheels\"],\r\n counterType: ECounterType.TMWheelsAndTyres,\r\n },\r\n {\r\n origin: TmaEModule.TM_TYRE_SEARCH,\r\n paths: [\"/tyres\"],\r\n counterType: ECounterType.PassengerCarTyres,\r\n },\r\n {\r\n origin: TmaEModule.TYRES_AUDACON,\r\n paths: [\"/tecrmi-tyres\"],\r\n counterType: ECounterType.PassengerCarTyres,\r\n },\r\n {\r\n origin: TmaEModule.PREMIUMUNIPARTSSEARCH_ARTICLE_LIST,\r\n paths: [\"/parts/universal/list\"],\r\n },\r\n {\r\n origin: TmaEModule.ARTICLE_LIST,\r\n paths: [\"/parts/direct/list\", \"/parts/vehicles/list\"],\r\n counterType: ECounterType.ArticleDirectSearch,\r\n },\r\n {\r\n origin: TmaEModule.VEHICLE_GRAPHIC_SEARCH,\r\n paths: [\"/vehicles/details\", \"/vehicles/select\"],\r\n counterType: ECounterType.PassengerCarDetails,\r\n },\r\n {\r\n origin: TmaEModule.ARTICLE_DETAILS,\r\n paths: [\"modal/part-details\"],\r\n },\r\n {\r\n origin: TmaEModule.DIRECTBUY,\r\n paths: [\"/basket\"],\r\n },\r\n {\r\n origin: TmaEModule.SHOPPING_CART,\r\n paths: [\"/cost-estimation\"],\r\n },\r\n {\r\n origin: TmaEModule.SPECIALOFFER,\r\n paths: [\"/offers\"],\r\n counterType: ECounterType.Offers,\r\n },\r\n {\r\n origin: TmaEModule.TECH_HAYNES,\r\n paths: [\"/td/haynespro\"],\r\n counterType: ECounterType.PassengerCarTechnicalDataHaynesPro,\r\n },\r\n {\r\n origin: TmaEModule.SERVICE_HAYNES,\r\n paths: [\"/sd/haynespro\"],\r\n counterType: ECounterType.PassengerCarServiceDataHaynesPro,\r\n },\r\n {\r\n origin: TmaEModule.TECH_AUDACON,\r\n paths: [\"/td/tecrmi\"],\r\n counterType: ECounterType.PassengerCarTechnicalDataTecRMI,\r\n },\r\n {\r\n origin: TmaEModule.SERVICE_AUDACON,\r\n paths: [\"/sd/tecrmi\"],\r\n counterType: ECounterType.PassengerCarServiceDataTecRmi,\r\n },\r\n {\r\n origin: TmaEModule.TECH_AUTODATA,\r\n paths: [\"/td/autodata\"],\r\n counterType: ECounterType.PassengerCarTechnicalDataAutodata,\r\n },\r\n {\r\n origin: TmaEModule.SERVICE_AUTODATA,\r\n paths: [\"/sd/autodata\"],\r\n counterType: ECounterType.PassengerCarServiceDataAutoData,\r\n },\r\n {\r\n origin: TmaEModule.GPI_DAT,\r\n paths: [\"/gpi/dat\"],\r\n counterType: ECounterType.PassengerCarGpiDat,\r\n },\r\n {\r\n origin: TmaEModule.GPI_EUROTAX,\r\n paths: [\"/gpi/eurotax\", \"/eurotax\"],\r\n counterType: ECounterType.PassengerCarGpiEurotax,\r\n },\r\n {\r\n origin: TmaEModule.GPI_TEMOT,\r\n paths: [\"/gpi/temot\"],\r\n counterType: ECounterType.PassengerCarGpiTemot,\r\n },\r\n {\r\n origin: TmaEModule.GPI_AUDACON,\r\n paths: [\"/gpi/tecrmi\"],\r\n counterType: ECounterType.PassengerCarGpiTecRmi,\r\n },\r\n {\r\n origin: TmaEModule.REPESTIMATE_EUROTAX,\r\n paths: [\"/damage-calculation/eurotax\"],\r\n counterType: ECounterType.PassengerCarRepairCalculation,\r\n },\r\n {\r\n origin: TmaEModule.REPESTIMATE_DAT,\r\n paths: [\"/damage-calculation/dat\"],\r\n counterType: ECounterType.PassengerCarRepairCalculation,\r\n },\r\n {\r\n origin: TmaEModule.GLASS_REPESTIMATE_DAT,\r\n paths: [\"/damage-calculation/glass\"],\r\n counterType: ECounterType.PassengerCarRepairCalculation,\r\n },\r\n {\r\n origin: TmaEModule.GLASS_SAINTGOBAIN,\r\n paths: [\"/damage-calculation/aswegas\"],\r\n counterType: ECounterType.PassengerCarRepairCalculation,\r\n },\r\n {\r\n origin: TmaEModule.TRUCKVIN,\r\n paths: [\"/truck/vin\"],\r\n counterType: ECounterType.TruckVIN,\r\n },\r\n {\r\n origin: TmaEModule.MY_TRUCK,\r\n paths: [\"/truck/my\"],\r\n counterType: ECounterType.MyTruck,\r\n },\r\n {\r\n origin: TmaEModule.MY_TRUCK_PLUS,\r\n paths: [\"/truck/plus\"],\r\n counterType: ECounterType.MyTruckPlus,\r\n },\r\n {\r\n origin: TmaEModule.TRUCKGARAGE,\r\n paths: [\"/truck/garage\"],\r\n counterType: ECounterType.TruckGarage,\r\n },\r\n {\r\n origin: TmaEModule.FAST_CALCULATOR,\r\n paths: [\"/fast-calculator-next\"],\r\n counterType: ECounterType.PassengerCarFastCalculator,\r\n },\r\n {\r\n origin: TmaEModule.FAST_CALCULATOR,\r\n paths: [\"/fast-calculator\"],\r\n counterType: ECounterType.PassengerCarFastCalculator,\r\n },\r\n {\r\n origin: TmaEModule.FAST_CHECK,\r\n paths: [\"/fastcheck\"],\r\n counterType: ECounterType.PassengerCarFastCheck,\r\n },\r\n {\r\n origin: TmaEModule.FAST_SERVICE,\r\n paths: [\"/fast-service\"],\r\n counterType: ECounterType.FastService,\r\n },\r\n {\r\n origin: TmaEModule.FAST_DTC,\r\n paths: [\"/fastdtc\"],\r\n counterType: ECounterType.FastDTC,\r\n },\r\n {\r\n origin: TmaEModule.EXTERNAL_DATA_SOURCE,\r\n paths: [\"/eds\"],\r\n counterType: ECounterType.EDS,\r\n },\r\n {\r\n origin: TmaEModule.REPTIMES_AWDOC,\r\n paths: [\"/repair-times/awdoc\"],\r\n counterType: ECounterType.PassengerCarRepairTimesAwDoc,\r\n },\r\n {\r\n origin: TmaEModule.REPTIMES_AUTODATA,\r\n paths: [\"/repair-times/autodata\"],\r\n counterType: ECounterType.PassengerCarRepairTimesAutodata,\r\n },\r\n {\r\n origin: TmaEModule.REPTIMES_HAYNES,\r\n paths: [\"/repair-times/haynespro\"],\r\n counterType: ECounterType.PassengerCarRepairTimesHaynesPro,\r\n },\r\n {\r\n origin: TmaEModule.REPTIMES_AUDACON,\r\n paths: [\"/repair-times/tecrmi\"],\r\n counterType: ECounterType.PassengerCarRepairTimesTecRmi,\r\n },\r\n]\r\n","export enum SearchFilterType {\r\n /// Also known as EArtNr, Einspeiserartikelnummer\r\n SupplierArticleNo = 1,\r\n\r\n /// Also known as OE Referenz\r\n OeReference = 2,\r\n\r\n /// Also known as Gebrauchsnummer\r\n UtilityNo = 4,\r\n\r\n /// Also known as Ersatznummer\r\n ReplacementNo = 8,\r\n\r\n /// Manufacturer (Default value for all above)\r\n /// Also known as Hersteller\r\n Manufacturer = 15,\r\n\r\n /// Also known as EAN, EANNr, Europäische Artikelnummer\r\n EuropeanArticleNumber = 16,\r\n\r\n /// Also known as Handelsreferenz\r\n TradeReference = 96,\r\n\r\n SupplierArticleNoAndTradeReference = 97,\r\n\r\n /// For internal use only!\r\n ALL = 2047,\r\n}\r\n\r\nexport enum FittingSideType {\r\n None = 0,\r\n Vorne = 1,\r\n Hinten = 2,\r\n Links = 16,\r\n Rechts = 32,\r\n\r\n VorneLinks = Vorne | Links,\r\n VorneRechts = Vorne | Rechts,\r\n HintenLinks = Hinten | Links,\r\n HintenRechts = Hinten | Rechts,\r\n VorneHintenLinks = Vorne | Hinten | Links,\r\n VorneHintenRechts = Vorne | Hinten | Rechts,\r\n}\r\n\r\nexport enum ArticleListViewOptionsType {\r\n Undefined = 0,\r\n Compact = 1,\r\n Detailed = 2,\r\n Images = 4,\r\n}\r\n\r\nexport interface SearchStepDto {\r\n processId: string\r\n number: number\r\n}\r\n\r\nexport interface PagingDto {\r\n /**\r\n * @property [optional] The Page Index.\r\n */\r\n pageIndex?: number\r\n\r\n /**\r\n * @property [optional] The Page Size.\r\n */\r\n pageSize?: number\r\n\r\n /**\r\n * @property [optional] The Page Index of the last page.\r\n */\r\n pageIndexMax?: number\r\n}\r\n","import { EventStorage } from \"../events/event-storage\"\r\n\r\nexport class DataPublisher {\r\n protected storage: EventStorage\r\n\r\n constructor(storage: EventStorage) {\r\n this.storage = storage\r\n }\r\n\r\n getEventData() {\r\n return this.storage.get()\r\n }\r\n}\r\n"],"names":["_g","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","props","xmlns","width","height","viewBox","fill","fillRule","stroke","strokeOpacity","strokeWidth","d","style","opacity","fillOpacity","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeDasharray","transform","_path","_path2","_path3","_path4","_path5","_clipPath","id","clipPath","ThemeProvider","stylesCache","createCache","key","speedy","_jsx","CacheProvider","value","children","MuiThemeProvider","_objectSpread","ActionMenuItem","_props$action","action","iconType","text","icon","handler","isHighlight","MenuItem","onClick","mergeHandler","handleCloseMore","_jsxs","Stack","direction","gap","Icon","name","color","undefined","Typography","variant","ErpIconType","_len","Array","_key","forEach","handle","sendTmaEvent","TmaHelper","GeneralCountEvent","Call","ECounterType","ArticleListArticleDetailsViaAlternativeArticle","ArticleListArticleDetailsViaDetailsButton","ArticleListArticleDetailsViaAccessoryList","AdditionalInformation","_ref","article","translateText","useLocalization","_useState2","_slicedToArray","useState","showPopper","setShowPopper","buttonRef","useRef","articleAction","useCallback","state","AdditionalInformations","displayType","sort","getDocumentTypeIcon","mediaType","EMediaType","Video","Audio","Pdf","Website","YoutubeChannel","ClickAwayListener","onClickAway","Box","ref","ButtonAction","Popper","open","anchorEl","current","placement","transition","sx","zIndex","_ref2","TransitionProps","Fade","timeout","Paper","px","py","maxHeight","minWidth","maxWidth","borderRadius","overflow","elevation","additionalReferenceArticleInformation","links","map","link","articleInfoGroup","member","Button","size","description","startIcon","href","content","target","hideText","tooltip","isExpanded","useDefaultArticleItemState","x","expanded","event","IconAction","Tooltip","title","ErpAreaActions","_articleErpInfos$defa","articleActions","articleErpInfos","response","graduatedPrices","erpArea","alignItems","GraduatedPrices","FoundBy","articleFoundBy","anchorRef","unsubRef","foundByTexts","useMemo","_articleFoundBy$hitIn","_articleFoundBy$hitIn2","hitInfos","searchFilter","referenceNo","manufacturerName","join","hidePopper","useEffect","_unsubRef$current","window","addEventListener","removeEventListener","handleClick","load","ArticleIconButton","hoverEffect","_ref3","minHeight","isLoading","LinearProgress","StyledIconButton","styled","IconButton","objectFit","padding","margin","svg","StyledImage","Image","_ref$action","useIconFromUrl","imsIcon","handleClickEventWithTma","src","ImsIcon","wrappedContent","ImageAreaImageIcon","shouldForwardProp","prop","display","ImageAreaActions","imageArea","InformationAreaActions","_article$additionalRe","_useDefaultArticleIte","options","hasWatchList","highlightWatchlistButton","foundBy","memoTooltipIcon","defaultArticleErpInfos","_x$articleErpInfos","erpInfos","hasAdditionalInfo","breakpoints","useTheme","isHighResolution","useMediaQuery","up","actionList","elements","informationArea","unshift","Details","Watchlist","alignSelf","memos","MemoTooltip","iconName","MoreMenuButton","Selection","StyledTable","flex","marginRight","tr","td","backgroundColor","theme","palette","grey","StyledWrapper","marginTop","flexDirection","MemoTooltipContent","left","filter","_","index","right","getRow","memo","linkUrl","rel","label","memosFiltered","m","type","MemoType","Hyperlink","AdditionalDescription","noWidthLimit","contentPadding","_Fragment","moreMenuEl","setMoreMenuEl","moreList","_x$articleActions","menuArea","handleClickMore","currentTarget","ArticleListArticleFurtherOptions","disableRipple","Popover","anchorOrigin","horizontal","vertical","onClose","MenuList","quantity","selection","largeCheckbox","isArticleSelected","toggleSelectedArticle","maximumPartsToCompare","selectedArticles","Checkbox","checked","onChange","maxParts","isSelected","ArticleListArticleCheckbox","CompactAdditionalInformations","generalInformations","_x$displayArticle$add","displayArticle","additionalInformation","generalInformation","notifications","dmsInfo","dmsArticleInfo","expandedArticleList","alreadyOrdered","showDmsInformation","stockItem","invoiced","availability","DMS","Undefined","TooltipWrapper","AlreadyOrderedArticle","contents","my","justifyContent","mb","textTransform","lineHeight","ml","Divider","light","TooltipContentText","concat","note","CompactNotification","hideDivider","message","DmsArticleInformation","hideBorder","CompactAdditionalInformations.displayName","ContentText","_theme$font","fontFamily","font","secondary","fontSize","typography","body2","SpacedDivider","_refsUtilityNo$0$desc","_refsOeNo$0$descripti","modificationState","_useMemo","references","textInformation","refsReplacement","referenceType","ArticleReferenceType","ReplacementArticleNo","refsReplaced","ReplacedByArticleNo","refsUtilityNo","UtilityNo","refsOeNo","OeReferenceNo","modificationStateText","EArticleModificationState","ArticleAdded","VehicleLinkageAdded","orientation","flexItem","small","spacing","ReferenceGroup","gridTemplateColumns","_ref4","_ref5","values","ArticleImageViewer","articleImages","data","setEnabled","imageViewerActionsRef","popoverRef","ResizablePopover","transformOrigin","onResize","_imageViewerActionsRe","fitImageToContent","ImageViewer","images","actions","position","top","defaultProps","ArticleNumberCopyButton","stopPropagation","copyToClipboard","ArticleNumbers","uniteNumbers","numbers","traderArticleNo","hideDealerPartNumber","copyButtonSupplier","supplierArticleNo","copyButtonTrader","oeArticleNo","handleClickDetailsIntern","handleClickDetails","handleCopyArticleNumber","positionChangeEArtNrHArtNr","ArticleListArticleDetailsViaTraderArticleNumber","handleCopyToClipboard","number","divider","ArticleNumber","articleNumber","articleNumberType","omitDefaultStyles","AttributeLabel","includes","_theme$font$fontFamil","_theme$radius$default","_theme$radius","isHighlighted","isCompact","condensed","whiteSpace","border","radius","textOverflow","paddingLeft","paddingRight","borderColor","highlight","main","fontWeight","AttributeItemElement","hasBackground","flexWrap","alignContent","AttributeItem","_ref3$attribute","attribute","onClickAttributeValue","hide","dividerInFront","some","isCompactView","AttributeValue","valueData","AttributeValueElement","_theme$font$label","isClickable","isRemoved","textDecoration","cursor","primary","contrastText","SpacingWrapper","ModificationState","Removed","isSelectable","displayValue","Added","AttributesContainer","CompactAttributesContainer","AttributesBlock","showCarAttributes","borderLeft","VehicleBadge","Badge","CompactAttributes","_attributes$","attributes","sharedAttributes","handleClickAttribute","openInModal","Shared","ByArticleAndUniParts","IncreaseStepNumber","vehicleAttributes","val","_val$topArticleAttrib","topArticleAttributes","topAttribute","isSharedAttribute","additionalAttributes","filteredSharedAttributes","isArticleAttribute","visibleAttributes","CompactAttributesBlock","visibleArticleAttributes","badgeContent","blockIndex","mt","mr","verticalAlign","attr","CompactAttributes.displayName","CollapsedAttributesBlock","flexShrink","flexGrow","flexBasis","compactAttributesBlockRef","observer","ResizeObserver","debounce","shrinkContent","entries","_compactAttributesBlo","entry","parentReferenceValue","contentRect","getBoundingClientRect","from","shrinkedItemFound","lastChildRightOffset","item","classList","remove","clientWidth","add","i","disconnect","useLayoutEffect","observe","CompactAttributesBlock.displayName","AttributesIcon","marginLeft","OeInfoAttributes","useOeArticleItemState","attrIndex","StyledButton","toggleExpand","arrow","ArticleListExpandArticle","rowGap","Attributes","viewedAttributes","_val$additionalAttrib","handleClickAttributeValue","Attributes.displayName","BonusSystemImage","bonus","useDefaultTheme","setUseDefaultTheme","_useState4","trySvgImage","setTrySvgImage","_useState6","imageError","setImageError","imageUrl","url","replace","substring","lastIndexOf","handleImageLoadError","marginBottom","onError","BonusSystem","BonusPoints","bonusSystem","tooltipLabel","selector","useArticleItemState","context","useOeInformationItemState","useTyresItemState","useWholesalerArticleItemState","ArticleItemContext","createContext","ArticleItemStateProvider","Provider","useContextSelector","validatedContext","Error","getValidatedContext","CustomersAlsoBoughtButton","productGroup","onProductGroupClick","SingleLineTypography","oneLine","Descriptions","missingVehicleConnectionTitle","additionalDescriptions","additionalDescription","StyledStack","borderWidth","StyledTooltip","textAlign","StyledIcon","voucherInfoItems","stockInfoItems","permittedOperations","handleVoucherClick","push","Available","AvailabilityIcon","className","InfoList","items","renderVoucherInfo","_stockItem$vouchers","voucher","vouchers","renderVoucherButton","renderWrench","InfoItem","DEFAULTGAP","Availabilities","defaultArticleErpInfo","alternativeArticleErpInfo","AvailabilityComponent","handleClickAvailability","Availability","info","_x$extendedDeliveryIn","extendedDeliveryInfo","list","erpSystem","AvailabilityStatus","Unknown","shortDescription","useSpecialProcurement","Costs","costs","_useLocalization","currency","getCostDescription","costType","CostsType","DefaultDispatch","Express","Enviromental","Packaging","Pledge","Procurement","OldPartDiscount","PriceGrid","cost","currencySymbol","renderCost","Loader","CircularProgress","ExtendedDelivery","showExtendedDeliveryInfo","hasData","tooltipText","disabled","tooltipClasses","HTMLInformation","additionalInformationExtended","HTMLBox","innerHTML","OtherPrices","prices","price","_price$memos","Fragment","maxLines","PriceValue","ADDITIONAL_INFO_ICON_SIZE","PriceAddition","gridColumn","rest","_objectWithoutProperties","_excluded","Grid","columnGap","PriceUnit","purchasePrice","priceUnit","mapPriceColor","PriceType","Strikethrough","Purchase","mapPriceVariant","StyledPriceTypography","_priceCustomization$c","_theme$overwrites","_priceCustomization$f","priceCustomization","priceType","overwrites","components","partListV2","articleItem","erpContainer","purchasePriceColor","fontStyle","_x$options$erpDataCus","erpDataCustomization","Prices","renderRebateRow","rebatePercent","round","renderNotes","notes","Note","idx","renderPrice","onlyShowInfo","ErpPriceAdditionalInfo","additionalInfoIconSize","COMPACTMODE_ALIGN_BOTTOM","ErpIconsWrapper","DefaultArticleErpContainer","requestErpInfo","ErpContainer","OePartErpContainer","hideExtendedDelivery","WholesalerErpContainer","alternative","_defaultArticleErpInf","_alternativeArticleEr","classes","Skeleton","ErpContainerComponent","_defaultErpInfo$costs","isPriceTypeHidden","displayTile","displayBehavior","ArticleListV2DisplayBehavior","Tile","defaultErpInfo","mainPricesWithAdditionalInfo","_defaultErpInfo$price","_defaultErpInfo$price2","slice","_defaultErpInfo$price3","otherPrices","_defaultErpInfo$price4","_defaultErpInfo$price5","isTeccomRequestAvailable","ClickItem","background","translate","handleAddToBasket","_erpInfo$graduatedPri","erpInfo","amount","GenericIconButton","IMAGE_SIZE_EXPANDED_LIST","IMAGE_SIZE_COMPACT_LIST","IMAGE_MARGIN_TOP_EXPANDED_LIST","IMAGE_MARGIN_TOP_COMPACT_LIST","boxShadow","handleClickImage","handleCloseImage","showImageViewer","expandedList","image","thumbnailUrl","thumbnailDescription","thumbnailFallbackUrl","customThumbnailComponent","useFallbackThumbnail","setUseFallbackThumbnail","imageStylings","setImageStylings","showArticleImages","imageContainerRef","popoverTitle","supplier","ImageContainer","ComponentsImage","loading","boxSizing","img","sizeVal","MAXINPUTCHARS","FormControlFullWidth","FormControl","FormHelperTextInline","FormHelperText","TextFieldWithInlineCounter","TextField","paddingTop","NoteItem","_props$note","noteId","version","onDelete","onSave","setValue","handleSave","handleDelete","NoteTypes","VEHICLE_ARTICLE","pr","maxRows","multiline","fullWidth","inputProps","maxLength","Notes","_useNotes","useNotes","visible","displayNotes","Collapse","in","SubArticleContainer","Notes.displayName","mapArticleToNoteIdentifier","mapArticleAndVehicleToNoteIdentifier","vehicle","tecDocTypeId","_useDefaultArticleIte2","_notes$find","_notes$find2","find","ARTICLE","getIcon","skin","Notifications","Alert","severity","marginY","OeInfoDescription","handlePartChange","parts","partId","selectedPart","onPartChange","Select","p","OeInfoDescription.displayName","Container","RecommendedArticle","RecommendedArticlesChain","activeNavIdentifier","setActiveNavIdentifier","crossSelling","ListComponent","handleNavSelect","nextNavIdentifier","isEnabled","Tabs","Tab","TabPanel","displayButton","listId","listType","RecommendedArticle.displayName","ClickableReference","Reference","reference","noWrap","manufacturer","moreButtonRef","showMoreLink","setShowMoreLink","handleClickReference","_useResizeObserver2","useResizeObserver","_entry$target$lastEle","_entry$target$lastEle2","difference","offsetWidth","lastElementChild","scrollWidth","stackRef","unsubResizeObserver","References","_refsAlternativeArtic","_refsEurocode$0$descr","_refsEurocode$","articleReferences","refsAlternativeArticleNo","AlternativeArticleNo","refsEurocode","Eurocode","refsUtility","StyledBasketButton","slot","overridesResolver","styles","root","borderTopLeftRadius","borderBottomLeftRadius","forwardRef","SubArticleContainer.displayName","SupplierBox","selected","showLogo","compactView","fitContent","WebkitBoxOrient","WebkitLineClamp","shape","SupplierImage","Supplier","supplierLogo","toggleSupplierFilter","error","setError","handleImageError","TraderActionsColumn","_erpInformation$price","_erpInformation$price2","_erpInformation$quant","erpInformation","setQuantity","addToBasket","addToCostEstimation","handleAddToCostEstimation","removeFromBasket","handleRemoveFromBasket","hideCostEstimationButton","hasSuggestedQuantity","hideAddToBasketButton","addToBasketButtonDisabled","addToCostEstimationButtonDisabled","articleErpInfo","basketQuantities","basketQuantity","traderErpInfos","retailPrice","Retail","RecommendedRetail","division","_articleErpInfo$respo","_basketQuantities$art","articleQuantities","orderQuantityGroups","distributorId","requestedQuantity","requestedValue","warehouses","tour","AddToBasket","originalQuantity","handleChangeQuantity","onAddToBasket","onRemoveFromBasket","partItemIds","quantityValue","disableButton","CostEstimationButton","onAddToCostEstimation","TraderSelection","showTraderSelection","traderSelection","toggleTraderSelection","columns","header","CellContentPosition","loadTraderErpInfos","rows","_traderErpInfos$trade","_erpInformation$quant2","rebate","cells","traderArticleNumber","quantityPackingUnit","packagingUnit","handleTransitionEnd","node","setTimeout","parent","getScrollableParent","bottomEdge","offsetTop","offsetHeight","parentBottom","clientHeight","scrollTop","scrollBy","mountOnEnter","unmountOnExit","addEndListener","Table","headerBackground","headerStyle","ele","document","body","hasScrollableContent","scrollHeight","isOverflowHidden","getComputedStyle","overflowY","indexOf","isScrollable","parentNode","TraderSelection.displayName","AddOeToBasket","_x$basketQuantity","totalQuantity","AddOeToBasket.displayName","AmountInfo","withoutBordercolor","noDelay","MAX_AMOUNT","AmountField","borderTopRightRadius","borderBottomRightRadius","BasketAmountField","loadErpInfos","showQuantityWithDecimals","ceil","inputRef","keyPressed","updatedQuantity","shouldLoadErpInfo","handleChange","parseInt","Number","isNaN","toString","select","handleBlur","noZeroQuantity","handleFocus","handleKeyUp","code","blur","maxAmountValue","amountInfo","min","max","step","onScroll","InputProps","endAdornment","onKeyUp","onFocus","onBlur","_inputRef$current","focus","QuantityBadge","RemoveIcon","BasketButton","hideBasketQuantity","invisible","ArticleListAddToBasket","CostEstimationButtonComponent","sizeProps","button","CostEstimationButton.displayName","OeTransactions","_article$quantity","_useOeArticleItemStat","hideReplaceButtonWithQuantity","showReplaceButton","handleReplaceArticle","ReplaceButton","ReplaceButtonWithQuantity","PartsListButtonComponent","PartsListButton","disableMargin","Transactions","displayMoreMenuButton","displayOnlyQuantity","showAddToBasket","isPartsListAvailable","getContrastText","CustomMenuEntry","paddingBottom","SINGLEWATCHLISTNAME","watchList","WatchlistComponent","isInWatchList","initialWatchList","watchLists","toggleWatchList","createWatchList","isToggling","isCreating","createOrAddWatchlist","singleWatchlist","creationMode","setCreationMode","newListName","setNewListName","setWatchLists","_useState8","setAnchorEl","Boolean","handleClose","Menu","MenuListProps","LoadingContainer","listEntry","hasErrors","onKeyDown","ArticleItem","OeArticleItem","OeInformationItem","WholesalerArticleItem","DefaultArticleItem","ExpandIconButton","GridItem","borderRight","MainInformationContainer","RightContainer","CompactArticleContainer","SupplierSpacing","DefaultCompactArticleContentComponent","showDescriptionCompactView","isTyres","SeasonIconWithTyreEfficiency","DefaultCompactArticleContentComponent.displayName","ArticleWrapper","ArticleContainer","_theme$opacity$disabl","_theme$opacity","borderBottom","pointerEvents","DefaultArticleItemComponent","TyresTile","DefaultExpandedArticleContentComponent","DefaultArticleItemComponent.displayName","disableReason","DefaultArticleItem.displayName","StyledGridItem","dmsInformation","articleOrdered","isPartToReplace","container","wrap","xs","pb","appear","DefaultExpandedArticleContentComponent.displayName","ManufacturerLogoBox","ManufacturerNameBox","_article$prices","formatCurrency","manufacturerThumbnail","wholesalerArticleNumber","displaySelection","_x$selection","displayPriceDependingOnQuantity","showErpContainer","_articleErpInfos$defa2","_articleErpInfos$defa3","manufacturerImgLoadError","setManufacturerImgLoadError","paddingX","paddingY","OeArticleItem.displayName","OeInfoItemPrice","LoadingOeInfoItemOePrices","_useOeInformationItem","oePrices","displayPrice","OeInformationItem.displayName","_article$productGroup","fuelEfficiency","wetGripClass","externalRolling","noiseLevel","hasTyresV2","useTyresV2","allAttr","_article$attributes","_toConsumableArray","topAttributes","articleAttributes","season","getTitleByGroup","getIconByGroup","group","EFilterNames","TyresIconsV2","TyresIcons","TileSeasonIconWithTyreEfficiency","onSelect","StyledIconsContainer","disableFocusRipple","disableTouchRipple","bem","outline","outlineColor","outlineStyle","getOldTyreLabelColor","common","white","textShadow","iconMapping","backgroundColorMapping","getFuelEfficiencyLabelColor","getWetGripClassLabelColor","_ref$direction","isNewLabelTyre","getLabelBackgroundColor","_backgroundColorMappi","getLabelTextColor","_theme$colors$dark","_theme$colors","colors","dark","StyledTopBox","RightInnerContainer","showExtendedAvailabilityContainer","_articleErpInfo$respo2","WholesalerArticleItem.displayName","ThumbnailIcon","ArticleThumbnailImage","isLinkedItem","articleInfoType","ArticleInfoType","OeArticle","CustomArticle","WholesalerArticle","objectPosition","StyledAutoComplete","Autocomplete","_defineProperty","autocompleteClasses","popupIndicator","inputRoot","CustomPaper","RefAutocompleteField","PaperComponent","popupIcon","disableClearable","AutocompleteField","BonusPointsTypes","BonusPointsBox","_theme$font2","isGoldenPoints","noLabel","bonusPointsColor","textSize","s","_bonusSystem$value","GoldenPoints","toLocaleString","renderLabel","StyledBreadcrumb","MuiBreadcrumbs","HomeButton","BreadCrumbButton","_theme$opacity2","active","buttonClasses","searchTree","breadcrumb","Breadcrumbs","_theme$overwrites2","onBreadCrumbClick","onBreadcrumbClick","themeOverwrites","separator","NavigateNext","_theme$opacity3","hasChildNodes","overviewIcon","overviewWithLabel","pl","breadCrumbs","crumb","Breadcrumbs.displayName","DraggableListItem","_useSortable","useSortable","isDragging","listeners","setNodeRef","setActivatorNodeRef","ListItemPaper","CSS","Translate","touchAction","DraggableList","onReorder","Wrapper","DndContext","modifiers","restrictToVerticalAxis","restrictToParentElement","collisionDetection","closestCenter","onDragEnd","over","SortableContext","strategy","verticalListSortingStrategy","Item","TooltipPrice","taxIncluded","valueTaxIncluded","_ref$additionalInfoIc","renderAdditionalDescriptions","_price$memos$filter","tooltipContent","GlobalButtonWrapper","_theme$pageNavigation","_theme$colors2","_theme$colors3","_theme$colors4","_theme$colors$modulBa","_theme$colors5","_theme$colors$modulBa2","_theme$colors6","_theme$pageNavigation2","pageNavigation","itemColor","body1","flexFlow","modulBar","A400","GlobalIcon","_theme$opacity$primar","_theme$pageNavigation3","_theme$colors7","_theme$colors8","GlobalImage","_theme$opacity$primar2","SubtitleComponent","_theme$colors9","_theme$pageNavigation4","_theme$colors10","_theme$pageNavigation5","black","GlobalNavigationItem","inProps","forwardedRef","_theme$layout2","useThemeProps","noOffsetOnActive","componentType","subtitle","onIconClick","onDoubleClick","customClass","_theme$layout","themeName","layout","GlobalNavigationItem.displayName","StyledBox","b","sanitizedHTML","sanitize","ALLOWED_TAGS","ALLOWED_ATTR","dangerouslySetInnerHTML","__html","Hotline","hotlineInfo","headline","email","phone","valueColor","bold","StyledTypography","Link","ImageViewerContainer","ActionsContainer","_theme$margin","alignCOntent","ZoomContainer","ZoomIcon","ZoomSlider","Slider","ImageViewerActions","baseScale","handleZoomIn","handleZoomOut","zoomInEnabled","zoomOutEnabled","MAX_ZOOM_SCALE","SLIDER_ZOOM_STEP","ImageViewerActions.displayName","DraggableImageContainer","userSelect","ImageViewerThumbnail","isActive","ThumbnailContainer","ThumbnailImage","ImageViewerThumbnail.displayName","ImagePreviewSkeleton","StyledImagePreview","overflowX","ImagePreview","onSelectImage","startIndex","activeIndex","setActiveIndex","handleImageSelect","selectedIndex","IMAGEHEIGHT","ViewerImage","onImageLoad","onLoad","ViewerImage.displayName","MIN_ZOOM_SCALE","WHEEL_ZOOM_STEP","DEFAULT_DRAG_POSITION","y","roundToOneDecimal","Math","floor","toFixed","imageRef","dragStart","scale","setScale","dragging","setDragging","setPosition","activeImage","setActiveImage","onZoomChange","prevScale","newScale","onZoomSliderChange","updatedScale","isArray","onHandleZoomIn","onHandleZoomOut","handleWheel","deltaY","handleMouseDown","_imageRef$current","_imageContainerRef$cu","clientX","clientY","handleMouseMove","movedMouseX","movedMouseY","minVisibleWidth","minVisibleHeight","maxX","maxY","boundedX","boundedY","handleMouseUp","heightScale","widthScale","useImperativeHandle","dragCursor","onWheel","onMouseDown","CountryIcon","getPlateStyle","countryCode","IconCh","IconN","IconUk","IconEu","getCountryCodeFontSize","countryCodeFontSize","getIconTop","plateStyle","licensePlateComponentInitiator","LicensePlateComponentInitiator","PersonalData","VehicleWidget","getIconHeight","VehicleEditor","getIconWidth","getCountryWidth","getFontSize","LicensePlate","isReadOnly","onChangePlate","showCountryCode","plateCountryCode","plateCountryCodeMapper","plateValue","setPlateValue","letterSpacing","plateId","newVehicle","getPlateCountryBackground","bottom","toUpperCase","isCountryInEU","toLowerCase","ModuleHeaderSlot","otherProps","gridTemplateRows","isTabsView","WiderTooltip","NoteTooltip","renderSingleNoteItem","pt","NoteTooltip.displayName","NotesIcon","hasNote","notesButton","BorderedNoteButton","_theme$overwrites3","_theme$overwrites4","NotesButton","iconOnly","articleNotes","noPadding","OAuthButton","tokenId","processStarted","setProcessStarted","handleFinishProcess","status","_rest$onAuthorization","handleMessage","onAuthorizationFinished","origin","_typeof","_rest$onClick","renderRoute","self","storedLogin","getStoredLogin","params","URLSearchParams","append","token","locale","Backdrop","drawer","InlineSelect","_theme$overwrites$com","_primaryButton$backgr","_primaryButton$hover$","_primaryButton$hover","_primaryButton$focus","_theme$radius2","_theme$radius3","primaryButton","defaultBackgroundColor","backgroundColorHover","hover","lighten","focusedColor","transitions","create","filledInputClasses","input","PartnerSearchField","SearchField","autoComplete","alwaysColoredBorder","startAdornment","PartnerSearchField.displayName","PopoverVariant","OutlineBox","_ref$popoverPosition","popoverPosition","dynamicStyles","itself","after","paper","before","borderStyle","borderWidthInnerArrow","PopoverMenu","popoverVariant","popoverContent","_props$defaultPopover","defaultPopoverPosition","anchorElement","setAnchorElement","contentElement","setContentElement","setPopoverPosition","handleClosePopover","innerHeight","doesPopoverFit","prevPosition","getInvertedPosition","positionObj","PaperProps","OUTLINE","PopoverMenu.displayName","RezisablePopoverBox","ResizableBox","backgroundRepeat","backgroundOrigin","backgroundImage","backgoundPosition","backgroundSize","DEFAULT_MIN_CONSTRAINTS","DEFAULT_MAX_CONSTRAINTS","DEFAULT_SIZES","RESIZEHANDLES","SCALE_AXIS","HANDLESSIZE","WITH_INDEX","HEIGHT_INDEX","ResizableContainer","onResizeStop","fullscreen","imageSizes","setImageSizes","popoverBoxSize","setPopoverBoxSize","handleResize","handleResizeStop","windowSize","useWindowSize","updatedSize","viewportWidth","documentElement","resizeHandles","minConstraints","maxConstraints","axis","handleSize","PopoverHeaderBar","popoverProps","setFullscreen","popoverActionRef","requestAnimationFrame","_popoverActionRef$cur","updatePosition","anchorPosition","anchorReference","Bestseller","_props$Bestseller","setState","setLength","maxItems","maxSelectableProductGroups","isDisabledBySelectedItems","tempState","pId","component","getUIA","FormControlLabel","control","applyProductGroups","hideFastCalcButton","enterDelay","fastCalculatorDisabled","fastCalculation","templateColumn2Row","templateColumn3Rows","NodesGridWrapper","NodesGrid","gridAutoFlow","ListView","_props$selectedNode","_props$selectedNode2","_props$selectedNode3","_props$selectedNode4","bestseller","selectedNode","isSmallVariant","maxElements","skeletons","keys","random","nodesGridTemplateColumns","wrapperGridTemplateColumns","skel","childNodes","TreeNode","onNodeClick","hideIcon","nodeVariant","topProductGroups","OverviewGrid","SearchTreeOverview","isFlexOverview","OverviewFlex","initialTree","hideSecondLevel","TreeCategory","category","Overview","nodeLimit","setNodeLimit","treeChunks","setTreeChunks","nodes","tree","chunks","_chunks$last","last","reduce","total","_node$childNodes$leng","_node$childNodes","prev","chunkItems","chunk","_chunk$first","anonymousProps","isAnonymous","isFirstInChunk","first","withBackgroundColor","shadows","CollapseWrapper","Searchtree","_props$className","hideTipIcon","setIsActive","viewLoading","setViewLoading","isSecondLevel","BreadcrumbsBox","SearchtreeTip","showBestseller","fastClick","_objectDestructuringEmpty","IconWrapper","hoverBackgroundColor","backGroundColor","SearchtreeIcon","TipIcon","ToolTipText","SampleProductGroupText","_text$","split","Tip","withoutBorderColor","mx","trimEnd","ParentNode","Headline","treeCategory","headerColor","_props$category$child","displayHeadlines","isSmall","div","HoverWrapper","ItemText","ClickIcon","_props$node$thumbnail","_iconNameSplits$","iconNameSplits","match","vehicleType","VehicleType","Motorcycle","showSecondLevelIcon","CommercialVehicle","LightCommercialVehicle","enterNextDelay","SelectedTypography","AdditionalPopoverContent","AdditionalPopoverContent.displayName","DownloadButton","ShareButton","EmailButton","recipient","subject","buttonProps","encodeURIComponent","_translate","noDisabledTooltip","ShareButtonWrapper","ShareButtonWrapper.displayName","SharingLink","errorMessage","WhatsAppButton","language","_regeneratorRuntime","prototype","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","Generator","Context","makeInvokeMethod","tryCatch","arg","h","l","f","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","v","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","charAt","stop","rval","complete","finish","delegateYield","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","test","_unsupportedIterableToArray","_nonIterableRest","RowStack","LinkPaper","hasError","LinearLoader","SharePopover","_popoverProps$anchorO","_popoverProps$transfo","onRequestLink","isRequestingLink","onPopoverOpen","onPopoverClose","isLinkCopied","setIsLinkCopied","linkCopiedTimeoutRef","clearTimeout","handleGenerateLink","_callee","_context","handleCopyLink","_callee2","_context2","t0","copyButtonText","reason","validatedRender","isShareButtonWrapper","isAdditionalPopoverContent","SharePopover.displayName","ExternalSharePopover","check","_Children$map","Children","child","EmailEntry","onEmailModified","startingEmail","setEmail","validEmail","isValidEmail","useDebounceFormSubmit","onSubmit","placeholder","EmailList","emailState","emailActions","toggleBCCSend","emailChanged","handleAddEmail","showBCCCheckbox","emails","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","toPrimitive","String","_toPrimitive","_toPropertyKey","Share","onShareCompleted","shareOptions","generateLink","additionalContent","disableSendFromOutside","preventAutomaticGeneration","selectedShareOption","setSelectedShareOption","isSharing","setIsSharing","emailShareOption","shareOption","ShareType","Email","_useEmailState","useEmailState","sendDisabled","handleToastMessages","shareSuccess","_shareOption$toastMes","_shareOption$toastMes2","toastMessage","success","toast","channel","publish","failure","send","contentOverride","t1","WhatsApp","Carteligence","Download","bccEmails","actionLabel","shareActionButtonLabel","ShareOptions","onShareOptionSelected","generateAction","selectShareOption","_useCopy","useCopy","buttonText","trim","shareWhatsApp","shareEmail","bcc","_emails$join","_bcc$join","mailTo","shareCarteligence","shareDownload","msg","_x","useDebounce","callback","delay","dependencies","timerRef","isValid","isSubmitting","debounceValue","startValue","setStartValue","hasChanges","JSON","stringify","_emailShareOption$ini","_emailShareOption$ini2","hasBccEmails","_emailShareOption$bcc","sendBCCCopy","setSendBCCCopy","hasValidEmail","setHasValidEmail","initialEmails","uniqueId","setEmails","_emails$filter","editedEmails","DefaultShareOptions","onScrollBottom","scrollbar","TableComponent","ScrollContainer","useDefaultStyling","Table.displayName","OverflowWrapper","TableCell","Element","colCount","rowIndicatorColor","rowIndicatorWidth","transparent","textColor","borderOnlyOnTheLeft","overflowCell","TableColumnHeader","sortOrder","TableColumnHeaderSortContent","_elementListOverwrite","elementListOverwrites","elementList","borderLeftWidth","LEFT_ROW_INDICATOR","ZINDEX_BASE","stackProps","_excluded2","onRowClick","onRowDoubleClick","_props$variant","_props$headerStyle","_props$rowCap","rowCap","SMALL_ROWCAP","ROWCAP","_props$rowStyle","rowStyle","textContrast","transparentHighlight","rowStyles","sortColumn","setSortColumn","sortDirection","setSortDirection","TableGrid","columnIndex","alignHeader","_ref$startSortDirecti","startSortDirection","startSortOrder","onSort","row","rowIndex","_row$id","rowId","replaceCustomRow","TableRow","leftRowIndicatorColor","singleRow","extendedContent","CustomRowElement","customRow","cell","cellIndex","_cell$id","_columns$cellIndex","_columns$cellIndex2","cellId","extendedContentHidden","ExtendedElement","TableComponent.displayName","_theme$overwrites5","_theme$overwrites6","col","gridSize","_props$onClick","_props$onDoubleClick","Shadow","BORDER_RADIUS","overwritesBorderLeftWidth","borderTop","gridColumnStart","gridColumnEnd","renderIfCellActiveStateIs","borderLeftColor","LinkTab","MuiTab","StyledTabPanel","other","hidden","StyledTabs","MuiTabs","_tabOverwrites$font","_tabOverwrites$font2","_theme$overwrites$com2","tabOverwrites","tabs","generalProperties","_ref$variant","_ref$withoutBorderCol","enableTipOnTouchDevice","tooltipOpen","setTooltipOpen","handleTooltipClickClose","disableTouchListener","prevTooltipOpen","HistoryItem","userContext","regNoCaption","useRegNoCaption","registrationTypeId","getShortCountryCodeByUserContext","_onClick","Separator","registrationNumber","vin","VehicleHistory","vehicleHistory","handleSelect","displayCurrentVehicle","setOpen","filteredList","orderBy","modifiedDate","Date","sxButton","outlined","sxMenu","menuItemClasses","getImageTypeByVehicleType","PassengerCar","VehicleImage","modelImage","modelSeriesImage","shouldUseModelSeriesImage","setShouldUseModelSeriesImage","handleError","VehicleImage.displayName","Unselectable","wordBreak","StyledSelect","_theme$overwrites$too","toolkits","widget","countrySelection","themedBorder","themedHoveredIconColor","themedIconColor","selectClasses","iconOpen","CountrySelection","_selectedVehicle$vehi","onSelectSearchOption","selectedVehicle","useSelectedVehicleLookup","flagPath","_useSelectedVehicleLo","selectableWithoutDuplicates","selectedVehicleLookup","setSelectedVehicleLookup","tooltipVisible","setTooltipVisible","selectedSearchConfig","lookupTypeId","selectableVehicleLookups","currentlySelectedLookupId","lookup","selectedLookup","hideVehicleLookupSelection","defaultSelectValue","tooltipTitle","onOpen","onMouseLeave","onMouseEnter","SelectDisplayProps","renderValue","config","selectableConfig","disableUnderline","_config$countryCode","_config$countryCode2","lookupToCountryTextIds","SelectItem","alt","CountrySelection.displayName","_lookupToCountryTextI","RegistrationNoType","Kba","KennzeichenNiederlande","KennzeichenNiederlandeCarat","NationalcodeAustria","LicensePlateDenmarkDriveRight","NationalcodeFrankreich","NationalCodeFrankreichCarat","TypenscheinSchweizEurotax","TypenscheinSchweizCarat","TypeApprovalNumberSwitzerlandRhiag","LicensePlateSwitzerland_RhiagCH","KennzeichenPortugal","VLPortugalCreateBusiness","VINFranceInforauto","VLSpain_CreateBusiness","VrmVINSpanienInforauto","VrmKennzeichenSpanienDGT","ItalienEdidomusWsvc","KennzeichenEstland","CarwebVrmWsvc","CartellIrlandKennzeichenWsvc","LicensePlateSwedenDriveRight","OuterBox","InnerBox","ManufacturerCard","TopManufacturerCards","useTopManufacturers","hideManufacturerLogos","_useTopManufacturers$","topManufacturers","thumbnail","Accordion","MuiAccordion","AccordionSummary","MuiAccordionSummary","expandIcon","AccordionDetails","MuiAccordionDetails","VehicleSearch","onSelectManufacturer","to","setVehicleType","VehicleSelection","LinkButton","vehicles","translateId","VehicleSelection.displayName","MuiTypography","HeaderText","GenericDivider","VehicleSelected","modelDetails","useCountryCodeToLicensePlate","useRegNoAndType","replaceButton","detailsButton","handleSelectEngineCode","setExpanded","date","plateCode","_useRegNoAndType","regNoType","regNo","regNoLabel","enginePowerKw","enginePowerHp","constructionYearFrom","constructionYearTo","engineCapacityCcm","shortenedModelThumbnail","modelThumbnail","shortenedModelSeriesThumbnail","modelSeriesThumbnail","registrationNo","_itemLabelTextIds$lab","itemLabelTextIds","getVehicleRegistrationNoLabelTextIds","labelShort","renderEngineCodes","_vehicle$engineCode","emptyEngineCode","_modelDetails$engineC","engineCodes","engineCode","exp","removeBrackets","modelSeries","model","constructionYearToString","initialRegistration","mileAge","exec","month","year","formControlClasses","outlinedInputClasses","VinField","loadSuggests","suggests","setSuggests","suggestsLoading","setSuggestsLoading","renderInput","inputCounter","freeSolo","clearIcon","forcePopupIcon","StyledAlert","MuiAlert","_theme$palette","_theme$palette2","_alertOverwrites$font","_alertOverwrites$font2","iconColor","themeColor","iconThemeColor","alert","getMapping","warning","errorBlack","rgbToHex","startsWith","infoBlack","successBlack","warningBlack","_ref2$fullwidth","fullwidth","componentVariant","AlertTitle","Alert.displayName","_useTheme$overwrites","_articleNumbersStyles","_articleNumbersStyles2","_articleNumbersStyles3","_articleNumbersStyles4","_articleNumbersStyles5","_articleNumbersStyles6","_articleNumbersStyles7","_articleNumbersStyles8","articleNumbersStylesOverwrite","articleNumbers","wrapWithButton","oe","linked","wholesaler","DEFAULT_ICON_SIZE","AvailabilityImage","AvailabilitySymbol","_ref$width","_ref$height","Description","_theme$animation","animation","Indicators","Indicator","mapping","ColorMapping","Content","DefaultAvailability","_props$mapping","tourDate","tourName","getBackgroundColor","_statusConfig$indicat","mappingConfig","statusConfig","positionConfig","indicator","indicatorBackgroundColor","AvailableInAlternativeWarehouse","ManufacturerAvailable","AvailableInCentralWarehouse","NightExpress","PartiallyAvailable","PartiallyAvailableInAlternativeWarehouse","PartiallyAvailableInCentralWarehouse","NotAvailable","ManufacturerUnavailable","NotYetRequested","ManufacturerNotYetRequested","NoLongerAvailable","NotYetDefined","getBorderColor","Card","alpha","Dot","full","SpaceRow","Row","Name","LastUpdate","Subline","SkeletonChatCard","ChatCard","isNew","subline","lastUpdate","sublinePrefix","ChatStack","ChatList","skeletonElements","skeletonChilds","List","listStyleType","paddingInlineStart","marginBlockStart","ActionContainer","MessageAppointment","appointmentAccept","listEntrys","actionButton","acceptText","declineText","downloadButtonText","downloadhref","downloadFileName","MessageBubble","AttachmentButton","fileName","fileType","StatePill","MessageContainer","AttachmentWrapper","DateTime","_ref6","attachment","dateTime","MessageStack","divRef","scrollDown","smooth","_divRef$current","scrollIntoView","behavior","scrollToBottom","MessageContainer.displayName","VehicleContainer","NameValueContainer","Value","NameValue","MessageMetaData","dataType","ConfirmationDialogKey","ConfirmationDialog","cancelButtonText","confirmationButtonText","confirmationKey","onConfirm","onCancel","showDialog","setShowDialog","setChecked","_useLocalStorage","useLocalStorage","localStorageData","setLocalStorageData","isSavedDecision","Dialog","handleCancelClick","StyledDialog","MuiDialog","dialogClasses","scrollPaper","StyledInnerDialogBox","onOutsideClick","DialogActions","customSkinIcon","alignDisplayIconCenter","displayIcon","Dialog.displayName","fileTypeMapping","jpg","accept","mime","png","gif","pdf","audioMP3","audioOgg","audioWAV","videoMP4","videoWebM","videoOgg","textTxt","textCsv","blobBin","getAcceptedFileTypes","allowedFileTypes","Dropzone","_useDropzone","useDropzone","getRootProps","getInputProps","isDragActive","Dropzone.displayName","Transition","Slide","percentWidth","Modal","TransitionComponent","hideCloseButton","smallCloseButton","Modal.displayName","SearchTextField","_theme$overwrites7","_theme$overwrites8","cutEdge","textfield","focused","medium","InlineSearchButton","SearchButton","CutEdgeStack","_theme$overwrites9","_theme$overwrites10","_theme$overwrites11","SearchFieldComponent","_theme$overwrites12","handleClickClear","handleKeyStroke","_props$onKeyUp","onStartSearch","handleClickSearch","buttonDisabled","renderSearchButton","Thumbnail","hasDashboardIcon","VehicleThumbnail","hasResetIcon","hasImg","calcTabWidth","CenterContent","InfoWrapper","CarInfo","CustomerInfo","TabWithImage","emptyText","onResetIconClick","MuiBadge","defaultSmallProps","CheckboxIcon","outlineOffset","CheckedIcon","StyledCheckbox","MuiCheckBox","bgcolor","span","checkedIcon","StyledFormControlLabel","MuiFormControlLabel","DefaultSvg","DefaultIcon","createSvgIcon","DefaultSvg.displayName","SVG","xlinkHref","Icon.displayName","StyledPaper","ListItemPaper.displayName","justifyItems","StyledButtonWrapper","_theme$margin$s","ContentFlex","MuiCustomModal","handleOkButton","disabledOkButon","showCloseButtonOnTheLeft","muitheme","matchesLg","matchesXl","keepMounted","StyledCard","StyledCardContent","CardContent","StyledCardHeader","CardHeader","SimpleCard","subHeader","sxCard","sxHeader","sxContent","avatar","subheader","tabIndex","accordionSummaryClasses","StyledButtonGroup","MuiButtonGroup","ButtonGroup","ColorButton","customColor","searchButtonColor","contained","ContentWrapper","fileSize","isValidColorOverride","getOffsetColor","offset","getLuminance","darken","MuiButton","_overwritesButtonPrim","_overwritesButtonPrim2","_overwritesButtonPrim3","_overwritesButtonPrim4","_overwritesButtonPrim5","_overwritesButtonPrim6","_overwritesButtonPrim7","_overwritesButtonPrim8","_overwritesButtonPrim9","_overwritesButtonPrim10","_overwritesButtonPrim11","_overwritesButtonSele","_overwritesButtonSele2","_overwritesButtonSele3","_overwritesButtonSele4","_overwritesButtonSele5","_overwritesButtonSele6","_overwritesButtonPrim12","_overwritesButtonPrim13","_overwritesButtonPrim14","_overwritesButtonPrim15","_overwritesButtonSele7","_overwritesButtonSele8","_overwritesButtonSele9","_overwritesButtonSele10","_overwritesButtonSele11","_overwritesButtonSele12","_overwritesButtonSele13","_overwritesButtonSele14","_overwritesButtonSele15","_overwritesButtonSele16","_overwritesButtonPrim16","_overwritesButtonPrim17","_theme$opacity$disabl2","_buttonOverwrites$out","_buttonOverwrites$out2","_buttonOverwrites$out3","_buttonOverwrites$out4","_buttonOverwrites$out5","_buttonOverwrites$out6","_theme$opacity$disabl3","_theme$opacity4","_selectedColor$main","_selectedColor$dark","_selectedColor$main2","_selectedColor$light","_objectSpread5","endIcon","hasIcon","selectedColor","buttonOverwrites","overwritesBorderRadius","overwritesButtonPrimary","overwritesButtonOutlined","overwritesButtonSelectedColor","fontColor","fontFamilyOutlined","sizeSmall","sizeMedium","sizeLarge","_props$size","Button.displayName","MuiIconButton","StyledLink","LinkButton.displayName","DateRange","initialDate","rangeInDays","startDate","sub","days","setStartDate","endDate","setEndDate","textFieldProps","DatePicker","textfieldProps","startLabel","newPeriod","isBefore","onRangeChange","newEndDate","isAfter","localisation","endLabel","minDate","isValidDate","DateTimePicker","_objectWithoutPropertiesLoose","propertyIsEnumerable","enLocale","setLocale","importLocaleFile","localeToSet","dateMask","inputFormat","mask","LocalizationProvider","dateAdapter","AdapterDateFns","MuiDateTimePicker","ampm","disableMaskedInput","OpenPickerIcon","views","showToolbar","openTo","DateTimePicker.displayName","StyledTextField","fixUTCDate","newDate","setUTCFullYear","getFullYear","getMonth","getDate","setUTCHours","CalendarIcon","renderInputOverride","_ref$textfieldProps","onAccept","dateError","setDateError","showTodayButton","DateUnit","Day","maxDate","validateDate","handleAccept","validatedDate","renderTextfield","castedParams","cloneElement","errorHandling","localeText","todayButtonLabel","MuiDatePicker","componentsProps","actionBar","DatePicker.displayName","StyledDivider","MuiDivider","borderBottomWidth","EasyPopoverComponent","anchor","setAnchor","popoverActions","contentRef","useResizeRef","closePopup","toArray","isValidElement","PopoverActionButton","EasyPopoverContext","preventDefault","disableScrollLock","EasyPopoverComponent.displayName","EasyPopoverWithStatics","ActionButton","PopoverContent","useContext","currentRef","resizeObserver","FlagFallback","FlagFallback.displayName","ArticleFallback","ArticleFallback.displayName","BikeFallback","BikeFallback.displayName","CarFallback","CarFallback.displayName","ManufacturerFallback","ManufacturerFallback.displayName","SvgFallback","SvgFallback.displayName","fallbackImage","FallbackComponent","commonProps","fallback","Image.displayName","StyledLoader","circularProgressProps","Loader.displayName","ProgressBar","ProgressBar.displayName","spin","keyframes","_templateObject","ModernSpinner","borderTopColor","borderBottomColor","CenterWrapper","Spinner.displayName","MuiPaper","SelectorPaper","StyledRadioButton","MuiRadio","radioClasses","RadioButton","ScrollWrapper","debouncedOnScrollBottom","ScrollContainer.displayName","DropDownButton","getRoundedValue","roundedType","roundedValue","EPSILON","NumberSelect","onValueChange","steps","maxAmount","minAmount","maxItemsToShow","classNameWrapper","selectedValue","setSelectedValue","fixPrecisionSymbol","setDisplayValue","alreadyFocused","setAlreadyFocused","_useState10","recentlyFocused","setRecentlyFocused","newValue","ButtonKeyDefinition","Enter","NumberSelectList","NumberSelect.displayName","DEFAULT_MIN","DEFAULT_MAX","DEFAULT_ITEMSTOSHOW","DEFAULT_ITEMSIZE","DEFAULT_WIDTH","SmallInput","StyledMenuItems","dropdown","menu","inputValue","setInputValue","maxValue","minValue","fillArray","scrollWrapperHeight","listRef","createRef","findIndex","element","scrollToItem","onInputChanged","intVal","parseFloat","increase","decrease","autoFocus","itemCount","itemSize","trunc","MuiSelect","_theme$palette$color","_theme$palette$color2","_primaryButton$fontSi","_theme$palette$color3","_theme$palette$color4","iconOnTheRight","paletteColorMain","paletteColorLight","typo","defaultColor","iconColorFocus","iconColorHovered","colorFocused","backgroundColorHovered","filledInputTypo","selectedOutlined","selectIconSizes","WebkitTextFillColor","isloading","MenuProps","IconComponent","iconProps","Select.displayName","WidgetMenuItem","MenuItemWidget","SelectTextFieldComponent","maxLayerHeight","customIcon","SelectProps","selectProps","SelectTextField","char","IconBox","ColorizedIcon","StyledText","getIconData","_getIconData","ToggleSwitchStack","switchClasses","switchBase","StyledToggleSwitch","Switch","thumb","track","ToggleSwitchLabel","ToggleSwitch","isRightSelected","setIsRightSelected","leftLabel","rightLabel","handleClickButtonButton","ToggleSwitch.displayName","StyledSwitch","MuiSwitch","labelPlacement","formControlLabelSx","typographySx","switchProps","ArrowUp","ArrowDown","DEFAULT_INPUTPROPS","MuiTextField","_theme$overwrites13","_theme$overwrites14","_theme$overwrites15","_theme$overwrites16","_$concat4","hideNumericCounter","hiddenLabel","MozAppearance","WebkitAppearance","formHelperTextClasses","stackClasses","visibility","inputLabelClasses","filled","large","extralarge","appearance","valueToNumber","ArrowStack","inputBaseClasses","tooltipPlacementBottom","_props$InputProps","_length","_props$value3","_props$inputProps","_props$InputProps2","_props$InputProps3","_props$value4","inputRefLocal","restProps","setErrorMessage","validateNow","setValidateNow","required","_props$errorHandling","_props$errorHandling2","pattern","validateMinMaxValue","_ref4$max","_ref4$min","preValidatedValue","setRawInputValue","_inputRef$current$nod","_Object$getOwnPropert","inputPrototype","HTMLTextAreaElement","HTMLInputElement","currentInputRef","nativeInputValueSetter","set","dispatchEvent","Event","bubbles","cancelable","validate","_props$value2","_props$value","_ref5$max","_ref5$min","validateNumber","errorWithoutPattern","handling","errorWithPattern","hasValidationError","requireEndAdornment","clearButton","_props$onValidationCh","onValidationChange","overwrittenInputProps","possibleValue","Decimal","toNumber","_inputRef$current2","_inputRef$current3","_inputRef$current4","minVal","onChangeHandler","_e$currentTarget$valu","_e$currentTarget","currentTargetValue","validatedValue","onBlurHandler","_e$currentTarget2","relatedTarget","parentElement","contains","TextField.displayName","TooltipComponent","_props$enterDelay","_props$enterNextDelay","childrenProp","tooltipRef","disabledHover","setDisabledHover","$$typeof","__emotion_base","wheelEventHandler","scrollEventHandler","_tooltipRef$current","preventCloseOnScroll","tooltipProps","handleMouseEnter","showOnlyOnOverflow","handleMouseLeave","MuiTooltip","popper","disableHoverListener","colorDark","TypographyComponent","highPriority","fn","ms","_debounce2","debouncedFun","teardown","DEFAULT_THEME","danger","deepBlack","xl","box","default","headlines","serif","boldWeight","subtitleSize","headlineSize","h1","h2","h3","h4","body3","itemHoverColor","itemBorderLeftColor","nextTheme","_nextTheme$colors$dar","_nextTheme$colors","_nextTheme$colors$lig","_nextTheme$colors2","_nextTheme$palette","contrastThreshold","getContrastRatio","createNextMuiTheme","_font$fontFamily","_nextTheme$overwrites","_nextTheme$overwrites2","_nextTheme$radius","_DEFAULT_THEME$radius","_nextTheme$colors3","_DEFAULT_THEME$colors","_nextTheme$colors4","_nextTheme$colors5","_nextTheme$colors6","_nextTheme$colors7","_DEFAULT_THEME$colors2","_nextTheme$colors8","_nextTheme$palette2","_nextTheme$colors9","_nextTheme$palette3","_nextTheme$colors10","_nextTheme$colors11","_nextTheme$colors12","_nextTheme$colors13","_nextTheme$colors14","_nextTheme$colors15","_DEFAULT_THEME$font","_nextTheme$font","_nextTheme$opacity","_DEFAULT_THEME$font2","_nextTheme$font2","_nextTheme$opacity2","_DEFAULT_THEME$font3","_nextTheme$font3","_nextTheme$opacity3","_DEFAULT_THEME$font4","_nextTheme$font4","_nextTheme$opacity4","_DEFAULT_THEME$font5","_nextTheme$font5","_nextTheme$opacity5","_DEFAULT_THEME$font6","_nextTheme$font6","_nextTheme$opacity6","_DEFAULT_THEME$font7","_nextTheme$font7","_nextTheme$opacity7","_DEFAULT_THEME$font8","_nextTheme$font8","_nextTheme$opacity8","_nextTheme$overwrites3","_nextTheme$overwrites4","_nextTheme$overwrites5","_nextTheme$overwrites6","_nextTheme$overwrites7","_nextTheme$overwrites8","_nextTheme$overwrites9","_nextTheme$overwrites10","_nextTheme$colors16","_nextTheme$overwrites11","_nextTheme$opacity9","json","replaceAll","parse","removeSingleQuotes","buttonFontFamily","tabFontFamily","createTheme","paperBackground","highlightLight","htmlFontSize","h5","h6","subtitle1","subtitle2","caption","overline","sm","md","lg","xxl","general","login","partlist","groupHeader","monochrom","basketSummary","variants","styleOverrides","MuiInputBase","standard","MuiAutocomplete","timer","args","nextVal","AlertNotification","erpServiceUrl","telesalesCustomerNo","useUser","notificationsPollingIntervalInMinutes","parameter","notificationsPollingInterval","rerenderTrigger","setRerenderTrigger","queryKey","notificationContextId","useQuery","getNotification","refetchInterval","refetchIntervalInBackground","_response$notificatio","refetchOnWindowFocus","notificationTimeout","_step","currentTime","validFromArray","_x$validFrom","validFrom","hours","_iterator","_createForOfIteratorHelper","notification","getTime","err","getNotificationTimeout","timeoutId","_notification$memo","_notification$validFr","_notification$validTo","isWithinInterval","start","end","validTo","months","checkDateInActiveRange","_notification$id","_notification$memo2","_notification$memo3","_ref2$queryKey","notificationRequest","ajaxAuth","hasAuthorization","authorization","credentials","getCountryFilter","modules","catalogModule","UserModuleType","Catalog","countryFilter","getVehicleLookupType","vehicleLookupModule","VehicleLookup","lookupType","foundModules","getModuleFromUserContext","moduleKey","_userContext$modules","foundModule","getParameterFromUserContextModule","parameterKey","valueType","getParameterFromModule","_foundModule$paramete","parameterValue","parameters","getParametersFromUserContextModule","parameterKeys","getParametersFromModule","fromEntries","useAddToBasketModuleParameters","_addToBasketModule$pa","_addToBasketModule$pa2","_addToBasketModule$pa3","_addToBasketModule$pa4","_addToBasketModule$pa5","addToBasketModule","addToNextBasket","showBasketButton","showCostEstimationButton","sendArticlesPostMessage","sendRepairTimesPostMessage","useCostEstimationModuleParameters","_costEstimationModule","_costEstimationModule2","_costEstimationModule3","_costEstimationModule4","_costEstimationModule5","_costEstimationModule6","_costEstimationModule7","_costEstimationModule8","costEstimationModule","CostEstimation","hasCostEstimation","disabledCostEstimation","catalogLight","customerGroup","priceModus","priceTypes","showExportToExternalBasket","showImportFromExternalBasket","requiredAuthModeForExternalBasket","useSendCostEstimation","useSendOrder","useWorkTaskOrderModuleParameters","_workTaskOrderModule$","_workTaskOrderModule$2","workTaskOrderModule","WorkTaskOrder","hasWorkTaskOrder","useAvailabilityStatus","availabilityStatusIdsToShow","availabilityStatusIdsToShowSecondary","useHidePriceTypes","_useUser","userSettings","hiddenByUserSettings","showPurchasePrice","_catalogModule$hidePu","hidePurchasePriceTypes","QUERY_KEY","useCisCustomer","enabled","hasCis","useHasCis","_useTelesalesCustomer","useTelesalesCustomerNumber","enableServiceCalls","_useQuery","fetchCisCustomer","staleTime","cacheTime","cisCustomerLoading","cisCustomer","request","customerNo","getInstance","RegisteredModels","CIS_Customer","subscribe","useReloadCisCustomer","queryClient","useQueryClient","invalidateCisCustomer","invalidateQueries","KEY","useCisReturnItemsTotalNumbers","CIS_ShowTotalNumbers","totalNumbers","totalNumbersLoading","useReloadCisReturnItemsTotalNumbers","resetCisReturnItemsTotalNumbers","resetQueries","CustomerInformation","useShowCisOptions","fetchCisOptions","Infinity","cisOptionsLoading","cisOptions","CIS_ShowCisOptions","useNewTyreSearch","tyresV2","tyresSearchParameter","TMTires","hasTyreSearch","useTyresMatchCodeSearchType","isWidget","tyresMatchCodeSearchType","EMatchCodeSearchType","widgetAndCatalog","catalog","tyresVersionParameter","useDatCredentials","damageCalculationModule","TMDamageCalculationDat","_damageCalculationMod","_damageCalculationMod2","_damageCalculationMod3","_damageCalculationMod4","customerNumber","userName","isPasswordSet","showDatSettings","useDisplayListV2","showNewArticleList","useShowNewArticleList","system","systemType","SystemType","Next","TRADER_WITH_CUSTOMER_NUMBER","useErpCredentials","_userContext$external","externalErpModules","externalModules","accessDataFromCatalogue","erpModules","username","isCustomerNoRequired","tradeReferenceId","showErpSettings","useHotline","hotline","mailReg","phoneReg","phoneMatches","mailMatches","_getModuleFromUserCon","_workTask$customer$re","_workTask$customer","useWorkTask","workTask","workTaskId","location","useLocation","refCustomerNo","search","get","hasTelesales","collectiveCustomerNo","_telesalesModule$para","collectiveCustomer","telesalesModule","module","Telesales","customer","_availableVehicleSear2","availableVehicleSearches","useAvailableVehicleSearchOptions","tempCountryCode","_availableVehicleSear","defaultVehicleLookup","STARTPAGE","__NEXT_WORKTASKID__","sessionStorageData","useSessionStorage","_sessionStorageData$w","getNextUrlComparable","pathname","fragments","basePath","isModalUrl","decodeURIComponent","isSameTab","moduleNavigationState","atomFamily","visibleTabCount","effects","ViewState","onSet","setSelf","trigger","encodedWorktaskId","encodeUniqueId","oldValue","tabsToSave","DefaultValue","isEqual","sessionStorage","setItem","viewState","_viewState$value","currentTabs","loadedTab","currentUrl","currentUrlComparable","currentTabIndex","tab","tabUrl","tabsSelector","selectorFamily","visibleTabCountSelector","useInitModuleNavigation","activateDefaultTabs","defaultTabs","useWorkTaskId","_useRecoilState2","useRecoilState","setTabs","_useRecoilState4","setVisibleTabCount","_useModuleNavigation","useModuleNavigation","showTab","closeTab","resetVisibleTabCount","visibleTabs","selectedPos","moreTabs","isDefault","defaultTabsWithName","vehicleDependency","moduleGroupId","moduleId","history","useHistory","useRouteMatch","useSetRecoilState","closeTabs","urls","moduleTab","avoidAddToChannel","workTaskChannel","lastMessage","topic","currentTab","preventURLRewrite","pos","_x$url","resetTabs","pureArticleListsState","usePureArticleList","useRecoilValue","usePureArticleLists","setStates","setRequest","SizeContext","getWindowSize","innerWidth","SizeProvider","_Component","_this","_classCallCheck","_callSuper","_inherits","this","updateDimensions","Component","useSize","withScreenSize","_class","screenSize","console","warn","createElement","Consumer","renderInnerComponent","css","cfg","flattened","isDebug","localStorage","getItem","useStyle","comp","result","_i","classNames_1","getOwnPropertyNames","classDef","_comp$name","_type","$debugName","withStyle","generateStyle","ss","__NEXT_STYLETHEME__","compName","getStyleTheme","muiTheme","_unused","ThemeProviderContext","only","_theme","THEME_IDENTIFIER","loadStyleThemes","themeUrl","themeMuiUrl","nextThemeJson","ajax","muiThemeJson","themes","allSettled","settledThemes","_settledThemes","mui","setStyleTheme","appendMuiTheme","_theme2","fullTheme","withTheme","availableTags","getUrlTags","useReplaceUrlTags","userContainer","workTaskContainer","replaceUrlTags","_workTask$vehicle","_workTask$vehicle2","kbaNumbers","languageId","supplierArticleNumber","supplierNumber","productGroupId","orderId","kbaNumber","_ret","_loop","tag","queryValue","_workTask$vehicle3","substr","_workTask$vehicle4","tecDocManufacturerId","_workTask$vehicle5","_workTask$vehicle6","getStoredAuthorization","vsn","_workTask$vehicle7","_workTask$vehicle8","_Object$entries$find","_sessionStorage$getIt","tokenKey","tokenHandler","Morpheus","getParams","tokenKeyAlt","tokenStorage","_Object$entries$find2","externalAuthenticationTokens","_Object$entries$find3","tokenAlt","_ref7","RegExp","UserProviderContext","withChangeUserSetting","user","reloadUserSettings","setUserSetting","changeLogo","changePrintLogo","removeLogo","changeHourlyRates","updateRepairShop","changeRepairTimeOptions","changeOrderOptions","changeDirectBuyOptions","changeCostEstimationOptions","withUserContext","withUserSettings","getUserContext","authorityServiceUrl","reject","mapUserContext","getUserSetting","convertDates","regexDate","mapRepairShop","openingTimes","mapOpeningTimes","logo","mapLogo","printLogo","until","mapExternalAuthenticationTokens","mapParameters","_response$map","purchasePricesDisabled","orderDisabled","hideBestsellers","urlLogoMoodPicture","orderingType","OrderingType","NoCentralOrdering","clientErpCachingTimespan","showCloseWorktaskButton","showVoucherKVA","showVoucherOrder","showVoucherReturn","showDataSupplierLogos","_parseNumber","_parseNumber2","traderAddress","customerReferenceNumber","parseNumber","addressGVS","cacheFrontendArticleListSec","pollingIntervalFromMdm","_parseBoolean","_value","parseBoolean","showAllOptions","serviceUrl","repairShop","showOrderOptions","logoBytes","hourlyRates","currencyCode","ERepairTimeDivision","_defineProperties","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","valueOf","_setPrototypeOf","createUserProvider","_createUserProvider","_callee16","_options$userContext","repairShopServiceUrl","userSettingsDefaults","tokens","initialUserContext","contextSubject","settingsSubject","_context16","externalAuthentication","loadExternalTokens","BehaviorSubject","UserProvider","userSettingsUpdating","all","Data","includeRepairShop","includeHourlyRates","includeOrderOptions","includeRepairTimeOptions","includeDirectBuyOptions","includeCostEstimationOptions","responses","_responses$0$hourlyRa","_responses$0$hourlyRa2","_responses$","_responses$2","_responses$3","_responses$4","_responses$5","mapHourlyRates","hourlyRatesCurrencyCode","costEstimationOptions","orderOptions","repairShopResponse","expandedByDefault","basketMemoContext","basketMemoSections","sections","repairTimeOptions","directBuyOptions","eanNumberSearchEnabled","getShowPurchasePriceFromResponse","getValue","showPurchasePriceInSummary","articleListSettings","activeVehicleDataProviders","dmsSettings","autoExpandFilters","itemSorting","vrcScanOptions","customerEnabled","vehicleEnabled","hideWheelsAvailability","sindriSettings","articleListDefaultSorting","drivemotiveSettings","partsLifeSettings","fastServiceSettings","getUserSettings","hasPartsLifeActive","isTyresWheelsDisabled","_x4","_x5","logoData","convertBase64ImageToByteArray","updateLogoState","_x6","_callee3","_userSettings","_context3","_x7","_callee4","_context4","_callee5","_userSettings2","_context5","_x8","_callee6","_context6","updateUserSettingsState","_x9","_x10","_callee7","_context7","_x11","_ref8","_callee8","costEstimationOption","_context8","_x12","_ref9","_callee9","_context9","_x13","_ref10","_callee10","_context10","_x14","_callee11","forgetExistingTokens","_args11","_context11","updateUserContextState","_ref12","_callee12","_context12","_x15","_ref13","_callee13","updatedValuesOrUpdater","_context13","_x16","_ref14","_callee14","_context14","_x17","_ref15","_callee15","_context15","generalContact","_x18","bindSpecialReactMethods","_this2","contextSubscription","forceUpdate","settingsSubscription","closed","unsubscribe","setSetting","updateExternalAuthenticationTokens","updateUserContextGeneralContactName","getContext","_x2","_getUserContext","_callee17","_auth$credentials","auth","_decodeJwtToken","isanonym","_context17","isAnonym","decodeJwtToken","_x3","_loadExternalTokens","_callee18","tokensToLoad","validTokensToLoad","_context18","_ref16","Authority","tokenIdentifiers","_ref18","_ref19","repository","refreshUserContext","errors","_ref20","responseTokens","expiration","expiryDate","schema","rates","_x$hourlyRate","hourlyRate","getWorkTaskId","WorkTaskProviderContext","withWorkTask","createWorkTask","attachToWorkTask","openWorkTask","reloadWorkTask","workTaskLoading","newWorkTaskLoading","showError","withWorkTaskConflict","triggerWorkTaskConflict","workTaskConflict","vehicleContainer","customerContainer","initialize","Worktask","Vehicle","Customer","loadWorktask","loadVehicle","vehicleId","setWorktaskSelected","createWorktask","customerId","createWorktaskAndReturnNewVersion","saveCustomer","_contract$save","contract","addListener","save","saveVehicle","_contract$save2","attachCustomerToVehicle","attachCustomerAndVehicleAndReturnNewVersion","attachVehicleAndReturnNewVersion","attachCustomerAndReturnNewVersion","detachCustomerAndReturnNewVersion","GUID_REGEX","WorkTaskProvider","loadWorkTaskInfo","loadWorkTaskInfoModal","loadVehicleDataAvailabilities","globalPages","decodeUniqueId","loadingNewWorkTask","handleChangeDialogCancel","historyListener","injectVehicleHistory","BasketActivityDoneContainer","Worktask_BasketActivityDone","initListeners","_this$props","encodedId","unregisterHistoryListener","listen","subscription","unregisterBasketActivityDone","currentWorkTaskId","getCurrentWorkTaskId","subscribeOnce","statusValue","WorkTaskStatus","skipRedirect","workTaskInfo","no","matchPath","path","workTaskIdFromMorpheus","urlParams","has","_workTaskId","morpheusPath","morpheusMatch","setCoopMemberId","conflict","_this$state","_this$props2","WrappedWorkTaskProvider","withRouter","Route","render","_attachToWorkTask","allowVehicleChange","_conflictingStatus","conflictingStatus","workTaskInfoCustomer","_workTaskInfoCustomer","_workTask2","_workTask3","_yield$saveVehicleOrG3","computedCustomerId","_workTask4","checkConflictingModules","conflictedModules","promptConflict","conflictType","subPage","saveCustomerOrGetId","checkVehicleConflict","_onConfirm","showNewWorkTask","showNewCustomerVehicle","saveVehicleOrGetIdAndAttachVehicle","_onConfirm2","newWorkTask","asCustomerVehicle","_yield$saveVehicleOrG","workTask2","saveVehicleOrGetId","_onConfirm3","_yield$saveVehicleOrG2","_workTask","_onConfirm4","vehicleOrId","comparison","ModuleConflictType","CustomerAndVehicle","moduleList","parseModuleList","firstAttachConflictType","_saveVehicleOrGetIdAndAttachVehicle","workTaskProvider","_yield$saveVehicleOrG4","_workTaskInfo$custome","_promptConflict","_onConfirm5","conflictedTabs","creatingPromises","_createWorkTask","_prom","_createdWorkTask","possiblyLoadedWorkTask","prom","createdWorkTask","t2","attachIfDifferent","splice","withoutCustomerVehicle","attachData","_saveCustomerOrGetId","savedCustomer","_saveVehicleOrGetId","newCustomerId","_yield$getVehicleWith","savedVehicle","getVehicleWithUpdatedCustomerId","_getVehicleWithUpdatedCustomerId","updateState","prevState","modelId","Vehicle_DataAvailabilities","dataAvailabilities","gpi","dat","hasDat","eurotaxV3","hasEurotaxV3","temot","hasTemot","tecRMI","hasTecRmi","repairTimes","awDoc","hasAwDoc","autodata","hasAutodata","haynesPro","hasHaynesPro","inspectionData","technicalData","tyres","driveRight","hasDriveRight","fastCalculator","hasAny","activeServiceDataProviders","toolRental","mobilityMarket","hasMobilityMarket","workTaskString","alreadyLoadedWorkTask","handleNotAccesWorktask","closeDelay","previousId","cooperationMemberId","Completed","workTaskNo","refId","telesalesStatusValue","workTaskReadModel","encodedWorkTaskId","decodedWorkTaskId","isWm","getStyle","alertClass","textWrapper","closeButton","onButtonClick","long","iconSize","setIcon","Text","AmountFieldInput","_PureComponent","_props$value$toString","userInput","fixedPrecisionValue","getLocalePrecisionSymbol","bindMethodsToContext","showValue","dropdownNavigationActive","fromInput","validateValue","adjustedValue","adjustMinMaxValue","appendPrecision","valid","isNumber","validateBoundary","currentValue","fittedValue","unit","stepSizeFits","adjustValue","handleBubbling","handleSubmitValue","precision","getPrecision","fixedValue","tmpValue","valueDecimals","numberDecimalPlaces","decimalPlaces","handleInputChange","handleKeyDown","PureComponent","AmountFieldItem","AmountFieldItem.displayName","DecimalAmountField","useDecimalItems","inputPrecision","activeItem","stepSize","Dropdown","amountItemsToShow","itemView","DecimalAmountFieldItem","inputView","DecimalAmountFieldInput","DecimalAmountField.displayName","setShowValue","setDropdownNavigationActive","submitValue","precisionValue","integerValues","convertToDisplayValue","inBoundary","noEmptyValue","convertedValue","hasPrecision","integerGroup","precisionGroup","convertToValidDecimal","fixedPrecision","fixPrecision","fitValue","fixedSeperator","DecimalAmountFieldItem.displayName","useItems","AmountField.displayName","decimalParts","itemValue","lessThanOrEqualTo","greaterThanOrEqualTo","todp","plus","AvailabilityDescription","imageElement","baseName","iconname","indicatorPosition","mapAvailabilityStatusToLevel","AvailabilityIconWithDescription","AvailabilityIconWithTour","AvailabilityMultiQuantity","availabilities","additionalText","itemBaseName","_a$availability$icon","mapAvailabilityStatusToIconName","show","_isMounted","_visibleTimeoutId","buildClassName","handleBadgeVisibility","renderBadgeContent","buttonIcon","handleOnButtonClick","_this$props3","handleVisible","handleHidden","qualifiedSelector","_this$props4","states","buttonElement","linkTo","fakeButton","forceExternalLink","scaleIcon","appendItem","cx","hasChildren","hasIconRight","bemConfig","shaded","rounded","ghost","holo","bordered","circle","dropshadow","btnClassName","appendToClassName","btnTitle","btn","renderChildren","iconElement","extendedClassName","getClassName","handleDblClick","onDblClick","baseClassName","fullClassName","elementId","onToggle","labelTitle","onLabelClick","htmlFor","Collapsible","opened","initiallyOpened","removeOutsideClick","nextProps","dropDownRef","closeDropdownOnOutsideClick","registerOutsideClick","handleToggleOpen","shouldComponentToggle","onChangeOpen","asDropDown","renderHeaderAppendix","handleDropDownToggleOpen","handleDropDownRef","renderHeader","DateFieldCustomInput","outerContainerRef","showErrorMessage","checkErrors","modelState","getFieldErrors","_this$state$errors","_this$state$errors2","readOnly","initiallyFocused","wrapperClassName","showClear","floatingLabel","elClassName","resetProps","handleOuterRef","inputMode","handleKeyPress","onMouseOut","handleMouseOut","handleClear","createErrorMessage","formats","getLocaleDateString","localeKeys","foundFormats","currentFormat","getFormattedLocalDate","dateString","format","getLocaleTimeString","handleScrollIntoView","parentClass","elementClass","querySelector","scroll","DateFieldAny","localeFormat","localization","showTimeSelect","timeFormat","calender","prevProps","_this$state$calender","_this$state$calender2","setFocus","handleRegisterClick","clearInterval","timerId","selectYearElement","yearSelector","handleUnRegisterClick","handleScroll","_this$selectYearEleme","yearDropdownSelector","yearSelectedElSelector","useUtc","getTimezoneOffset","_this3","readonly","openToDate","realValue","datePlaceholder","customInput","_this3$state$calender","_this3$state$calender2","strictParsing","dateFormat","placeholderText","handleDateChange","ignoreOnSelect","onInputClick","onClickOutside","showYearDropdown","showMonthDropdown","scrollableYearDropdown","yearDropdownItemNumber","timeIntervals","dropdownMode","withLocalization","Demo","displayMode","dropIn","innerRef","_this$innerRef$curren","handleConfirmViaKeyPress","_this$props$onClose","_this$props$onConfirm","doNotCloseOnConfirm","confirmButtonDisabled","handleConfirm","_this$props$onCancel","unreg","time","confirmButtonText","preText","customConfirmationButtonIcon","imagePath","preTextSize","closeOnlyWithDialogInteraction","handleDecline","createPortal","getElementsByTagName","QuestionPrompt","_this$dialogRef$curre","dialogRef","WarningPrompt","DropdownField","unregisterOutsideClick","el","handleClickOutside","clone","_this4","noCover","labelElement","handleRef","handleSetOpen","getItemValue","alignArrow","onOutsideInteraction","renderItems","DropdownItem","View","isListItem","ViewComponent","searchValues","_this$props$items4","_this$buttonRef$curre","_this$unregisterOutsi","_this$props$onDropdow","_this$props$onDropdow2","onDropdownClose","setUnregisterOutsideClick","onDropdownOpen","focusInput","_this$props$onFocus","handleSetMidItem","toggleDropdownMenu","handlePopoverClose","_this$props$onRef","onRef","handleMouseWheel","passive","_this$props$onPopOver","_this$props5","onPopOverClose","deltaIndex","shiftKey","handleShowStartIndex","_this$props$onShowInd","_this$props7","_this$props6","endReached","startShowIndex","onShowIndexChange","_this$props$amountIte","itemIndex","equals","preSelectedItemIndex","_this$buttonRef$curre2","_this$props$onClick","_this$props8","buttonElementRef","dropdownChildren","childWasClicked","refChildren","stopBubbling","_this$props$onChange","_this$props9","handleSelectItem","_this$props10","submitOnTab","_this$state2","handleArrowClick","_this$buttonRef$curre3","_this$props$items","handleArrowUpClick","handleArrowDownClick","_this$state3","handleItemClick","_this$props$items2","_this$props$items3","_this$props11","enableLoaderInDropdown","emptyPlaceholder","displayItems","renderItem","getSearchValue","_this$unregisterOutsi2","_this$divRef","_this$state4","_this$props12","displayView","CoverView","coverView","ItemWrapper","itemWrapper","customCoverView","DisplayView","InputView","popoverArrowPosition","optionList","generateOptionList","onMouseUp","handleToggleClick","handleDivRef","pref","renderArrow","FileDropField","maxFileSize","allowPaste","maxFileSizesByType","setActive","maxFileSizes","getMaxFileSizeByType","getAllowedFileSizeByType","mimeType","fileSizeOption","saveFile","file","getMimeTypes","maxAllowedFileSize","reader","FileReader","onload","readAsDataURL","handlePaste","_e$clipboardData","clipboardItems","clipboardData","getAsFile","handleEnter","handleExit","onChangeFile","files","onDragEnter","onDragLeave","getAcceptAttribute","FileDropField.displayName","FileSelectButton","_props$onError","_props$onError2","_props$onOpenFileDial","onOpenFileDialog","click","_default","fittingPosition","FittingPosition","None","isBikeAsVehicle","FrontAxle","Right","Left","RearAxle","tirePressure","frontLeft","frontRight","rearLeft","rearRight","lateral","textTop","fittingPositionSvg","renderImage","$nest","em","center","auto","getPrevSize","firstItem","shift","gridClassName","getSize","percent","obj","qualifiedClassName","IFrame","iframe","setIframe","setContainer","waitForBoundingRect","setWaitForBoundingRect","IntersectionObserver","rootMargin","threshold","setBoundingRect","hideIframe","newIframe","refreshOnUrlChanged","refreshOnLoad","_props$onLoad","contextDependent","allowFullscreen","allow","sandbox","appendChild","getOrCreateIFrame","containerBoundingRect","FALLBACK_SVG","FALLBACK_SVG_ARTICLE","FALLBACK_SVG_MANUFACTURER","FALLBACK_SVG_CAR","FALLBACK_SVG_BIKE","renderErrorImage","InputGroup","bemStyle","preventBorderModifications","itemAlignment","alignment","inputSize","modifyChildClassNames","LicensePlateField","formatted","formatter","_plateCountryCodeMapp","shortCountryCode","_this$props$showCount","showErrorBorder","cName","handleFormat","listItem","onItemHover","_this$props$onItemHov","_this$props$onItemHov2","view","listGroupItem","groupTitle","listItems","renderList","renderListItem","setVisibility","clearTimer","loaderClassName","renderConnectionLoader","renderSpinnerLoader","MessageInline","componentClassName","MessageSystem","MessageToast","skipPortal","hiddenClass","ReactDOM","MessageUpdateCheck","_props$icon","buttons","modalRoot","getElementById","handleOutsideClick","modalEl","containerClassName","prepend","modalContainers","getElementsByClassName","modalContainer","_this$modalEl","interruptOutsideClick","_this$props$className","getModalRef","MoreMenu","_this$tooltipRef","onMenuItemSelect","handleItemSelect","renderMenuItem","isDisabled","handleTooltipRef","renderMenu","NumberField","enforceZeroOnlyDecimalDigits","stringValue","attachDoubleZero","getPropsValue","formattedInputValue","replaceSeperator","enforceDecimalDigits","parsedValue","dropDownOffset","getErrors","floatPoint","nextValue","minimum","maximum","nullable","propsValue","abs","clonedModel","parseValue","setValueToModel","onChangeConfirm","onChangeReset","edit","selectValueOnFocus","returnValue","handleChangeConfirm","Escape","handleChangeReset","handleStepChange","ev","prevDisabled","nextDisabled","itemClassName","itemDisabledClassName","firstValue","lastValue","handlePageDropDownValues","renderDropDownValue","showButtons","showDropDown","handleInputRef","handleDecrement","handleIncrement","renderDropDown","renderContent","PanelSection","_this$props$initially","initiallyClosed","panelSectionContentClassName","panelSectionClassName","darkMode","collapsible","PasswordField","passwordShown","showPasswordVisible","handleInputEvent","_inputRef","inputType","autocomplete","hasAttribute","setAttribute","removeAttribute","_this$props$onChange2","which","originValue","_this$props$layout","inputClassName","togglePasswordVisiblity","popupModifierClass","onElementRef","handleOutsideInteraction","arrowClassName","arrowPositionClassName","getArrowPositionClassname","arrowBottom","popoverClassname","Popover.displayName","Radio","onCheck","RangeSlider","sliderPosition","calculateSliderPosition","RealTableColumn","_createClass","RealTableCell","_Component2","RealTable","_Component3","_this$props$onClickRo","onClickRow","_this$props$onDoubleC","onDoubleClickRow","column","scope","renderRow","getRowClassName","rowClassName","rowChildren","colIdx","cellElement","renderItemContent","cellClassName","handleClickRow","handleDoubleClickRow","scrollable","borderCollapse","table","tableHeadBackground","Scrollbar","_scrollBarRef","renderHead","renderBody","ScrollMenu","scrollbarView","scrollbarViewQuerySelector","scrollTo","ids","handleMenuClick","Scrollspy","componentTag","currentClassName","rootEl","renderTabs","__refElement","VendorScrollbar","autoHide","autoHideTimeout","autoHideDuration","renderView","renderTrackHorizontal","renderTrackVertical","ExternalTooltip","DefaultSearchField","shouldConfirmChange","targetValue","showSearch","showClearTooltip","getVisibility","additionalInputIcons","SearchFieldWithExternalHintField","searchFieldRef","ControlsConfig","searchField","forceShowTooltipOnHover","showHintAsTooltip","_SearchField2","DEFAULT_SORT_NUMBER","SelectionListGroup","canCollapse","containsSelectedItems","priority","initiallyShowOthers","prioritizedItems","getPrioritizedItems","isCollapsed","checkCollapsedState","showOthers","handleToggleShowOthers","high","sortNumber","normal","low","_this$props$onToggleC","onToggleCollapseGroup","_this$props$onToggleS","onToggleShowOthers","isItemSelected","onItemToggle","SelectionListItem","hasPriorityItems","hasOtherItems","renderShowOthersButton","groupClassName","handleToggleCollapse","handleToggleExclusive","resultCount","handleToggle","renderDescription","SelectionList","_props$initiallyShowO","groupsToo","groupRefs","toggleOthers","_this$props$onToggleO","onToggleOthers","_this$props$onToggleO2","hideOthers","query","_this$props$onToggleO3","exclusive","noExclusiveToggle","groupName","canCollapseGroups","handleItemToggle","hideOthersText","showOthersText","groups","priorityGroups","otherGroups","hasPriorityGroups","hasOtherGroups","renderGroup","SeparatorList","onValueSelect","handleValueSelect","handleListRef","SkeletonKeyFrame","SkeletonStyles","animationName","animationDuration","animationTimingFunction","animationIterationCount","Skeleton.displayName","StepsContainer","Step","stepIcon","qualifiedClass","getQualifiedClass","headModifiers","textModifiers","handleStepClick","handleMouseOver","handleCloseIconClick","onCloseClick","SubTitle","SELECTED_ITEM_CLASSNAME","SuggestionField","enableLeadingTrim","markedIndex","suggestionTimeoutId","scrollbarRef","loadSuggestions","loadSuggestionsAfterFocus","instant","minCharactersToSuggest","requestSuggestions","scrollBoxRef","suggestDelay","handleMarkPreviousSuggestion","handleMarkNextSuggestion","handleSuggestionSelect","suggestions","_prevState$markedInde","handleScrolling","_prevState$markedInde2","selectedItem","block","prepareSuggestValue","suggestion","onSuggestionSelect","renderTableColumns","Column","Cell","handleScrollbarRef","_item","getFocusedRowIndex","appendix","dropdownPrefix","modifier","ignoreConfig","showSuggestions","ignoreHintAsTooltip","boxClassName","renderSuggestions","suggestionTimeout","SuggestionFieldButtonGroup","suggestionFieldRef","isFocused","handleSearchButtonClick","extraButton","suggestBoxSize","buttonTitle","showTooltip","SuggestionSearchField","isOpen","marked","requestCount","suggestionFieldIsMounted","_this$_unregisterOuts","_unregisterOutsideClick","_scrollbar","_element","suggestionBoxRef","_this$_element$getBou","getSuggestionData","getSuggestionDataAsync","currentRequestCount","showSuggestionsAfterFocus","minCharactersToSearch","onSingleSuggestionSelect","handleScrollDown","previous","handleScrollUp","checkSingleSuggestion","containerHeight","itemHeight","itemsPerView","minIndexOfItem","maxIndexOfItem","scrollPosition","getValues","_this$props$onToLessC","onToLessCharacters","preparedQuery","checkSuggestConditions","_this$state5","handleSingleSuggestion","checkSearchConditions","_this$props$onChangeC","handleNotEnoughCharacters","usePortal","_this$state6","suggestBox","_this$state7","tooltipAsHint","renderSuggestBox","SuggestionTextField","showVinSearchArea","_suggestionTimeout","_unregisterOutsideClickHandler","totalHeight","changedModel","setShowVinSearchArea","getQuery","vinSearchRequired","vinSearchOptional","displayVinArea","_getValue","datVinSearchIsValid","vinSearchInformalMessage","validateVin","datPricePerRequest","checkVinLoading","vinSearchInformalMessageStyle","VrmLookupTextIds","ResultSuccess","StatusSwitch","getSymbolElements","newState","alignLabel","LabelElement","SymbolElements","Back","ButtonSymbolElement","BackSymbolElement","SwitchComponent","mainLabelElement","DoubleLabelSwitchComponent","rightActive","leftActive","setLeftAcitve","XorSwitch","cssClass","TabControl","activeTab","getActiveTab","selectedTabIdentifier","identifier","findFirst","onTabSelect","tabCtrlClassName","activeTabIdentifier","tabsRef","_tab$props","htmlId","tabClassName","accessKey","handleSelectTab","TableColumn","_rowRefs","handleFocusRow","focusedRow","addRowRef","renderRows","groupBy","renderGroupHead","renderGroupFooter","getRowLink","getRowStyle","getRowKey","cellTitle","overflowClass","handleAnchorRowRef","handleRowRef","Tag","ignoreClick","icons","renderIcons","handleButtonClick","renderValues","handleCloseClick","renderButtons","handleShowErrorMessageState","forceShowError","ignoreLocalFormatting","_this$_inputRef","_this$props$onBlur","preventConfirmOnBlur","_this$props$onKeyPres","onKeyPress","preventBubbling","createErrorElements","forceShowErrorBorder","showLength","renderLengthCounter","renderErrors","ToolbarContent","ToolbarTitle","Toolbar","fixed","ToolbarElement","FixedToolbar","wrapper","isVisible","handleHideTooltip","childRef","handlers","getChildHandler","wrapperRef","hideOnOutsideClick","boundingRect","_boundingRect","xbr","positions","pageYOffset","wrapperPositioning","tooltipsRef","addEventsToRef","resetContentSize","handleOffscreen","forcePosition","rect","parentRect","getFirstOverflowParent","overflows","firstElementChild","arrowOffset","arrowRect","halfWrapperWidth","halfArrowWidth","halfWrapperHeight","halfArrowHeight","removeEventsFromRef","handleShowTooltip","showTooltipTimeout","onChangeVisibility","hideDelay","resizable","handleWrapperRef","handleContentRef","getWrapperBoundingRect","renderWrapper","mouseenter","handleShowTooltipDelayed","mouseleave","handleToggleTooltip","childrenWithRefAndHandlers","hoverableRef","handleChildRef","originRefHandler","renderToolTipWrapper","willUnmount","_props$model","validVin","formatVin","_rest$value","_rest$model","coloredBorder","WidgetTitleText","WidgetIcon","WidgetImage","WidgetTitle","WidgetHeader","WidgetContent","WidgetFooter","WidgetCover","Widget","internalComponents","Cover","cover","Footer","footer","Header","collapsed","getSizeClassnames","defaultWidgetSize","notAvailableMsg","blockedByCondition","notAvailableIcon","fullHeight","widgetClassname","widgetStyle","handleDoubleClick","vehicleCover","renderOpenWidget","renderCover","renderFooter","defaultHeader","hideCover","defaultCover","widgetSize","_exec","dimension","_wrapRegExp","variableHeight","defaultImageOrIcon","IconOrImage","defaultCoverImageOrIcon","HeaderAppendix","appendToHeader","_props$target","displayDemoBadge","demoBadge","SidebarWidget","appendControlsConfig","appConfig","controls","__NEXT_CONTROLS__","conditions","condition","convertDateNumbers","charCount","getHours","minutes","getMinutes","seconds","getSeconds","lastId","prefix","normalizedMimeType","fileTypeKey","positionToElement","getStylePosition","portal","handleErrorMessageRef","ChannelClass","messageBus","countPerType","groupedMessages","msgToRemove","messages","topicMatches","subscriptions","ex","throwError","publishLast","uuid","_unsubscribe","eventAccepted","count","clear","clearSubscriptions","MessageBus","ident","channels","errorHandlers","na","LocalizationContext","changeConfig","changeLocale","isTranslationId","availableLanguages","showTextIds","_parseQueryString","parseQueryString","_window$location$sear","showtextids","createLocalizationProvider","startConfig","getConfig","dateLocalePath","getCatalogTexts","_configSubject","loadAndRegisterDateLocale","loadModule","localeData","registerLocale","setLocaleToLocalStorage","res","translation","initDateHelper","getWeekDays","getMonths","setCatalogTexts","changeDomLanguage","_window$__NEXT_DEVTOO","_configSubscription","__NEXT_DEVTOOLS_EXTENSION__","showTextIdsSubject","_window$__NEXT_DEVTOO2","formatDate","formatNumber","__LOCALIZATION__","tmJSEvents","languageChanged","lang","getLocalizationContext","getLocalization","browserLanguage","navigator","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","decimal","translationRegex","lastIndex","regExMatch","jsxAutoMode","translatedKey","num","getTranslationFromConfig","createJsxElements","translateExpression","translateKey","withChangeLocalization","_Class","localizationContext","currentProps","OAuthTokenIds","SearchFilterTypes","ETecdocInfoType","AttributeAction","OeArticleProvider","OeArticleModule","CisCustomerState","CisNoteType","DiscountType","eOEArtType","EDatRepairworkType","TitleType","AdditionalArticleIdType","RepairTimeType","WorkCategory","ClientType","isValidDmsMessageType","Type","CountryFilter","DataPool","OrderStatus","RepairTimeProvider","MileType","WorkType","IconSource","LinkedItemsRole","VoucherType","SearchFilters","CisVoucherType","ReturnStatus","VatRateType","DispatchCostsType","WarehouseDispatchType","MessageType","CatalogContext","MVCPlatformType","AjaxCachingMode","DATAvailableCountries","DisplayBehaviour","CalculatedCostType","CausedCostsType","ConfirmationDialogKeys","SelectedPriceTypeMode","SelectedPriceVatMode","SelectedCustomerGroupMode","ErpSystemConfigMode","ETransferMode","ErpIconDisplayType","ErpIconDisplayLocation","ErpIconActionType","OrderOptionsError","SelectionType","StatusMessageType","ECalcOrigin","getCurrentModuleMode","_channel$last$","moduleMode","payload","__NEXT_MESSAGEBUS__","EMemoType","EModuleGroupId","EModuleId","ModuleOptionType","ModuleOptionPriceType","PostSendOrderActionType","PostSendOrderActionTargetType","EReplaceButtonBundle","ReactQueryKeys","SessionStorageKeys","TmaEModule","ETyresSeason","ETyresCarType","ETyreCountType","ExternalModuleType","EUserContextParameters","CisModuleParameterKeys","ESubModules","LinkTarget","QuantitySuggestionMode","CompareWithVehicleRecordsAttributeVisualization","ShowVehicleRecordsViewMode","TelematicsProvider","VehicleSearchType","QueryType","BillingModuleId","LookupConflictReason","CarLookupErrorType","ThirdPartyIdType","EFuelTypes","OrderIdSource","ServiceDirection","DefaultError","connectComponent","connect","dispatch","bindActionCreators","ErrorBoundary","routes","router","route","errorListener","listener","errorComponent","PropTypes","dictionaryToArray","dictionary","descending","criteria","useActions","useDispatch","useMicro","renderMicro","BundleMicroContext","ValidTypesMap","switch","validType","kvp","importMicro","superClass","withMicro","mainHistory","VIEW_URL_SPLIT_CHAR","bundles","layouts","onBundleInit","onReady","bundlePromises","bundleClasses","bundle","stylesUrl","__MORPHEUS_CONTEXT__","rootActions$","Subject","pathPrefix","plugins","stores","multiStores","assetLoadProgresses","assetLoadCount","broadcasts","onProgress","loadAssets","reducer","receiver","transmitFilter","partials","micros","micro","mainModule","_NEXT_DEVTOOLS_EXTEN","_this$context","mainConfig","_config$bundles","_this2$onBundleInit","bundleConf","initializedConfigParams","init","pluginKey","pluginConfig","plugin","createModule","_this$context$broadca","handlerList","paramKey","viewUrl","urlSplitPosition","viewHistory","createMemoryHistory","initialEntries","initialIndex","mainHistoryParams","mainHistoryViewPath","isRequired","Router","redirectUrl","decodedUrl","bundleName","renderer","renderTemplate","_context$config$bundl","_context$config$bundl2","_context$config$param","Layout","slotClassNames","createAbsoluteRoute","parentRoute","exact","transitionDeprecationShowed","_window$localStorage$","_window$localStorage","_window$localStorage$2","_window$localStorage2","createComponent","componentConfig","moduleActions$","parentKey","componentKey","moduleProps","store","storeId","composeEnhancers","compose","createStore","applyMiddleware","thunk","transmit","transmitAction","broadcast","componentId","received","receive","transmission","targetComponentId","getState","toolkit","mapper","componentElement","routerParams","useParams","ComponentBoundary","componentProps","__config","wrappedComponent","createMicro","PATH_TRAVERSE","cancelRender","executeConditionalPlugin","executePlugin","contextRoutes","stringParams","compile","showMicrosLogs","microName","microKey","resetOnWorktaskChange","moduleConfig","parentActions$","slots","MAX_VALUE","slotIndex","keyValue","switchConfig","createSwitch","createChildren","pipe","incoming","parentTransit","z","ModuleComponent","switchKey","childConfig","order","aFragCount","bFragCount","countRouteParams","paramCountRegex","executePluginComponent","executePluginModule","pluginProps","promises","layoutConfigs","promise","loadTypedAssets","assets","asset","bundlePromise","addAssetLoadProgress","loaded","ready","loadScript","progress","jsRegex","original","urlToLoad","xhr","XMLHttpRequest","onreadystatechange","readyState","getResponseHeader","onprogress","onerror","log","onloadend","_ev$target","statusText","script","responseText","eval","__esModule","configs","proms","loadedAssets","existing","rendererIdentifier","templates","template","targetComponent","withTemplate","ComponentClass","originalRender","Cx","MC","sendBroadcast","keyref","routeMatch","getChildContext","startBroadcast","remountOnRouteChange","removeRemountOnRouteChangeListener","handleRemountOnRouteChange","broadcastHandlers","currentKey","clearStoresOnRouteChange","inner","setModuleVisibility","RegisteredActionsContainer","originActions","source","duplicatedKeys","concreteSource","internalStorage","Map","registerActions","storageKey","CreateKey","forRegisteredActionsStorage","storedEntity","InternalEntity","_this2$originActions","isExpired","mappedParams","param","errorMsg","_len2","_key2","callAction","storage","registeredBundle","modelActions","containerActions","loadRequests","convertToRegisteredContainer","resolveLoadRequets","registerModelActions","registerContainerActions","registrationData","registeredContainer","BundleContainerFactory","createRegisteredContainer","merge","instance","encodeToBase64","actionContainer","createActionsContainer","registerActionContainer","repositoryProxy","bundleIdentifier","existingContainer","createUnregisteredContainer","_Container","brm","RegisteredContainerBundle","UnregisteredContainerBundle","ModelSubscriptionFactory","uniqueModelId","ModelSubscription","SubscriptionsHolder","contractId","activeLoadingPromises","entity","loadEntity","_this$modelActions","pendingMergeObject","pendingActionRequests","createSubscriptionHolder","createEntity","internalstorageobject","_this$modelActions2","recoveredParams","base64ToObject","_this$subscriptions","hookListener","object","isHook","contracts","_this$actionContainer","_this5","promiseExecutor","resolvePendingActionCalls","_this6","actionName","pendingActions","actionCount","_loop2","pendingAction","pendingRequests","triggerLoad","mergeObject","subscriptionsHolder","loader","updater","duration","now","ts","update","delayedActionRequests","_len3","_key3","_proceedUpdate","_id","notifyUpdating","notifySave","notifySaveError","_proceedLoad","proceedLoadPromise","_proceedLoadPromise","notifyLoading","notifyLoaded","notifyLoadedError","notifyListenersSuccess","notifyListenersError","updated","updating","onSuccess","eventIndex","eventKey","sourceContract","_pendingRequests","createContractId","sourceContracts","startLoading","promiseExecutors","executorCount","getKeysFromObject","paramObject","objKey","encodeBase64","Base64","encode","base64","decode","decodeBase64","require","actual","expected","transitionsToBasket","transitionsToParts","transitionsToVehicle","transitionsToWorkTask","ArticleList","ArticelListHeader","UITypes","ArticelListHeaderTechnicalData","ArticelListHeaderTechnicalDataTooltip","ArticelListHeaderTechnicalDataHaynes","ArticelListHeaderTechnicalDataTecrmi","ArticelListHeaderToolRental","ArticelListHeaderFastcalc","ButtonControls","ButtonFake","Costestimation","CostestimationNavbar","CostestimationNavbarDisplayoptions","CostestimationNavbarDisplayoptionsContainer","CostestimationNavbarDisplayoptionsPartnumber","CostestimationNavbarDisplayoptionsDealerPartNumber","CostestimationNavbarDisplayoptionsManufacturer","CostestimationNavbarDisplayoptionsPrintImage","CostestimationNavbarDisplayoptionsCalculateLaborVal","SearchtreeContainer","SearchtreeGroup","SearchtreeNode","SearchtreeLabel","SearchtreeBreadcrumbs","SearchtreeBreadcrumbsOther","SearchtreeBestseller","SearchtreeV2","SearchtreeV2Overviewgrid","SearchtreeV2TreeNodeContainer","SearchtreeV2TreeNode","SearchtreeV2TreeNodeIcon","SearchtreeV2TreeNodeFastClick","SearchtreeV2TreeNodeName","SearchtreeV2BestsellerContainer","SearchtreeV2BestsellerLabel","SearchtreeV2BestsellerCheckbox","SearchtreeV2BestsellerCalculate","SearchtreeV2BestsellerApply","SectionList","SectionListContainer","SectionListHeadline","SectionListCheckbox","SectionListLabel","SectionListDescription","Settings","SettingsTabNavigation","SettingsTab","SettingsContainer","SettingsPricesPurchasePrice","SettingsBasketArticleSorting","SettingsBasketPurchasePriceSummary","SettingsBasketAutomaticPlateNumber","SettingsBasketAutomaticPlateNumberOnlyForRelated","SettingsBasketOrderConfirmation","SettingsBasketOrderShipmentmode","SettingsBasketOrderPaymentmode","TabsControls","Modulenavigation","ModulenavigationButton","ModulenavigationButtonMore","UIA","multiWidgetTab","barcodeToastState","atom","openDetailsState","selectedOrderOptionState","orderOption","selectedExternalArticleDetailsState","externalBasketItemId","CommunicationContext","onModuleOpened","ButtonCodeDefinition","ArrowLeft","ArrowRight","Space","Comma","Dash","Hash","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","comparator","distinct","DAY","createComparableDate","preparedDate","setHours","setMinutes","setSeconds","setMilliseconds","day","isSame","Year","Month","Week","week","preparedComparison","setFullYear","setMonth","setDate","subtract","thursday","getDay","cwYear","thursdayCw","startOf","decimalLength","sectionsLength","sectionsDelimiter","decimalDelimiter","pad","cf","pow","floatToIntFactor","maxFloatToIntFactor","toPrecision","interval","hashCode","hash","imax","charCodeAt","generateHash","cachingCounter","logEntry","requestUrl","cacheEntry","logCaching","called","sharedRequests","finished","totalResponseChars","cc","startGarbageCollection","_window$gcIntervalMS","gcIntervalMS","setInterval","responseKeys","ResponseCache","_entry$expires","expires","deleteResponseCacheEntry","handleCaching","doAjaxRequest","ajaxRequest","_window$ajaxCachingMo","_window$userContext","_ajaxRequest$url","cachingMode","ajaxCachingMode","Request","NoCache","_ajaxRequest$url2","createRequestKey","cachingOptions","cachingWhitelist","cachingOptionsOrKey","getWhiteListOptions","Response","handleResponseCaching","handleRequestCaching","RequestCache","_RequestCache$key","deleteFromRequestCache","deleteRequestCacheEntry","ttl","finishedRequest","onResponse","parseTimespan","createCacheEntry","getCacheEntry","tokenExpMs","ajaxErrorHandlers","convertISODates","parseISODates","_parseISODate","parseISODate","skipErrorHandlers","parseDates","_getLanguageFromLocal","_request$method","_request$contentType","contentType","_request$language","getLanguageFromLocalStorage","_request$abortControl","abortController","AbortController","_request$timeout","headers","languageAsCustomerHeader","Authorization","coopMemberId","getCoopMemberId","CoopMemberId","timeZone","DateTimeFormat","resolvedOptions","LocalTimeZone","requestConfig","withCredentials","signal","responseType","transformResponse","axios","_error$response","_config$method","NotFoundError","AuthenticationError","ValidationError","createAjaxRequestPromise","skipCaching","debug","paramsSerializer","createQueryString","transformRequest","use","_config$headers","_Error","_wrapNativeSuper","_Error2","level","detail","traceId","_Error3","ServerError","_Error4","stack","mapArticleToCatalogPart","warehouse","advertisementCategoryId","_erpInfo$articles","_erpInfo$wholesalerAr","erpInformationLog","createErpInformationLog","articleListPosition","dataSupplierArticleNumber","dataSupplierId","dataSupplierName","distributorName","isReplacementPart","fittingSide","linkedItems","articles","mapLinkedItemToCatalogPart","productGroupName","warehouseId","warehouseName","mapArticleToAddCatalogPartListRequest","foundBySearchTerm","orderWarehouseInfo","_catalogParts$first","catalogParts","_erpInfo$articles2","_erpInfo$wholesalerAr2","itemId","usePercentageValues","AddCatalogPartToBasket","GetUserInteractionLog","createPriceDictionaryFromErpPrices","createErpInformationLogFromLinkedItem","itemRole","itemsRole","mapArticleToAddOePartListRequest","oeParts","_article$prices2","_article$prices3","oeArticleNumber","oePriceValue","vehicleManufacturerId","manufacturerId","vehicleManufacturerName","oeArticleOrigin","traderNumber","AddCustomToBasket","mapArticleToAddWholesalerPartListRequest","wholesalerParts","_erpInfo$wholesalerAr3","mapArticleToReplaceByCatalogPartRequest","partToReplaceId","articleQuantity","catalogPart","mapArticleToAddExternalPartListRequest","externalParts","brandId","brandName","_article$prices4","discount","createPriceDictionaryFromArticle","erpPrices","currencyCode_Iso_4217","vat","isPseudoArticle","getProductGroupsIdsFromArticles","productGroupIds","_articles$i$productGr","CoopMemberIdKey","jwtDecode","removeStoredLogin","removeItem","logout","setStoredLogin","hasValidStoredLogin","expireDate","getLanguageIdFromLocalStorage","hasLocaleInLocalStorage","memberId","OAUTH_DATA_STORAGE_KEY","storeOAuthData","getStoredOAuthData","storedData","deleteStoredOAuthData","generatePKCECodeVerifier","generateCodeVerifier","getOAuthClient","isProd","server","discoveryEndpoint","clientId","OAuth2Client","getServerUrl","overwrite","production","staging","availabilityStatus","mappingScheme","mapAvailabilityStatusToTextId","mappedStatus","statusMap","mapPriceTypeToTextIdShort","mapPriceTypeToTextIdLong","objectToBase64","BASE64_MARKER","getAdjustedValueFromDataUri","dataUri","base64Index","convertDataURIToDecodedString","atob","createBasketPartMemo","truckData","memoParts","firstName","lastName","plateNr","customerName","createBasketMemo","strings","string","notUndefinedOrNull","getMemoSectionValue","_vehicle$plateId","_getMemoSectionValue","_concat","companyName","voucherNo","isCentralOrder","showWarehouseDataMissingError","translator","getSearchQueryString","partToReplaceQuantity","createRequestArticleListPayload","manufacturerIds","direct","oeManufacturerIds","replaceButtonMicro","Basket","forceReload","inModal","useNewModal","createRequestDirectSearchArticleListPayload","createRequestUniversalSearchArticleListPayload","uniSearch","getArticleBonusSystemsWithoutPoints","_article$availableBon","_article$availableBon2","availableBonusSystems","getArticleBonusSystemsWithPoints","_article$availableBon3","_article$availableBon4","createBufferedRequestFunction","bufferTimeout","callService","mapServiceResponseToResponse","compareRequestsForFiltering","_ref$bufferTimespanMs","bufferTimespanMs","maxQueueLength","queue","sendRequest","requestItems","isDuplicate","requestItem","carMunValidate","_dongleId","_vin","carMunMockValidData","dongleId","clipboard","writeText","textArea","execCommand","removeChild","closeModalOrDrawer","isDrawer","goBack","getHistory","closeView","combiner","array","initSelector","convertStringToReactNodes","preTag","postTag","replacer","reactStringReplace","escapeStringRegexp","HitHighlightPreTag","HitHighlightPostTag","convertAutosuggestHit","getCountryDescriptionByCountryCode","_userContext$modules2","getTitleTypeTextId","titleType","Mister","Miss","Company","_weekdays","_months","ISO_DATE_REGEX","isoString","weekdays","formatConstructionYear","constructionYear","dateFromString","temp","getShortCodeFormat","ctrlChar","utc","sec","hrs","wdy","mth","yea","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCDay","getUTCMonth","getUTCFullYear","ctrlCount","calendarWeek","shortCode","isSameDay","date1","date2","multiplier","timespan","checkNumberOfDigitsInYear","validDate","getModuleGroupIconName","getModuleGroupTextId","getModuleCompareRoute","getDemoModule","activatableModules","_activatableModules$m","moduleGroups","moduleGroup","getDemoModuleByVehicleType","_activatableModules$m2","getCombinedModuleOptionsAndPackages","_module$moduleOptions","_module$moduleOptions2","_demoOptionModule","_fullOptionModule","_fullOptionModule2","fullModulePackage","demoModulePackage","fullOptionModule","demoOptionModule","defaultFullOptionModule","moduleOptions","defaultDemoOptionModule","demo","modulePackages","_module$modulePackage","_module$modulePackage2","_module$modulePackage3","_fullModulePackage","_demoModulePackage","fullModulePackageTemp","higherPackage","activatable","currentPackage","isFullPackageActive","isDevtoolEnabled","mapDictionary","mapT","getEnumName","enumType","createErpInformationRequestItem","selectedShipmentModeId","articleDescription","EventListenerManager","eventName","Listeners","listenerItem","afterHandle","initializeListenerRepo","triggerRegisteredEventListener","Events","OutsideClick","initialClickTarget","srcElement","outsideClickListeners","getListenerCallbacks","callEventListeners","eventTriggerRule","TriggerRules","lastListener","shouldInterruptEvent","isFulfilled","mouseDownListener","mouseUpListener","interruptionHandler","processor","addHandler","evRules","_EventListenerManager","removeAfterHandle","unregisterHandler","removeListener","EventRules","addEventRule","Interruptions","addInterruptionHandler","OutsideClickRule","initialClickElement","eventElement","listenerElement","isOutside","isOutsideListenerElement","outsideElement","sourceElement","currentElement","_currentElement$attri","_currentElement$attri2","getNamedItem","PreventEventForPreviouslyShownModals","IsTheSameElementClickInterruption","_EventInterruptionHan","isModalTheCurrentlyShownModal","openModalContainers","querySelectorAll","modalContainerLastChild","EventInterruptionHandler","initiallyClickedElement","eventListeners","nextHandler","_this$nextHandler","process","getFileContent","acceptedFile","formatMileage","mileage","mileType","Mile","Kilometer","noEmojis","getRepairTimeProviders","repairTimeProvidersFromConfig","repairTimeProviders","repairTimeProviderIds","heightObservables","heightObservers","useHeighAdjustment","setHeightAdjustment","elementNames","removeHeightAdjustment","observerPair","observerPairs","observerEntries","curr","observables","allowHeightObservation","declineHeightObservation","dirtyHtml","htmlSanitize","base62","baseX","encoding","encodedLength","uuidLength","Buffer","ensureLength","b62Str","resArray","str","maxLen","padLeft","trimLeft","getBase64FromImage","overwriteWidth","overwriteHeight","naturalWidth","naturalHeight","drawImage","toDataURL","convertDataURIToBinary","dataURI","raw","rawLength","Uint8Array","ArrayBuffer","uint8Array","convertDataURIToBlob","Blob","isBundleWithReplaceButtonMicro","DMGDat","FastCalculatorNext","FastService","DMGEurotax","DMGDatGlass","isSameArticle","oldArticle","newArticle","_oldArticle$supplier","_newArticle$supplier","_oldArticle$productGr","_newArticle$productGr","parseIfStringifiedData","createEvent","initEvent","pushState","ret","replaceState","calculateMediaSizeLimit","originalWidth","originalHeight","aspectRatio","getAlertColor","TechnicalError","Warning","Information","getMvcComponentModuleMode","cloneDeep","pathString","openStreamPdf","stream","openPdfHandler","openBase64Pdf","byteArray","blocked","msSaveOrOpenBlob","fileURL","URL","createObjectURL","popup","textId","Bowser","userAgent","getBrowserName","mapPrices","makeCancelable","cancelError","cancel","isCanceled","isCancelError","listenOnce","registerEventListener","getRegistrationNumberTextIdByVrcLookupModule","binLkz","CH","getRegistrationNumberTypeTextIds","KennzeichenNiederlandeSchwenker","exampleQuery","LicencePlateDK","NationalcodeFrankreichHerthBuss","TypenscheinDehrendinger","TypenscheinSchweizEsa","TypenscheinSchweizHoststettler","SchweizTypenscheinAtu","LicensePlateSwitzerlandAutoIDat_Eurotax","LicensePlateSwitzerlandAutoIDat_Hostettler","LicensePlateSwitzerlandAutoIDat_ESA","LicensePlateSwitzerlandECOC_AutoIDat_Hostettler","LicensePlateSwitzerlandECOC_AutoIDat_Rhiag","LicensePlateSwitzerlandECOC_AutoIDat_Esa","LicensePlateSwitzerlandECOC_AutoIDat_Eurotax","KennzeichenFinnlandHlGroup","isVinType","DatVin","isVin","isLicensePlateType","KoivunenCatDataWsvc","LicensePlateBrazilDriveRight","LicensePlateDriveRight","LicensePlateEireDriveRight","LicensePlateEstoniaAlm","LicensePlateFinlandDriveRight","LicensePlateFranceDriveRight","LicensePlateItalyDriveRight","LicensePlateItalyRhiag","LicensePlateNetherlandsDriveRight","LicensePlateNewZealandDriveRight","LicensePlateNorwayDriveRight","LicensePlatePortugalDriveRight","LicensePlateSpainDriveRight","LicensePlateSwitzerlandDriveRight","LicensePlateUKDriveRight","LicensePlateUSDriveRight","VrmLicensePlateHaynesProIt","isRegNoType","getArticleRelatedRepairTimesProviderStringByEnum","provider","AwDocCar","Autodata","HaynesProCar","getArticleRelatedRepairTimesProviderEnumByString","getArticleRelatedRepairTimesProvider","availableProvidersForPG","sortableProviders","activeProvider","articleRelatedRTProvider","foundProvider","prov","getRepairTimesProviderStringByEnum","TecRmiCar","getRepairTimesProviderEnumByString","getRepairTimesProvider","mapMainServicesToAddRepairTimeListRequest","mainServices","repairTimeDivision","mainService","includedWorks","calculatedServices","calcService","providerWorkId","repairTimeNo","isCalculable","categoryOfWork","mapCategoryOfWork","serviceType","repairTime","sortNo","sortId","mapCalculatedServicesToIncludedWorkRequest","preparationWorks","includedPreparationWorks","preparationWork","Include","mapPreparationWorksToIncludedWorkRequest","displayNumber","repairTimeDisplayNo","linkageId","vehicleLinkageId","isMaintenanceWork","oeReferenceNumber","mapMainServiceToRepairTime","BodyWork","AccessoryWork","PaintWork","ElectricalWork","ElectronicWork","SaddlerWork","SmartRepair","Diagnose","WorkshopWork","getCategoryOfWorkDescriptionTextId","mapPreparationWorksToAddRepairTimeListRequest","mapServiceBaseToRepairTime","work","getRepairTimeProvidersByNames","repairTimesProvidersNames","rtProviders","ConfigFunctions","_vehicle$dataAvailabi","_vehicle$dataAvailabi2","_vehicle$dataAvailabi3","_vehicle$dataAvailabi4","_vehicle$dataAvailabi5","_vehicle$dataAvailabi6","_vehicle$dataAvailabi7","_vehicle$dataAvailabi8","_vehicle$dataAvailabi9","_vehicle$dataAvailabi10","_vehicle$dataAvailabi11","_vehicle$dataAvailabi12","_vehicle$dataAvailabi13","_vehicle$dataAvailabi14","_vehicle$dataAvailabi15","_vehicle$dataAvailabi16","_vehicle$dataAvailabi17","_vehicle$dataAvailabi18","_vehicle$dataAvailabi19","_vehicle$dataAvailabi20","_vehicle$dataAvailabi21","_vehicle$dataAvailabi22","_vehicle$dataAvailabi23","_vehicle$dataAvailabi24","_vehicle$dataAvailabi25","registerScrollBottomHandler","handleWindowScroll","isStorageAvailable","DOMException","storageAvailability","getStorage","getMemoryStorage","MemoryStorage","memoryStorage","validCss","cssRaw","mapArticleListResponse","defaultQuantity","uniArticles","mapTyreArticleToArticle","summer","allSeason","winter","singleTire","carTires","motorcycleTires","Agrar","Anhanger","EM","Industrie","LKW","LLKW","Militar","Motorrad","PKW","SUV","queries","createQueryComponent","toISOString","key2","parseQueryComponent","joinPaths","keepLastSlash","endsWith","validateDmsApiUrl","getVatFromUserContext","_userContext$modules$","getCurrencyFromUserContext","_userContext$modules$2","getCostPerCalculation","moduleType","submodule","_userContext$modules3","moduleSubId","costParameter","_module$parameters","ModuleCostsDAT","TMDamageCalculationEurotax","TMDamageCalculationGlass","_module$parameters2","ModuleCostsGlassAndEurotax","getCountryCodeFromUserContext","_userContext$modules4","getSystemTypeFromUserContext","patternEmail","FieldValidation","_messages","_valid","regExp","validateField","isValidWorkTaskId","isValidVin","_vehicle$vin","_vehicle$vin2","_vehicle$vin3","firstLoadRef","WithRouter","wrappedComponentRef","remainingProps","routeComponentProps","WrappedComponent","hoistNonReactStatics","useOpenArticleDetails","moduleName","partsDetailsUrl","supplierId","openModal","matchParams","partsDetailsSubPage","useOpenArticleDetailsClickHandle","setExternalArticleDetailsState","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","KEY_LOAD_ARTICLE_NOTE","ArticleNotesState","useLoadNotes","articleIds","Article_Notes","useSaveNote","_onSuccess","setNotes","mutation","useMutation","articleNote","savedNote","saveNote","mutateAsync","saveNoteInProgress","useDeleteNote","articleNoteId","deleteNote","deleteNoteInProgress","useExternalCatalogUrl","externalCatalogUrlCachingDuration","allowRequest","externalSystemId","UrlResolver","externalCatalogUrlRequest","isSuccess","loadingExternalCatalogUrl","externalCatalogUrl","isFetching","useUnsubscribe","_unsubscribe$current","useMultiWidgetState","useDefaultOrderWarehouse","ERP_ShowDefaultWarehouse","warehouseData","warehouseDataIsLoading","refetch","refetchWarehouseData","detailedErpResponses","useDetailedErpInfoStore","infos","setInfos","addInfo","erpInfo2","erpInfo1","_erpInfo1$quantity","_erpInfo2$quantity","addInfos","findInfo","_x$quantity","erpConfigSelector","ERP_GetErpConfig","erpConfig","useErpConfig","useErpConfigLoadable","_erpSystemConfigs$som","getErpConfigResponse","useRecoilValueLoadable","valueMaybe","erpSystemConfigs","isErpInfoEnabled","useForGetErpInformation","useDefaultErpSystem","erpSystemConfig","_erpConfig$erpSystemC","_erpConfig$erpSystemC2","_erpConfig$erpSystemC3","mode","Partnersystems","isDefaultGetErpInfoSystem","getQueryKey","searchQuery","useGetDetailedErpInfo","queryOptions","selectedOrderOption","useQueries","_selectedOrderOption$","_queryOptions$staleTi","_Morpheus$getParams$e","erpCacheStaleTimeSeconds","queryFn","ERP","Erp","_queryOptions$onSucce","_data$specialProcurem","_data$quantity","selectedShipmentId","specialProcurementErpInformation","shipmentModes","setQueryData","generateQueryBody","usePrevious","retry","getData","memoToolEnabled","MemoTool","useCheckHasMemo","queryEnabled","checkHasMemo","isMemoLoading","useFetchCheckHasMemo","fetchQuery","hasMemoInfo","hasTechnicalNotes","useGetMemoImportantNote","useVehicleModelMemoInfo","_Object$keys","_Object$keys2","_Object$keys3","_JSON$stringify","_useKeyValue2","useKeyValue","ownedByRepairShop","savedVehicleMemoInfo","saveVehicleMemoInfo","stateSavedVehicleMemoInfo","_useKeyValue4","savedCompletedSteps","updateSavedCompletedSteps","stateSavedCompletedSteps","vehicleMemoInfoError","vehicleMemoInfoIsLoading","vehicleMemoInfo","memoWasConfirmed","stepsChanged","vehicleHasMemoInfo","showVehicleMemoDialog","useArticleByArticleNumberWithOptionalVehicle","useArticlesByArticleNumbersWithOptionalVehicle","requests","Articles_ByArticleNumbersWithOptionalVehicle","useArticlesBySupplierArticleNumber","Articles","useArticlesByWholesalerArticleNumber","Articles_ByWholesalerArticleNumber","useArticlesByWholesalerArticleNumbers","wholesalerArticleNumbers","Articles_ByWholesalerArticleNumbers","BLACKLIST","useMessage","calBack","dataKeys","setSize","updateSize","keyValueAtom","KeyValueStore","_useRecoilStateLoadab2","useRecoilStateLoadable","saveKeyValue","removeKey","initMainHistory","useMainHistory","useOnScreen","isIntersecting","setIntersecting","setObserver","setElement","_ob","unobserve","ob","useSelection","getAllIds","selectedIds","setSelectedIds","toggleSelected","selectAll","unselectAll","setSessionStorageData","useVatRateText","getVatRateInPercent","vatRate","vatRateTypeDisplayShortText","vatType","Normal","Reduced","Replacement","WithoutRate","vatRateTypeDisplayLongText","ActiveVehicleDataProvidersState","useActiveVehicleDataProviders","recoilState","setRecoilState","setIsLoading","_getSubscription","getSubscription","unsubs","unsub","activeProviders","useIsUrlAvailable","isAvailable","setIsAvailable","fetchUrl","race","_resolve","fetch","ok","useIsUrlAvailableCached","modelDetailsSelector","Vehicle_ModelDetails","useModelDetails","showOptionsKey","useGetAvailableVehicleSearchOptions","Vehicle_ShowOptions","isIdle","SkippedRegNoSearches","KeywordSearch","RückwFahrzeugVkn","KTypNr","NkwId","VehicleBase","Motorcode","Fahrzeugbaum","TopmotiveVin","TopmotiveTypeId","_useGetAvailableVehic","vehicleSearches","configuredVehicleLookups","vehicleSearchesUsedInDefaultSearch","isUsedInDefaultSearch","vehicleSearchesForSpecialLicensePlateField","invalidateStore","KEY_LOAD_WORKTASKNOTE","useLoadWorkTaskNote","workTaskIds","WorkTask_Notes","workTaskNote","useSaveWorkTaskNote","saveWorkTaskNote","saveInProgress","useDeleteWorkTaskNote","deleteWorkTaskNote","deleteInProgress","useWorkTaskTruckData","workTaskTruckData","setWorkTaskTruckData","mapVehicle","_data$countryCode","_data$countryCode2","created","modified","nextGeneralInspection","lastGeneralInspection","nextServiceDate","attachedOn","mapVehicleShortInfo","mapCustomer","birthDate","mapDispatchType","tours","mapTour","mapTeccomERPtoWarehouse","teccom","_teccom$specialProcur","_teccom$specialProcur2","_teccom$quantity","_teccom$quantity2","_teccom$quantity3","_teccom$quantity4","_teccom$specialProcur3","_teccom$specialProcur4","_teccom$specialProcur5","_teccom$specialProcur6","quantities","confirmedValue","expectedDeliveryTimeString","showWarehouseInfo","isManufacturerWarehouse","mapOePartToOeOePart","part","_part$oePriceValue","mapOePart","hidePrice","_part$manufacturerNam","_part$number","_part$prices","_part$prices2","mapQuantity","expectedDeliveryTime","expectedDelivery","tourStart","tourOrderAcceptanceTimeLimit","internalId","initialQuantity","mapArticleAttributes","vehicleInformation","partsListAttributes","mapVoucherTypeForUrl","Order","Return","mapVoucherTypeFromUrl","getComponent","_getComponent","bundleComponentPromise","communicationChannel","communicationId","bundleComponent","getComponentFromBundle","getNamedComponent","_getNamedComponent","componentName","api","channelItem","_channelItem","targetReceive","targetStore","TmaEventTracker","worktaskId","latestWorkTaskChangedData","worktaskChangedEventHandler","TmaErrors","notifyEventHandlers","tmaEnabled","tmaEventHandlerCollection","temporaryRequestBody","_event$temporaryReque","_event$storage","foundContext","contextId","getContextId","requestBody","handleWorkTaskChange","addToWorktaskChangeSubscription","events","_this$tmaEventHandler","possibleHandler","performance","tmaEvent","concreteHandler","toLocaleLowerCase","eventIsCompleted","measure","getWorkTaskIdFromLocation","tma","EventCollection","ArticleListFilteredEvent","LoggedIn","ModuleCalledSwitch","PremiumUniPartsSearchEvent","ArticleListErpInfoShownEvent","ArticleEvent","ArticleDetailsPDFEvent","DetailsFormCallEvent","ArticleComparisonEvent","isRepairTimeModule","repairTimeProvider","_origin","getCatalogOrigin","REPTIMES_AWDOC","REPTIMES_AUTODATA","REPTIMES_HAYNES","REPTIMES_AUDACON","UNDEFINED","getCatalogOriginByRepairTimeProvider","AddRepairTimeListEventHelper","AddRepairTimeList","eventId","_articleListFilteredR","_articleListFilteredR2","articleListFilteredRequest","TmaEventTracking","getRequestData","searchStep","processId","stepNumber","fromPageNumber","articleList","paging","pageIndex","fromPositionNumber","AddToBasketEvent","_TmaSender","trackingData","_quantityModifiers$av","_trackingData$payload","quantityModifiers","vehicleEngineCode","SHOPPING_CART","availabilityState","vehicleIdentification","typeId","foundByQuery","extendStepNumber","EventStorage","serviceEndpoint","searchStepContext","pageNumber","TmaSender","positionNumber","skip","_request$articleList","_request$querySearch","_request$vehicleIdent","_request$vehicleIdent2","querySearch","searchFilters","vehicleDataSourceId","AddUniPartToBasket","_request$articleList2","addToBasketTrigger","DeterminePartsListOriginByRouteKey","routeKey","ARTICLE_DETAILS_PARTSLIST","AERTICLE_DETAILS_ACCESSORYLIST","ARTICLE_ERPINFOFORM","ARTICLE_DETAILS","InitialRequestBody","catalogPartErpInfos","processEventHandle","_result$articles$filt","_result$articles","erpData","_articleListFilteredE","articleListFilteredEvent","_this$articleList$fin","mapErpInformation","sendEvent","resetEvent","ArticleListErpInfoShownHelper","AddErpResponse","dispatchTrack","SendEvent","_unused2","AddErpInfoAndSend","_unused3","erpInfoItem","_erpInfoItem$availabi","_erpInfoItem$availabi2","_erpInfoItem$prices","hasImsChange","typeName","globalChannel","currentVehicleId","worktask","finalizeEventAndReset","_this$temporaryReques","currentContext","tmpContext","compareContext","contextChanged","loadRequest","initial","shouldSendEvent","handleEvent","fillRequest","saveChanges","extendedAssortment","fittingSideFilter","attachQueryAndOrigin","attachArticleListInfo","attachSearchTree","attachProductGroupsToSupplier","saveRequestForCategorySwap","setOriginIfUnset","_vehicle$id","hits","autocompleteResults","attachFilters","oeNumber","createQuerySearch","QuerySearchType","Direct","nodeId","treeId","_this$temporaryReques2","eventStatus","targetUrl","resetTemporaryRequest","cleanContextUrl","setOrigin","_payload$extraData","extraData","viewOptions","ArticleListViewOptionsType","Compact","Detailed","Images","_this$temporaryReques3","searchType","getCategoryTypeFromUrl","searchFiltersCount","searchFilterCount","filterType","articleCount","_this$temporaryReques4","_this$temporaryReques5","categories","directSearch","Synonym","vehicleParts","_this$temporaryReques6","removeModifiedState","initialEvent","newContext","_this$temporaryReques7","storedRequest","loadContent","newRequestBody","_newRequestBody$conte","isModal","mergeQuerySearch","_tmpQuerySearch$query","_tmpQuerySearch$searc","tmpQuerySearch","autocompleteEntryExists","filters","available","attachSupplierFilters","dataSupplierFilters","attachProductGroupFilters","productGroupFilters","suppliers","_this$temporaryReques8","_article$supplier","productGroupsPerSupplier","additionalAnalyticsData","initializePortalEvents","_result$articles2","_result$articleListCo","_result$pageSize","_this$temporaryReques9","_this$temporaryReques10","_result$pageIndex","_result$pageIndex2","productGroupDataSuppliers","productGroupDataSupplierSet","Set","wholesalerArticleCount","maxArticleCount","articleListCount","pageSize","pageIndexMax","getPageIndexMax","_InitSearchFilters","_SetSearchFiltersCount","_SetSearchFilters","_ViewOptionsChanged","_ViewOptions","_OePositionChanged","_FilterChanged","_Results","_SwapSearchType","_IncreaseStepNumber","TMA_EVENT","ArticleListFilteredEventHelper","ArticleListFiltered","SwapSearchType","Results","searchedNodeId","latestSearchedNodeId","vehicleData","activeCategory","dataSourceId","searchTerm","determineOrigin","categoryType","getQuerySearchType","contextData","FilterChanged","OePositionChanged","ViewOptions","ViewOptionsChanged","Search","AttachVehicle","fromWidget","determineKeywordSearchOrigin","Assistent","PREMIUMUNIPARTSSEARCH_SEARCH_ASSISTENT","WithRedirect","eventStartOrigin","Parts","determineKeywordSearchOriginFromDashboard","UtilityNoClick","ARTICLE_LIST_UTILITY_NUMBER","SetSearchContext","SetSearchContextV2","Submit","SubmitExternal","TreeChanged","thumbnailClicked","NodeSelected","eventOrigin","determineSearchTreeTmaModule","AutoCompleteResults","SetSearchFilters","SetSearchFiltersCount","InitSearchFilters","Tree","SelectNode","subscribedEvents","EventSubmitDelay","_EventPlugin","eventHandler","OriginalSendEvent","OriginalResetEvent","setTmaDelay","delayTimer","_THIS","submitCompletedEvents","allProductGroupsPerSupplier","_userContext$paramete","_userContext","requestBodyClone","tmaMode","TmaMode","Classic","LessRequests","classicSend","Combined","pgs","submit","_this$eventHandler$te","resetFunc","finishEvent","_this$eventHandler$te2","rquest","_window$location","_activeRequest$search","currentCategory","activeRequest","submitInitial","getModified","submitProgress","sendOriginEvent","subscribeCompletedEvents","subscribeProgressEvents","_activeRequest$search2","setEventStatus","_event$searchStep","_requestBody$searchSt","compareEvents","_rquest$searchStep","timeEnd","_rquest$searchStep2","timeLog","_requestBody$searchSt2","_requestBody$searchSt3","_rquest$context","setModifiedToFalse","_request","deleteSubscriptions","submitCompletedWhenOutOfContext","submitCompleted","storageContext","closeHandler","moduleClosed","uniqueid","_this$eventHandler$re","_this$eventHandler$re2","_this$eventHandler$re3","EventPlugin","_a$searchStep","_b$searchStep","_a$searchStep2","_b$searchStep2","storedContext","tempContext","querySearchTyp","ProductGroup","isKeywordSearch","DASHBOARD","eModule","ARTICLE_LIST","FAST_CLICK_ARTICLE_LIST","FAST_CLICK_V2_ARTICLE_LIST","FAST_CLICK_DASHBOARD","FAST_CLICK_V2_DASHBOARD","PREMIUMUNIPARTSSEARCH","PREMIUMUNIPARTSSEARCH_ARTICLE_LIST","determineUniSearchTreeTmaModule","FAST_CLICK_UNIPARTSSEARCH","FAST_CLICK_V2_UNIPARTSSEARCH_ARTICLE_LIST","FAST_CLICK_V2_UNIPARTSSEARCH_DASHBOARD","START_PAGE","PREMIUMUNIPARTSSEARCH_START_PAGE","ARTICLE_DIRECT_SEARCH_START_PAGE","PRODUCT_GROUP_KEYWORD_SEARCH_DASHBOARD","PRODUCT_GROUP_KEYWORD_SEARCH_ARTICLE_LIST","ARTICLE_DIRECT_SEARCH_DASHBOARD","ARTICLE_DIRECT_SEARCH_ARTICLE_LIST","PREMIUMUNIPARTSSEARCH_DASHBOARD","ArticleComparisonEventHandler","_article$availability","ArticleComparisonEventHelper","Click","ArticlePDFClickEventHandler","ArticleDetailsPDFEventHelper","PDFClick","ArticleEventHelper","ImageClick","DetailsFormCallEventHandler","DetailsFormCallEventHelper","isModified","baseStorage","getTmaStore","modifiedKey","writeToSessionStorage","setModified","storeContent","_this$body","storedBody","getContent","tmaStore","stringifiedStore","tmaStoreKey","_content$context","_content$context2","checkForModifications","newTmaStore","storeContext","_tmaStore$context$ide","currentObject","_currentObject$search","_currentObject$contex","_currentObject$contex2","_this$getTmaStore$ide","storedObject","stored","initialContextId","initialContent","preInitializedContextId","fullStorage","preInitContextId","preInitContent","swapToQualifiedContextId","contextUrl","deleteModifiedKeyFromStorage","updatedStoraged","GeneralCountEventHandler","counterType","toggleValue","counterValue","_CallModule","_Call","GeneralCountEventHelper","CallModule","getModuleOrigin","counter","OriginTypes","_step2","generalCounterType","_iterator2","paths","cPath","loginType","LoginType","form","browser","features","getBrowserFeatures","clientInfo","ApplicationVersion","__version","Browser","BrowserVersion","getBrowserVersion","CookiesEnabled","allowsCookies","ScreenHeight","desktop","ScreenWidth","ViewportHeight","ViewportWidth","OperatingSystem","getOSName","OperatingSystemVersion","getOSVersion","JavascriptEnabled","DotNetFrameworkVersion","DriveSpaceFree","DriveSpaceTotal","GraphicCard","getGraphicCard","NetworkType","checkNetworkType","ProcessorType","RamFree","RamTotal","tmJSShellMeta","shellMeta","isMobile","mobile","connection","wifi","lan","canvas","debugInfo","getExtension","getParameter","UNMASKED_RENDERER_WEBGL","_navigator","hardwareConcurrency","cookieEnabled","screen","devicePixelRatio","numberOfLogicalProcessorCores","AllDataTechDataModuleCalled","DamageCalculationDatModuleCalled","DamageCalculationEurotaxModuleCalled","ModuleCalledRequestHelper","GPIModuleCalled","RepairTimesAutoDataModuleCalled","RepairTimesAwDocModuleCalled","getModule","resetRequest","criterionFilters","caseFound","worktaskIds","initWithPreInitializedContent","regexMatch","swapOnPreinitialized","handleBrowserRefresh","attachSearchQuery","saveContext","addSearchTree","_result$uniArticles","_result$uniArticles$l","_result$uniArticles2","productGroupDataSupplierPair","articleListInfo","_NodeSelected","PremiumUniPartsSearchEventHelper","UniParts","Reset","Swap","SearchTree","KeywordSearchFromStartPage","ARTICLE_DIRECT_SEARCH_SEARCH_ASSISTENT","TyresSelection","TM_TYRE_SEARCH","WheelsSelection","WHEEL_CONFIGURATOR","critFilter","requestCopy","serviceBaseUrl","CatalogContextCollection","_DataPublisher","storageId","tData","previousWorkTaskId","selectedConstructionYearFilter","setCatalogContextType","DataPublisher","VehicleSelectionEventHelper","GetVehicleSelectionLog","Graphical","VEHICLE_GRAPHIC_SEARCH","FromWidget","ModelYearFilter","Apply","VehicleSelectionEventTracker","handleApplyButtonClick","applyCustomerWithVehicle","_trackingData","Filter","setModelYearFilter","uniqueVehicleFound","wkid","RemovableParams","mapSourceIdToTmaModule","sourceId","SERVICE_AUTODATA","SERVICE_HAYNES","TECH_HAYNES","TYRES_AUDACON","SERVICE_AUDACON","TECH_AUDACON","GPI_TEMOT","TRUCKVIN","TRUCKGARAGE","originType","PostMessageHelper","EXTERNALCATALOGUE","SearchTyre","GetOrigin","_CategoryChanged","_SearchTreeNodeSelected","_SetSearchContext","_KeywordSearch","SharedHelper","UNIPARTSSEARCH","UNIPARTSSEARCH_PRODUCT_GROUP_KEYWORD_SEARCH","TYRE_SEARCH_START_PAGE","SubmitKeywordSearch","NoSearchResultAssistent","SearchTreeNodeSelected","searchTreeType","CategoryChanged","articleListFiltered","Module","Called","RepairTimes","ModuleCalled","Article","ArticleDetailsPDFClick","DetailsFormCall","ArticleComparison","PostMessage","addCollection","TMWheelsAndTyres","PassengerCarTyres","ArticleDirectSearch","PassengerCarDetails","DIRECTBUY","SPECIALOFFER","Offers","PassengerCarTechnicalDataHaynesPro","PassengerCarServiceDataHaynesPro","PassengerCarTechnicalDataTecRMI","PassengerCarServiceDataTecRmi","TECH_AUTODATA","PassengerCarTechnicalDataAutodata","PassengerCarServiceDataAutoData","GPI_DAT","PassengerCarGpiDat","GPI_EUROTAX","PassengerCarGpiEurotax","PassengerCarGpiTemot","GPI_AUDACON","PassengerCarGpiTecRmi","REPESTIMATE_EUROTAX","PassengerCarRepairCalculation","REPESTIMATE_DAT","GLASS_REPESTIMATE_DAT","GLASS_SAINTGOBAIN","TruckVIN","MY_TRUCK","MyTruck","MY_TRUCK_PLUS","MyTruckPlus","TruckGarage","FAST_CALCULATOR","PassengerCarFastCalculator","FAST_CHECK","PassengerCarFastCheck","FAST_SERVICE","FAST_DTC","FastDTC","EXTERNAL_DATA_SOURCE","EDS","PassengerCarRepairTimesAwDoc","PassengerCarRepairTimesAutodata","PassengerCarRepairTimesHaynesPro","PassengerCarRepairTimesTecRmi"],"sourceRoot":""}