{"version":3,"file":"scripts/shared.f1cf217cd10e20a13ea6.min.js","mappings":"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ACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,SAAU,aACV,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,WACT,cAAe,aACf,aAAc,YACd,SAAU,aACV,aAAc,WACd,QAAS,aACT,QAAS,WACT,SAAU,WACV,QAAS,WACT,QAAS,aACT,QAAS,WACT,SAAU,aACV,SAAU,aACV,SAAU,aACV,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,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,EAAa/mI,OAAOqqD,KAAwCw8E,GAASx2H,QAAO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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, useMemo, 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 = useMemo(() => {\r\n return {\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 }, [handleClick, translateText])\r\n\r\n const getDocumentButton = useCallback(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 useMemo(\r\n () => (\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 \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 [article.additionalReferenceArticleInformation.links, articleAction, getDocumentButton, showPopper]\r\n )\r\n}\r\n","import { ArticleActionButton, ErpIconType } from \"@tm/models\"\r\nimport { useMemo } from \"react\"\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\r\n const isButton = !hideText && isExpanded\r\n\r\n return useMemo(() => {\r\n const handleClickEventWithTma = (event: React.MouseEvent) => {\r\n handler(event)\r\n sendTmaEvent(ErpIconType[iconType])\r\n }\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 }, [action, handler, icon, iconType, isButton, isHighlight, text, tooltip])\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 useMemo(\r\n () => (\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 [articleFoundBy.isLoading, foundByTexts, handleClick, hidePopper, showPopper, translateText]\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 useMemo(() => {\r\n return {wrappedContent}\r\n }, [tooltip, 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\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 return elements\r\n }, [\r\n articleActions?.informationArea,\r\n hasWatchList,\r\n highlightWatchlistButton,\r\n articleFoundBy,\r\n hasAdditionalInfo,\r\n erpInfos?.memos,\r\n memoTooltipIcon,\r\n isHighResolution,\r\n article,\r\n ])\r\n\r\n return useMemo(\r\n () => (\r\n \r\n \r\n {actionList}\r\n \r\n \r\n \r\n \r\n ),\r\n [actionList]\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 { useMemo } from \"react\"\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 return useMemo(() => {\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 }, [iconName, memos, translateText])\r\n}\r\n","import { Box, 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, useMemo, 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 useMemo(\r\n () =>\r\n 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 [handleClickMore, handleCloseMore, moreList, moreMenuEl, translateText]\r\n )\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, useMemo } 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 return useMemo(() => {\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 }, [alreadyOrdered, dmsInfo, expandedArticleList, generalInformations, notifications])\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 useMemo(\r\n () => (\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 [generalInformation, modificationStateText, refsOeNo, refsReplaced, refsReplacement, refsUtilityNo, textInformation, translateText]\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 { Box } from \"@tm/components\"\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 const renderAmountInfo = useMemo(() => !!amountInfo && , [amountInfo])\r\n\r\n return useMemo(\r\n () => (\r\n e.stopPropagation(),\r\n }}\r\n // eslint-disable-next-line react/jsx-no-duplicate-props\r\n InputProps={{\r\n endAdornment: renderAmountInfo,\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 [amountInfo, disabled, division, handleBlur, handleChange, handleFocus, handleKeyUp, maxAmountValue, quantity, renderAmountInfo]\r\n )\r\n}\r\n","import { MouseEvent, useMemo } 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 renderStyledBasketButton = useMemo(() => {\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 \r\n )\r\n }, [className, disabled, onAddToBasket, size, translateText])\r\n\r\n return useMemo(() => {\r\n const handleRemoveFromBasket = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n onRemoveFromBasket()\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 {renderStyledBasketButton}\r\n \r\n
\r\n )\r\n }, [basketQuantity, hideBasketQuantity, onRemoveFromBasket, renderStyledBasketButton, translateText])\r\n}\r\n","import { Stack } from \"@mui/material\"\r\nimport { useMemo } from \"react\"\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 useMemo(\r\n () => (\r\n \r\n \r\n \r\n \r\n ),\r\n [\r\n basketQuantity,\r\n compactView,\r\n disableButton,\r\n division,\r\n handleChangeQuantity,\r\n hasSuggestedQuantity,\r\n hideBasketQuantity,\r\n onAddToBasket,\r\n onRemoveFromBasket,\r\n originalQuantity,\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 useMemo(\r\n () => (\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 color,\r\n disabled,\r\n handleAddToCostEstimation,\r\n ref,\r\n size,\r\n sizeProps,\r\n theme.overwrites?.components?.addToCostEstimation?.button?.color,\r\n title,\r\n translateText,\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 const renderBasketAmountField = useMemo(\r\n () => (\r\n \r\n ),\r\n [division, handleChangeQuantity, hasSuggestedQuantity, originalQuantity]\r\n )\r\n\r\n const renderAddToBasket = useMemo(\r\n () => (\r\n \r\n ),\r\n [\r\n addToBasketButtonDisabled,\r\n basketQuantity,\r\n division,\r\n expandedArticleList,\r\n handleAddToBasket,\r\n handleChangeQuantity,\r\n handleRemoveFromBasket,\r\n hasSuggestedQuantity,\r\n originalQuantity,\r\n ]\r\n )\r\n\r\n const renderCostEstimationButton = useMemo(\r\n () => (\r\n \r\n ),\r\n [addToCostEstimationButtonDisabled, handleAddToCostEstimation, showAddToBasket]\r\n )\r\n\r\n return useMemo(\r\n () => (\r\n \r\n {displayOnlyQuantity && hideAddToBasketButton && hideCostEstimationButton && renderBasketAmountField}\r\n {showAddToBasket && !hideAddToBasketButton && !showReplaceButton\r\n ? renderAddToBasket\r\n : isPartsListAvailable && !displayOnlyQuantity && }\r\n {handleReplaceArticle &&\r\n (showReplaceButton ||\r\n (!hideReplaceButtonWithQuantity && !showReplaceButton && hideCostEstimationButton && hideAddToBasketButton)) && (\r\n \r\n )}\r\n {!hideCostEstimationButton && renderCostEstimationButton}\r\n {displayMoreMenuButton && (\r\n \r\n \r\n \r\n )}\r\n \r\n ),\r\n [\r\n displayMoreMenuButton,\r\n displayOnlyQuantity,\r\n division,\r\n handleChangeQuantity,\r\n handleReplaceArticle,\r\n hideAddToBasketButton,\r\n hideCostEstimationButton,\r\n hideReplaceButtonWithQuantity,\r\n isPartsListAvailable,\r\n originalQuantity,\r\n renderAddToBasket,\r\n renderBasketAmountField,\r\n renderCostEstimationButton,\r\n showAddToBasket,\r\n showReplaceButton,\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, useMemo, 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\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 renderWatchLists = useMemo(\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 [toggleWatchList, translateText, watchLists]\r\n )\r\n\r\n return useMemo(() => {\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 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 {renderWatchLists}\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 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","handleClick","useCallback","state","articleAction","useMemo","AdditionalInformations","displayType","sort","getDocumentButton","articleInfoGroup","member","map","link","Button","size","description","startIcon","getDocumentTypeIcon","mediaType","href","content","target","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","hideText","tooltip","isExpanded","useDefaultArticleItemState","x","expanded","isButton","event","IconAction","Tooltip","title","ErpAreaActions","_articleErpInfos$defa","articleActions","articleErpInfos","response","graduatedPrices","erpArea","GraduatedPrices","FoundBy","articleFoundBy","anchorRef","unsubRef","foundByTexts","_articleFoundBy$hitIn","_articleFoundBy$hitIn2","hitInfos","searchFilter","referenceNo","manufacturerName","join","hidePopper","useEffect","_unsubRef$current","window","addEventListener","removeEventListener","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","modificationState","_useMemo","references","textInformation","refsReplacement","referenceType","ArticleReferenceType","ReplacementArticleNo","refsReplaced","ReplacedByArticleNo","refsUtilityNo","UtilityNo","refsOeNo","OeReferenceNo","modificationStateText","EArticleModificationState","ArticleAdded","VehicleLinkageAdded","_refsUtilityNo$0$desc","_refsOeNo$0$descripti","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","renderAmountInfo","min","max","step","onScroll","InputProps","endAdornment","onKeyUp","onFocus","onBlur","_inputRef$current","focus","QuantityBadge","RemoveIcon","BasketButton","hideBasketQuantity","renderStyledBasketButton","ArticleListAddToBasket","invisible","CostEstimationButtonComponent","_theme$overwrites2","sizeProps","button","CostEstimationButton.displayName","OeTransactions","_article$quantity","_useOeArticleItemStat","hideReplaceButtonWithQuantity","showReplaceButton","handleReplaceArticle","ReplaceButton","ReplaceButtonWithQuantity","PartsListButtonComponent","PartsListButton","StyledButton","disableMargin","Transactions","displayMoreMenuButton","displayOnlyQuantity","showAddToBasket","isPartsListAvailable","renderBasketAmountField","renderAddToBasket","renderCostEstimationButton","getContrastText","CustomMenuEntry","paddingBottom","SINGLEWATCHLISTNAME","watchList","WatchlistComponent","isInWatchList","initialWatchList","watchLists","toggleWatchList","createWatchList","isToggling","isCreating","createOrAddWatchlist","singleWatchlist","creationMode","setCreationMode","newListName","setNewListName","setWatchLists","_useState8","setAnchorEl","Boolean","renderWatchLists","listEntry","hasErrors","handleClose","Menu","MenuListProps","LoadingContainer","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","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":""}