{"version":3,"file":"scripts/shared.c1a419c20c890b0ee1f6.min.js","mappings":"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,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,aACT,QAAS,aACT,QAAS,aACT,SAAU,WACV,SAAU,WACV,SAAU,aACV,QAAS,WACT,SAAU,aACV,QAAS,WACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,SAAU,aACV,SAAU,aACV,QAAS,WACT,aAAc,WACd,SAAU,WACV,QAAS,WACT,QAAS,WACT,QAAS,WACT,QAAS,aACT,aAAc,WACd,aAAc,WACd,QAAS,aACT,aAAc,WACd,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,SAAU,WACV,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,WACT,QAAS,WACT,QAAS,WACT,aAAc,WACd,QAAS,aACT,aAAc,WACd,QAAS,WACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,SAAU,aACV,aAAc,WACd,aAAc,WACd,aAAc,WACd,SAAU,aACV,QAAS,aACT,SAAU,aACV,SAAU,aACV,SAAU,aACV,QAAS,YACT,aAAc,WACd,SAAU,aACV,QAAS,WACT,QAAS,WACT,aAAc,WACd,QAAS,YAGN,SAASC,EAAoBrlF,GAChC,IAAMslF,EAAavmI,OAAO6pD,KAAwCw8E,GAASl2H,QAAO,SAACzN,GAAG,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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/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/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/ProductGroupButton.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/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/LoadingContainer/LoadingContainer.tsx","webpack://@tm/portal/./core/components/src/components/ModuleHeaderSlot/index.tsx","webpack://@tm/portal/./core/components/src/components/MuiCustomModal/MuiCustomModal.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/SanitizedHTMLBox/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/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/easyPopover/EasyPopover.tsx","webpack://@tm/portal/./core/components/src/components/easyPopover/PopoverActionButton.tsx","webpack://@tm/portal/./core/components/src/components/easyPopover/PopoverContent.tsx","webpack://@tm/portal/./core/components/src/components/easyPopover/context.ts","webpack://@tm/portal/./core/components/src/components/easyPopover/useResizeRef.ts","webpack://@tm/portal/./core/components/src/components/image/fallbacks/Flag.tsx","webpack://@tm/portal/./core/components/src/components/image/fallbacks/article-fallback.tsx","webpack://@tm/portal/./core/components/src/components/image/fallbacks/bike-fallback.tsx","webpack://@tm/portal/./core/components/src/components/image/fallbacks/car-fallback.tsx","webpack://@tm/portal/./core/components/src/components/image/fallbacks/manufacturer-fallback.tsx","webpack://@tm/portal/./core/components/src/components/image/fallbacks/svg-fallback.tsx","webpack://@tm/portal/./core/components/src/components/image/index.tsx","webpack://@tm/portal/./core/components/src/components/modal/index.tsx","webpack://@tm/portal/./core/components/src/components/scrollContainer/index.tsx","webpack://@tm/portal/./core/components/src/components/searchfield/index.tsx","webpack://@tm/portal/./core/components/src/components/separator/index.tsx","webpack://@tm/portal/./core/components/src/components/statePill/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/hooks/useDebounce.ts","webpack://@tm/portal/./core/components/src/muiStyled/DataDisplay/Badge/Badge.tsx","webpack://@tm/portal/./core/components/src/muiStyled/DataDisplay/Icons/default-svg.tsx","webpack://@tm/portal/./core/components/src/muiStyled/DataDisplay/Icons/index.tsx","webpack://@tm/portal/./core/components/src/muiStyled/DataDisplay/divider/index.tsx","webpack://@tm/portal/./core/components/src/muiStyled/DataDisplay/tooltip/component.tsx","webpack://@tm/portal/./core/components/src/muiStyled/DataDisplay/tooltip/index.tsx","webpack://@tm/portal/./core/components/src/muiStyled/DataDisplay/typographie/index.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Feedback/alert/alert.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Feedback/loader/Loader.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Feedback/loader/ProgressBar.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Feedback/loader/Spinner.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/Autocomplete/AutocompleteHit.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/Checkbox/Checkbox.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/FormControlLabel/FormControlLabel.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/buttonGroup/buttonGroup.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/button/ButtonVariations.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/button/attachmentButton.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/button/button.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/button/iconButton.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/button/linkButton.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/datePicker/datePicker.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/dateRangePicker/dateRange.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/dateTimePicker/dateTimePicker.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/radioButton/index.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/select/MenuItem.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/select/NumberSelect.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/select/NumberSelectList.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/select/Select.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/select/SelectTextField.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/switch/ToggleSwitch.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/switch/switch.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/textfield/Arrows.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Inputs/textfield/index.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Navigation/link/routerLink.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Surfaces/accordion/AccordionSummary.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Surfaces/paper/paper.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Surfaces/paper/paperListItem.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Surfaces/paper/selectorPaper.tsx","webpack://@tm/portal/./core/components/src/muiStyled/Surfaces/simpleCard/SimpleCard.tsx","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/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 \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/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 { IconButton } from \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Paper } from \"../../../muiStyled/Surfaces/paper\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/tooltip\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/typographie\"\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 \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/tooltip\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { ImsIcon } from \"../ImsIcon\"\r\nimport { sendTmaEvent } from \"./ActionsTmaHelper\"\r\nimport { IconButton } from \"../../../muiStyled/Inputs/button\"\r\nimport { Image } from \"../../image\"\r\n\r\ntype IconActionProps = {\r\n action: ArticleActionIcon\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 \"../../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 // Action Components predefined in @tm/components\r\n if (action.displayType === \"COMPONENT\") {\r\n if (action.iconType === ErpIconType.Watchlist && hasWatchList && !highlightWatchlistButton) {\r\n elements.unshift()\r\n }\r\n if (action.iconType === ErpIconType.FoundBy && articleFoundBy) {\r\n elements.unshift()\r\n }\r\n if (action.iconType === ErpIconType.AdditionalInformations && hasAdditionalInfo) {\r\n elements.unshift()\r\n }\r\n if (action.iconType === ErpIconType.Memos && erpInfos?.memos && memoTooltipIcon)\r\n elements.unshift()\r\n \r\n return\r\n }\r\n\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 })\r\n return elements\r\n }, [articleActions?.informationArea, hasWatchList, highlightWatchlistButton, isHighResolution, articleFoundBy, hasAdditionalInfo, article])\r\n\r\n return (\r\n \r\n \r\n {actionList}\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 \"../../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../../muiStyled/DataDisplay/tooltip\"\r\nimport { Typography } from \"../../../../muiStyled/DataDisplay/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 { IconButton } from \"../../../muiStyled/Inputs/button/iconButton\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/tooltip\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\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 \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Divider } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Divider } from \"../../../muiStyled/DataDisplay/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\n\r\nimport { Icon } from \"../../muiStyled/DataDisplay/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 \"../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/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 \"../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Divider } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/tooltip\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { TooltipWrapper } from \"./TooltipWrapper\"\r\nimport { Divider } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/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 { styled } from \"@mui/material\"\r\nimport { ECounterType } from \"@tm/models\"\r\nimport { TmaHelper } from \"@tm/utils\"\r\nimport { IconButton } from \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/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}))\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 \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 \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../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 { Box, Stack, styled } from \"@mui/material\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { Typography } from \"../../muiStyled/DataDisplay/typographie\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Button } from \"../../../muiStyled/Inputs/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 \"../../../../muiStyled/DataDisplay/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 \"../../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/tooltip\"\r\nimport { Button } from \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/tooltip\"\r\nimport { SanitizedHTMLBox } from \"../../SanitizedHTMLBox\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/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 { concat } from \"@tm/utils\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { ADDITIONAL_INFO_ICON_SIZE } from \"../constants\"\r\n\r\nexport type ErpPriceWithAdditionalInfo = ErpPrice & {\r\n onlyShowInfo?: boolean\r\n additionalErpPrice?: ErpPrice\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 { ErpIconType, 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\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 let filteredPrices = prices\r\n\r\n // Dont show strikethrough price, if article contains promotional icon\r\n if (defaultErpInfo?.specialIcons?.some((t) => t.type === ErpIconType.Promotional)) {\r\n filteredPrices = prices.filter((t) => t.type !== PriceType.Strikethrough)\r\n // Set additionalErpPrice for tooltip\r\n filteredPrices = filteredPrices.map((t) => ({\r\n ...t,\r\n additionalErpPrice: t.type === PriceType.Retail ? prices.find((x) => x.type === PriceType.Strikethrough) : undefined,\r\n }))\r\n }\r\n\r\n // only show first 2 prices in compact view\r\n return filteredPrices.slice(0, 2)\r\n }\r\n return prices\r\n }, [defaultErpInfo?.prices, defaultErpInfo?.specialIcons, isExpanded, isPriceTypeHidden])\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 \"../../muiStyled/DataDisplay/typographie\"\r\nimport { Tooltip } from \"../../muiStyled/DataDisplay/tooltip\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/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 { useMemo, useRef, useState } from \"react\"\r\nimport { ArticleImageViewer } from \"./ArticleImageViewer\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { Image as ComponentsImage } from \"../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 \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Image } from \"../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 \"../../../muiStyled/Inputs/textfield\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/tooltip\"\r\nimport { Button } from \"../../../muiStyled/Inputs/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","import { Box, Collapse, Fade, LinearProgress, Stack, styled } from \"@mui/material\"\r\nimport { memo, useEffect, useState } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../muiStyled/DataDisplay/tooltip\"\r\nimport { IconButton } from \"../../muiStyled/Inputs/button\"\r\nimport { Tab, TabPanel, Tabs } from \"../Tabs\"\r\nimport { Typography } from \"../../muiStyled/DataDisplay/typographie\"\r\nimport { ProductGroupButton } from \"./ProductGroupButton\"\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: \"10px 5px 5px 20px\",\r\n marginLeft: 16,\r\n})\r\n\r\nexport const RecommendedArticle = memo(() => {\r\n const { translateText } = useLocalization()\r\n const crossSelling = useDefaultArticleItemState((x) => x.crossSelling)!\r\n\r\n const {\r\n onProductGroupClick,\r\n customerAlsoBoughtDetails,\r\n ListComponent,\r\n CustomerAlsoBoughtArticlesChain,\r\n RecommendedArticlesChain,\r\n productGroups,\r\n displayCustomerAlsoBoughtTab,\r\n } = crossSelling\r\n\r\n const [activeNavIdentifier, setActiveNavIdentifier] = useState(\"\")\r\n\r\n useEffect(() => {\r\n setActiveNavIdentifier(displayCustomerAlsoBoughtTab ? \"CustomersAlsoBought\" : \"Recommended\")\r\n }, [displayCustomerAlsoBoughtTab])\r\n\r\n const handleNavSelect = (_: unknown, nextNavIdentifier: string) => {\r\n setTimeout(() => setActiveNavIdentifier(nextNavIdentifier), 100)\r\n }\r\n\r\n const renderTabButtons = () => (\r\n \r\n \r\n {displayCustomerAlsoBoughtTab && }\r\n {!!productGroups?.recommendedProductGroupsState?.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 const renderCustomerAlsoBought = () => (\r\n \r\n \r\n {!!CustomerAlsoBoughtArticlesChain && }\r\n \r\n \r\n {translateText(13837)}\r\n \r\n {!!productGroups?.customerAlsoBoughtProductGroupsState?.length && (\r\n \r\n {productGroups.customerAlsoBoughtProductGroupsState.map((group) => (\r\n onProductGroupClick?.(group, false)}\r\n />\r\n ))}\r\n \r\n )}\r\n {!customerAlsoBoughtDetails?.displayButton && ListComponent && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )\r\n\r\n const renderRecommended = () => (\r\n \r\n \r\n {!!RecommendedArticlesChain && }\r\n \r\n \r\n {translateText(14015)}\r\n \r\n {!!productGroups?.recommendedProductGroupsState?.length && (\r\n \r\n {productGroups.recommendedProductGroupsState.map((group) => (\r\n onProductGroupClick?.(group, true)}\r\n />\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 {crossSelling?.isLoading && }\r\n {renderTabButtons()}\r\n \r\n {renderCustomerAlsoBought()}\r\n \r\n \r\n {renderRecommended()}\r\n \r\n \r\n \r\n )\r\n})\r\n","import { Stack, StackProps, styled } from \"@mui/material\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { ArticleReferenceType, ModificationState } from \"@tm/models\"\r\nimport { concat } from \"@tm/utils\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/tooltip\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/typographie\"\r\n\r\nexport type ArticleReferenceParms = {\r\n label: string\r\n referenceType: ArticleReferenceType\r\n modificationState?: ModificationState\r\n manufacturer?: string\r\n}\r\n\r\ntype ClickableReferenceProps = StackProps & {\r\n isClickable?: boolean\r\n isRemoved?: boolean\r\n}\r\n\r\nconst ClickableReference = styled(Stack, {\r\n shouldForwardProp: (prop: string) => ![\"isClickable\", \"isRemoved\"].includes(prop),\r\n})(({ theme, isClickable, isRemoved }) => ({\r\n svg: {\r\n marginRight: 2,\r\n },\r\n ...(isRemoved && {\r\n textDecoration: \"line-through\",\r\n }),\r\n ...(isClickable && {\r\n cursor: \"pointer\",\r\n \"&:hover *\": {\r\n color: theme.palette.primary.main,\r\n },\r\n }),\r\n}))\r\n\r\nClickableReference.defaultProps = { direction: \"row\" }\r\n\r\ntype ReferenceProps = { reference: ArticleReferenceParms; onClick: (reference: ArticleReferenceParms) => void }\r\n\r\nexport function Reference(props: ReferenceProps) {\r\n const { onClick, reference } = props\r\n const { translateText } = useLocalization()\r\n\r\n const handleClick = () => onClick(reference)\r\n\r\n return (\r\n \r\n {(() => {\r\n switch (reference.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 \r\n {concat(\" \", reference.label, reference.manufacturer && `(${reference.manufacturer})`)}\r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from \"react\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Stack } from \"@mui/material\"\r\nimport { useResizeObserver } from \"@tm/utils\"\r\nimport { ArticleReferenceParms, Reference } from \"./Reference\"\r\nimport { useDefaultArticleItemState } from \"../ContextProviderStates/DefaultArticleItemState\"\r\nimport { Divider } from \"../../../muiStyled/DataDisplay/divider\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Button } from \"../../../muiStyled/Inputs/button\"\r\n\r\ntype ReferenceGroupType = { references: ArticleReferenceParms[]; label: string }\r\n\r\nexport function ReferenceGroup(props: ReferenceGroupType) {\r\n const handleClickDetailsIntern = useDefaultArticleItemState((x) => x.handleClickDetails)\r\n const { references, label } = props\r\n const { translateText } = useLocalization()\r\n\r\n const moreButtonRef = useRef(null)\r\n const [showMoreLink, setShowMoreLink] = useState(false)\r\n const handleClickReference = useDefaultArticleItemState((x) => x.handleClickReference)\r\n\r\n const handleClickDetails = useCallback(() => handleClickDetailsIntern(\"references\"), [handleClickDetailsIntern])\r\n\r\n function handleResizeContainer(entry?: ResizeObserverEntry) {\r\n const difference = moreButtonRef.current ? moreButtonRef.current.offsetWidth + (entry?.target.lastElementChild?.clientWidth ?? 0) : 0\r\n setShowMoreLink(!!entry && entry.target.clientWidth < entry.target.scrollWidth - difference)\r\n }\r\n const [stackRef, unsubResizeObserver] = useResizeObserver(handleResizeContainer)\r\n\r\n useEffect(() => unsubResizeObserver, [unsubResizeObserver])\r\n\r\n if (!references?.length) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n }\r\n flexWrap=\"nowrap\"\r\n overflow=\"hidden\"\r\n ref={stackRef}\r\n pr={showMoreLink ? \"100px\" : undefined}\r\n >\r\n \r\n {label}\r\n \r\n\r\n {references.map((reference, idx) => (\r\n \r\n ))}\r\n \r\n {showMoreLink && (\r\n \r\n {translateText(44)}\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 const refsAlternative = useMemo(() => references.filter((x) => x.referenceType === ArticleReferenceType.AlternativeReferenceNo), [references])\r\n\r\n if (\r\n !refsAlternativeArticleNo.length &&\r\n !refsEurocode.length &&\r\n !refsUtility.length &&\r\n !refsReplacement.length &&\r\n !refsReplaced.length &&\r\n !refsAlternative.length\r\n ) {\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}\r\n","import { ButtonProps, styled } from \"@mui/material\"\r\nimport { ComponentType } from \"react\"\r\nimport { Button } from \"../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/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 = {\r\n // 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 \"../../muiStyled/Inputs/button\"\r\nimport { Typography } from \"../../muiStyled/DataDisplay/typographie\"\r\nimport { Tooltip } from \"../../muiStyled/DataDisplay/tooltip\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/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 \"../image\"\r\nimport { Tooltip } from \"../../muiStyled/DataDisplay/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 wordBreak: \"break-word\",\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 \"../../../muiStyled/DataDisplay/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 \"../../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../../muiStyled/DataDisplay/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 \"../../../../muiStyled/Inputs/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 { classes, TmaHelper } from \"@tm/utils\"\r\nimport { ECounterType } from \"@tm/models\"\r\nimport { StyledBasketButton } from \"../../StyledBasketButton\"\r\nimport { Badge } from \"../../../../muiStyled/DataDisplay/Badge\"\r\nimport { Icon } from \"../../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/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 { useEffect, useState } from \"react\"\r\nimport { 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 { Checkbox } from \"../../muiStyled/Inputs/Checkbox\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { LoadingContainer } from \"../LoadingContainer\"\r\nimport { Button } from \"../../muiStyled/Inputs/button\"\r\nimport { Divider } from \"../../muiStyled/DataDisplay/divider\"\r\nimport { TextField } from \"../../muiStyled/Inputs/textfield\"\r\nimport { Typography } from \"../../muiStyled/DataDisplay/typographie\"\r\nimport { useDefaultArticleItemState } from \"./ContextProviderStates/DefaultArticleItemState\"\r\nimport { ButtonAction } from \"./Actions/ButtonAction\"\r\nimport { IconAction } from \"./Actions/IconAction\"\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, BoxProps, styled } from \"@mui/material\"\r\nimport { sanitize } from \"@tm/utils\"\r\n\r\ntype SanitizedHTMLBoxProps = BoxProps & {\r\n innerHTML?: string\r\n}\r\n\r\nconst StyledBox = styled(Box)({\r\n lineHeight: 1.3,\r\n overflow: \"hidden\",\r\n b: {\r\n fontWeight: 700,\r\n },\r\n})\r\n\r\nexport function SanitizedHTMLBox({ innerHTML, ...props }: SanitizedHTMLBoxProps) {\r\n // Sanitize the HTML\r\n const sanitizedHTML = innerHTML\r\n ? sanitize(innerHTML, {\r\n ALLOWED_TAGS: [\"b\", \"br\", \"u\", \"#text\", \"p\"],\r\n ALLOWED_ATTR: [],\r\n })\r\n : undefined\r\n\r\n return \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 \"../../muiStyled/Inputs/button\"\r\nimport { Checkbox } from \"../../muiStyled/Inputs/Checkbox\"\r\nimport { FormControlLabel } from \"../../muiStyled/Inputs/FormControlLabel\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../muiStyled/DataDisplay/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 \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 \"../../../muiStyled/DataDisplay/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 \"../../muiStyled/Feedback/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\nconst BreadcrumbsBox = styled(\r\n Box,\r\n {}\r\n)(({}) => {\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 \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/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 \"../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Tooltip } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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, 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 \"../../muiStyled/Surfaces/paper\"\r\nimport { Button, ButtonProps } from \"../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Typography } from \"../../muiStyled/DataDisplay/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 \"../../../muiStyled/Inputs/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 \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { Button } from \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { FormControlLabel } from \"../../../muiStyled/Inputs/FormControlLabel\"\r\nimport { Checkbox } from \"../../../muiStyled/Inputs/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 \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { ShareOptions } from \"./ShareOptions\"\r\nimport { SharingLink } from \"./SharingLink\"\r\nimport { Button } from \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { EmailList } from \"./EmailList\"\r\nimport { useEmailState } from \"../hooks/useEmailState\"\r\nimport { LoadingContainer } from \"../../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 \"../../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../../muiStyled/DataDisplay/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 \"../../../muiStyled/DataDisplay/Icons\"\r\nimport { Button } from \"../../../muiStyled/Inputs/button\"\r\nimport { Typography } from \"../../../muiStyled/DataDisplay/typographie\"\r\nimport { useCopy } from \"../hooks/useCopy\"\r\nimport { Paper } from \"../../../muiStyled/Surfaces/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 \"../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 \"../../muiStyled/DataDisplay/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\nfunction TableColumnHeaderComponent(props: TableColumnSortProps & HTMLAttributes) {\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 \"../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 \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Tooltip } from \"../../muiStyled/DataDisplay/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 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","import { MenuItem, Stack, Typography } from \"@mui/material\"\r\nimport { HistoryVehicle, UserContext } from \"@tm/models\"\r\nimport { getShortCountryCodeByUserContext, useRegNoCaption } from \"@tm/utils\"\r\nimport { useLocalization } from \"@tm/localization\"\r\nimport { Separator } from \"../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 \"../../muiStyled/Inputs/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 \"../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 { MenuItem, Select } from \"../../muiStyled/Inputs/select\"\r\nimport { Tooltip } from \"../../muiStyled/DataDisplay/tooltip\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Image } from \"../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 \"../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 \"../../muiStyled/DataDisplay/Icons\"\r\nimport { LinkButton } from \"../../muiStyled/Inputs/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 \"../../muiStyled/DataDisplay/Icons\"\r\nimport { MenuItem, Select } from \"../../muiStyled/Inputs/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, RegistrationNoType, Vehicle } from \"@tm/models\"\r\nimport { getVehicleRegistrationNoLabelTextIds } from \"@tm/utils\"\r\nimport { useState } from \"react\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { LinkButton } from \"../../muiStyled/Inputs/button\"\r\nimport { Divider as GenericDivider } from \"../../muiStyled/DataDisplay/divider\"\r\nimport { Select, MenuItem } from \"../../muiStyled/Inputs/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 {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 \"../../muiStyled/Inputs/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 { styled, useTheme } from \"@mui/material\"\r\nimport { ReactElement } from \"react\"\r\nimport { Button } from \"../../muiStyled/Inputs/button/button\"\r\nimport { Typography } from \"../../muiStyled/DataDisplay/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 \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Image } from \"../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 \"../../muiStyled/DataDisplay/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 \"../../muiStyled/Inputs/button\"\r\nimport { MessageBubble, MessageBubbleProps } from \"./chatMessageBubble\"\r\nimport { StatePill } from \"../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 \"../../muiStyled/DataDisplay/Icons\"\r\nimport { MessageBubble, MessageBubbleProps } from \"./chatMessageBubble\"\r\nimport { AttachmentButton } from \"../../muiStyled/Inputs/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 { PropsWithChildren } from \"react\"\r\nimport { MessageBubble, MessageBubbleProps } from \"./chatMessageBubble\"\r\nimport { AttachmantButtonProps, AttachmentButton } from \"../../muiStyled/Inputs/button\"\r\nimport { StatePill } from \"../statePill\"\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 \"../../muiStyled/Inputs/button/button\"\r\nimport { Checkbox } from \"../../muiStyled/Inputs/Checkbox/Checkbox\"\r\nimport { Typography } from \"../../muiStyled/DataDisplay/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 \"../../muiStyled/DataDisplay/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 {\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 { 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 \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Button } from \"../../muiStyled/Inputs/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 { 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 { 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 \"../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { Loader } from \"../../muiStyled/Feedback/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 { 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 \"../../muiStyled/DataDisplay/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 { 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 \"../../muiStyled/Inputs/button\"\r\nimport { Icon } from \"../../muiStyled/DataDisplay/Icons\"\r\nimport { VehicleThumbnail } from \"./VehicleThumbnail\"\r\nimport { Divider } from \"../../muiStyled/DataDisplay/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 { 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 { 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 { forwardRef } from \"react\"\r\nimport { createSvgIcon, SvgIconProps } from \"@mui/material\"\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 \"DefaultSvg\"\r\n )\r\n\r\n return \r\n})\r\n","import { forwardRef, useMemo } from \"react\"\r\nimport { IconButtonProps, styled, SvgIcon, 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\n\r\nexport type IconProps = Omit & {\r\n /**\r\n * The id of the reference in the spritemap\r\n */\r\n name?: string\r\n /**\r\n * The CSS width and height assuming it's a square. If the width and height must be different, you should use sx={} instead.\r\n * If you want to use sizes like small, medium, large, you have to use fontSize={}\r\n */\r\n size?: IconButtonProps[\"size\"] | \"inherit\"\r\n /**\r\n * The Mui palette color or CSS color which will be set an to the fill color. If it's not defined, fill will be set to currentColor\r\n */\r\n color?: ColorType | \"highlight\" | string\r\n}\r\n\r\nconst StyledSvgIcon = styled(SvgIcon, {\r\n shouldForwardProp: (prop: string) => ![\"name\", \"color\", \"size\"].includes(prop),\r\n})>(({ color, theme, size = \"medium\" }) => {\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 fontSize: \"1em\",\r\n width: \"auto\",\r\n objectFit: \"contain\",\r\n fill: themeColor ?? \"currentColor\",\r\n\r\n ...(size === \"extrasmall\" && {\r\n fontSize: 12,\r\n }),\r\n\r\n ...(size === \"small\" && {\r\n fontSize: 16,\r\n }),\r\n\r\n ...(size === \"medium\" && {\r\n fontSize: 20,\r\n }),\r\n\r\n ...(size === \"large\" && {\r\n fontSize: 24,\r\n }),\r\n\r\n ...(size === \"extralarge\" && {\r\n fontSize: 32,\r\n }),\r\n }\r\n})\r\n\r\nexport const Icon = forwardRef((props, ref) => {\r\n const { name, className, ...rest } = props\r\n\r\n const svgClassName = useMemo(() => {\r\n return classes(`icon-${name}`, className)\r\n }, [name, className])\r\n\r\n if (!name) {\r\n return )} />\r\n }\r\n\r\n return (\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 { 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 { 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 \"../../DataDisplay/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 { 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 { convertStringToReactNodes } from \"@tm/utils\"\r\n\r\nconst HitHighlightPreTag = \"\"\r\nconst HitHighlightPostTag = \"\"\r\n\r\ntype Props = {\r\n children: string | undefined\r\n}\r\n\r\nexport function AutocompleteHit({ children }: Props) {\r\n if (!children) {\r\n return null\r\n }\r\n\r\n return (\r\n // Fragment needed because \"convertStringToReactNodes\" returns an array of nodes\r\n <>\r\n {convertStringToReactNodes(children, HitHighlightPreTag, HitHighlightPostTag, (match, i) => (\r\n {match}\r\n ))}\r\n \r\n )\r\n}\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 { ButtonGroupProps, ButtonGroup as MuiButtonGroup, styled } from \"@mui/material\"\r\n\r\nconst StyledButtonGroup = styled(MuiButtonGroup)({})\r\n\r\nexport function ButtonGroup(props: ButtonGroupProps) {\r\n return \r\n}\r\n","import { buttonClasses, styled } from \"@mui/material\"\r\nimport { Icon } from \"../../DataDisplay/Icons\"\r\n\r\nimport { Button, ButtonProps } from \"./button\"\r\n\r\nconst ColorButton = styled(Button)(({ theme }) => {\r\n const customColor = theme.overwrites?.components?.button?.searchButtonColor\r\n if (!customColor) {\r\n return\r\n }\r\n return {\r\n [`&.${buttonClasses.contained}`]: {\r\n backgroundColor: customColor,\r\n \"&:hover\": {\r\n backgroundColor: customColor,\r\n },\r\n },\r\n }\r\n})\r\n\r\nexport function SearchButton(props: ButtonProps) {\r\n return (\r\n } {...props}>\r\n {props.children}\r\n \r\n )\r\n}\r\n","import { PropsWithChildren } from \"react\"\r\nimport { styled, Typography } from \"@mui/material\"\r\nimport { Button } from \"./button\"\r\nimport { Icon } from \"../../DataDisplay/Icons\"\r\n\r\nconst ContentWrapper = styled(\"div\")(({ theme }) => ({\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"center\",\r\n flexDirection: \"column\",\r\n padding: theme.spacing(0.5, 1),\r\n}))\r\n\r\nconst DownloadButton = styled(Button)({\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n flex: 0,\r\n})\r\n\r\nconst Headline = styled(\"div\")({\r\n fontSize: \"14px\",\r\n whiteSpace: \"nowrap\",\r\n maxWidth: \"200px\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n})\r\n\r\nexport type AttachmantButtonProps = PropsWithChildren<{\r\n fileName: string\r\n fileType: \"PICTURE\" | \"PDF\" | \"KVA\" | string\r\n iconName: string\r\n fileSize?: string\r\n href?: string\r\n onClick?: () => void\r\n}>\r\n\r\nexport function AttachmentButton({ href, fileName, fileType, fileSize, iconName, onClick }: AttachmantButtonProps) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n {`${fileName}`}\r\n \r\n {fileType}\r\n {fileSize && ` | ${fileSize}`}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n","import { ElementType, forwardRef } from \"react\"\r\nimport { Button as MuiButton, ButtonProps as MuiButtonProps, buttonClasses, lighten, darken, getLuminance, styled, alpha } from \"@mui/material\"\r\nimport { NextComponentButtonColorOverwrites } from \"../../../theme\"\r\n\r\nexport interface ButtonProps extends MuiButtonProps {\r\n target?: string\r\n rel?: string\r\n component?: ElementType\r\n}\r\n\r\n/**\r\n * Typeguard function to check if the passed `color` is valid to be used as an overwrite color for the `Button` component.\r\n *\r\n * @param color A string which should be checked\r\n * @returns `true` if the passed string is valid otherwise `false`\r\n */\r\nfunction isValidColorOverride(color: ButtonProps[\"color\"]): color is keyof NextComponentButtonColorOverwrites {\r\n return !!color && color !== \"inherit\"\r\n}\r\n\r\n/**\r\n * Returns a color that is slightly offsetted (darker or lighter depending on the color luminance).\r\n *\r\n * @param color The color which should be offsetted\r\n * @param offset The amount of difference (0 - 1)\r\n * @returns The offsetted color\r\n */\r\nfunction getOffsetColor(color: string, offset = 0.1) {\r\n return getLuminance(color) > 0.15 ? darken(color, offset) : lighten(color, offset)\r\n}\r\n\r\nconst ColorButton = styled(MuiButton)(({ color, theme, children, startIcon, endIcon }) => {\r\n // helper\r\n const { getContrastText } = theme.palette\r\n\r\n const hasIcon = !!startIcon || !!endIcon\r\n\r\n // selected color: primary, secondary, highlight, ...\r\n const selectedColor = isValidColorOverride(color) ? theme.palette?.[color] : undefined\r\n\r\n // overwrites\r\n const buttonOverwrites = theme.overwrites?.components?.button ?? {}\r\n const overwritesBorderRadius = buttonOverwrites.borderRadius\r\n const overwritesButtonPrimary = buttonOverwrites.primary\r\n const overwritesButtonSuccess = buttonOverwrites.success\r\n const overwritesButtonOutlined = buttonOverwrites.outlined\r\n const overwritesButtonSelectedColor = isValidColorOverride(color) ? buttonOverwrites[color] : undefined\r\n\r\n const borderColor = overwritesButtonPrimary?.borderColor ?? \"transparent\" // TODO: I think we can not always use the `borderColor` of the primary overwrite here\r\n const borderRadius = overwritesBorderRadius ?? theme.radius?.default ?? \"3px\"\r\n const backgroundColor = overwritesButtonPrimary?.backgroundColor ?? theme.palette.grey[300]\r\n const backgroundColorHover = overwritesButtonPrimary?.hover?.backgroundColor ?? theme.palette.primary.light\r\n const textTransform = overwritesButtonPrimary?.textTransform ?? \"none\"\r\n const fontColor = overwritesButtonPrimary?.fontColor ? overwritesButtonPrimary?.fontColor : getContrastText(backgroundColor)\r\n const fontFamily = overwritesButtonPrimary?.fontFamily ? overwritesButtonPrimary?.fontFamily : theme.typography.fontFamily\r\n const fontFamilyOutlined = overwritesButtonOutlined?.fontFamily ? overwritesButtonOutlined?.fontFamily : theme.typography.fontFamily\r\n\r\n return {\r\n textTransform,\r\n borderRadius,\r\n flexShrink: 0,\r\n minWidth: \"15px\",\r\n marginLeft: 0,\r\n marginRight: 0,\r\n whiteSpace: \"nowrap\",\r\n verticalAlign: \"top\",\r\n ...(overwritesButtonPrimary?.letterSpacing && {\r\n letterSpacing: overwritesButtonPrimary?.letterSpacing,\r\n }),\r\n // bordered\r\n [`&.MuiButton-bordered`]: {\r\n fontFamily,\r\n border: `1px solid ${borderColor}`,\r\n borderRadius,\r\n backgroundColor,\r\n color: fontColor,\r\n ...(overwritesButtonPrimary?.fontWeight && {\r\n fontWeight: overwritesButtonPrimary?.fontWeight,\r\n }),\r\n ...(overwritesButtonPrimary?.fontSize && {\r\n fontSize: overwritesButtonPrimary?.fontSize,\r\n }),\r\n ...(overwritesButtonPrimary?.fontFamily && {\r\n fontFamily: overwritesButtonPrimary?.fontFamily,\r\n }),\r\n \".icon\": {\r\n fill: fontColor,\r\n },\r\n ...(selectedColor && {\r\n backgroundColor: selectedColor.main,\r\n color: overwritesButtonPrimary?.text ?? selectedColor.contrastText,\r\n [`&::before`]: {\r\n content: '\"\"',\r\n backgroundColor: getLuminance(selectedColor.main) > 0.15 ? selectedColor.dark : selectedColor.light,\r\n borderBottomLeftRadius: borderRadius,\r\n borderBottomRightRadius: borderRadius,\r\n position: \"absolute\",\r\n width: \"calc(100% + 2px)\",\r\n height: \"3px\",\r\n left: \"-1px\",\r\n bottom: \"-1px\",\r\n },\r\n \".icon\": {\r\n fill: overwritesButtonPrimary?.hover?.text ?? selectedColor.contrastText,\r\n },\r\n }),\r\n \"&:hover\": {\r\n backgroundColor: backgroundColorHover,\r\n color: overwritesButtonPrimary?.hover?.text ?? getContrastText(backgroundColorHover),\r\n ...(selectedColor && {\r\n backgroundColor: overwritesButtonSelectedColor?.hover?.backgroundColor ?? getOffsetColor(selectedColor.main),\r\n color: getContrastText(overwritesButtonSelectedColor?.hover?.backgroundColor ?? selectedColor.main),\r\n [`&::before`]: {\r\n backgroundColor: getOffsetColor(overwritesButtonSelectedColor?.hover?.backgroundColor ?? selectedColor.main, 0.4),\r\n },\r\n }),\r\n \".icon\": {\r\n fill: overwritesButtonPrimary?.hover?.text ?? getContrastText(backgroundColorHover),\r\n },\r\n },\r\n \"&.Mui-disabled\": {\r\n opacity: theme.opacity?.disabled ?? 0.38,\r\n \"& svg\": {\r\n opacity: theme.opacity?.disabled ?? 0.38,\r\n },\r\n },\r\n },\r\n // contained button\r\n [`&.${buttonClasses.contained}`]: {\r\n fontFamily,\r\n border: `1px solid ${borderColor}`,\r\n borderRadius,\r\n backgroundColor,\r\n color: fontColor,\r\n ...(overwritesButtonPrimary?.fontWeight && {\r\n fontWeight: overwritesButtonPrimary?.fontWeight,\r\n }),\r\n ...(overwritesButtonPrimary?.fontSize && {\r\n fontSize: overwritesButtonPrimary?.fontSize,\r\n }),\r\n ...(overwritesButtonPrimary?.fontFamily && {\r\n fontFamily: overwritesButtonPrimary?.fontFamily,\r\n }),\r\n boxShadow: \"none\",\r\n ...(selectedColor && {\r\n backgroundColor: selectedColor.main,\r\n color: selectedColor.contrastText,\r\n }),\r\n \"&Success\": {\r\n color: overwritesButtonSuccess?.fontColor || fontColor,\r\n \"&:hover\": {\r\n \"&&\": {\r\n color: fontColor,\r\n },\r\n },\r\n },\r\n \".icon\": {\r\n fill: fontColor,\r\n ...(selectedColor && {\r\n fill: selectedColor.contrastText,\r\n }),\r\n },\r\n \"&:hover\": {\r\n backgroundColor: backgroundColorHover,\r\n color: overwritesButtonPrimary?.hover?.text ?? getContrastText(backgroundColorHover),\r\n ...(selectedColor && {\r\n backgroundColor: overwritesButtonSelectedColor?.hover?.backgroundColor ?? getOffsetColor(selectedColor.main),\r\n color:\r\n overwritesButtonSelectedColor?.hover?.text ??\r\n getContrastText(overwritesButtonSelectedColor?.hover?.backgroundColor ?? selectedColor.main),\r\n \".icon\": {\r\n fill:\r\n overwritesButtonSelectedColor?.hover?.text ??\r\n getContrastText(overwritesButtonSelectedColor?.hover?.backgroundColor ?? selectedColor.main),\r\n },\r\n }),\r\n \".icon\": {\r\n fill: overwritesButtonPrimary?.hover?.text ?? getContrastText(backgroundColorHover),\r\n },\r\n },\r\n \"&.Mui-disabled\": {\r\n opacity: theme.opacity?.disabled ?? 0.38,\r\n \"& svg\": {\r\n fill: alpha(fontColor, 0.38),\r\n },\r\n },\r\n },\r\n // outlined button\r\n [`&.${buttonClasses.outlined}`]: {\r\n fontFamily: fontFamilyOutlined,\r\n color: theme.palette.common.black,\r\n backgroundColor: \"transparent\",\r\n borderColor: buttonOverwrites?.outlined?.borderColor ? buttonOverwrites?.outlined?.borderColor : backgroundColor,\r\n ...(selectedColor && {\r\n borderColor: selectedColor.main,\r\n }),\r\n svg: {\r\n transition: \"fill 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\",\r\n },\r\n \"&:hover\": {\r\n color: buttonOverwrites?.outlined?.hover?.color ? buttonOverwrites?.outlined?.hover?.color : theme.palette.common.black,\r\n borderColor: buttonOverwrites?.outlined?.hover?.borderColor ? buttonOverwrites?.outlined?.hover?.borderColor : backgroundColorHover,\r\n opacity: 1,\r\n ...(selectedColor && {\r\n borderColor: selectedColor.light,\r\n }),\r\n svg: {\r\n fill: backgroundColorHover,\r\n ...(selectedColor && {\r\n fill: selectedColor.light,\r\n }),\r\n },\r\n },\r\n \"&.Mui-disabled\": {\r\n opacity: theme.opacity?.disabled ?? 0.38,\r\n \"& svg\": {\r\n fill: alpha(theme.palette.common.black, 0.38),\r\n },\r\n },\r\n },\r\n // text and textLight button\r\n [`&.${buttonClasses.text}, &.MuiButton-textLight`]: {\r\n fontFamily,\r\n border: \"1px solid transparent\",\r\n opacity: theme.opacity?.primary,\r\n backgroundColor: \"transparent\",\r\n \"&:hover\": {\r\n backgroundColor: \"transparent\",\r\n },\r\n \"&.Mui-disabled\": {\r\n color: alpha(theme.palette.common.black, 0.38),\r\n\r\n \"&.MuiButton-textError\": {\r\n color: alpha(theme.palette.error.main, 0.38),\r\n },\r\n [`.${buttonClasses.startIcon}, .${buttonClasses.endIcon}`]: {\r\n \"& > svg\": {\r\n opacity: 0.38,\r\n },\r\n },\r\n },\r\n },\r\n // text button\r\n [`&.${buttonClasses.text}`]: {\r\n color: selectedColor?.main ?? theme.typography.body1.color,\r\n \"&:hover\": {\r\n color: selectedColor?.dark ?? theme.palette.common.black,\r\n },\r\n },\r\n // textLight button\r\n [`&.MuiButton-textLight`]: {\r\n color: selectedColor?.main ?? getOffsetColor(theme.palette.common.white, 0.05),\r\n \"&:hover\": {\r\n color: selectedColor?.light ?? theme.palette.common.white,\r\n },\r\n },\r\n // size - small\r\n [`&.${buttonClasses.sizeSmall}`]: {\r\n fontSize: \"12px\",\r\n lineHeight: \"12px\",\r\n padding: children ? \"6px 8px\" : \"6px\",\r\n [`.${buttonClasses.startIcon}, .${buttonClasses.endIcon} `]: {\r\n \"& > svg\": {\r\n height: \"12px\",\r\n width: \"12px\",\r\n minHeight: \"12px\",\r\n minWidth: \"12px\",\r\n margin: \"0\",\r\n },\r\n },\r\n [`.${buttonClasses.startIcon}`]: {\r\n marginLeft: 0,\r\n marginRight: children ? \"6px\" : 0,\r\n },\r\n [`.${buttonClasses.endIcon}`]: {\r\n marginLeft: children ? \"6px\" : 0,\r\n marginRight: 0,\r\n },\r\n },\r\n // size - medium\r\n [`&.${buttonClasses.sizeMedium}`]: {\r\n fontSize: \"14px\",\r\n lineHeight: \"16px\",\r\n padding: children ? \"7px 11px\" : \"7px\",\r\n ...(hasIcon && {\r\n padding: children ? \"6px 11px\" : \"6px\",\r\n }),\r\n [`.${buttonClasses.startIcon}, .${buttonClasses.endIcon} `]: {\r\n \"& > svg, & > img\": {\r\n height: \"18px\",\r\n width: \"18px\",\r\n minHeight: \"18px\",\r\n minWidth: \"18px\",\r\n margin: \"0\",\r\n },\r\n },\r\n [`.${buttonClasses.startIcon}`]: {\r\n marginLeft: 0,\r\n marginRight: children ? \"6px\" : 0,\r\n },\r\n [`.${buttonClasses.endIcon}`]: {\r\n marginLeft: children ? \"6px\" : 0,\r\n marginRight: 0,\r\n },\r\n },\r\n // size - large\r\n [`&.${buttonClasses.sizeLarge}`]: {\r\n fontSize: \"14px\",\r\n lineHeight: \"16px\",\r\n padding: children ? \"10px 15px\" : \"10px\",\r\n ...(hasIcon && {\r\n padding: children ? \"8px 15px\" : \"8px\",\r\n }),\r\n [`.${buttonClasses.startIcon}, .${buttonClasses.endIcon} `]: {\r\n \"& > svg\": {\r\n height: \"18px\",\r\n width: \"18px\",\r\n minHeight: \"18px\",\r\n minWidth: \"18px\",\r\n margin: \"0\",\r\n },\r\n },\r\n [`.${buttonClasses.startIcon}`]: {\r\n marginLeft: 0,\r\n marginRight: children ? \"8px\" : 0,\r\n },\r\n [`.${buttonClasses.endIcon}`]: {\r\n marginLeft: children ? \"8px\" : 0,\r\n marginRight: 0,\r\n },\r\n },\r\n // size - extralarge\r\n [`&.MuiButton-sizeExtralarge`]: {\r\n fontSize: \"16px\",\r\n lineHeight: \"16px\",\r\n padding: children ? \"15px 22px\" : \"15px\",\r\n ...(hasIcon && {\r\n padding: children ? \"14px 22px\" : \"14px\",\r\n }),\r\n [`.${buttonClasses.startIcon}, .${buttonClasses.endIcon} `]: {\r\n \"& > svg\": {\r\n height: \"18px\",\r\n width: \"18px\",\r\n minHeight: \"18px\",\r\n minWidth: \"18px\",\r\n margin: \"0\",\r\n },\r\n },\r\n [`.${buttonClasses.startIcon}`]: {\r\n marginLeft: 0,\r\n marginRight: children ? \"10px\" : 0,\r\n },\r\n [`.${buttonClasses.endIcon}`]: {\r\n marginLeft: children ? \"10px\" : 0,\r\n marginRight: 0,\r\n },\r\n },\r\n svg: {\r\n margin: \"2px\",\r\n opacity: \"1\",\r\n },\r\n \"&.Mui-disabled\": {\r\n cursor: \"default\",\r\n pointerEvents: \"none\",\r\n },\r\n }\r\n})\r\n\r\nexport const Button = forwardRef((props, ref) => {\r\n return (\r\n \r\n {props.value || props.children}\r\n \r\n )\r\n})\r\n","import { IconButton as MuiIconButton, IconButtonProps as MuiIconButtonProps, styled } from \"@mui/material\"\r\nimport { ComponentType } from \"react\"\r\n\r\nexport type IconButtonProps = Omit & {\r\n variant?: \"fill\"\r\n hoverEffect?: boolean\r\n noPadding?: boolean\r\n size?: \"auto\" | MuiIconButtonProps[\"size\"]\r\n}\r\n\r\nexport const IconButton = styled(MuiIconButton, {\r\n shouldForwardProp: (prop: string) => ![\"hoverEffect\", \"noPadding\"].includes(prop),\r\n})(({ color, theme, size = \"medium\", hoverEffect, noPadding }) => {\r\n const themeColor = color && (color === \"inherit\" ? undefined : theme.palette?.[color === \"default\" ? \"primary\" : color])\r\n\r\n return {\r\n // color: themeColor?.main,\r\n verticalAlign: \"top\",\r\n\r\n \"&.MuiButtonBase-root:hover\": {\r\n backgroundColor: \"inherit\",\r\n ...(themeColor && {\r\n color: themeColor.light,\r\n }),\r\n },\r\n\r\n ...(size === \"extrasmall\" && {\r\n padding: 1,\r\n svg: {\r\n fontSize: 12,\r\n },\r\n }),\r\n\r\n ...(size === \"small\" && {\r\n padding: 2,\r\n svg: {\r\n fontSize: 16,\r\n },\r\n }),\r\n\r\n ...(size === \"medium\" && {\r\n padding: 4,\r\n svg: {\r\n fontSize: 20,\r\n },\r\n }),\r\n\r\n ...(size === \"large\" && {\r\n padding: 6,\r\n svg: {\r\n fontSize: 24,\r\n },\r\n }),\r\n\r\n ...(size === \"extralarge\" && {\r\n padding: 8,\r\n svg: {\r\n fontSize: 32,\r\n },\r\n }),\r\n\r\n ...(noPadding && {\r\n padding: 0,\r\n }),\r\n\r\n ...(hoverEffect && {\r\n \"&:hover\": {\r\n color: theme.palette.primary.main,\r\n },\r\n }),\r\n }\r\n}) as ComponentType\r\n","import { styled } from \"@mui/material\"\r\nimport { memo } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { Button, ButtonProps } from \"./button\"\r\n\r\nexport type LinkButtonProps = ButtonProps & {\r\n to: string\r\n}\r\n\r\nconst StyledLink = styled(Link)(({ theme }) => {\r\n return {\r\n textDecoration: \"none\",\r\n \"&.disabled\": {\r\n color: theme.palette.common.black,\r\n cursor: \"default\",\r\n opacity: 0.38,\r\n },\r\n }\r\n})\r\n\r\nexport const LinkButton = memo((props) => {\r\n const { children, to, ...rest } = props\r\n return (\r\n \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 { IconProps, Icon } from \"../../DataDisplay/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: IconProps) {\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 { 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 \"../datePicker/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 \"../../DataDisplay/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 { 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 { ElementType } from \"react\"\r\nimport { lighten, MenuItemTypeMap, MenuItem as MuiMenuItem, MenuItemProps as MuiMenuItemProps, styled } from \"@mui/material\"\r\n\r\nexport type MenuItemProps = Omit, \"value\"> & {\r\n value?: any\r\n}\r\n\r\nconst StyledMenuItem = styled(MuiMenuItem)(({ theme }) => ({\r\n \"&.Mui-selected\": {\r\n backgroundColor: lighten(theme.palette.primary.main, 0.8),\r\n \"&:hover\": {\r\n backgroundColor: lighten(theme.palette.primary.main, 0.75),\r\n },\r\n },\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.grey[200],\r\n },\r\n}))\r\n\r\nexport function MenuItem(props: MenuItemProps) {\r\n const { children } = props\r\n\r\n return {children}\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 \"../../DataDisplay/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 \"../../DataDisplay/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: \"center\",\r\n \"&.Mui-selected\": {\r\n color: theme.palette.getContrastText(lighten(theme.palette.primary.main, 0.5)),\r\n backgroundColor: lighten(theme.palette.primary.main, 0.5),\r\n \"&:hover\": {\r\n backgroundColor: lighten(theme.palette.primary.main, 0.5),\r\n },\r\n },\r\n \"&:hover\": {\r\n backgroundColor: lighten(theme.palette.primary.main, 0.5),\r\n color: 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 } from \"@mui/material\"\r\nimport { PropsWithChildren, forwardRef, useCallback } from \"react\"\r\nimport { Icon, IconProps } from \"../../DataDisplay/Icons\"\r\nimport { Loader } from \"../../Feedback/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\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 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 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 },\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 const IconComponent = useCallback(\r\n (iconProps: IconProps) => (isloading ? : ),\r\n [isloading]\r\n )\r\n\r\n return (\r\n ({\r\n backgroundColor: theme.overwrites?.components?.select?.menu?.backgroundColor || \"#fff\",\r\n border: 1,\r\n borderColor: theme.overwrites?.components?.select?.menu?.borderColor || theme.palette.primary.main,\r\n }),\r\n },\r\n }}\r\n IconComponent={IconComponent}\r\n {...rest}\r\n >\r\n {children}\r\n \r\n )\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 { 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 { styled } from \"@mui/material\"\r\nimport { IconButton } from \"../button\"\r\n\r\nexport const ArrowUp = styled(IconButton)(({ theme }) => ({\r\n padding: 0,\r\n margin: 0,\r\n overflow: \"hidden\",\r\n svg: {\r\n fontSize: 15,\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 = styled(IconButton)(({ theme }) => ({\r\n padding: 0,\r\n margin: 0,\r\n overflow: \"hidden\",\r\n svg: {\r\n fontSize: 15,\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 \"../../DataDisplay/Icons\"\r\nimport { Typography } from \"../../DataDisplay/typographie\"\r\nimport { ArrowUp, ArrowDown } from \"./Arrows\"\r\nimport { Tooltip } from \"../../DataDisplay/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 { 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 { AccordionSummary as MuiAccordionSummary, AccordionSummaryProps, styled, accordionSummaryClasses } from \"@mui/material\"\r\nimport { FC } from \"react\"\r\nimport { Icon } from \"../../DataDisplay/Icons\"\r\n\r\nfunction RawAccordionSummary(props: AccordionSummaryProps) {\r\n return } {...props} />\r\n}\r\n\r\nexport const AccordionSummary: FC = styled(RawAccordionSummary)(({ theme }) => ({\r\n flexDirection: \"row-reverse\",\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n [`& .${accordionSummaryClasses.content}`]: {\r\n marginLeft: theme.spacing(1),\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 { 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 { 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 { Box, Card, CardContent, CardHeader, CardProps, SxProps, Theme, styled } from \"@mui/material\"\r\nimport { PropsWithChildren, ReactNode } from \"react\"\r\nimport { Icon } from \"../../DataDisplay/Icons\"\r\n\r\nconst StyledCard = styled(Card, {\r\n shouldForwardProp: (prop) => prop !== \"disabled\",\r\n})<{ disabled?: boolean }>(({ theme, disabled }) => ({\r\n border: \"1px solid transparent\",\r\n transition: \"all .2s ease\",\r\n position: \"relative\",\r\n overflow: \"unset\", // this is for dropdown items\r\n\r\n ...(disabled && {\r\n opacity: 0.6,\r\n pointerEvents: \"none\",\r\n zIndex: -1,\r\n \"&:after\": {\r\n content: '\"\"',\r\n position: \"absolute\",\r\n width: \"100%\",\r\n height: \"inherit\",\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n zIndex: 2,\r\n },\r\n }),\r\n}))\r\n\r\nconst StyledCardContent = styled(CardContent)({\r\n padding: \"1em\",\r\n \"&:last-child\": {\r\n paddingBottom: \"1em\",\r\n },\r\n})\r\n\r\nconst StyledCardHeader = styled(CardHeader)({\r\n padding: \"1em 1em 0 1em\",\r\n})\r\n\r\nexport type SimpleCardProps = CardProps & {\r\n title?: string\r\n subHeader?: ReactNode\r\n icon?: string\r\n disabled?: boolean\r\n sxCard?: SxProps\r\n sxHeader?: SxProps\r\n sxContent?: SxProps\r\n}\r\n\r\nexport function SimpleCard(props: PropsWithChildren) {\r\n const { title, icon, disabled, subHeader, sxCard, sxHeader, sxContent, children, sx, ...rest } = props\r\n const avatar = icon ? : null\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n )\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 \"../muiStyled/DataDisplay/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 extrasmall: true\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 { mapAvailabilityStatusToLevel } from \"@tm/utils\"\r\nimport { Box, SanitizedHTMLBox } from \"@tm/components\"\r\nimport { Icon, Image } from \"../..\"\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 const innerHTML = `${tourDate || \"\"} ${tourDate && tourName ? \"
    \" : \"\"} ${tourName || \"\"}`\r\n\r\n return (\r\n \r\n {imageElement}\r\n {(tourDate || tourName) && (\r\n \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 { 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 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 type { TArticleListV2DisplayBehavior } from \"@tm/context-distribution\"\r\nimport { RecommendedProductGroupState } from \"@bundles/parts/components/ListV2/states\"\r\nimport type {\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 ProductGroup,\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 type { AvailabilityComponentProps, ErpIconType, ErpInformation, ErpInformationRequestItem, ErpPrice, ErpSystemConfig } from \"../erp\"\r\nimport { Note } from \"../notes\"\r\nimport type { ManufacturerBase, Vehicle } from \"../vehicle\"\r\nimport type { 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 ArticleActionComponent = {\r\n displayType: \"COMPONENT\",\r\n iconType: ErpIconType,\r\n sort: number\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 | ArticleActionComponent)[]\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 articles?: Article[]\r\n ListComponent: FC\r\n customerAlsoBoughtDetails: CustomerAlsoBoughtDetails\r\n onProductGroupClick?: (productGroup: ProductGroup, isRecommended?: boolean) => void\r\n CustomerAlsoBoughtArticlesChain: () => JSX.Element | null\r\n RecommendedArticlesChain: () => JSX.Element | null\r\n productGroups?: RecommendedProductGroupState\r\n displayCustomerAlsoBoughtTab: boolean\r\n}\r\n\r\nexport type CustomerAlsoBoughtDetails = {\r\n articles?: Article[]\r\n productGroups?: ProductGroup[]\r\n displayButton?: boolean\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 FoundBy = -11,\r\n Memos = -12,\r\n Ims = -13,\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 Sort: number\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 \"Bus\",\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 Autocomplete = 88,\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 VehicleInfoCrmMicro,\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 { 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 - starts at 1)\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","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 case ETyresCarType.Bus:\r\n return \"bus\"\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 case ETyresCarType.Bus:\r\n return 13916\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","/* eslint-disable default-case */\r\nimport { CategoryType, channel, GetArticlesRequest, GetArticlesResponse, Article, Vehicle, TmaEModule } from \"@tm/models\"\r\nimport { isArray } from \"lodash\"\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\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 += 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 =\r\n 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\r\n const origin = trackingData.payload\r\n if (origin) {\r\n this.temporaryRequestBody.origin = origin === \"vehicleParts\" ? 96 : 71\r\n }\r\n\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(({ 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 attachProductGroupFilters = (productGroupFilters: Array) => {\r\n if (!productGroupFilters || productGroupFilters.length === 0) {\r\n return\r\n }\r\n\r\n this.temporaryRequestBody.productGroupFilters = productGroupFilters.map(({ 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 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 (previousPageIndex < (result?.pageIndex ?? request.pageIndex ?? 1) && this.temporaryRequestBody.searchStep) {\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","/* eslint-disable default-case */\r\nimport { GetArticlesRequest, getCurrentWorkTaskId, GetUniArticlesResponse, Article, TmaEModule } from \"@tm/models\"\r\nimport { SearchExecutedRequest, ArticleListInfo } from \"./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 case \"categoryChanged\": {\r\n this.reset()\r\n if (trackingData.payload) {\r\n this.temporaryRequestBody.origin = TmaEModule.PREMIUMUNIPARTSSEARCH_ARTICLE_LIST\r\n }\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 TmaEventTracking.dispatchTrack({\r\n tmaEvent: TMA_EVENT,\r\n bundle: \"parts\",\r\n action: \"categoryChanged\",\r\n payload: \"uniParts\",\r\n } as any)\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","/* eslint-disable default-case */\r\nimport { 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 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 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","alignItems","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","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","IconButton","hoverEffect","noPadding","_ref3","minHeight","isLoading","LinearProgress","StyledImage","styled","Image","objectFit","_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","Watchlist","unshift","Memos","memos","MemoTooltip","iconName","alignSelf","MoreMenuButton","Selection","StyledTable","flex","marginRight","tr","td","padding","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","margin","_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","svg","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","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","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","SanitizedHTMLBox","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","additionalErpPrice","COMPACTMODE_ALIGN_BOTTOM","ErpIconsWrapper","DefaultArticleErpContainer","requestErpInfo","ErpContainer","OePartErpContainer","hideExtendedDelivery","WholesalerErpContainer","alternative","_defaultArticleErpInf","_alternativeArticleEr","classes","Skeleton","ErpContainerComponent","_defaultErpInfo$costs","isPriceTypeHidden","defaultErpInfo","mainPricesWithAdditionalInfo","_defaultErpInfo$price","_defaultErpInfo$price2","_defaultErpInfo$speci","filteredPrices","specialIcons","Promotional","Retail","find","slice","_defaultErpInfo$price3","otherPrices","_defaultErpInfo$price4","_defaultErpInfo$price5","isTeccomRequestAvailable","ClickItem","background","translate","handleAddToBasket","_erpInfo$graduatedPri","erpInfo","amount","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","ARTICLE","getIcon","skin","Notifications","Alert","severity","marginY","OeInfoDescription","handlePartChange","parts","partId","selectedPart","onPartChange","Select","p","OeInfoDescription.displayName","ProductGroupButton","productGroup","onProductGroupClick","Container","RecommendedArticle","crossSelling","customerAlsoBoughtDetails","ListComponent","CustomerAlsoBoughtArticlesChain","RecommendedArticlesChain","productGroups","displayCustomerAlsoBoughtTab","activeNavIdentifier","setActiveNavIdentifier","_productGroups$recomm2","_productGroups$custom","_productGroups$recomm","handleNavSelect","nextNavIdentifier","setTimeout","isEnabled","Tabs","Tab","recommendedProductGroupsState","TabPanel","customerAlsoBoughtProductGroupsState","group","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","refsAlternative","AlternativeReferenceNo","StyledBasketButton","slot","overridesResolver","styles","root","borderTopLeftRadius","borderBottomLeftRadius","forwardRef","SubArticleContainer.displayName","SupplierBox","selected","showLogo","compactView","fitContent","wordBreak","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","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","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","StyledButton","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","displayTile","borderBottom","pointerEvents","DefaultArticleItemComponent","displayBehavior","ArticleListV2DisplayBehavior","Tile","displayCrossSelling","_x$crossSelling","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","EFilterNames","TyresIconsV2","TyresIcons","TileSeasonIconWithTyreEfficiency","onSelect","StyledIconsContainer","StyledIconButton","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","showTaxIncluded","isStrikeThrough","taxIncluded","valueTaxIncluded","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","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","plateStyle","getCountryWidth","licensePlateComponentInitiator","LicensePlateComponentInitiator","VehicleEditor","VehicleWidget","getFontSize","LicensePlate","isReadOnly","onChangeConfirm","required","plateValue","setPlateValue","showCountryCode","plateCountryCode","plateCountryCodeMapper","placeholder","toLocaleUpperCase","hasError","letterSpacing","plateId","errorHandling","errorMessage","iconPadding","PersonalData","VehicleInfoCrmMicro","getIconPadding","getPlateCountryBackground","marginInline","toUpperCase","isCountryInEU","toLowerCase","StyledBox","justifyItems","ModuleHeaderSlot","otherProps","gridTemplateRows","isTabsView","StyledButtonWrapper","_theme$margin$s","ContentFlex","MuiCustomModal","onOutsideClick","handleOkButton","disabledOkButon","showCloseButtonOnTheLeft","smallCloseButton","muitheme","matchesLg","matchesXl","percentWidth","Modal","keepMounted","hideCloseButton","ScrollContainer","WiderTooltip","NoteTooltip","renderSingleNoteItem","pt","NoteTooltip.displayName","NotesIcon","hasNote","notesButton","BorderedNoteButton","_theme$overwrites3","_theme$overwrites4","bottom","NotesButton","iconOnly","articleNotes","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","b","sanitizedHTML","sanitize","ALLOWED_TAGS","ALLOWED_ATTR","dangerouslySetInnerHTML","__html","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","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","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","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","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","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","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","_e","initialRegistration","mileAge","exec","month","year","formControlClasses","outlinedInputClasses","VinField","loadSuggests","suggests","setSuggests","suggestsLoading","setSuggestsLoading","renderInput","inputCounter","freeSolo","clearIcon","forcePopupIcon","_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","warning","getMapping","errorBlack","rgbToHex","startsWith","infoBlack","successBlack","warningBlack","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","EasyPopoverComponent","anchor","setAnchor","popoverActions","contentRef","useResizeRef","closePopup","toArray","isValidElement","PopoverActionButton","EasyPopoverContext","preventDefault","disableScrollLock","EasyPopoverComponent.displayName","EasyPopoverWithStatics","ActionButton","PopoverContent","useContext","cloneElement","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","Transition","Slide","TransitionComponent","Modal.displayName","ScrollWrapper","debouncedOnScrollBottom","ScrollContainer.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","char","IconBox","ColorizedIcon","StyledText","getIconData","_getIconData","Thumbnail","hasDashboardIcon","VehicleThumbnail","hasResetIcon","hasImg","calcTabWidth","CenterContent","InfoWrapper","CarInfo","CustomerInfo","TabWithImage","emptyText","onResetIconClick","fn","ms","_debounce2","debouncedFun","teardown","MuiBadge","defaultSmallProps","DefaultSvg","DefaultIcon","createSvgIcon","DefaultSvg.displayName","StyledSvgIcon","SvgIcon","_theme$palette","_ref$size","themeColor","svgClassName","xlinkHref","Icon.displayName","StyledDivider","MuiDivider","borderBottomWidth","TooltipComponent","_props$enterDelay","_props$enterNextDelay","childrenProp","tooltipRef","disabledHover","setDisabledHover","$$typeof","__emotion_base","wheelEventHandler","scrollEventHandler","_tooltipRef$current","contains","preventCloseOnScroll","tooltipProps","handleMouseEnter","element","showOnlyOnOverflow","handleMouseLeave","MuiTooltip","popper","disableHoverListener","colorDark","TypographyComponent","highPriority","StyledAlert","MuiAlert","_theme$palette2","_alertOverwrites$font","_alertOverwrites$font2","iconColor","iconThemeColor","alert","_ref2$fullwidth","fullwidth","componentVariant","AlertTitle","Alert.displayName","StyledLoader","circularProgressProps","Loader.displayName","ProgressBar","ProgressBar.displayName","spin","keyframes","_templateObject","ModernSpinner","borderTopColor","borderBottomColor","CenterWrapper","Spinner.displayName","HitHighlightPreTag","HitHighlightPostTag","AutocompleteHit","convertStringToReactNodes","CheckboxIcon","outlineOffset","CheckedIcon","StyledCheckbox","MuiCheckBox","bgcolor","span","checkedIcon","StyledFormControlLabel","MuiFormControlLabel","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","_overwritesButtonSele","_overwritesButtonSele2","_overwritesButtonSele3","_overwritesButtonSele4","_overwritesButtonSele5","_overwritesButtonSele6","_overwritesButtonPrim11","_overwritesButtonPrim12","_theme$opacity$disabl2","_overwritesButtonPrim13","_overwritesButtonPrim14","_overwritesButtonSele7","_overwritesButtonSele8","_overwritesButtonSele9","_overwritesButtonSele10","_overwritesButtonSele11","_overwritesButtonSele12","_overwritesButtonSele13","_overwritesButtonSele14","_overwritesButtonSele15","_overwritesButtonSele16","_overwritesButtonPrim15","_overwritesButtonPrim16","_theme$opacity$disabl3","_buttonOverwrites$out","_buttonOverwrites$out2","_buttonOverwrites$out3","_buttonOverwrites$out4","_buttonOverwrites$out5","_buttonOverwrites$out6","_theme$opacity$disabl4","_theme$opacity4","_theme$opacity5","_selectedColor$main","_selectedColor$dark","_selectedColor$main2","_selectedColor$light","_objectSpread5","endIcon","hasIcon","selectedColor","buttonOverwrites","overwritesBorderRadius","overwritesButtonPrimary","overwritesButtonSuccess","overwritesButtonOutlined","overwritesButtonSelectedColor","fontColor","fontFamilyOutlined","sizeSmall","sizeMedium","sizeLarge","_props$size","Button.displayName","MuiIconButton","StyledLink","LinkButton.displayName","StyledTextField","fixUTCDate","isValidDate","newDate","setUTCFullYear","getFullYear","getMonth","getDate","setUTCHours","CalendarIcon","DatePicker","localisation","renderInputOverride","_ref$textfieldProps","textfieldProps","onAccept","_objectWithoutPropertiesLoose","propertyIsEnumerable","enLocale","setLocale","dateError","setDateError","importLocaleFile","localeToSet","showTodayButton","minDate","isAfter","DateUnit","Day","maxDate","isBefore","dateMask","inputFormat","mask","validateDate","handleAccept","validatedDate","renderTextfield","castedParams","LocalizationProvider","dateAdapter","AdapterDateFns","localeText","todayButtonLabel","MuiDatePicker","disableMaskedInput","OpenPickerIcon","componentsProps","actionBar","views","DatePicker.displayName","DateRange","initialDate","rangeInDays","startDate","sub","days","setStartDate","endDate","setEndDate","textFieldProps","startLabel","newPeriod","onRangeChange","newEndDate","endLabel","DateTimePicker","MuiDateTimePicker","ampm","showToolbar","openTo","DateTimePicker.displayName","StyledRadioButton","MuiRadio","radioClasses","RadioButton","StyledMenuItem","MuiMenuItem","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","inputValue","setInputValue","maxValue","minValue","fillArray","scrollWrapperHeight","listRef","createRef","findIndex","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","iconColorHovered","backgroundColorHovered","filledInputTypo","selectedOutlined","selectIconSizes","WebkitTextFillColor","isloading","IconComponent","iconProps","MenuProps","menu","Select.displayName","SelectTextFieldComponent","maxLayerHeight","customIcon","SelectProps","selectProps","SelectTextField","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","_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","tabIndex","_inputRef$current2","_inputRef$current3","_inputRef$current4","minVal","onChangeHandler","_e$currentTarget$valu","_e$currentTarget","currentTargetValue","validatedValue","onBlurHandler","_e$currentTarget2","relatedTarget","parentElement","TextField.displayName","accordionSummaryClasses","MuiPaper","StyledPaper","ListItemPaper.displayName","SelectorPaper","StyledCard","StyledCardContent","CardContent","StyledCardHeader","CardHeader","SimpleCard","subHeader","sxCard","sxHeader","sxContent","avatar","subheader","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","newVehicle","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","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","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","formatter","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","preTag","postTag","replacer","reactStringReplace","escapeStringRegexp","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","Bus","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","shortCountryCode","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":""}