{"version":3,"sources":["images/USFlag.svg","images/CanadaFlag.svg","components/OrderForm/Models/index.ts","components/Layout/Layout.tsx","components/OrderForm/StepOrderForm/WizardNavigationFooter.tsx","components/OrderForm/StepOrderForm/SelectSubscription.tsx","components/OrderForm/StepOrderForm/SelectSubscriptionOption.tsx","dataprovider/Common.ts","components/OrderForm/CustomerInformationForm.tsx","components/OrderForm/CustomerAgreementForm.tsx","components/OrderForm/StepOrderForm/SuccessBox.tsx","components/OrderForm/MaterialSelectionForm.tsx","components/OrderForm/StepOrderForm/OrderForm.tsx","components/OrderForm/CompleteForm/CompleteOrderForm.tsx","components/OrderForm/CompleteForm/OrderSummaryForm.tsx","components/AuthenticationProvider/AuthenticationConfig.ts","dataprovider/HttpService.ts","components/AuthenticationProvider/AuthenticationProvider.tsx","components/WelcomePage/Welcome.tsx","dataprovider/DataProvider.ts","App.js","registerServiceWorker.js","index.js","components/OrderForm/Models/IOrder.ts","components/OrderForm/Models/Enums.ts","images/str-group-white.svg"],"names":["module","exports","Layout","props","year","Date","getFullYear","Stack","className","horizontal","horizontalAlign","verticalAlign","onClick","window","location","href","origin","src","logo","alt","this","children","React","displayName","name","WizardNavigationButtons","tokens","childrenGap","wrap","step","totalSteps","ActionButton","iconProps","iconName","previousStep","nextStep","isUserAuthenticated","sendToCustomer","submitOrder","checkboxStyles","label","fontWeight","SelectSubscription","html","labels","DenToGoVirtualCheck","dtgSubscriptionVirtualCheck","selected","order","subscriptions","indexOf","DenToGoMonitoringLight","dtgSubscriptionMonitoringLight","getInitialState","setSubscriptions","showError","setShowError","sessionStorage","getItem","onChangeCheckBox","key","ev","checked","newSubscription","selectedSubscriptions","hasOwnProperty","push","length","updateFormData","verticalFill","css","stepSizeClass","Checkbox","styles","onChange","dtgSubscriptionVCDescriptionLabel1","dtgSubscriptionVCDescriptionLabel2","dtgSubscriptionMLDescriptionLabel1","dtgSubscriptionMLDescriptionLabel2","showWizardNavigation","StackItem","currentStep","anyOptionSelected","Text","variant","to","SelectSubscriptionOption","undefined","soMonitoringLightStarterKit","soVirtualCheck","soMonitoringLightTrainingOption","subscriptionOptions","setSubscriptionOptions","showVCError","setShowVCError","showMLError","setShowMLError","showMLKitError","setShowMLKitError","trainingOptionsVC","vcTrainingOption1","text","vcTrainingOption2","mlTrainingOption1","mlTrainingOption2","ChoiceGroup","required","selectedKey","defaultSelectedKey","options","option","flexContainer","whiteSpace","mlStarterKit","dangerouslySetInnerHTML","__html","mlStarterKitDescriptionLabel","isValid","materialList","goToStep","Common","fieldName","fieldType","isRequiredField","currentValue","errorState","CustomFieldTypes","Number","requiredFieldValidatorNumericField","isNaN","parseFloat","setFieldValidationStateInvalid","setFieldValidationStateValid","Integer","requiredFieldValidatorIntegerField","isInteger","MultiUser","User","EMail","Email","requiredFieldValidator","validEmail","File","MultiLine","requiredFieldValidatorMultiLineField","DateTime","email","test","String","toLowerCase","value","errorMessage","scriptURL","callbackFunction","script","document","createElement","async","body","appendChild","onload","renderCheckBoxlabel","defaultRender","customer","dentalOfficeEmail","businessName","businessAddress","city","state","zipCode","phoneNumber","nameAndTitle","clinicalEmail","npi","license","taxId","gender","speciality","territoryManager","userAccount","territoryManagerEmail","mail","CustomerInformationForm","onChangeTextField","event","newValue","newCustomerInformation","customerInformation","setState","newErrorState","validateFieldBasedOnType","onChangeDropdownField","index","validateCustomerInfo","Object","entries","forEach","entry","country","goToNextStep","goToPreviousStep","onSendOrderToCutomer","updateFormProperties","prevProps","prevState","JSON","stringify","zeroPadding","isReadonly","TextField","multiline","rows","Dropdown","states","placeholder","ariaLabel","getInitialSignatureState","signatures","CustomerAgreementForm","signaturePadRef","rapidPay","tokenizeResponse","initialiseDelegoPaymentWindow","a","showPaymentSectionLoadingText","paymentSettings","paymentAccessTokenResponse","now","expireTime","openRapidPay","token","DelegoRapidPay","Show","PaymentSummary","dataProvider","getPaymentAccessToken","tokenResponse","paymentAccessToken","Checkout","setPaymentAccessToken","authorizationToken","show","component","open","url","paymentURL","paymentRequest","currencyCode","total","element","iframeclass","appclass","events","onApplicationInitialized","console","log","onTokenizeSuccess","signedTokenizeResponse","setPaymentInfo","payment","cardType","cardExpiration","month","cardholderName","onFailure","error","doPaymentRelatedSteps","paymentSteps","PaymentSteps","Tokenize","Authenticate","Authorize","CreateSalesOrder","authenticatePayment","threeDSecureInfo","authorizePayment","createSalesOrder","authenticateRequest","amount","currency","billingAddress","shippingAddress","useVerifiableResponse","authenticate","then","threeDSecureInfoResponse","tokenID","validatePaymentToken","status","catch","authorize","preAuth","address","threeDSecure","authorizationResponse","authorization","header","docType","salesOrg","distributionChannel","division","items","itemNumber","material","plant","scheduleLines","quantity","partners","customerNumber","role","firstName","lastName","street","region","postalCode","so","signatureName","showSignatureError","acceptTermCondition","showAcceptTermConditionError","acceptTermConditionAnother","showAcceptTermConditionAnotherError","validateSignaturesAndTerms","current","toData","validatePaymentDetails","showPaymentDetailsNotFoundError","alert","onSubmitOrder","fromDataURL","cardExpiryDate","id","Spinner","size","SpinnerSize","large","ariaLive","IconButton","title","clear","canvasProps","ref","clearOnResize","onEnd","getTrimmedCanvas","toDataURL","disabled","termsAndConditionLabel","onRenderLabel","termsAndConditionLabelKit","style","fontSize","SuccessBox","refreshUrl","pathname","PageURL","CreateOrder","CreateOrderAuthenticated","message","MaterialSelectionForm","allowUpdate","setMaterialList","newMaterialList","map","x","materialSelectionList","rowIndex","renderHardwareTable","isReadOnly","innerWidth","renderListViewMaterialList","renderTabularViewMaterialList","parse","tBody","tHead","description","pricing","toLocaleString","root","display","maxWidth","toString","minimumFractionDigits","maximumFractionDigits","listEntries","marginLeft","transitions","enterRight","enterLeft","exitRight","exitLeft","intro","OrderForm","updateForm","properties","property","onStepChange","stats","activeStep","setInstance","stepWizardContext","accessTokenResponse","paymentInfo","showWaitingSpinner","requestSubmitter","Title","orderStatus","filter","createSendToCutomerOrder","result","hideSpinnerAndShowSuccessMessage","hideSpinnerAndShowErrorMessage","onCreateOrder","createOrder","messageType","MessageBarType","success","showOrderSuccessMessage","errorAreaName","logErrorInConsole","extractErrorMessageFromErrorObject","isLoading","getApplicationSettings","applicationSettings","loadScript","applicationLabels","getStatesLists","sort","history","reversed","MessageBar","onDismiss","messageBarType","isMultiline","truncated","subscriptionContainerInnerWidth50","subscriptionContainerInnerWidth90","isHashEnabled","isLazyMount","instance","hashKey","Dialog","hidden","dialogContentProps","type","DialogType","normal","modalProps","isBlocking","CompleteOrderForm","customerInfoFormRef","customerAgreementFormRef","align","sub","OrderSummaryForm","submitSignedOrder","query","URLSearchParams","search","orderId","get","promiseArray","getOrder","Promise","all","msalConfig","auth","authority","clientId","navigateToLoginRequestUrl","cache","cacheLocation","storeAuthStateInCookie","loginRequest","scopes","graphConfig","fetchMsGraph","accessToken","fetch","headers","Authorization","response","json","HttpService","method","ok","LockIcon","Icon","marginRight","WelcomePage","getTheme","setCountry","PrimaryButton","setItem","allowDisabledFocus","flagUS","flagCanada","DataProvider","apiEndpointSP","apiEndpointPayment","apiEndpointAppSettings","decodedToken","encodeURIComponent","created","modified","post","errorArea","errorObj","logError","stack","msg","substring","trim","getStatesListsUS","getProvinceListCA","OrderSummary","App","AuthenticatedComponent","componentProps","AuthenticatedOrderForm","useRedirectForAuthentication","msalInstance","handleResponse","resp","loginRequestNew","account","acquireToken","user","isAuthenticating","currentAccounts","getAllAccounts","request","redirect","acquireTokenSilent","warn","InteractionRequiredAuthError","acquireTokenRedirect","acquireTokenPopup","onSignIn","loginRedirect","loginPopup","loginResponse","skipSignIn","msalConfigFromServer","msalConfigUpdated","msal","handleRedirectPromise","err","errorCode","logout","exact","path","render","Component","Boolean","hostname","match","initializeIcons","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","basename","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.5118cf09.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/USFlag.4c3d08c6.svg\";","module.exports = __webpack_public_path__ + \"static/media/CanadaFlag.b71457da.svg\";","export * from './IApplicationLabels';\r\nexport * from './IApplicationSettings';\r\nexport * from './IAuthenticationSettings';\r\nexport * from './IFormProps';\r\nexport * from './IOrder';\r\nexport * from './IPaymentSettings';\r\nexport * from './Enums';\r\nexport * from './IMaterial';","import * as React from 'react';\r\nimport './Layout.scss';\r\nimport logo from '../../images/str-group-white.svg';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { Stack } from 'office-ui-fabric-react';\r\n\r\nexport class Layout extends React.Component {\r\n static displayName = Layout.name;\r\n private year = new Date().getFullYear();\r\n\r\n constructor(props: any) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
{ window.location.href = window.location.origin; }}>Dental Monitoring™
\r\n
\"Straumann
\r\n
\r\n
\r\n {/* */}\r\n {/*

Service Agreement

*/}\r\n
{this.props.children}
\r\n {/*
*/}\r\n\r\n
\r\n \r\n © {this.year} Institut Straumann AG\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { Stack, ActionButton } from 'office-ui-fabric-react';\r\n\r\nconst WizardNavigationButtons = (props: {\r\n currentStep?: any;\r\n firstStep?: any;\r\n goToStep?: any;\r\n lastStep?: any;\r\n nextStep?: any;\r\n previousStep?: any;\r\n totalSteps?: any;\r\n step?: any;\r\n sendToCustomer?: any;\r\n submitOrder?: any;\r\n isUserAuthenticated?: boolean;\r\n}) => (\r\n
\r\n \r\n {\r\n props.step > 1 || props.step < props.totalSteps ?\r\n
\r\n {\r\n props.step > 1 && Go Back\r\n }\r\n {\r\n props.step < props.totalSteps -1 && Next\r\n }\r\n
\r\n : null\r\n }\r\n {\r\n props.step === props.totalSteps || props.step === 4 ?\r\n
\r\n {\r\n props.step === 4 &&\r\n \r\n {\r\n props.isUserAuthenticated ? Send To Customer : null\r\n }\r\n Sign Order\r\n \r\n }\r\n {\r\n props.step === props.totalSteps && Submit Order\r\n }\r\n
\r\n : null\r\n }\r\n
\r\n
\r\n );\r\n\r\nexport default WizardNavigationButtons;","import * as React from 'react';\r\nimport { css, Checkbox, Stack, ICheckboxStyles, StackItem, Text } from 'office-ui-fabric-react';\r\nimport WizardNavigationButtons from './WizardNavigationFooter';\r\nimport { IFormProps } from '../Models';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport interface ISelectSubscriptionProps extends IFormProps {\r\n\r\n}\r\n\r\ntype Subscription = {\r\n [key: string]: {\r\n name: string | undefined;\r\n selected: boolean | undefined;\r\n }\r\n}\r\n\r\nconst getInitialState = (props: ISelectSubscriptionProps): Subscription => {\r\n return {\r\n DenToGoVirtualCheck: {\r\n name: props.labels?.dtgSubscriptionVirtualCheck,\r\n selected: props.labels && props.order && props.order.subscriptions ? props.order.subscriptions.indexOf(props.labels?.dtgSubscriptionVirtualCheck) >= 0 : false\r\n },\r\n DenToGoMonitoringLight: {\r\n name: props.labels?.dtgSubscriptionMonitoringLight,\r\n selected: props.labels && props.order && props.order.subscriptions ? props.order.subscriptions.indexOf(props.labels?.dtgSubscriptionMonitoringLight) >= 0 : false\r\n }\r\n };\r\n}\r\n\r\nconst checkboxStyles: ICheckboxStyles = {\r\n label: {\r\n fontWeight: 'bold'\r\n }\r\n}\r\n\r\nconst SelectSubscription = (props: ISelectSubscriptionProps) => {\r\n let html: JSX.Element = ;\r\n const labels = props.labels;\r\n const [subscriptions, setSubscriptions] = React.useState(getInitialState(props));\r\n const [showError, setShowError] = React.useState(false);\r\n const country = sessionStorage.getItem('Country');\r\n\r\n if (country) {\r\n const onChangeCheckBox = (key: string, name: string) => (ev?: React.FormEvent | undefined, checked?: boolean | undefined) => {\r\n const newSubscription: Subscription = {\r\n ...subscriptions,\r\n [key]: {\r\n name: name,\r\n selected: checked\r\n }\r\n };\r\n\r\n let selectedSubscriptions = [];\r\n\r\n for (const key in newSubscription) {\r\n if (newSubscription.hasOwnProperty(key)) {\r\n if (newSubscription[key] && newSubscription[key].selected) {\r\n selectedSubscriptions.push(newSubscription[key].name);\r\n }\r\n\r\n }\r\n }\r\n\r\n if (selectedSubscriptions.length)\r\n setShowError(false);\r\n else\r\n setShowError(true);\r\n\r\n setSubscriptions(newSubscription)\r\n\r\n props.updateFormData('subscriptions', selectedSubscriptions);\r\n }\r\n\r\n const validateSubscription = () => {\r\n let anyOptionSelected = false;\r\n for (const key in subscriptions) {\r\n if (subscriptions.hasOwnProperty(key)) {\r\n if (subscriptions[key] && subscriptions[key].selected) {\r\n anyOptionSelected = true;\r\n break;\r\n }\r\n\r\n }\r\n }\r\n\r\n if (anyOptionSelected) {\r\n setShowError(false);\r\n props.nextStep && props.nextStep();\r\n }\r\n else {\r\n setShowError(true);\r\n }\r\n };\r\n\r\n\r\n\r\n if (labels)\r\n html = (\r\n \r\n \r\n
\r\n

Please choose Subscriptions

\r\n
\r\n \r\n
\r\n {labels?.dtgSubscriptionVCDescriptionLabel1}\r\n {labels?.dtgSubscriptionVCDescriptionLabel2}\r\n
\r\n \r\n
\r\n {labels?.dtgSubscriptionMLDescriptionLabel1}\r\n {labels?.dtgSubscriptionMLDescriptionLabel2}\r\n
\r\n {\r\n showError ?\r\n
\r\n Please select atleast one Subscription.\r\n
: null\r\n }\r\n
\r\n {\r\n props.showWizardNavigation ?\r\n \r\n \r\n \r\n : null\r\n }\r\n
\r\n );\r\n }\r\n else {\r\n html = Country not specified. Click here to start again;\r\n }\r\n\r\n\r\n return html;\r\n}\r\n\r\nexport default SelectSubscription;","import * as React from 'react';\r\nimport { css, Checkbox, Stack, ICheckboxStyles, StackItem, ChoiceGroup, IChoiceGroupOption } from 'office-ui-fabric-react';\r\nimport WizardNavigationButtons from './WizardNavigationFooter';\r\nimport { IFormProps, IMaterial } from '../Models';\r\n\r\nexport interface ISelectSubscriptionOptionProps extends IFormProps {\r\n materialList: IMaterial[];\r\n}\r\n\r\nexport interface ISubscriptionOptions {\r\n soVirtualCheck: string | undefined;\r\n soMonitoringLightStarterKit?: boolean | undefined;\r\n soMonitoringLightTrainingOption?: string | undefined;\r\n}\r\n\r\nconst getInitialState = (props: ISelectSubscriptionOptionProps): ISubscriptionOptions => {\r\n\r\n if (\r\n props.labels && props.order &&\r\n props.order.subscriptions?.indexOf(props.labels.dtgSubscriptionMonitoringLight) !== -1 &&\r\n props.order.soMonitoringLightStarterKit === undefined\r\n )\r\n props.updateFormData('soMonitoringLightStarterKit', false);\r\n else if (\r\n props.labels && props.order &&\r\n props.order.subscriptions?.indexOf(props.labels.dtgSubscriptionMonitoringLight) === -1 &&\r\n props.order.soMonitoringLightStarterKit) {\r\n props.updateFormData('soMonitoringLightStarterKit', false);\r\n }\r\n\r\n if (\r\n props.labels && props.order &&\r\n props.order.subscriptions?.indexOf(props.labels.dtgSubscriptionVirtualCheck) === -1 &&\r\n props.order.soVirtualCheck !== undefined &&\r\n props.order.soVirtualCheck !== null) {\r\n props.updateFormData('soVirtualCheck', null);\r\n }\r\n\r\n\r\n return {\r\n soVirtualCheck: props.order?.soVirtualCheck,\r\n soMonitoringLightStarterKit: props.order?.soMonitoringLightStarterKit === undefined ? false : props.order?.soMonitoringLightStarterKit,\r\n soMonitoringLightTrainingOption: props.order?.soMonitoringLightTrainingOption\r\n };\r\n}\r\n\r\nconst checkboxStyles: ICheckboxStyles = {\r\n label: {\r\n fontWeight: 'bold'\r\n }\r\n}\r\n\r\n\r\n\r\nconst SelectSubscriptionOption = (props: ISelectSubscriptionOptionProps) => {\r\n const { order, labels } = props;\r\n const [subscriptionOptions, setSubscriptionOptions] = React.useState(getInitialState(props));\r\n const [showVCError, setShowVCError] = React.useState(false);\r\n const [showMLError, setShowMLError] = React.useState(false);\r\n const [showMLKitError, setShowMLKitError] = React.useState(false);\r\n\r\n let html: JSX.Element = ;\r\n\r\n if (labels) {\r\n const trainingOptionsVC: IChoiceGroupOption[] = [\r\n { key: labels?.vcTrainingOption1, text: labels?.vcTrainingOption1 },\r\n { key: labels?.vcTrainingOption2, text: labels?.vcTrainingOption2 },\r\n ];\r\n\r\n const trainingOptionsML: IChoiceGroupOption[] = [\r\n { key: labels?.mlTrainingOption1, text: labels?.mlTrainingOption1 },\r\n { key: labels?.mlTrainingOption2, text: labels?.mlTrainingOption2 },\r\n ];\r\n\r\n const onChangeStarterKit = (ev?: React.FormEvent | undefined, checked?: boolean | undefined) => {\r\n const newSubscription: ISubscriptionOptions = {\r\n ...subscriptionOptions,\r\n soMonitoringLightStarterKit: checked\r\n };\r\n setShowMLKitError(false);\r\n setSubscriptionOptions(newSubscription)\r\n\r\n props.updateFormData('soMonitoringLightStarterKit', checked);\r\n }\r\n\r\n const onChangeTrainingOption = (name: string) => (ev?: React.FormEvent, option?: IChoiceGroupOption) => {\r\n const newSubscription: ISubscriptionOptions = {\r\n ...subscriptionOptions,\r\n [name]: option?.key\r\n };\r\n\r\n if (name === 'soVirtualCheck') {\r\n if (newSubscription[name])\r\n setShowVCError(false);\r\n else\r\n setShowVCError(true);\r\n } else if (name === 'soMonitoringLightTrainingOption') {\r\n if (newSubscription[name])\r\n setShowMLError(false);\r\n else\r\n setShowMLError(true);\r\n }\r\n\r\n setSubscriptionOptions(newSubscription)\r\n\r\n props.updateFormData(name, option?.key);\r\n }\r\n\r\n const validateSubscriptionOptions = () => {\r\n let isValid = true;\r\n if (order?.subscriptions?.indexOf(labels.dtgSubscriptionVirtualCheck) !== -1) {\r\n if (!subscriptionOptions.soVirtualCheck) {\r\n isValid = false;\r\n setShowVCError(true);\r\n }\r\n else\r\n setShowVCError(false);\r\n }\r\n\r\n // if (order?.subscriptions?.indexOf(labels.dtgSubscriptionMonitoringLight) !== -1) {\r\n // if (!subscriptionOptions.soMonitoringLightTrainingOption) {\r\n // isValid = false;\r\n // setShowMLError(true);\r\n // }\r\n // else\r\n // setShowMLError(false);\r\n // }\r\n\r\n if (!subscriptionOptions.soMonitoringLightStarterKit)\r\n setShowMLKitError(true);\r\n else\r\n setShowMLKitError(false);\r\n\r\n\r\n if (isValid) {\r\n if (order?.subscriptions?.indexOf(labels.dtgSubscriptionMonitoringLight) !== -1) {\r\n if (props.materialList && props.materialList.length)\r\n props.nextStep && props.nextStep();\r\n else\r\n props.goToStep && props.goToStep(4);\r\n }\r\n else\r\n props.goToStep && props.goToStep(4);\r\n }\r\n };\r\n\r\n html = (\r\n \r\n \r\n
\r\n

Please choose Subscription option

\r\n
\r\n {\r\n order?.subscriptions?.indexOf(labels.dtgSubscriptionVirtualCheck) !== -1 ?\r\n
\r\n {labels?.dtgSubscriptionVirtualCheck}\r\n \r\n {\r\n showVCError ?\r\n
\r\n Please select atleast one Subscription Option.\r\n
: null\r\n }\r\n
\r\n : null\r\n }\r\n {\r\n order?.subscriptions?.indexOf(labels.dtgSubscriptionMonitoringLight) !== -1 ?\r\n
\r\n {labels?.dtgSubscriptionMonitoringLight}\r\n
\r\n
\r\n

Starter kit

\r\n
\r\n \r\n
\r\n
\r\n {\r\n showMLKitError ?\r\n
\r\n Please select Monitoring Light Starter kit.\r\n
: null\r\n }\r\n {/* */}\r\n {\r\n showMLError ?\r\n
\r\n Please select atleast one Subscription Option.\r\n
: null\r\n }\r\n
\r\n
\r\n : null\r\n }\r\n
\r\n {\r\n props.showWizardNavigation ?\r\n \r\n \r\n \r\n : null\r\n }\r\n
\r\n\r\n\r\n );\r\n }\r\n\r\n return html;\r\n}\r\n\r\nexport default SelectSubscriptionOption;","import * as React from 'react';\r\nimport { CustomFieldTypes, ErrorState } from \"../components/OrderForm/Models/IOrder\";\r\nimport { ICheckboxProps } from 'office-ui-fabric-react';\r\n\r\nexport class Common {\r\n\r\n public static validateFieldBasedOnType(fieldName: string, fieldType: CustomFieldTypes, isRequiredField: boolean, currentValue: any, errorState: ErrorState): ErrorState {\r\n switch (fieldType) {\r\n\r\n case CustomFieldTypes.Number:\r\n\r\n if (isRequiredField) {\r\n errorState = this.requiredFieldValidatorNumericField(currentValue, fieldName, errorState);\r\n if (errorState[fieldName].showError)\r\n return errorState;\r\n }\r\n\r\n if (currentValue) {\r\n if (!isNaN(currentValue as any)) {\r\n if (isNaN(parseFloat(currentValue))) {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Value should be numeric\", errorState);\r\n }\r\n else if (currentValue.length > 10) {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Value is too large.\", errorState);\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n }\r\n else {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Value should be numeric\", errorState);\r\n }\r\n\r\n\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n\r\n case CustomFieldTypes.Integer:\r\n\r\n if (isRequiredField) {\r\n errorState = this.requiredFieldValidatorIntegerField(currentValue, fieldName, errorState);\r\n if (errorState[fieldName].showError)\r\n return errorState;\r\n }\r\n\r\n if (currentValue) {\r\n if (!isNaN(currentValue as any)) {\r\n if (Number.isInteger(parseFloat(currentValue))) {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n else if (parseFloat(currentValue) <= 0) {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Please enter valid value.\", errorState);\r\n }\r\n else if (currentValue.length > 10) {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Value is too large.\", errorState);\r\n }\r\n else {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Only integer value is allowed\", errorState);\r\n }\r\n }\r\n else {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Only integer value is allowed\", errorState);\r\n }\r\n\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n\r\n case CustomFieldTypes.MultiUser:\r\n\r\n if (isRequiredField) {\r\n if (currentValue && currentValue.length) {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n else {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Required..\", errorState);\r\n }\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n\r\n case CustomFieldTypes.User:\r\n\r\n if (isRequiredField) {\r\n if (currentValue && currentValue.EMail) {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n else {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Required..\", errorState);\r\n }\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n\r\n case CustomFieldTypes.Email:\r\n if (isRequiredField) {\r\n errorState = this.requiredFieldValidator(currentValue, fieldName, errorState);\r\n if (errorState[fieldName].showError)\r\n return errorState;\r\n }\r\n\r\n if (!this.validEmail(currentValue)) {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Please specify valid E-Mail.\", errorState);\r\n } else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n\r\n case CustomFieldTypes.File:\r\n\r\n if (isRequiredField) {\r\n if (!currentValue || (currentValue as any[]).length <= 0) {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Please upload attachment.\", errorState);\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n\r\n case CustomFieldTypes.MultiLine:\r\n\r\n if (isRequiredField) {\r\n return this.requiredFieldValidatorMultiLineField(currentValue, fieldName, errorState);\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n\r\n case CustomFieldTypes.DateTime:\r\n case CustomFieldTypes.Date:\r\n\r\n if (isRequiredField) {\r\n if (currentValue) {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n else {\r\n return this.setFieldValidationStateInvalid(fieldName, \"Required..\", errorState);\r\n }\r\n\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n\r\n default:\r\n if (isRequiredField) {\r\n return this.requiredFieldValidator(currentValue, fieldName, errorState);\r\n }\r\n else {\r\n return this.setFieldValidationStateValid(fieldName, errorState);\r\n }\r\n }\r\n\r\n }\r\n\r\n public static validEmail(email: string) {\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\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 return re.test(String(email).toLowerCase());\r\n }\r\n\r\n public static requiredFieldValidator(value: string, fieldName: string, errorState: ErrorState): ErrorState {\r\n\r\n let errorMessage: string;\r\n let isValid: boolean;\r\n if (typeof value === 'boolean')\r\n value = String(value);\r\n\r\n if (value) {\r\n if (value.length > 0 && value.length <= 255) {\r\n isValid = true;\r\n errorMessage = \"\";\r\n }\r\n else if (value.length > 255) {\r\n isValid = false;\r\n errorMessage = \"No. of characters should be less than 255.\";\r\n }\r\n else {\r\n isValid = false;\r\n errorMessage = \"Required..\";\r\n }\r\n }\r\n else {\r\n isValid = false;\r\n errorMessage = \"Required..\";\r\n }\r\n\r\n errorState[fieldName] = {\r\n showError: !isValid,\r\n errorMessage: errorMessage\r\n };\r\n\r\n return errorState;\r\n }\r\n\r\n public static requiredFieldValidatorMultiLineField(value: string, fieldName: string, errorState: ErrorState): ErrorState {\r\n\r\n let errorMessage: string;\r\n let isValid: boolean;\r\n if (value) {\r\n if (value.length > 0) {\r\n isValid = true;\r\n errorMessage = \"\";\r\n }\r\n else {\r\n isValid = false;\r\n errorMessage = \"Required..\";\r\n }\r\n }\r\n else {\r\n isValid = false;\r\n errorMessage = \"Required..\";\r\n }\r\n\r\n errorState[fieldName] = {\r\n showError: !isValid,\r\n errorMessage: errorMessage\r\n };\r\n\r\n return errorState;\r\n }\r\n\r\n public static requiredFieldValidatorNumericField(value: string, fieldName: string, errorState: ErrorState): ErrorState {\r\n\r\n let errorMessage: string;\r\n let isValid: boolean;\r\n if (value) {\r\n if (!isNaN(value as any)) {\r\n if (isNaN(parseFloat(value))) {\r\n isValid = false;\r\n errorMessage = \"Value should be numeric\";\r\n }\r\n else if (value.length > 10) {\r\n isValid = false;\r\n errorMessage = \"Value is too large.\";\r\n }\r\n else {\r\n isValid = true;\r\n errorMessage = \"\";\r\n }\r\n }\r\n else {\r\n isValid = false;\r\n errorMessage = \"Value should be numeric\";\r\n }\r\n\r\n }\r\n else {\r\n isValid = false;\r\n errorMessage = \"Required..\";\r\n }\r\n\r\n errorState[fieldName] = {\r\n showError: !isValid,\r\n errorMessage: errorMessage\r\n };\r\n\r\n return errorState;\r\n }\r\n\r\n public static requiredFieldValidatorIntegerField(value: string, fieldName: string, errorState: ErrorState): ErrorState {\r\n\r\n let errorMessage: string;\r\n let isValid: boolean;\r\n if (value) {\r\n if (!isNaN(value as any)) {\r\n if (Number.isInteger(parseFloat(value))) {\r\n isValid = true;\r\n errorMessage = \"\";\r\n }\r\n else if (parseFloat(value) <= 0) {\r\n isValid = false;\r\n errorMessage = \"Please enter valid value.\";\r\n }\r\n else if (value.length > 10) {\r\n isValid = false;\r\n errorMessage = \"Value is too large.\";\r\n }\r\n else {\r\n isValid = true;\r\n errorMessage = \"Only integer value is allowed\";\r\n }\r\n }\r\n else {\r\n isValid = true;\r\n errorMessage = \"Only integer value is allowed\";\r\n }\r\n }\r\n else {\r\n isValid = false;\r\n errorMessage = \"Required..\";\r\n }\r\n\r\n errorState[fieldName] = {\r\n showError: !isValid,\r\n errorMessage: errorMessage\r\n };\r\n\r\n return errorState;\r\n }\r\n\r\n public static setFieldValidationStateInvalid(fieldName: string, errorMessage: string, errorState: ErrorState): ErrorState {\r\n\r\n errorState[fieldName] = {\r\n showError: true,\r\n errorMessage: errorMessage\r\n };\r\n\r\n return errorState;\r\n }\r\n\r\n public static setFieldValidationStateValid(fieldName: string, errorState: ErrorState): ErrorState {\r\n\r\n errorState[fieldName] = {\r\n showError: false,\r\n errorMessage: ''\r\n };\r\n\r\n return errorState;\r\n }\r\n\r\n public static renderCheckBoxlabel = (props?: ICheckboxProps, defaultRender?: (props?: ICheckboxProps) => JSX.Element | null): JSX.Element | null => {\r\n\r\n if (props && props.label) {\r\n\r\n return React.createElement(\"span\", {\r\n className: 'labelCheckBox',\r\n dangerouslySetInnerHTML: {\r\n __html: props && props.label ? props?.label : ''\r\n }\r\n })\r\n }\r\n else {\r\n return defaultRender ? defaultRender() : null;\r\n }\r\n }\r\n\r\n public static loadScript(scriptURL:string, callbackFunction?: Function) {\r\n const script = document.createElement(\"script\");\r\n\r\n script.src = scriptURL;\r\n script.async = true;\r\n\r\n document.body.appendChild(script);\r\n if (callbackFunction) {\r\n script.onload = () => {\r\n callbackFunction();\r\n }\r\n }\r\n \r\n }\r\n\r\n}","import * as React from 'react';\r\nimport { TextField, Stack, StackItem, Dropdown, IDropdownOption, css } from 'office-ui-fabric-react';\r\nimport WizardNavigationButtons from './StepOrderForm/WizardNavigationFooter';\r\nimport { IFormProps, CustomFieldTypes, ErrorState, IMaterial } from './Models';\r\nimport { Common } from '../../dataprovider/Common';\r\n\r\nexport interface ICustomerInformationFormProps extends IFormProps {\r\n isUserAuthenticated?: boolean;\r\n userAccount?: any;\r\n states: IDropdownOption[];\r\n materialList?: IMaterial[];\r\n onSendOrderToCutomer?: () => any | void | Promise;\r\n}\r\n\r\nexport interface ICustomerInformationFormState {\r\n customerInformation: ICustomerInformation;\r\n errorState: ErrorState;\r\n}\r\n\r\nexport interface ICustomerInformation {\r\n customer?: string | undefined;\r\n dentalOfficeEmail?: string | undefined;\r\n businessName?: string | undefined;\r\n businessAddress?: string | undefined;\r\n city?: string | undefined;\r\n state?: string | undefined;\r\n zipCode?: string | undefined;\r\n phoneNumber?: string | undefined;\r\n nameAndTitle?: string | undefined;\r\n clinicalEmail?: string | undefined;\r\n npi?: string | undefined;\r\n license?: string | undefined;\r\n taxId?: string | undefined;\r\n gender?: string | undefined;\r\n speciality?: string | undefined;\r\n territoryManager?: string | undefined;\r\n territoryManagerEmail?: string | undefined;\r\n}\r\n\r\n\r\nconst getInitialState = (props: ICustomerInformationFormProps): ICustomerInformation => {\r\n\r\n return {\r\n customer: props.order?.customer,\r\n dentalOfficeEmail: props.order?.dentalOfficeEmail,\r\n businessName: props.order?.businessName,\r\n businessAddress: props.order?.businessAddress,\r\n city: props.order?.city,\r\n state: props.order?.state,\r\n zipCode: props.order?.zipCode,\r\n phoneNumber: props.order?.phoneNumber,\r\n nameAndTitle: props.order?.nameAndTitle,\r\n clinicalEmail: props.order?.clinicalEmail,\r\n npi: props.order?.npi,\r\n license: props.order?.license,\r\n taxId: props.order?.taxId,\r\n gender: props.order?.gender,\r\n speciality: props.order?.speciality,\r\n territoryManager: props.order?.territoryManager ? props.order.territoryManager : props.isUserAuthenticated && props.userAccount ? props.userAccount.displayName : null,\r\n territoryManagerEmail: props.order?.territoryManagerEmail ? props.order.territoryManagerEmail : props.isUserAuthenticated && props.userAccount ? props.userAccount.mail : null,\r\n };\r\n}\r\n\r\nconst getInitialErrorState = (props: ICustomerInformationFormProps): ErrorState => {\r\n\r\n return {\r\n customer: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n dentalOfficeEmail: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n businessName: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n businessAddress: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n city: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n state: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n zipCode: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n phoneNumber: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n nameAndTitle: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n clinicalEmail: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n npi: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n license: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n taxId: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n gender: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n speciality: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n territoryManager: {\r\n errorMessage: '',\r\n showError: false\r\n },\r\n territoryManagerEmail: {\r\n errorMessage: '',\r\n showError: false\r\n }\r\n };\r\n}\r\n\r\n\r\nexport default class CustomerInformationForm extends React.Component {\r\n\r\n\r\n constructor(props: ICustomerInformationFormProps) {\r\n super(props);\r\n\r\n this.state = {\r\n customerInformation: getInitialState(props),\r\n errorState: getInitialErrorState(props)\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const customerInformation = this.state.customerInformation;\r\n\r\n if (customerInformation.territoryManager || customerInformation.territoryManagerEmail)\r\n this.props.updateFormProperties([\r\n { key: 'territoryManager', value: customerInformation?.territoryManager ?? null },\r\n { key: 'territoryManagerEmail', value: customerInformation?.territoryManagerEmail ?? null }\r\n ]);\r\n }\r\n\r\n componentDidUpdate(prevProps: ICustomerInformationFormProps, prevState: ICustomerInformationFormState) {\r\n if (JSON.stringify(prevProps.order) !== JSON.stringify(this.props.order)) {\r\n this.setState({\r\n customerInformation: getInitialState(this.props)\r\n });\r\n }\r\n }\r\n\r\n private onChangeTextField = (fieldName: string, fieldType: CustomFieldTypes) => (event: React.FormEvent, newValue?: string | undefined) => {\r\n const newCustomerInformation = {\r\n ...this.state.customerInformation,\r\n [fieldName]: newValue\r\n };\r\n\r\n this.setState({\r\n customerInformation: newCustomerInformation\r\n });\r\n\r\n if (newValue) {\r\n let newErrorState = { ...this.state.errorState };\r\n\r\n newErrorState = Common.validateFieldBasedOnType(fieldName, fieldType, true, newValue, newErrorState);\r\n\r\n this.setState({\r\n errorState: newErrorState\r\n });\r\n }\r\n\r\n this.props.updateFormData(fieldName, newValue);\r\n }\r\n\r\n private onChangeDropdownField = (fieldName: string, fieldType: CustomFieldTypes) => (event: React.FormEvent, option?: IDropdownOption | undefined, index?: number | undefined) => {\r\n const newCustomerInformation = {\r\n ...this.state.customerInformation,\r\n [fieldName]: option?.key\r\n };\r\n\r\n this.setState({\r\n customerInformation: newCustomerInformation\r\n });\r\n\r\n if (option?.key) {\r\n let newErrorState = { ...this.state.errorState };\r\n\r\n newErrorState = Common.validateFieldBasedOnType(fieldName, fieldType, true, option?.key, newErrorState);\r\n\r\n this.setState({\r\n errorState: newErrorState\r\n });\r\n }\r\n\r\n this.props.updateFormData(fieldName, option?.key);\r\n };\r\n\r\n public validateCustomerInfo = (): boolean => {\r\n const customerInformation = this.state.customerInformation;\r\n let isValid = true;\r\n let newErrorState = { ...this.state.errorState };\r\n\r\n Object.entries(customerInformation).forEach(entry => {\r\n\r\n if (this.props.order?.country === 'Canada' && (entry[0] === 'npi' || entry[0] === 'taxId')) {\r\n //Do nothing and skip validation\r\n } else {\r\n\r\n let fieldType: CustomFieldTypes;\r\n\r\n switch (entry[0]) {\r\n case 'dentalOfficeEmail':\r\n case 'clinicalEmail':\r\n fieldType = CustomFieldTypes.Email;\r\n break;\r\n case 'businessAddress':\r\n fieldType = CustomFieldTypes.MultiLine;\r\n break;\r\n\r\n default:\r\n fieldType = CustomFieldTypes.Text;\r\n }\r\n\r\n newErrorState = Common.validateFieldBasedOnType(entry[0], fieldType, true, entry[1], newErrorState);\r\n if (newErrorState[entry[0]].showError)\r\n isValid = false;\r\n }\r\n\r\n });\r\n\r\n if (!isValid) {\r\n this.setState({\r\n errorState: newErrorState\r\n });\r\n }\r\n\r\n return isValid;\r\n };\r\n\r\n private goToNextStep = () => {\r\n if (this.validateCustomerInfo()) {\r\n this.props.nextStep && this.props.nextStep();\r\n }\r\n };\r\n\r\n private goToPreviousStep = () => {\r\n const props = this.props;\r\n\r\n if (this.props.labels && this.props.order?.subscriptions?.indexOf(this.props.labels.dtgSubscriptionMonitoringLight) !== -1) {\r\n if (props.materialList && props.materialList.length)\r\n props.previousStep && props.previousStep();\r\n else\r\n props.goToStep && props.goToStep(2);\r\n }\r\n else\r\n props.goToStep && props.goToStep(2);\r\n }\r\n\r\n private sendToCustomer = () => {\r\n if (this.validateCustomerInfo()) {\r\n this.props.onSendOrderToCutomer?.();\r\n }\r\n };\r\n\r\n render() {\r\n const props = this.props;\r\n const { errorState, customerInformation } = this.state;\r\n return (\r\n \r\n \r\n
\r\n

Customer Information

\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 {\r\n props.isReadonly ?\r\n :\r\n \r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n props.isReadonly ?\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 props.isReadonly ?\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 props.isReadonly ?\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 props.isReadonly ?\r\n :\r\n \r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n props.isReadonly ?\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 props.isReadonly ?\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 props.isReadonly ?\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 props.isReadonly ?\r\n :\r\n \r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n props.isReadonly ?\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 props.isReadonly ?\r\n :\r\n \r\n\r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n props.isReadonly ?\r\n :\r\n \r\n\r\n }\r\n \r\n \r\n\r\n {\r\n props.order?.country === 'US' &&\r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.isReadonly ?\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 props.isReadonly ?\r\n :\r\n \r\n\r\n }\r\n \r\n \r\n\r\n {\r\n props.order?.country === 'US' &&\r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.isReadonly ?\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 props.isReadonly ?\r\n :\r\n \r\n\r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n {\r\n props.isReadonly ?\r\n :\r\n \r\n\r\n }\r\n \r\n \r\n\r\n
\r\n {\r\n props.showWizardNavigation ?\r\n \r\n \r\n \r\n : null\r\n }\r\n\r\n\r\n
\r\n );\r\n }\r\n\r\n\r\n}","import * as React from 'react';\r\nimport { css, Checkbox, Stack, StackItem, TextField, IconButton, } from 'office-ui-fabric-react';\r\nimport WizardNavigationButtons from './StepOrderForm/WizardNavigationFooter';\r\nimport { Common } from '../../dataprovider/Common';\r\nimport SignaturePad from 'react-signature-canvas'\r\nimport { IDataProvider } from '../../dataprovider/IDataProvider';\r\nimport { IPaymentSettings, IOrder, CustomFieldTypes, ErrorState, IFormProps, PaymentSteps, IPaymentTokenResponse } from './Models';\r\nimport { Spinner, SpinnerSize } from '@fluentui/react';\r\n\r\n// let DelegoRapidPay:any;\r\n\r\nexport interface ICustomerAgreementFormProps extends IFormProps {\r\n onSubmitOrder?: () => any | void | Promise;\r\n setPaymentAccessToken: (accessTokenResponse: IPaymentTokenResponse) => void;\r\n setPaymentInfo: (paymentInfo: any) => void;\r\n dataProvider: IDataProvider;\r\n paymentSettings: IPaymentSettings | undefined;\r\n paymentInfo?: any;\r\n paymentAccessTokenResponse?: IPaymentTokenResponse;\r\n}\r\n\r\nexport interface ICustomerAgreementFormState {\r\n signatures: string;\r\n signatureName: string;\r\n acceptTermCondition: boolean;\r\n acceptTermConditionAnother: boolean;\r\n showSignatureError: boolean;\r\n showAcceptTermConditionError: boolean;\r\n showAcceptTermConditionAnotherError: boolean;\r\n showPaymentDetailsNotFoundError: boolean;\r\n showPaymentSectionLoadingText: boolean;\r\n}\r\n\r\n\r\nconst getInitialSignatureState = (props: ICustomerAgreementFormProps): string => {\r\n return props.order && props.order.signatures ? props.order.signatures : \"\";\r\n}\r\n\r\nexport default class CustomerAgreementForm extends React.Component {\r\n\r\n private signaturePadRef: React.RefObject;\r\n private rapidPay: any;\r\n private tokenizeResponse: any;\r\n\r\n constructor(props: ICustomerAgreementFormProps) {\r\n super(props);\r\n this.state = {\r\n acceptTermCondition: props.order?.acceptTermCondition || false,\r\n acceptTermConditionAnother: props.order?.acceptTermConditionAnother || false,\r\n showAcceptTermConditionAnotherError: false,\r\n showSignatureError: false,\r\n showAcceptTermConditionError: false,\r\n signatures: getInitialSignatureState(props),\r\n signatureName: '',\r\n showPaymentDetailsNotFoundError: false,\r\n showPaymentSectionLoadingText: false\r\n };\r\n\r\n this.signaturePadRef = React.createRef();\r\n }\r\n\r\n async componentDidMount() {\r\n if (this.signaturePadRef.current)\r\n this.signaturePadRef.current.fromDataURL(this.state.signatures);\r\n if (!this.props.isReadonly)\r\n await this.initialiseDelegoPaymentWindow();\r\n }\r\n\r\n async componentDidUpdate(prevProps: ICustomerAgreementFormProps, prevState: ICustomerAgreementFormState) {\r\n if (JSON.stringify(prevProps.order) !== JSON.stringify(this.props.order)) {\r\n this.setState({\r\n acceptTermCondition: this.props.order?.acceptTermCondition || false,\r\n acceptTermConditionAnother: this.props.order?.acceptTermConditionAnother || false,\r\n signatures: getInitialSignatureState(this.props),\r\n });\r\n }\r\n\r\n if (!this.props.isReadonly && !prevProps.paymentSettings && this.props.paymentSettings) {\r\n await this.initialiseDelegoPaymentWindow();\r\n }\r\n }\r\n\r\n private initialiseDelegoPaymentWindow = async () => {\r\n\r\n this.setState({\r\n showPaymentSectionLoadingText: true,\r\n });\r\n\r\n if (this.props.paymentSettings) {\r\n\r\n if (this.props.paymentAccessTokenResponse &&\r\n (Date.now() < this.props.paymentAccessTokenResponse.expireTime - (1 * 60 * 1000))\r\n ) {\r\n\r\n this.rapidPay = this.openRapidPay(this.props.paymentAccessTokenResponse.token, (window as any).DelegoRapidPay.Show.PaymentSummary);\r\n }\r\n else {\r\n const tokenResponse: IPaymentTokenResponse = await this.props.dataProvider.getPaymentAccessToken?.();\r\n\r\n const paymentAccessToken = tokenResponse.token;\r\n\r\n this.rapidPay = this.openRapidPay(paymentAccessToken, (window as any).DelegoRapidPay.Show.Checkout);\r\n this.props.setPaymentAccessToken(tokenResponse);\r\n }\r\n\r\n }\r\n }\r\n\r\n private openRapidPay = (authorizationToken: string | undefined, show: number) => {\r\n const { paymentSettings } = this.props;\r\n const component = this;\r\n\r\n component.setState({\r\n showPaymentSectionLoadingText: false,\r\n });\r\n\r\n return (window as any).DelegoRapidPay.open({\r\n url: paymentSettings?.paymentURL,\r\n token: authorizationToken,\r\n show: show,\r\n paymentRequest: {\r\n /*\r\n * Payment request object\r\n */\r\n currencyCode: 'USD',\r\n total: 0\r\n },\r\n element: '#paymentInfoContainer',\r\n iframeclass: 'fitToContainer',\r\n appclass: 'straumann-dentogo-payment-app',\r\n events: {\r\n onApplicationInitialized: () => {\r\n /*\r\n * Actions to take once RapidPay is displayed\r\n */\r\n\r\n console.log(\"Application Initialized...\");\r\n\r\n component.setState({\r\n showPaymentSectionLoadingText: false,\r\n });\r\n },\r\n onTokenizeSuccess: (tokenizeResponse: any, signedTokenizeResponse: any) => {\r\n /*\r\n * Actions to take once RapidPay has tokenized a payment card\r\n */\r\n console.log(\"Tokenize Success...\");\r\n console.log(\"tokenizeResponse: \", tokenizeResponse);\r\n console.log(\"signedTokenizeResponse: \", signedTokenizeResponse);\r\n\r\n this.tokenizeResponse = tokenizeResponse;\r\n\r\n this.props.setPaymentInfo({\r\n tokenizeResponse: tokenizeResponse,\r\n signedTokenizeResponse: signedTokenizeResponse\r\n });\r\n\r\n this.props.updateFormProperties(\r\n [\r\n { key: \"cardToken\", value: tokenizeResponse.payment.token },\r\n { key: \"cardType\", value: tokenizeResponse.payment.cardType },\r\n { key: \"cardExpiryDate\", value: `${tokenizeResponse.payment.cardExpiration.month}/${tokenizeResponse.payment.cardExpiration.year}` },\r\n { key: \"cardholderName\", value: tokenizeResponse.payment.cardholderName }\r\n ]\r\n );\r\n\r\n },\r\n onFailure: (error: any) => {\r\n /*\r\n * Actions to take if RapidPay fails to tokenize a payment card (typically a system error)\r\n */\r\n console.log(\"Tokenize Failure...\", error);\r\n component.setState({\r\n showPaymentSectionLoadingText: false,\r\n });\r\n }\r\n },\r\n /*\r\n * Additional optional parameters, as desired.\r\n */\r\n });\r\n }\r\n\r\n private doPaymentRelatedSteps = async () => {\r\n const { paymentSettings } = this.props;\r\n let threeDSecureInfo: any;\r\n let authorization: any;\r\n\r\n if (paymentSettings?.paymentSteps) {\r\n\r\n for (let index = 0; index < paymentSettings?.paymentSteps.length; index++) {\r\n\r\n const step = paymentSettings?.paymentSteps[index];\r\n\r\n switch (step) {\r\n case PaymentSteps.Tokenize:\r\n // Already done nothing to do here\r\n break;\r\n\r\n case PaymentSteps.Authenticate:\r\n threeDSecureInfo = await this.authenticatePayment();\r\n break;\r\n\r\n case PaymentSteps.Authorize:\r\n authorization = await this.authorizePayment(threeDSecureInfo);\r\n break;\r\n\r\n case PaymentSteps.CreateSalesOrder:\r\n await this.createSalesOrder(threeDSecureInfo);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n private authenticatePayment = (): Promise => {\r\n let authenticateRequest = {\r\n amount: {\r\n value: 0,\r\n currency: 'USD'\r\n },\r\n billingAddress: this.tokenizeResponse.businessAddress,\r\n shippingAddress: this.props.order?.businessAddress,\r\n payment: this.tokenizeResponse.payment, // result from the onTokenizeSuccess callback\r\n useVerifiableResponse: this.props.paymentSettings?.useVerifiableResponse,\r\n };\r\n\r\n return this.rapidPay.authenticate(authenticateRequest)\r\n .then(async (threeDSecureInfoResponse: any) => {\r\n const { tokenID } = this.props.paymentAccessTokenResponse as IPaymentTokenResponse;\r\n\r\n let threeDSecureInfo = threeDSecureInfoResponse;\r\n\r\n if (this.props.paymentSettings?.useVerifiableResponse) {\r\n threeDSecureInfo = await this.props.dataProvider.validatePaymentToken(threeDSecureInfoResponse, tokenID)\r\n }\r\n /*\r\n * threeDSecureInfo is a JWT string if useVerifiableResponse was set to true.\r\n * verify the contents to receive a ThreeDSecureInfo object. Refer to\r\n * \"Verify Communications with RapidPay\" for more details.\r\n */\r\n // proceed based on whether threeDSecureInfo is non null and\r\n // the value of threeDSecureInfo.status\r\n\r\n if (threeDSecureInfo == null || threeDSecureInfo.status === 'Y' || threeDSecureInfo.status === 'A') {\r\n // proceeding, call authorize as seen in the next section\r\n } else if (threeDSecureInfo.status === 'R' || threeDSecureInfo.status === 'N') {\r\n // 3DS Authentication failed, ask customer for another method of payment and try again\r\n } else {\r\n // status === U 3DS Authentication unavailable for technical or other reasons\r\n // You can consult the value of statusReason for further details why the call resulted in a status U (though statusReason might not be set)\r\n }\r\n\r\n return threeDSecureInfo;\r\n })\r\n .catch((error: any) => {\r\n // handle any unexpected errors, probably in a similar way that you would handle a status 'U'\r\n\r\n\r\n });\r\n }\r\n\r\n private authorizePayment = (threeDSecureInfo: any): Promise => {\r\n return this.rapidPay.authorize({\r\n amount: {\r\n value: 53.75,\r\n currency: 'USD'\r\n },\r\n preAuth: this.props.paymentSettings?.preAuth,\r\n payment: this.tokenizeResponse.payment,\r\n address: this.tokenizeResponse.billingAddress,\r\n useVerifiableResponse: this.props.paymentSettings?.useVerifiableResponse,\r\n threeDSecure: threeDSecureInfo\r\n }).then(async (authorizationResponse: any) => {\r\n /*\r\n * authorization is a JWT string if useVerifiableResponse was set to true.\r\n * verify the contents to receive an AuthorizationResponse object. Refer to\r\n * \"Verify Communications with RapidPay\" for more details.\r\n */\r\n /*\r\n * Create a sales order\r\n */\r\n const { tokenID } = this.props.paymentAccessTokenResponse as IPaymentTokenResponse;\r\n\r\n let authorization = authorizationResponse;\r\n\r\n if (this.props.paymentSettings?.useVerifiableResponse) {\r\n authorization = await this.props.dataProvider.validatePaymentToken(authorizationResponse, tokenID)\r\n }\r\n\r\n return authorization;\r\n });\r\n }\r\n\r\n private createSalesOrder = (authorization: any): Promise => {\r\n return this.rapidPay.createSalesOrder({\r\n header: {\r\n docType: \"TA\",\r\n salesOrg: \"3020\",\r\n distributionChannel: \"12\",\r\n division: \"00\"\r\n },\r\n items: [\r\n {\r\n itemNumber: \"05\",\r\n material: \"MSA-1000\",\r\n plant: \"3200\",\r\n scheduleLines: [\r\n {\r\n quantity: 1\r\n }\r\n ],\r\n partners: [\r\n {\r\n customerNumber: \"0000003103\",\r\n role: \"AG\"\r\n }\r\n ]\r\n }\r\n ],\r\n partners: [\r\n {\r\n customerNumber: \"0000003103\",\r\n role: \"AG\",\r\n address: {\r\n firstName: \"\",\r\n lastName: \"\",\r\n street: \"\",\r\n city: \"\",\r\n region: \"\",\r\n country: \"\",\r\n postalCode: \"\",\r\n phoneNumber: \"\"\r\n }\r\n }\r\n ],\r\n authorization: authorization\r\n }).then((so: any) => {\r\n /*\r\n * Success! Let the shopper know that the order has been placed\r\n */\r\n }).catch((error: any) => {\r\n /*\r\n * Something went wrong while creating the order :(\r\n */\r\n });\r\n }\r\n\r\n private onChangeTextField = (fieldName: string, fieldType: CustomFieldTypes) => (event: React.FormEvent, newValue?: string | undefined) => {\r\n\r\n this.setState({\r\n signatureName: newValue ? newValue : ''\r\n });\r\n\r\n if (newValue) {\r\n let newErrorState: ErrorState = {\r\n [fieldName]: {\r\n errorMessage: '',\r\n showError: false\r\n }\r\n };\r\n\r\n newErrorState = Common.validateFieldBasedOnType(fieldName, fieldType, true, newValue, newErrorState);\r\n\r\n this.setState({\r\n showSignatureError: newErrorState[fieldName] && newErrorState[fieldName].showError !== undefined && newErrorState[fieldName].showError !== null ? newErrorState[fieldName].showError as boolean : false\r\n });\r\n }\r\n\r\n this.props.updateFormData(fieldName, newValue);\r\n }\r\n\r\n private onChangeCheckBox = (key: string) => (ev?: React.FormEvent | undefined, checked?: boolean | undefined) => {\r\n\r\n if (key === 'acceptTermCondition') {\r\n this.setState({\r\n acceptTermCondition: checked as boolean\r\n });\r\n\r\n if (!checked) {\r\n this.setState({\r\n showAcceptTermConditionError: true\r\n });\r\n }\r\n else {\r\n this.setState({\r\n showAcceptTermConditionError: false\r\n });\r\n }\r\n }\r\n else {\r\n this.setState({\r\n acceptTermConditionAnother: checked as boolean\r\n });\r\n\r\n if (!checked) {\r\n this.setState({\r\n showAcceptTermConditionAnotherError: true\r\n });\r\n\r\n }\r\n else {\r\n this.setState({\r\n showAcceptTermConditionAnotherError: false\r\n });\r\n }\r\n }\r\n\r\n this.props.updateFormData(key, checked);\r\n }\r\n\r\n public validateSignaturesAndTerms = (): boolean => {\r\n let isValid = true;\r\n const { signatureName, acceptTermCondition, acceptTermConditionAnother } = this.state;\r\n\r\n if ((!this.signaturePadRef.current || this.signaturePadRef.current.toData().length === 0) && !signatureName) {\r\n isValid = false;\r\n this.setState({\r\n showSignatureError: true\r\n });\r\n }\r\n else {\r\n this.setState({\r\n showSignatureError: false\r\n });\r\n }\r\n\r\n if (!acceptTermCondition) {\r\n this.setState({\r\n showAcceptTermConditionError: true\r\n });\r\n isValid = false;\r\n } else {\r\n this.setState({\r\n showAcceptTermConditionError: false\r\n });\r\n }\r\n\r\n if (!acceptTermConditionAnother) {\r\n isValid = false;\r\n this.setState({\r\n showAcceptTermConditionAnotherError: true\r\n });\r\n }\r\n else {\r\n this.setState({\r\n showAcceptTermConditionAnotherError: false\r\n });\r\n }\r\n\r\n return isValid;\r\n };\r\n\r\n public validatePaymentDetails = (): boolean => {\r\n if (!this.tokenizeResponse) {\r\n this.setState({\r\n showPaymentDetailsNotFoundError: true\r\n });\r\n alert(\"Please enter your Credit Card information above and click “Submit” underneath your CreditCard details\");\r\n return false;\r\n }\r\n else {\r\n this.setState({\r\n showPaymentDetailsNotFoundError: false\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private submitOrder = () => {\r\n const validateSignaturesAndTerms = this.validateSignaturesAndTerms();\r\n const validatePaymentDetails = this.validatePaymentDetails();\r\n\r\n if (validateSignaturesAndTerms && validatePaymentDetails) {\r\n\r\n // this.doPaymentRelatedSteps();\r\n this.props.onSubmitOrder?.();\r\n }\r\n }\r\n\r\n render() {\r\n const props = this.props;\r\n const labels = props.labels;\r\n const { signatureName, acceptTermCondition, acceptTermConditionAnother, showPaymentDetailsNotFoundError,\r\n showSignatureError, showAcceptTermConditionError, showAcceptTermConditionAnotherError, showPaymentSectionLoadingText\r\n } = this.state;\r\n\r\n let html: JSX.Element = ;\r\n\r\n if (labels)\r\n html = (\r\n \r\n \r\n
\r\n

Payment Details/Term & Conditions

\r\n
\r\n \r\n {\r\n props.isReadonly ?\r\n \r\n \r\n \r\n \r\n :\r\n
\r\n {\r\n showPaymentSectionLoadingText &&\r\n \r\n }\r\n
\r\n }\r\n \r\n {\r\n props.isReadonly ?\r\n props.order?.signatures ?\r\n \"Signature\" :\r\n null :\r\n \r\n \r\n
\r\n

Signature

\r\n
\r\n {\r\n this.signaturePadRef.current?.clear();\r\n this.setState({\r\n signatures: ''\r\n });\r\n }}\r\n />\r\n
\r\n {\r\n const signatures = this.signaturePadRef.current ? this.signaturePadRef.current.getTrimmedCanvas().toDataURL('image/png') : '';\r\n this.setState({\r\n signatures: signatures\r\n });\r\n\r\n this.props.updateFormData('signatures', signatures);\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 props.isReadonly ?\r\n props.order?.signatureName ?\r\n
\r\n \r\n \r\n
\r\n : null :\r\n \r\n }\r\n \r\n \r\n {\r\n showAcceptTermConditionError || showAcceptTermConditionAnotherError ?\r\n
\r\n Please accept all of these terms and conditions to continue.\r\n
: null\r\n }\r\n
\r\n\r\n {\r\n showPaymentDetailsNotFoundError ?\r\n
\r\n Please enter your Credit Card information above and click “Submit” underneath your CreditCard details\r\n
: null\r\n }\r\n
\r\n {\r\n props.isReadonly ? null :\r\n props.showWizardNavigation ?\r\n \r\n \r\n \r\n : null\r\n }\r\n
\r\n );\r\n\r\n return html;\r\n }\r\n\r\n}","import * as React from 'react';\r\nimport { css, Stack, } from 'office-ui-fabric-react';\r\nimport { Link } from 'react-router-dom';\r\nimport { PageURL } from '../../../App';\r\n\r\nexport interface ISuccessBoxProps {\r\n location: Location;\r\n history: History;\r\n stepSizeClass: string;\r\n message: string;\r\n}\r\n\r\nconst SuccessBox = (props: ISuccessBoxProps) => {\r\n\r\n let refreshUrl: string | null = null;\r\n\r\n if (props.location.pathname.toLowerCase() === PageURL.CreateOrder.toLowerCase())\r\n refreshUrl = window.location.origin + PageURL.CreateOrder;\r\n else if (props.location.pathname.toLowerCase() === PageURL.CreateOrderAuthenticated.toLowerCase())\r\n refreshUrl = window.location.origin + PageURL.CreateOrderAuthenticated;\r\n\r\n return (\r\n \r\n \r\n
\r\n

{props.message}

\r\n {\r\n refreshUrl ?\r\n

Click {\r\n window.location.href = window.location.origin;\r\n }}>here to create New Order.

\r\n :\r\n

Click here to create New Order.

\r\n }\r\n\r\n
\r\n
\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default SuccessBox;","import * as React from 'react';\r\nimport { TextField, Stack, StackItem, css } from 'office-ui-fabric-react';\r\nimport WizardNavigationButtons from './StepOrderForm/WizardNavigationFooter';\r\nimport { IFormProps, IMaterial } from './Models';\r\n\r\nexport interface IMaterialSelectionFormProps extends IFormProps {\r\n isUserAuthenticated?: boolean;\r\n userAccount?: any;\r\n materialList: IMaterial[];\r\n}\r\n\r\nexport interface IMaterialSelectionFormState {\r\n materialSelectionList: IMaterial[];\r\n errorState: {\r\n errorMessage: string | undefined,\r\n showError: boolean | undefined\r\n }[];\r\n}\r\n\r\nexport default class MaterialSelectionForm extends React.Component {\r\n private allowUpdate = false;\r\n\r\n constructor(props: IMaterialSelectionFormProps) {\r\n super(props);\r\n\r\n const errorState = props.materialList.map(x => ({\r\n errorMessage: '',\r\n showError: false\r\n }));\r\n\r\n this.state = {\r\n materialSelectionList: props.materialList.map(x => x),\r\n errorState: errorState\r\n }\r\n }\r\n\r\n private setMaterialList = (materialList: IMaterial[]) => {\r\n var newMaterialList: IMaterial[] = materialList.map(x => x);\r\n\r\n this.setState({\r\n materialSelectionList: newMaterialList\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: IMaterialSelectionFormProps, prevState: IMaterialSelectionFormState) {\r\n\r\n if (prevProps.order && this.props.order && this.props.order.materialList) {\r\n let update = true;\r\n if (!prevProps.order.materialList) {\r\n this.setMaterialList(JSON.parse(this.props.order.materialList ?? '[]'));\r\n }\r\n else {\r\n const prevMaterialList: IMaterial[] = JSON.parse(prevProps.order.materialList);\r\n const currentMaterialList: IMaterial[] = JSON.parse(this.props.order.materialList);\r\n\r\n // for (let index = 0; index < array.length; index++) {\r\n // const element = array[index];\r\n // }\r\n }\r\n }\r\n\r\n if (this.allowUpdate) {\r\n this.allowUpdate = false;\r\n this.setMaterialList(JSON.parse(this.props?.order?.materialList ?? '[]'));\r\n }\r\n }\r\n\r\n private onChangeTextField = (rowIndex: number) => (event: React.FormEvent, newValue?: string | undefined) => {\r\n\r\n const materialSelectionList = [...this.state.materialSelectionList];\r\n const errorState = { ...this.state.errorState };\r\n if (!newValue) {\r\n errorState[rowIndex] = {\r\n errorMessage: '',\r\n showError: false\r\n }\r\n }\r\n else {\r\n if (!isNaN(newValue as any)) {\r\n materialSelectionList[rowIndex].quantity = +newValue;\r\n errorState[rowIndex] = {\r\n errorMessage: '',\r\n showError: false\r\n }\r\n }\r\n else {\r\n errorState[rowIndex] = {\r\n errorMessage: 'Only interger values are allowed.',\r\n showError: true\r\n }\r\n }\r\n }\r\n\r\n this.setState({\r\n materialSelectionList: materialSelectionList,\r\n errorState: errorState\r\n });\r\n\r\n this.allowUpdate = true;\r\n this.props.updateFormData('materialList', JSON.stringify(materialSelectionList));\r\n }\r\n\r\n private goToNextStep = () => {\r\n this.props.nextStep && this.props.nextStep();\r\n };\r\n\r\n private renderHardwareTable = (materialSelectionList: IMaterial[], errorState: { errorMessage: string | undefined; showError: boolean | undefined; }[], isReadOnly: boolean) => {\r\n\r\n if (window.innerWidth < 768) {\r\n return this.renderListViewMaterialList(isReadOnly, materialSelectionList, errorState);\r\n }\r\n else {\r\n return this.renderTabularViewMaterialList(isReadOnly, materialSelectionList, errorState);\r\n }\r\n\r\n\r\n }\r\n\r\n private renderTabularViewMaterialList(isReadOnly: boolean, materialSelectionList: IMaterial[], errorState: { errorMessage: string | undefined; showError: boolean | undefined; }[]): JSX.Element {\r\n\r\n let tHead = \r\n \r\n QTY\r\n MATERIAL NO.\r\n DESCRIPTION\r\n PRICING\r\n \r\n ;\r\n\r\n let tBody: any;\r\n\r\n if (isReadOnly) {\r\n tBody = (\r\n \r\n {materialSelectionList.map((material, rowIndex) => {\r\n return (\r\n \r\n {material.quantity}\r\n {material.title}\r\n {material.description}\r\n ${material.pricing?.toLocaleString()}\r\n \r\n );\r\n })}\r\n \r\n );\r\n }\r\n else {\r\n tBody = (\r\n \r\n {materialSelectionList.map((material, rowIndex) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {material.title}\r\n {material.description}\r\n ${material.pricing?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}\r\n \r\n );\r\n })}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {tHead}\r\n {tBody}\r\n
\r\n );\r\n }\r\n\r\n private renderListViewMaterialList(isReadOnly: boolean, materialSelectionList: IMaterial[], errorState: { errorMessage: string | undefined; showError: boolean | undefined; }[]): JSX.Element {\r\n\r\n let listEntries: any;\r\n\r\n if (isReadOnly) {\r\n listEntries = (\r\n <>\r\n {materialSelectionList.map((material, rowIndex) => {\r\n return (\r\n
  • \r\n
    \r\n QTY\r\n :\r\n {material.quantity}\r\n
    \r\n
    \r\n MATERIAL NO.\r\n :\r\n {material.title}\r\n
    \r\n
    \r\n DESCRIPTION\r\n :\r\n {material.description}\r\n
    \r\n
    \r\n PRICING\r\n :\r\n ${material.pricing?.toLocaleString()}\r\n
    \r\n
  • \r\n );\r\n })}\r\n \r\n );\r\n }\r\n else {\r\n listEntries = (\r\n <>\r\n {materialSelectionList.map((material, rowIndex) => {\r\n return (\r\n
  • \r\n
    \r\n QTY\r\n :\r\n \r\n
    \r\n
    \r\n MATERIAL NO.\r\n :\r\n {material.title}\r\n
    \r\n
    \r\n DESCRIPTION\r\n :\r\n {material.description}\r\n
    \r\n
    \r\n PRICING\r\n :\r\n ${material.pricing?.toLocaleString()}\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 {listEntries}\r\n
    \r\n
    \r\n\r\n );\r\n }\r\n\r\n render() {\r\n const props = this.props;\r\n const { errorState, materialSelectionList } = this.state;\r\n\r\n if (materialSelectionList && materialSelectionList.length)\r\n return (\r\n \r\n \r\n
    \r\n

    Dental Monitoring™ Patient Hardware

    \r\n
    \r\n {this.renderHardwareTable(materialSelectionList, errorState, props.isReadonly)}\r\n
    \r\n {\r\n props.showWizardNavigation ?\r\n \r\n \r\n \r\n : null\r\n }\r\n
    \r\n );\r\n else\r\n return null;\r\n }\r\n\r\n\r\n}","import * as React from 'react';\r\nimport '../OrderForm.scss';\r\nimport StepWizard, { StepWizardProps } from 'react-step-wizard';\r\nimport { IDropdownOption, DialogType, Spinner, SpinnerSize, Dialog, MessageBar, MessageBarType, Stack, css, Text } from 'office-ui-fabric-react';\r\nimport SelectSubscription from './SelectSubscription';\r\nimport { IDataProvider } from '../../../dataprovider/IDataProvider';\r\nimport SelectSubscriptionOption from './SelectSubscriptionOption';\r\nimport CustomerInformationForm from '../CustomerInformationForm';\r\nimport CustomerAgreementForm from '../CustomerAgreementForm';\r\nimport StepWizardWrapper from './StepWizardWrapper';\r\nimport SuccessBox from './SuccessBox';\r\nimport { AnimationStyles, AnimationClassNames, AnimationVariables } from 'office-ui-fabric-react/lib/Styling';\r\nimport { IOrder, IApplicationLabels, IPaymentSettings, IApplicationSettings, IPaymentTokenResponse, Country, IMaterial } from '../Models';\r\nimport { Common } from '../../../dataprovider/Common';\r\nimport { Link } from 'react-router-dom';\r\nimport MaterialSelectionForm from '../MaterialSelectionForm';\r\n\r\nexport interface IOrderFormProps {\r\n isUserAuthenticated: boolean;\r\n userAccount: any;\r\n order?: IOrder;\r\n dataProvider: IDataProvider;\r\n location: Location;\r\n history: History;\r\n}\r\n\r\nexport interface IOrderFormState {\r\n showWaitingSpinner?: boolean;\r\n order?: IOrder;\r\n labels: IApplicationLabels | null;\r\n stepWizardContext?: StepWizardProps | null;\r\n states?: IDropdownOption[];\r\n message?: string | JSX.Element | null;\r\n messageType?: MessageBarType;\r\n showOrderSuccessMessage?: boolean;\r\n currentStep?: number;\r\n paymentSettings?: IPaymentSettings;\r\n paymentInfo?: any;\r\n paymentAccessTokenResponse?: IPaymentTokenResponse;\r\n isLoading?: boolean;\r\n materialList: IMaterial[];\r\n}\r\n\r\nconst transitions = {\r\n enterRight: `animated enterRight`,\r\n enterLeft: `animated enterLeft`,\r\n exitRight: `.animated exitRight`,\r\n exitLeft: `animated exitLeft`,\r\n intro: `animated intro`,\r\n};\r\n\r\n// const transitions = {\r\n// enterRight: `animated ${AnimationClassNames.slideRightIn400}`,\r\n// enterLeft: `animated ${AnimationClassNames.slideLeftIn400}`,\r\n// exitRight: `.animated ${AnimationClassNames.slideRightOut400}`,\r\n// exitLeft: `animated ${AnimationClassNames.slideLeftOut400}`,\r\n// intro: `animated intro`,\r\n// };\r\n\r\nexport class OrderForm extends React.Component {\r\n static displayName = OrderForm.name;\r\n private country: Country;\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n order: {},\r\n showWaitingSpinner: false,\r\n labels: null,\r\n stepWizardContext: null,\r\n states: [],\r\n message: null,\r\n messageType: MessageBarType.success,\r\n showOrderSuccessMessage: false,\r\n currentStep: 0,\r\n isLoading: true,\r\n materialList: []\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n try {\r\n const order: IOrder = { ...this.state.order };\r\n this.country = sessionStorage.getItem('Country') as Country;\r\n\r\n order.country = this.country;\r\n\r\n if (this.country) {\r\n const applicationSettings: IApplicationSettings = await this.props.dataProvider.getApplicationSettings(this.country);\r\n\r\n if (applicationSettings) {\r\n Common.loadScript(`${applicationSettings.paymentSettings.paymentURL}/sdk/sdk.bundle.js`, () => {\r\n this.setState({\r\n labels: applicationSettings.applicationLabels,\r\n paymentSettings: applicationSettings.paymentSettings,\r\n materialList: applicationSettings.materialList\r\n });\r\n });\r\n }\r\n\r\n const states = this.props.dataProvider.getStatesLists(this.country);\r\n states.sort();\r\n\r\n this.setState({\r\n order: order,\r\n states: states.map(state => ({ key: state, text: state })),\r\n isLoading: false\r\n });\r\n }\r\n\r\n } catch (error) {\r\n this.hideSpinnerAndShowErrorMessage(error, \"_onClickSavePricingAppAdmin\");\r\n }\r\n\r\n }\r\n\r\n private updateForm = (key: string, value: any) => {\r\n const order = { ...this.state.order };\r\n\r\n (order as any)[key] = value;\r\n this.setState({\r\n order,\r\n });\r\n };\r\n\r\n private updateFormProperties = (properties: { key: string, value: any }[]) => {\r\n const order = { ...this.state.order };\r\n\r\n for (const property of properties) {\r\n (order as any)[property.key] = property.value;\r\n }\r\n\r\n this.setState({\r\n order,\r\n });\r\n };\r\n\r\n // Do something on step change\r\n private onStepChange = (stats: any) => {\r\n // console.log(stats);\r\n this.setState({\r\n currentStep: stats.activeStep\r\n })\r\n };\r\n\r\n private setInstance = (stepWizardContext: StepWizardProps) => this.setState({\r\n stepWizardContext,\r\n });\r\n\r\n\r\n private setPaymentAccessToken = (accessTokenResponse: IPaymentTokenResponse) => {\r\n this.setState({\r\n paymentAccessTokenResponse: accessTokenResponse\r\n });\r\n }\r\n\r\n private setPaymentInfo = (paymentInfo: any) => {\r\n this.setState({\r\n paymentInfo: paymentInfo\r\n });\r\n }\r\n\r\n private onSendOrderToCutomer = () => {\r\n this.setState({\r\n showWaitingSpinner: true\r\n })\r\n\r\n if (this.state.order) {\r\n const order = { ...this.state.order };\r\n\r\n if (this.props.isUserAuthenticated)\r\n order.requestSubmitter = {\r\n EMail: this.props.userAccount.mail,\r\n Title: this.props.userAccount.displayName,\r\n };\r\n\r\n order.orderStatus = \"Sent To Customer\";\r\n \r\n let materialList: IMaterial[] = order.materialList ? JSON.parse(order.materialList) : [];\r\n materialList = materialList.filter(x=>x.quantity && x.quantity > 0);\r\n \r\n order.materialList = JSON.stringify(materialList);\r\n\r\n this.props.dataProvider.createSendToCutomerOrder(order).then((result: any) => {\r\n this.hideSpinnerAndShowSuccessMessage(\"Order sent to customer successfully.\");\r\n }).catch(error => {\r\n this.hideSpinnerAndShowErrorMessage(error, \"_onClickSavePricingAppAdmin\");\r\n });\r\n }\r\n\r\n }\r\n\r\n private onCreateOrder = () => {\r\n this.setState({\r\n showWaitingSpinner: true\r\n })\r\n\r\n if (this.state.order) {\r\n const order = { ...this.state.order };\r\n\r\n if (this.props.isUserAuthenticated)\r\n order.requestSubmitter = {\r\n EMail: this.props.userAccount.mail,\r\n Title: this.props.userAccount.displayName,\r\n };\r\n\r\n order.orderStatus = \"Completed\";\r\n\r\n let materialList: IMaterial[] = order.materialList ? JSON.parse(order.materialList) : [];\r\n materialList = materialList.filter(x=>x.quantity && x.quantity > 0);\r\n \r\n order.materialList = JSON.stringify(materialList);\r\n \r\n this.props.dataProvider.createOrder(order).then((result: any) => {\r\n this.hideSpinnerAndShowSuccessMessage(\"Order created successfully. Please check your mail for confirmation.\");\r\n }).catch(error => {\r\n this.hideSpinnerAndShowErrorMessage(error, \"_onClickSavePricingAppAdmin\");\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n private hideSpinnerAndShowSuccessMessage = (message: string) => {\r\n this.setState({\r\n message: message,\r\n messageType: MessageBarType.success,\r\n showWaitingSpinner: false,\r\n showOrderSuccessMessage: true,\r\n });\r\n }\r\n\r\n private hideSpinnerAndShowErrorMessage = (error: any, errorAreaName: string) => {\r\n\r\n this.props.dataProvider.logErrorInConsole?.(errorAreaName, error);\r\n\r\n this.setState({\r\n message: this.props.dataProvider.extractErrorMessageFromErrorObject?.(error),\r\n messageType: MessageBarType.error,\r\n showWaitingSpinner: false,\r\n showOrderSuccessMessage: false,\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n showOrderSuccessMessage, message, stepWizardContext, currentStep, isLoading, messageType,\r\n order, materialList, labels, showWaitingSpinner, paymentAccessTokenResponse, states,\r\n paymentInfo, paymentSettings\r\n } = this.state;\r\n\r\n const { location, history, isUserAuthenticated, userAccount } = this.props;\r\n\r\n // console.log(stepWizardContext);\r\n\r\n if (isLoading) {\r\n return (\r\n \r\n Loading\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n else {\r\n if (this.country) {\r\n if (this.state.labels)\r\n return (\r\n \r\n \r\n {\r\n !showOrderSuccessMessage ?\r\n \r\n {\r\n this.state.message ?\r\n {\r\n this.setState({\r\n message: null\r\n });\r\n }}\r\n messageBarType={messageType}\r\n isMultiline={true}\r\n truncated={true}\r\n >\r\n {message}\r\n \r\n : null\r\n }\r\n {\r\n stepWizardContext ?\r\n \r\n 2\r\n })}>\r\n

    Service Agreement

    \r\n
    \r\n
    \r\n : null\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\r\n
    \r\n );\r\n else\r\n return null;\r\n\r\n }\r\n else {\r\n return Country not specified. Click here to start again;\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { css, Stack, StackItem, IDropdownOption, ActionButton } from 'office-ui-fabric-react';\r\nimport CustomerInformationForm from '../CustomerInformationForm';\r\nimport CustomerAgreementForm from '../CustomerAgreementForm';\r\nimport { IDataProvider } from '../../../dataprovider/IDataProvider';\r\nimport { IApplicationLabels, IOrder, IPaymentSettings, IPaymentTokenResponse } from '../Models';\r\nimport MaterialSelectionForm from '../MaterialSelectionForm';\r\n\r\nexport interface ICompleteOrderFormProps {\r\n isReadOnly: boolean;\r\n states: IDropdownOption[];\r\n labels: IApplicationLabels | null;\r\n order?: IOrder | null;\r\n onSubmitOrder: () => any | void | Promise;\r\n updateFormData: (key: string, value: any) => void;\r\n updateFormProperties: (properties: { key: string, value: any }[]) => void;\r\n dataProvider: IDataProvider;\r\n paymentSettings?: IPaymentSettings | undefined;\r\n paymentInfo?: any;\r\n paymentAccessTokenResponse?: IPaymentTokenResponse;\r\n setPaymentAccessToken: (accessTokenResponse: IPaymentTokenResponse) => void;\r\n setPaymentInfo: (paymentInfo: any) => void;\r\n}\r\n\r\nconst CompleteOrderForm = (props: ICompleteOrderFormProps) => {\r\n const {\r\n order, labels, paymentInfo, paymentSettings, paymentAccessTokenResponse,\r\n isReadOnly, states, setPaymentInfo, setPaymentAccessToken, updateFormData, updateFormProperties,\r\n dataProvider\r\n } = props;\r\n\r\n const customerInfoFormRef: React.Ref = React.createRef();\r\n const customerAgreementFormRef: React.Ref = React.createRef();\r\n\r\n const submitOrder = () => {\r\n const validateCustomerInfo = customerInfoFormRef.current?.validateCustomerInfo();\r\n const validateSignaturesAndTerms = customerAgreementFormRef.current?.validateSignaturesAndTerms();\r\n const validatePaymentDetails = customerAgreementFormRef.current?.validatePaymentDetails();\r\n\r\n if (validateCustomerInfo && validateSignaturesAndTerms && validatePaymentDetails) {\r\n props.onSubmitOrder();\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n

    Order Summary

    \r\n
    \r\n \r\n \r\n \r\n \r\n
      \r\n {order?.subscriptions?.map((sub, index) =>
    • {sub}
    • )}\r\n
    \r\n
    \r\n \r\n \r\n
      \r\n {\r\n order?.soVirtualCheck ?
    • {order?.soVirtualCheck}
    • : null\r\n }\r\n {\r\n order?.soMonitoringLightStarterKit !== undefined && order?.soMonitoringLightStarterKit !== null && order?.soMonitoringLightStarterKit ?
    • {labels?.mlStarterKit}
    • : null\r\n }\r\n {\r\n order?.soMonitoringLightTrainingOption ?
    • {order?.soMonitoringLightTrainingOption}
    • : null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n {\r\n !props.isReadOnly ?\r\n \r\n Submit Order\r\n \r\n : null\r\n }\r\n\r\n\r\n\r\n
    \r\n );\r\n\r\n}\r\n\r\nexport default CompleteOrderForm;","import * as React from 'react';\r\nimport '../OrderForm.scss';\r\nimport { IDropdownOption, DialogType, Spinner, SpinnerSize, Dialog, Stack, MessageBar, MessageBarType } from 'office-ui-fabric-react';\r\nimport { IDataProvider } from '../../../dataprovider/IDataProvider';\r\nimport CompleteOrderForm from './CompleteOrderForm';\r\nimport SuccessBox from '../StepOrderForm/SuccessBox';\r\nimport { IOrder, IApplicationLabels, IApplicationSettings, IPaymentSettings, IPaymentTokenResponse } from '../Models';\r\nimport { Common } from '../../../dataprovider/Common';\r\n\r\nexport interface IOrderSummaryFormProps {\r\n order?: IOrder;\r\n dataProvider: IDataProvider;\r\n location: Location;\r\n history: History;\r\n}\r\n\r\nexport interface IOrderSummaryFormState {\r\n showWaitingSpinner?: boolean;\r\n order?: IOrder;\r\n labels: IApplicationLabels | null;\r\n states?: IDropdownOption[];\r\n message?: string | JSX.Element | null;\r\n messageType?: MessageBarType;\r\n isReadOnly: boolean;\r\n showOrderSuccessMessage?: boolean;\r\n paymentSettings?: IPaymentSettings;\r\n paymentInfo?: any;\r\n paymentAccessTokenResponse?: IPaymentTokenResponse;\r\n}\r\n\r\nexport class OrderSummaryForm extends React.Component {\r\n static displayName = OrderSummaryForm.name;\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n order: {},\r\n showWaitingSpinner: true,\r\n labels: null,\r\n states: [],\r\n message: null,\r\n messageType: MessageBarType.success,\r\n isReadOnly: true,\r\n showOrderSuccessMessage: false\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n\r\n let query = new URLSearchParams((this.props as any).location.search);\r\n const orderId = query.get(\"ref\")\r\n if (orderId) {\r\n\r\n const promiseArray: Promise[] = [];\r\n promiseArray.push(this.props.dataProvider.getOrder(orderId));\r\n\r\n\r\n Promise.all(promiseArray).then(async (result: any[]) => {\r\n const order: IOrder = result[0];\r\n let applicationSettings: IApplicationSettings;\r\n\r\n if (this.props.dataProvider.getApplicationSettings && order.country) {\r\n applicationSettings = await this.props.dataProvider.getApplicationSettings(order.country);\r\n\r\n const states = this.props.dataProvider.getStatesLists(order.country);\r\n states.sort();\r\n\r\n this.setState({\r\n states: states.map(state => ({ key: state, text: state }))\r\n });\r\n\r\n Common.loadScript(`${applicationSettings.paymentSettings.paymentURL}/sdk/sdk.bundle.js`, () => {\r\n this.setState({\r\n showWaitingSpinner: false,\r\n labels: applicationSettings.applicationLabels,\r\n paymentSettings: applicationSettings.paymentSettings,\r\n order: order,\r\n isReadOnly: order && order.orderStatus && order.orderStatus === \"Completed\" ? true : false\r\n });\r\n });\r\n }\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n private updateForm = (key: string, value: any) => {\r\n const order = { ...this.state.order };\r\n\r\n (order as any)[key] = value;\r\n this.setState({\r\n order,\r\n });\r\n };\r\n\r\n private updateFormProperties = (properties: { key: string, value: any }[]) => {\r\n const order = { ...this.state.order };\r\n\r\n for (const property of properties) {\r\n (order as any)[property.key] = property.value;\r\n }\r\n\r\n this.setState({\r\n order,\r\n });\r\n };\r\n\r\n private setPaymentAccessToken = (accessTokenResponse: IPaymentTokenResponse) => {\r\n this.setState({\r\n paymentAccessTokenResponse: accessTokenResponse\r\n });\r\n }\r\n\r\n private setPaymentInfo = (paymentInfo: any) => {\r\n this.setState({\r\n paymentInfo: paymentInfo\r\n });\r\n }\r\n\r\n private onSubmitOrder = () => {\r\n this.setState({\r\n showWaitingSpinner: true\r\n })\r\n\r\n if (this.state.order) {\r\n const order = { ...this.state.order };\r\n order.orderStatus = \"Completed\";\r\n\r\n this.props.dataProvider.submitSignedOrder(order).then((result: any) => {\r\n this.hideSpinnerAndShowSuccessMessage(\"Order submitted successfully. Please check your mail for confirmation.\");\r\n }).catch(error => {\r\n this.hideSpinnerAndShowErrorMessage(error, \"_onClickSavePricingAppAdmin\");\r\n });\r\n }\r\n\r\n }\r\n\r\n private hideSpinnerAndShowSuccessMessage = (message: string) => {\r\n this.setState({\r\n message: message,\r\n messageType: MessageBarType.success,\r\n showWaitingSpinner: false,\r\n showOrderSuccessMessage: true\r\n });\r\n }\r\n\r\n private hideSpinnerAndShowErrorMessage = (error: any, errorAreaName: string) => {\r\n\r\n this.props.dataProvider.logErrorInConsole?.(errorAreaName, error);\r\n\r\n this.setState({\r\n message: this.props.dataProvider.extractErrorMessageFromErrorObject?.(error),\r\n messageType: MessageBarType.error,\r\n showWaitingSpinner: false,\r\n showOrderSuccessMessage: false\r\n });\r\n }\r\n\r\n render() {\r\n const { showOrderSuccessMessage, message, messageType, states, isReadOnly,\r\n showWaitingSpinner, labels, order, paymentAccessTokenResponse, paymentInfo, paymentSettings } = this.state;\r\n\r\n const { location, history } = this.props;\r\n\r\n return (\r\n \r\n \r\n {\r\n showOrderSuccessMessage ?\r\n \r\n :\r\n \r\n {\r\n message ?\r\n {\r\n this.setState({\r\n message: null\r\n });\r\n }}\r\n messageBarType={messageType}\r\n isMultiline={true}\r\n truncated={true}\r\n >\r\n {message}\r\n \r\n : null\r\n }\r\n \r\n \r\n }\r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n","export const msalConfig = {\r\n auth: {\r\n authority: 'https://login.microsoftonline.com/d2c36cc7-0f21-42d6-811b-0c732a0ac4a6',\r\n clientId: '2ab2d63e-80f9-4ba8-bd9c-d41a256201df',\r\n // redirectUri: window.location.origin + window.location.pathname,\r\n navigateToLoginRequestUrl: true,\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n }\r\n};\r\n\r\n// Add scopes here for ID token to be used at Microsoft identity platform endpoints.\r\nexport const loginRequest = {\r\n scopes: [\"openid\", \"profile\", \"User.Read\"]\r\n};\r\n\r\n// Add scopes here for access token to be used at Microsoft Graph API endpoints.\r\nexport const tokenRequest = {\r\n scopes: [\"User.Read\", \"Mail.Read\"]\r\n};\r\n\r\nexport const graphConfig = {\r\n graphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\",\r\n graphMailEndpoint: \"https://graph.microsoft.com/v1.0/me/messages\"\r\n};\r\n\r\n// export const msalInstance = new msal.PublicClientApplication(msalConfig);\r\n\r\nexport const fetchMsGraph = async (url: string, accessToken: string) => {\r\n const response = await fetch(url, {\r\n headers: {\r\n Authorization: `Bearer ${accessToken}`\r\n }\r\n });\r\n\r\n return response.json();\r\n};","export default class HttpService {\r\n\r\n public static async get(url: string, body?: any): Promise {\r\n let response: any;\r\n\r\n if (body)\r\n response = await fetch(url, {\r\n method: 'GET',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Accept': 'application/json'\r\n },\r\n body: JSON.stringify(body)\r\n });\r\n else\r\n response = await fetch(url, {\r\n method: 'GET',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Accept': 'application/json'\r\n },\r\n });\r\n\r\n if (response.ok)\r\n return response.json();\r\n else\r\n throw await response.json();\r\n }\r\n\r\n public static async post(url: string, body: any): Promise {\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(body)\r\n });\r\n\r\n if (response.ok)\r\n return response.json();\r\n else\r\n throw await response.json();\r\n }\r\n\r\n}","import * as React from \"react\";\r\nimport * as msal from \"@azure/msal-browser\";\r\nimport { Stack, PrimaryButton, MessageBar, MessageBarType } from 'office-ui-fabric-react';\r\nimport { fetchMsGraph, graphConfig, loginRequest, msalConfig } from './AuthenticationConfig';\r\nimport { InteractionRequiredAuthError } from \"@azure/msal-browser\";\r\nimport { Icon } from '@fluentui/react/lib/Icon';\r\nimport HttpService from \"../../dataprovider/HttpService\";\r\n\r\nconst LockIcon = () => ;\r\n\r\ninterface AuthenticatedComponentProps {\r\n\r\n}\r\n\r\ninterface AuthenticatedComponentState {\r\n account: any | null,\r\n error: any | null,\r\n isUserAuthenticated: boolean\r\n isAuthenticating: boolean\r\n}\r\n\r\nexport default (AuthenticatedComponent: any, componentProps: any) =>\r\n class AuthProvider extends React.Component {\r\n private useRedirectForAuthentication = true;\r\n private msalInstance: any;\r\n\r\n constructor(props: AuthenticatedComponentProps) {\r\n super(props);\r\n\r\n this.state = {\r\n account: null,\r\n error: null,\r\n isUserAuthenticated: false,\r\n isAuthenticating: true,\r\n };\r\n\r\n console.log(\"AuthenticatedComponentProps: \", props);\r\n\r\n }\r\n\r\n async componentDidMount() {\r\n let skipSignIn = false;\r\n\r\n console.log(\"componentDidMount: \");\r\n\r\n let msalConfigFromServer = await HttpService.get(`/api/AzureConnectivity`);\r\n\r\n let msalConfigUpdated = {\r\n ...msalConfig\r\n };\r\n\r\n msalConfigUpdated.auth = {\r\n clientId: msalConfigFromServer.clientId,\r\n authority: msalConfigFromServer.authority,\r\n navigateToLoginRequestUrl: msalConfig.auth.navigateToLoginRequestUrl\r\n };\r\n\r\n console.log(\"msalConfig: \", msalConfigUpdated);\r\n \r\n this.msalInstance = new msal.PublicClientApplication(msalConfigUpdated);\r\n\r\n await this.msalInstance.handleRedirectPromise().then(this.handleResponse).catch((err: any) => {\r\n console.error(err);\r\n if (err.errorCode === 'access_denied') {\r\n skipSignIn = true;\r\n\r\n this.setState({\r\n account: null,\r\n error: null,\r\n isUserAuthenticated: false,\r\n isAuthenticating: false,\r\n })\r\n }\r\n });\r\n\r\n if (!skipSignIn) {\r\n let currentAccounts: any[];\r\n\r\n currentAccounts = this.msalInstance.getAllAccounts();\r\n\r\n if (currentAccounts === null || currentAccounts.length === 0) {\r\n this.onSignIn(this.useRedirectForAuthentication);\r\n } else if (currentAccounts.length > 1) {\r\n // Add choose account code here\r\n console.warn(\"Multiple accounts detected.\");\r\n } else if (currentAccounts.length === 1) {\r\n const loginRequestNew = { ...loginRequest, account: currentAccounts[0] };\r\n\r\n const tokenResponse = await this.acquireToken(loginRequestNew, this.useRedirectForAuthentication)\r\n .catch(error => {\r\n this.setState({\r\n error: error.message\r\n });\r\n });\r\n\r\n if (tokenResponse) {\r\n const user = await fetchMsGraph(graphConfig.graphMeEndpoint,tokenResponse.accessToken);\r\n this.setState({\r\n account: user,\r\n error: null,\r\n isUserAuthenticated: true,\r\n isAuthenticating: false,\r\n })\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n private handleResponse = async (resp: any) => {\r\n\r\n if (resp !== null) {\r\n const loginRequestNew = { ...loginRequest, account: resp.account };\r\n const tokenResponse = await this.acquireToken(loginRequestNew, this.useRedirectForAuthentication)\r\n .catch(error => {\r\n this.setState({\r\n error: error.message\r\n });\r\n });\r\n\r\n if (tokenResponse) {\r\n const user = await fetchMsGraph(graphConfig.graphMeEndpoint,tokenResponse.accessToken);\r\n\r\n this.setState({\r\n account: user,\r\n error: null,\r\n isUserAuthenticated: true,\r\n isAuthenticating: false,\r\n })\r\n\r\n }\r\n } else {\r\n // need to call getAccount here?\r\n const currentAccounts = this.msalInstance.getAllAccounts();\r\n if (!currentAccounts || currentAccounts.length < 1) {\r\n return;\r\n } else if (currentAccounts.length > 1) {\r\n // Add choose account code here\r\n } else if (currentAccounts.length === 1) {\r\n const loginRequestNew = { ...loginRequest, account: currentAccounts[0] };\r\n\r\n const tokenResponse = await this.acquireToken(loginRequestNew, this.useRedirectForAuthentication)\r\n .catch(error => {\r\n this.setState({\r\n error: error.message\r\n });\r\n });\r\n\r\n if (tokenResponse) {\r\n const user = await fetchMsGraph(graphConfig.graphMeEndpoint,tokenResponse.accessToken);\r\n\r\n this.setState({\r\n account: user,\r\n error: null,\r\n isUserAuthenticated: true,\r\n isAuthenticating: false,\r\n });\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n // acquireToken = async (request: any) => {\r\n // // request.account = this.state.account;\r\n // return this.msalInstance.acquireTokenSilent(request).catch((error: any) => {\r\n // console.warn(\"silent token acquisition fails. acquiring token using redirect\");\r\n // if (error instanceof InteractionRequiredAuthError) {\r\n // // fallback to interaction when silent call fails\r\n // return this.msalInstance.acquireTokenPopup(request)\r\n // .then((tokenResponse: any) => {\r\n // console.log(tokenResponse);\r\n // return tokenResponse;\r\n // }).catch((error: any) => {\r\n // console.error(error);\r\n // });\r\n\r\n // } else {\r\n // console.warn(error);\r\n // }\r\n // });\r\n // }\r\n\r\n acquireToken = async (request: any, redirect: boolean) => {\r\n // request.account = this.state.account;\r\n return this.msalInstance.acquireTokenSilent(request).catch((error: any) => {\r\n console.warn(\"silent token acquisition fails. acquiring token using redirect\");\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n if (redirect)\r\n return this.msalInstance.acquireTokenRedirect(request)\r\n .then((tokenResponse: any) => {\r\n console.log(tokenResponse);\r\n return tokenResponse;\r\n }).catch((error: any) => {\r\n console.error(error);\r\n });\r\n else\r\n return this.msalInstance.acquireTokenPopup(request)\r\n .then((tokenResponse: any) => {\r\n console.log(tokenResponse);\r\n return tokenResponse;\r\n }).catch((error: any) => {\r\n console.error(error);\r\n });\r\n\r\n } else {\r\n console.warn(error);\r\n }\r\n });\r\n }\r\n\r\n onSignIn = async (redirect: boolean) => {\r\n if (redirect) {\r\n return this.msalInstance.loginRedirect({\r\n ...loginRequest\r\n });\r\n }\r\n\r\n const loginResponse = await this.msalInstance\r\n .loginPopup(loginRequest)\r\n .catch((error: any) => {\r\n this.setState({\r\n error: error.message\r\n });\r\n });\r\n\r\n\r\n if (loginResponse) {\r\n const loginRequestNew = { ...loginRequest, account: loginResponse.account };\r\n\r\n const tokenResponse = await this.acquireToken(loginRequestNew, this.useRedirectForAuthentication).catch(error => {\r\n this.setState({\r\n error: error.message\r\n });\r\n });\r\n\r\n if (tokenResponse) {\r\n const user = await fetchMsGraph(graphConfig.graphMeEndpoint,tokenResponse.accessToken);\r\n\r\n this.setState({\r\n account: user,\r\n error: null,\r\n isUserAuthenticated: true,\r\n isAuthenticating: false,\r\n })\r\n }\r\n }\r\n }\r\n\r\n onSignOut() {\r\n this.msalInstance.logout();\r\n }\r\n\r\n render() {\r\n const { error, account, isUserAuthenticated, isAuthenticating } = this.state;\r\n\r\n if (isAuthenticating) {\r\n return (\r\n \r\n Trying to Log-In\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    );\r\n }\r\n else {\r\n if (isUserAuthenticated) {\r\n return (\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n {\r\n error ?\r\n {\r\n this.setState({\r\n error: null\r\n });\r\n }}\r\n messageBarType={MessageBarType.error}\r\n isMultiline={true}\r\n truncated={true}\r\n >\r\n {error}\r\n \r\n : null\r\n }\r\n

    Please sign-in into your account to access this page.

    \r\n {\r\n this.onSignIn(true);\r\n }}\r\n allowDisabledFocus\r\n />\r\n
    \r\n );\r\n }\r\n }\r\n\r\n }\r\n };\r\n","import * as React from 'react';\r\nimport { css, Stack, PrimaryButton, Text, getTheme } from 'office-ui-fabric-react';\r\nimport { PageURL } from '../../App';\r\nimport './Welcome.scss';\r\nimport flagUS from '../../images/USFlag.svg';\r\nimport flagCanada from '../../images/CanadaFlag.svg';\r\n\r\nconst theme = getTheme();\r\n\r\nexport interface IWelcomePageProps {\r\n location: Location;\r\n history: any;\r\n stepSizeClass: string;\r\n}\r\n\r\nconst WelcomePage = (props: IWelcomePageProps) => {\r\n const [country, setCountry] = React.useState(\"\");\r\n\r\n return (\r\n \r\n \r\n

    Welcome to Dental Monitoring™

    \r\n {\r\n country ?\r\n \r\n

    Want to create Order?

    \r\n \r\n {\r\n sessionStorage.setItem(\"Country\", country);\r\n props.history.push(PageURL.CreateOrderAuthenticated);\r\n }}\r\n allowDisabledFocus\r\n />\r\n {\r\n sessionStorage.setItem(\"Country\", country);\r\n props.history.push(PageURL.CreateOrder);\r\n }}\r\n allowDisabledFocus\r\n />\r\n \r\n
    \r\n :\r\n \r\n

    Choose Country

    \r\n \r\n \r\n \r\n {/* US */}\r\n \r\n\r\n \r\n \r\n {/* Canada */}\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\nexport default WelcomePage;","import { IDataProvider } from \"./IDataProvider\";\r\nimport { IApplicationLabels } from \"../components/OrderForm/Models/IApplicationLabels\";\r\nimport HttpService from \"./HttpService\";\r\nimport { IPaymentSettings, IOrder, IApplicationSettings, IPaymentTokenResponse, Country } from \"../components/OrderForm/Models\";\r\n\r\nexport default class DataProvider implements IDataProvider {\r\n\r\n public apiEndpointSP = `/api/SPInterface`;\r\n public apiEndpointPayment = `/api/Payment`;\r\n public apiEndpointAppSettings = `/api/ApplicationSettings`;\r\n\r\n public async getApplicationSettings(country: string | null): Promise {\r\n const applicationSettings: IApplicationSettings = await HttpService.get(`${this.apiEndpointAppSettings}/${country}`);\r\n return applicationSettings;\r\n }\r\n\r\n public async getApplicationLables(country: string | null): Promise {\r\n const applicationLabels: IApplicationLabels = await HttpService.get(`${this.apiEndpointSP}/GetApplicationLabels/${country}`);\r\n return applicationLabels;\r\n }\r\n\r\n public async getPaymentSettings(): Promise {\r\n const paymentSettings: IPaymentSettings = await HttpService.get(`${this.apiEndpointPayment}/GetPaymentSettings`);\r\n return paymentSettings;\r\n }\r\n\r\n public async getPaymentAccessToken(): Promise {\r\n const paymentAccessTokenResponse: IPaymentTokenResponse = await HttpService.get(`${this.apiEndpointPayment}/GetAccessToken`);\r\n return paymentAccessTokenResponse;\r\n }\r\n\r\n public async validatePaymentToken(token: string, tokenID: string): Promise {\r\n const decodedToken: any = await HttpService.get(`${this.apiEndpointPayment}/ValidateToken/${token}/${tokenID}`);\r\n return decodedToken;\r\n }\r\n\r\n public async getOrder(orderId: string): Promise {\r\n //const order: IOrder = await HttpService.get(`${this.apiEndpointSP}/Order/${orderId}`);\r\n const order: IOrder = await HttpService.get(`${this.apiEndpointSP}/Order/${encodeURIComponent(orderId)}`);\r\n\r\n order.created = order.created ? new Date(order.created.toString()) : undefined;\r\n order.modified = order.modified ? new Date(order.modified.toString()) : undefined;\r\n\r\n return order;\r\n }\r\n\r\n public async submitSignedOrder(order: IOrder): Promise {\r\n\r\n const response = await HttpService.post(`${this.apiEndpointSP}/SubmitOrder`, order);\r\n return response\r\n }\r\n\r\n public async createSendToCutomerOrder(order: IOrder): Promise {\r\n const response = await HttpService.post(`${this.apiEndpointSP}/CreateSendToCustomerOrder`, order);\r\n return response\r\n }\r\n\r\n public async createOrder(order: IOrder): Promise {\r\n\r\n const response = await HttpService.post(`${this.apiEndpointSP}/CreateOrder`, order);\r\n return response\r\n }\r\n\r\n public logErrorInConsole(errorArea: string, errorObj: any) {\r\n this.logError(errorObj.message);\r\n console.log(`Error message ${errorArea}: `, errorObj.message);\r\n console.log(`Error Stack Trace ${errorArea}: `, errorObj.stack);\r\n }\r\n\r\n private logError(msg: any) {\r\n if (console) {\r\n console.log(`%cERROR:`, \"color:red;font-weight:bold;font-size:16px\");\r\n console.log(msg);\r\n }\r\n }\r\n\r\n public extractErrorMessageFromErrorObject(error: any): string {\r\n\r\n let errorMessage = error.message ? error.message as string : error as string;\r\n\r\n if (errorMessage.indexOf(\"::>\") >= 0) {\r\n try {\r\n let errorObj = JSON.parse(errorMessage.substring(errorMessage.indexOf(\"::>\") + 3).trim());\r\n\r\n if (errorObj[\"odata.error\"] && errorObj[\"odata.error\"].message && errorObj[\"odata.error\"].message.value)\r\n errorMessage = errorObj[\"odata.error\"].message.value;\r\n\r\n } catch (error) {\r\n errorMessage = errorMessage.substring(errorMessage.indexOf(\"::>\") + 3).trim();\r\n }\r\n\r\n }\r\n\r\n return errorMessage;\r\n }\r\n\r\n public getStatesLists(country: Country) {\r\n if (country === 'US')\r\n return this.getStatesListsUS();\r\n else if (country === 'Canada')\r\n return this.getProvinceListCA();\r\n else\r\n return [];\r\n }\r\n\r\n public getStatesListsUS(): string[] {\r\n return [\r\n 'Alabama',\r\n 'Alaska',\r\n 'Arizona',\r\n 'Arkansas',\r\n 'California',\r\n 'Colorado',\r\n 'Connecticut',\r\n 'Delaware',\r\n 'Florida',\r\n 'Georgia',\r\n 'Hawaii',\r\n 'Idaho',\r\n 'Illinois',\r\n 'Indiana',\r\n 'Iowa',\r\n 'Kansas',\r\n 'Kentucky',\r\n 'Louisiana',\r\n 'Maine',\r\n 'Maryland',\r\n 'Massachusetts',\r\n 'Michigan',\r\n 'Minnesota',\r\n 'Mississippi',\r\n 'Missouri',\r\n 'Montana',\r\n 'Nebraska',\r\n 'Nevada',\r\n 'New Hampshire',\r\n 'New Jersey',\r\n 'New Mexico',\r\n 'New York',\r\n 'North Carolina',\r\n 'North Dakota',\r\n 'Ohio',\r\n 'Oklahoma',\r\n 'Oregon',\r\n 'Pennsylvania',\r\n 'Rhode Island',\r\n 'South Carolina',\r\n 'South Dakota',\r\n 'Tennessee',\r\n 'Texas',\r\n 'Utah',\r\n 'Vermont',\r\n 'Virginia',\r\n 'Washington',\r\n 'West Virginia',\r\n 'Wisconsin',\r\n 'Wyoming'\r\n ]\r\n }\r\n\r\n public getProvinceListCA(): string[] {\r\n return [\r\n 'Alberta',\r\n 'British Columbia',\r\n 'Manitoba',\r\n 'New Brunswick',\r\n 'Newfoundland and Labrador',\r\n 'Northwest Territories',\r\n 'Nova Scotia',\r\n 'Nunavut',\r\n 'Ontario',\r\n 'Prince Edward Island',\r\n 'Quebec',\r\n 'Saskatchewan',\r\n 'Yukon'\r\n ];\r\n }\r\n\r\n}","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Layout } from './components/Layout/Layout';\r\nimport { OrderForm } from './components/OrderForm/StepOrderForm/OrderForm';\r\nimport { OrderSummaryForm } from './components/OrderForm/CompleteForm/OrderSummaryForm';\r\nimport AuthProvider from './components/AuthenticationProvider/AuthenticationProvider';\r\nimport WelcomePage from './components/WelcomePage/Welcome';\r\n\r\nimport './Common.scss'\r\n// import MockService from './dataprovider/MockService';\r\nimport DataProvider from './dataprovider/DataProvider';\r\n\r\nexport const PageURL = {\r\n CreateOrder: \"/pages/CustomerCreateOrder\",\r\n CreateOrderAuthenticated: \"/pages/CreateOrder\",\r\n OrderSummary: \"/pages/OrderSummary\"\r\n}\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n // dataProvider = new MockService();\r\n dataProvider = new DataProvider();\r\n\r\n render() {\r\n\r\n const AuthenticatedOrderForm = AuthProvider(OrderForm);\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 \r\n )}\r\n />\r\n \r\n );\r\n }\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker, { unregister } from './registerServiceWorker';\r\nimport { initializeIcons } from '@uifabric/icons';\r\n\r\ninitializeIcons();\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n//registerServiceWorker();\r\nunregister();\r\n\r\n","export interface IOrder {\r\n id?: number;\r\n subscriptions?: string[];\r\n soVirtualCheck?: string;\r\n soMonitoringLightStarterKit?: boolean;\r\n soMonitoringLightTrainingOption?: string;\r\n customer?: string;\r\n dentalOfficeEmail?: string;\r\n businessName?: string;\r\n businessAddress?: string;\r\n city?: string;\r\n state?: string;\r\n zipCode?: string;\r\n phoneNumber?: string;\r\n nameAndTitle?: string;\r\n clinicalEmail?: string;\r\n npi?: string;\r\n license?: string;\r\n taxId?: string;\r\n signatures?: string;\r\n signatureName?: string;\r\n acceptTermCondition?: boolean;\r\n acceptTermConditionAnother?: boolean;\r\n requestSubmitter?: IPerson;\r\n orderStatus?: string;\r\n created?: Date;\r\n modified?: Date;\r\n orderRefID?: string;\r\n orderNo?: string;\r\n cardToken?: string;\r\n cardType?: string;\r\n cardExpiryDate?: string;\r\n cardholderName?: string;\r\n country?: Country;\r\n gender?: string;\r\n speciality?: string;\r\n territoryManager?: string | undefined;\r\n territoryManagerEmail?: string | undefined;\r\n materialList?: string;\r\n}\r\n\r\nexport declare type Country = 'US' | 'Canada' | undefined;\r\n\r\nexport interface IPerson {\r\n EMail?: string;\r\n Id?: number;\r\n Name?: string;\r\n Title?: string;\r\n}\r\n\r\nexport enum CustomFieldTypes {\r\n Text,\r\n MultiLine,\r\n Date,\r\n DateTime,\r\n Boolean,\r\n Dropdown,\r\n Number,\r\n Integer,\r\n Floating,\r\n User,\r\n MultiUser,\r\n Lookup,\r\n MultiLookup,\r\n Email,\r\n File,\r\n MultiValue\r\n}\r\n\r\nexport type ErrorState = {\r\n [key: string]: {\r\n errorMessage: string | undefined,\r\n showError: boolean | undefined\r\n };\r\n}","export enum PaymentSteps {\r\n Tokenize,\r\n Authenticate,\r\n Authorize,\r\n CreateSalesOrder,\r\n}","module.exports = __webpack_public_path__ + \"static/media/str-group-white.c517c0ca.svg\";"],"sourceRoot":""}