{"version":3,"sources":["stores/UIConfirmDialogStore.ts","stores/UITransitionStore.ts","web-store/WebStoreUtil.ts","web-store/Validators.ts","web-store/ServerClasses.ts","stores/UIFormStore.ts","stores/UISearchFormStore.ts","components/FormHeader.tsx","components/ProductsSearchForm.tsx","stores/UIPurchaseWizardStore.ts","components/ValidationCheckBox.tsx","components/ValidationTextField.tsx","components/PurchaseWizardForm.tsx","stores/UIStore.ts","stores/UIProductsFormStore.ts","components/SubscriptionsSearchForm.tsx","components/AssetsForm.tsx","stores/UIAssetsFormStore.ts","stores/UISubscriptionsFormStore.ts","stores/UIEditFormStore.ts","components/ContactForm.tsx","stores/UIContactFormStore.ts","components/OrdersSearchForm.tsx","stores/UIOrdersFormStore.ts","components/AdminAccountsSearchForm.tsx","components/AccountForm.tsx","components/OrganizationForm.tsx","stores/UIOrganizationFormStore.ts","web-store/ServerInsight.ts","components/ValidationPasswordField.tsx","components/ChangePasswordForm.tsx","stores/UIChangePasswordStore.ts","stores/UIAccountFormStore.ts","stores/UIAdminAccountsFormStore.ts","components/AdminSignupsSearchForm.tsx","components/AdminSignupForm.tsx","stores/UIAdminSignupFormStore.ts","stores/UIAdminSignupsFormStore.ts","stores/UISidebarStore.ts","stores/UIUserMenuStore.ts","stores/UIMessageStore.ts","stores/UILoginFormStore.ts","components/CenterContainerForm.tsx","components/LoginForm.tsx","stores/UIForgotPasswordFormStore.ts","components/ForgotPasswordForm.tsx","components/UITransition.tsx","components/ConfirmDialog.tsx","components/UserMenu.tsx","components/Sidebar.tsx","components/PageContainer.tsx","stores/UISignupFormStore.ts","components/SignupForm.tsx","stores/UIResetPasswordFormStore.ts","components/ResetPasswordForm.tsx","components/ConfirmEmailForm.tsx","stores/UIConfirmEmailFormStore.ts","components/App.tsx","serviceWorker.ts","components/Landing.tsx","stores/LocalStore.ts","components/HomeForm.tsx","components/VideosForm.tsx","stores/UIVideosFormStore.ts","stores/UIHomeFormStore.ts","stores/DomainStore.ts","web-store/ServerApi.ts","stores/AppStore.ts","play/TestVideoDownload.tsx","index.tsx"],"names":["DialogMode","DialogResult","UITransitionStore","parent","parentStore","_defaultMessage","this","message","_visible","observable","computed","action","isNullOrUndefined","reset","o","undefined","isArray","a","slice","error","to2DecimalNumber","n","Math","round","toFixed","DataType","UIConfirmDialogStore","context","resoureText","callback","show","dialogMode","OKCancel","title","result","ProductItemType","ProductItemUIType","AssetType","BaseValidator","_validatedValue","_validationMessage","_valid","evalData","value","RequiredValidator","trim","_trim","isUndefined","String","IsNullOrWhiteSpace","EmailValidator","emailValid","match","length","DataTypeValidator","dataType","maxLength","integral","decimals","allowNeg","_dataType","_maxLength","_integral","_decimals","_allowNeg","isPrimitive","Decimal","Number","isNaN","d","toString","Format","split","floor","WholeNumber","w","isString","Date","console","PasswordComplexityValidator","minLength","minScore","_minLength","_minScore","zz","score","UIFormStore","_key","getFormValue","field","baseObject","hasOwnProperty","propName","moment","isDate","format","getValidationFieldErrorMessage","errorMessage","hasValidators","setFormValue","messages","valid","i","validators","vf","validate","push","validationMessage","validatedValue","join","validateField","validateForm","validationFields","beforeCancel","cancelAction","dontClose","addCloseMenu","items","key","text","iconProps","iconName","onClick","cancel","nextKey","entity","props","find","x","fieldId","_nextKey","messageStore","clear","removeForm","SearchFormStore","filterPropName","columns","records","_filterPropName","filterValue","filter","event","setRecords","setColumns","displayedColumns","entityName","callbackfn","params","serverApi","getEntities","resp","statusCode","entities","map","showMessageFromResponse","uiTransition","hide","showErrorMessage","displayedRecords","getFilterRecordValue","toLowerCase","indexOf","r","sortBy","descending","sort","b","ev","clickedColumn","fieldName","newItems","newColumns","currColumn","currCol","idx","forEach","newCol","isSortedDescending","isSorted","FormHeader","observer","_closeForm","uiStore","style","fontSize","FontSizes","xLarge","header","React","ProductsSearchForm","store","setCommandBarItemsKeys","CommandBar","name","minWidth","maxWidth","isRowHeader","isResizable","onColumnClick","data","isPadded","onRender","item","version","PrimaryButton","startTrial","c","product","height","display","alignItems","marginLeft","overflowX","marginTop","TextField","placeholder","onChange","overflowY","data-is-scrollable","DetailsList","_getColumns","compact","selectionMode","SelectionMode","none","layoutMode","DetailsListLayoutMode","justified","isHeaderVisible","constrainMode","ConstrainMode","unconstrained","className","_renderCommands","detailList","PurchaseWizardStep","ValidationCheckBox","getValidationField","Checkbox","isChecked","onValue","offValue","ValidationTextField","onchanged","v","validateOnFocusOut","PurchaseWizardForm","confirmCancel","uiElements","index","productConfig","element","hideForTrial","purchaseMode","pricingMode","type","choice","uiType","DropDown","_renderDropDown","config","RadioButton","CheckBox","slab","TextBox","Slider","_renderSlider","_renderInstallCheckBox","_renderCost","_renderTrialInfo","padding","productItem","choiceConfig","vIndex","options","choices","id","description","_paddingStyle","allowMultiple","Dropdown","label","multiSelect","selectedKeys","itemValues","selectedKey","dropDownChangeSingle","color","linkColor","tip","slabConfig","min","minValue","max","maxValue","step","showValue","sliderChange","snapToStep","remoteInstallEnabled","checked","remoteInstallRequested","remoteInstallRequestChanged","Stack","styles","root","tokens","childrenGap","Item","horizontal","verticalAlign","estimateCost","costData","subscriptionCost","Text","remoteInstallCost","trialPeriod","url","rootStore","getAssetUrl","AcceptEula","eulaAssetId","remoteInstallAssetId","stackItemStyles","width","eulaFields","preAccepted","src","disabled","required","DatePicker","showMonthPickerAsOverlay","isRequired","onSelectDate","selectEulaDate","variant","itemTokens","margin","installCost","totalCost","IconButton","Config","_getConfigurationItemValue","RemoteInstall","block","piv","_renderProductConfig","_renderEulaAccept","Confirm","_renderConfirm","gotoPreviousStep","gotoNextStep","DisableConfirm","_renderStep","_renderNextBack","InitForm","UIPurchaseWizardStore","_subscriptionsFormStore","_renewalSubscription","remoteInstallAgreement","eulaAgreement","_deleteAsset","ids","postData","_confirmTrial","disableConfirm","sr","renewaPubliclId","accountId","acceptCompany","organization","acceptDate","date","acceptEmail","email","acceptName","acceptTitle","eulaAcceptanceId","acceptanceId","isTrial","legalSignatory","productId","productData","iv","values","paymentOrderId","paymentReferenceId","cost","response","showErrorFromException","_confirmPurchase","_startPayment","_paymentConfirmed","confirmation","log","JSON","stringify","showMessage","reference","publicId","confirmDialogStore","Yes","refresh","OK","showDialog","_calculateCost","tags","_getProductTags","subScriptionCost","window","func1","fs","info","fsProductPath","quantity","pricing","price","USD","fsInstallPath","account","domainStore","userAccount","builder","recognize","emailId","firstName","lastName","company","phone","addressLine1","addressLine2","city","region","country","postalCode","zip","tag","secure","securePayload","secureKey","checkout","cr","trial","remoteInstall","parseFloat","pricingConfiguration","defaultChoices","defaultValue","setBaseObject","accepted","createValidationFields","_resetCart","subscription","subscriptionsFormStore","stepNumber","agreementFields","diff","addForm","create","_validateAgreement","_setAgreementValidation","_resetCost","UIProductsFormStore","selection","getRecordsFromApi","trialsResponse","eulaAccepted","assetType","Agreement","eulaId","eulasResponse","assets","asset","ClientConfig","lazyData","webStore","showForm","notUsed","Selection","SubscriptionsSearchForm","endDate","gotoAssets","isRenewableNow","gotoRenew","AdminMode","AssetsForm","assetData","assetResponse","licenseKey","copyLicenseToClipboard","downloadLicense","disableLicense","downloadInstall","disableInstall","UIAssetsFormStore","_removeAssets","request","copy","_createPseudoLink","link","document","createElement","href","body","appendChild","click","removeChild","UISubscriptionsFormStore","Trial","productsResponse","setItemValuesFromPreviousSubscription","renewableDate","isSameOrBefore","utc","UIEditFormStore","getEntity","ContactForm","autoFocus","multiline","minHeight","sendMessage","sentMessage","UIContactFormStore","subject","OrdersSearchForm","orderDate","paymentTotal","Link","paymentInvoiceUrl","target","UIOrdersFormStore","orderTitle","AdminAccountsSearchForm","gotoAccount","AccountForm","changePassword","gotoOrg","splice","saveAccount","userMode","readOnly","Icon","enabled","approved","companyAdmin","selectExpiryDate","expires","__html","OrganizationForm","save","adminMode","UIOrganizationFormStore","updateCompany","updateEntity","ServerInsight","insightType","startDate","toDate","api","appInsight","lastUpdated","updatedBy","jData","updateInsight","ValidationPasswordField","ignoreComplexityRequirement","MinPasswordLength","MinPasswordScore","findIndex","ChangePasswordForm","changePasswordData","userid","resizable","deferredValidationTime","validateOnLoad","UIChangePasswordStore","newPassword1","newPassword2","ai","UserId","update","newPassword","oldPassword","showInfoMessage","_resetData","showResetMessage","getTypedObject","UIAccountFormStore","acccount","getRecordFromFromApi","reponse","UIAdminAccountsFormStore","AdminSignupsSearchForm","theme","palette","greenLight","red","gotoSignup","signupDate","approvalDate","AdminSignupForm","confirmApproveSignup","signup","emailConfirmed","align","ipAddress","emailConfirmDate","emailConfirmIp","UIAdminSignupFormStore","approveSignup","idDto","UIAdminSignupsFormStore","UISidebarStore","_gotoProducts","_gotoPurchases","_gotoTrials","_gotoOrders","_gotoSignups","_gotoAccounts","_gotoContact","_gotoFaq","opened","adminMenus","icon","userMenus","u","UIUserMenuStore","alert","signOut","logoff","UIMessageStore","messageType","MessageBarType","isError","args","Error","UIStore","getPreviousFormStore","formStack","sideBarStore","userMenuStore","_appInit","initForm","signIn","newTheme","iconOnly","iconStyle","itemType","ContextualMenuItemType","Normal","subMenuProps","si","semanticColors","formElement","f","Key","UILoginFormStore","loginData","ref","recaptchaSiteKey","loginMessage","captcha","execute","webStoreLogin","userId","password","isLoading","preLoginInit","bi","BrowserInfo","asAdmin","deviceName","deviceOS","os","deviceVersion","hostInfo","brc","disableRecaptcha","login","loginResponse","localStore","UserInfo","admin","keepLoggedIn","token","usha","userName","setLoginStatus","removegCaptchaBadge","resetCaptcha","forgotPassword","signUp","CenterContainerForm","flexDirection","justifyContent","children","border","getSpinnerStyles","size16","themePrimary","textAlign","LoginForm","signInBoxStyle","boxStyle","signInCellStyle","cellStyle","paddingTop","autoComplete","onKeyPress","charCode","sitekey","verifyCallback","verifyCaptcha","backgroundColor","SharedColors","magenta20","data-automation-id","e","preventDefault","navigateToSignup","mediumPlus","navigateToForgotPassword","Spinner","size","SpinnerSize","large","ariaLive","errorText","UIForgotPasswordFormStore","forgotData","isAdmin","ForgotPasswordForm","forgotPasswordData","navigateToLogin","bodyText","UITransition","contentStyles","mergeStyleSets","container","Modal","isOpen","Visible","isBlocking","containerClassName","shiftKey","medium","ConfirmDialog","Dialog","hidden","onDismiss","dismissDialog","Cancel","dialogContentProps","DialogType","normal","subText","modalProps","DialogFooter","DefaultButton","YesNo","YesNoCancel","No","buttons","UserMenu","menuProps","isBeakVisible","gapSpace","beakWidth","directionalHint","getRTL","DirectionalHint","bottomLeftEdge","bottomRightEdge","adminAccount","marginRight","_renderContextMenu","Sidebar","_sideBarRef","createRef","links","Nav","groups","Component","PageContainer","currentForm","UISignupFormStore","signupData","changeCountry","option","registerDisabled","signupReceived","signupMessage","rejectError","password1","password2","companyName","addressLine3","state","acceptedTerms","SignupForm","countryOptions","initData","countries","horizontalAlign","ComboBox","allowFreeform","navigateToSignin","UIResetPasswordFormStore","resetData","resetSuccess","resetId","passwordResetId","history","replaceState","ResetPasswordForm","resetPasswordData","resetPassword","ConfirmEmailForm","confirm","confirmed","appStore","errorBackground","confirmMessage","UIConfirmEmailFormStore","queryParams","cData","cdata","setTimeout","location","App","loginstore","testdata","passwordAdmin","sd","signUpData","MessageBar","messageBarType","IsLoggedIn","_renderAdminApp","_renderUserApp","_renderFooter","buildVersion","initMenus","_renderApp","_renderSignInForm","_renderSignupForm","confirmEmail","_renderConfirmEmailForm","_renderForgotPasswordForm","_renderResetPasswordForm","Boolean","hostname","getStyles","LocalStoreKey","LocalStore","_getLocalObject","json","localStorage","getItem","parse","_setLocalObject","obj","setItem","KeyUser","userInfo","HomeForm","marginBottom","image","tagLine","goToProductUrl","startPurchase","startPricing","gotoVideos","products","p","_renderProduct","VideosForm","videoRef","video","gotoVideo","bodyHeight","documentElement","scrollHeight","flexFlow","fonts","xLargePlus","flex","borderTop","neutralPrimary","fontWeight","FontWeights","semibold","selectors","iconButtonStyles","rootHovered","neutralDark","showVideo","hideVideo","main","layerProps","onLayerDidMount","layerMounmted","videoTitle","ariaLabel","controls","videos","_renderVideo","_renderModalVideo","UIVideosFormStore","videoResponse","assetRequest","Server","Video","getVideo","deleteAssetRequest","mimeCodec","current","MediaSource","isTypeSupported","mediaSource","URL","createObjectURL","addEventListener","videoSourceBuffer","addSourceBuffer","appendBuffer","tryMediaSource","fetch","then","status","arrayBuffer","videoData","UIHomeFormStore","productUrl","isProductActive","riaResponse","remoteInstallAgreementId","_testCallBack","testPurchase","productRef","_getProduct","DomainStore","clearLocalUserInfo","showgCaptchaBadge","appInit","_loggedIn","ServerApi","apiUrl","_eKey","_eIv","_anoneKey","_anoneIv","_encryptInsights","_appToken","getClientConfig","settings","method","headers","_setDefaultHeaders","Axios","language","getApiUrl","lastPart","assetId","inline","encodeURIComponent","ar","appToken","loginRequest","rawRequest","errorToResponse","validateLogin","_addQueryParams","withCredentials","createEntity","deleteEntity","urlPart","responseType","internalMessage","requestDate","responseDate","insight","_isLoggedIn","eKey","eIv","CryptoJS","AES","encrypt","enc","Utf16LE","keySize","mode","CBC","pad","Pkcs7","AppStore","_clientConfig","_browserInfo","_minPasswordScore","_minPasswordLength","_gCapthaCssRule","getQueryStringParams","search","features","pwds","pwdl","css","styleSheets","insertRule","removeRule","readBrowser","myTheme","createTheme","Customizations","applySettings","bodyBackground","disabledBodySubtext","loadReCaptcha","getTheme","detect","_resetBrowserInfo","query","test","reduce","param","decodeURIComponent","replace","renderNoInit","querySelector","render","rp","ce","initializeIcons","renderApp","catch","err","loadConfig","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.196e48f1.chunk.js","sourcesContent":["import {observable, action} from 'mobx';\r\nimport { isNullOrUndefined } from '../web-store/WebStoreUtil';\r\n\r\nexport enum DialogMode {\r\n OK = 0,\r\n OKCancel = 1,\r\n YesNo = 2,\r\n YesNoCancel = 3\r\n}\r\n\r\nexport enum DialogResult {\r\n Cancel = 0,\r\n Yes = 1, // same as OK\r\n No = 2, \r\n}\r\n\r\nexport class UIConfirmDialogStore {\r\n @observable title: string;\r\n @observable message: string;\r\n @observable show: boolean;\r\n @observable dialogMode: DialogMode;\r\n context: any;\r\n resoureText: string;\r\n callback : (context: any, result: DialogResult) => void;\r\n\r\n constructor() {\r\n this.show = false;\r\n this.dialogMode = DialogMode.OKCancel;\r\n }\r\n\r\n @action\r\n showDialog = (title?: string, message?: string) => {\r\n // caller can set title/message directly. if set directly\r\n // those values will be used\r\n // if overriden in this call, those values will be used\r\n // else use resource manager if set\r\n\r\n if (!isNullOrUndefined(title)) {\r\n this.title = title;\r\n } \r\n\r\n if (!isNullOrUndefined(message)) {\r\n this.message = message;\r\n }\r\n\r\n this.show = true;\r\n }\r\n \r\n @action\r\n dismissDialog = (result: DialogResult) => {\r\n this.show = false;\r\n if (!isNullOrUndefined(this.callback)) this.callback(this.context, result);\r\n this.callback = null;\r\n }\r\n\r\n @action\r\n clearCallBack = () => {\r\n this.callback = null;\r\n }\r\n}\r\n","import {UIStore} from './UIStore'\r\nimport {observable, computed, action} from 'mobx';\r\nimport { isNullOrUndefined } from 'util';\r\n\r\nexport class UITransitionStore {\r\n parentStore: UIStore;\r\n @observable message: string;\r\n @observable private _visible: boolean;\r\n private _defaultMessage: string;\r\n\r\n constructor(parent: UIStore) {\r\n this.parentStore = parent;\r\n this._defaultMessage = \"Processing ...\"\r\n this.message = this._defaultMessage;\r\n this._visible = false;\r\n }\r\n\r\n @computed\r\n public get Visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n @action\r\n public show = (message?: string) => {\r\n if (!isNullOrUndefined(message)) this.message = message;\r\n this._visible = true;\r\n }\r\n\r\n @action\r\n hide = (reset?: boolean) : void => {\r\n if (reset === true) {\r\n this.message = this._defaultMessage;\r\n } \r\n this._visible = false;\r\n }\r\n}\r\n","export function isNullOrUndefined(o: any): boolean {\r\n return (o === null || o === undefined);\r\n}\r\n\r\nexport function isArray(a: any): boolean {\r\n try {\r\n let a2 = a.slice();\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n}\r\n\r\nexport function to2DecimalNumber(n: number): string {\r\n return (Math.round(n * 100) / 100).toFixed(2);\r\n}","import { String } from 'typescript-string-operations';\r\nimport { isUndefined, isPrimitive, isString } from 'util';\r\nimport zz from 'zxcvbn';\r\n\r\nexport interface IValidator {\r\n validatedValue: string;\r\n validationMessage: string;\r\n valid: boolean;\r\n validate(value: string): boolean;\r\n}\r\n\r\nexport enum DataType {\r\n String = 1,\r\n WholeNumber = 2,\r\n Decimal = 3,\r\n Date = 4\r\n}\r\n\r\nexport abstract class BaseValidator implements IValidator {\r\n protected _validatedValue: string;\r\n protected _validationMessage: string;\r\n protected _valid: boolean;\r\n public evalData: any;\r\n\r\n constructor() {\r\n this._valid = false;\r\n this._validationMessage = \"\";\r\n this._validatedValue = \"\";\r\n }\r\n\r\n public get validatedValue() {\r\n return this._validatedValue;\r\n }\r\n\r\n public get validationMessage() {\r\n return this._validationMessage;\r\n }\r\n\r\n public get valid() : boolean {\r\n return this._valid;\r\n }\r\n\r\n validate(value: string) : boolean {\r\n return false;\r\n }\r\n}\r\n\r\nexport class RequiredValidator extends BaseValidator {\r\n _trim: boolean;\r\n \r\n constructor(trim?: boolean) {\r\n super();\r\n this._trim = false;\r\n if (!isUndefined(trim)) this._trim = trim;\r\n }\r\n\r\n validate(value: string) : boolean {\r\n this._validationMessage = \"\";\r\n this._validatedValue = \"\";\r\n this._valid = false;\r\n if (String.IsNullOrWhiteSpace(value)) {\r\n this._validationMessage = \"Required\";\r\n return false;\r\n }\r\n this._validatedValue = this._trim ? value.trim() : value;\r\n this._valid = true;\r\n return true;\r\n }\r\n}\r\n\r\nexport class EmailValidator extends BaseValidator {\r\n\r\n validate(value: string) : boolean {\r\n this._validationMessage = \"\";\r\n this._validatedValue = \"\";\r\n this._valid = false;\r\n if (String.IsNullOrWhiteSpace(value)) {\r\n this._validationMessage = \"Invalid Email\";\r\n return false;\r\n }\r\n let emailValid: RegExpMatchArray = value.match(/^([\\w.%+-]+)@([\\w-]+\\.)+([\\w]{2,})$/i);\r\n this._valid = (emailValid && emailValid.length > 0);\r\n if (this._valid) {\r\n this._validatedValue = value.trim();\r\n } else {\r\n this._validationMessage = \"Invalid Email\";\r\n }\r\n return this._valid;\r\n }\r\n}\r\n\r\nexport class UrlValidator extends BaseValidator {\r\n\r\n validate(value: string) {\r\n this._validationMessage = \"\";\r\n this._validatedValue = \"\";\r\n this._valid = false;\r\n if (String.IsNullOrWhiteSpace(value)) {\r\n this._validationMessage = \"Invalid URL\";\r\n return false;\r\n }\r\n // let regexQuery = \"^(https?://)?(((www\\\\.)?([-a-z0-9]{1,63}\\\\.)*?[a-z0-9][-a-z‌​0-9]{0,61}[a-z0-9]\\\\‌​.[a-z]{2,6})|((\\\\d{1‌​,3}\\\\.){3}\\\\d{1,3}))‌​(:\\\\d{2,4})?(/[-\\\\w@‌​\\\\+\\\\.~#\\\\?&/=%]*)?$‌​\";\r\n // let url: RegExp = new RegExp(regexQuery,\"i\");\r\n this._valid = /^(http|https):\\/\\/[^ \"]+$/.test(value.trim());\r\n this._validatedValue = value.trim();\r\n if (!this._valid) this._validationMessage = \"Invalid URL\";\r\n return this._valid;\r\n }\r\n}\r\n\r\nexport class DataTypeValidator extends BaseValidator {\r\n private _dataType: DataType;\r\n private _maxLength: number;\r\n private _integral: number;\r\n private _decimals: number;\r\n private _allowNeg: boolean;\r\n\r\n constructor(dataType: DataType, maxLength: number, integral: number, decimals: number, allowNeg: boolean) {\r\n super();\r\n this._dataType = dataType;\r\n this._maxLength = maxLength;\r\n this._integral = integral;\r\n this._decimals = decimals;\r\n this._allowNeg = allowNeg;\r\n }\r\n\r\n validate(value: any) : boolean {\r\n this._validationMessage = \"\";\r\n this._validatedValue = \"\";\r\n if (!isPrimitive(value)) return false;\r\n\r\n try {\r\n this._valid = false;\r\n\r\n switch (this._dataType) {\r\n case DataType.Decimal:\r\n if (!Number.isNaN(Number(value))) {\r\n this._validationMessage = \"Value is not a number.\"\r\n return false;\r\n }\r\n var d = Number(value);\r\n if (!this._allowNeg && d < 0) {\r\n this._validationMessage = \"Negative vlaue is invalid.\"\r\n return false;\r\n }\r\n if (this._maxLength > 0) {\r\n if ( Number(value).toString().length > this._maxLength) {\r\n this._validationMessage = String.Format(\"Invalid value. Max length {0} exceeded.\", this._maxLength);\r\n return false;\r\n }\r\n }\r\n if (this._decimals > 0) {\r\n if (d.toString().split('.').length > 0) {\r\n var decimals = Number(d.toString().split('.')[1].length);\r\n if (decimals > this._decimals) {\r\n this._validationMessage = String.Format(\"Invalid value. Max decimals {0} exceeded.\", this._decimals);\r\n return false;\r\n }\r\n }\r\n }\r\n if (this._integral > 0) {\r\n var integral = Math.floor(d);\r\n if (integral.toString().length > this._integral) {\r\n this._validationMessage = String.Format(\"Invalid value. Decimals not allowed.\", this._integral);\r\n return false;\r\n }\r\n }\r\n this._valid = true;\r\n this._validatedValue = d.toString();\r\n return true;\r\n \r\n case DataType.WholeNumber:\r\n if (Number.isNaN(Number(value))) {\r\n this._validationMessage = \"Value is not a number.\";\r\n return false;\r\n }\r\n var w = Number(value);\r\n if (!this._allowNeg && w < 0) {\r\n this._validationMessage = \"Negative vlaue is invalid.\"\r\n return false;\r\n }\r\n if (this._maxLength > 0) {\r\n if (w.toString().length > this._maxLength) {\r\n this._validationMessage = String.Format(\"Invalid value. Max length {0} exceeded.\", this._maxLength);\r\n return false;\r\n }\r\n }\r\n \r\n // no integrals validation, maxlength validated above\r\n let parts = w.toString().split('.');\r\n if (parts.length > 1) {\r\n var wDecimals = Number(d.toString().split('.')[1].length);\r\n if (wDecimals > 0) {\r\n this._validationMessage = \"Invalid value. Decimals not allowed.\";\r\n return false;\r\n }\r\n }\r\n \r\n this._valid = true;\r\n this._validatedValue = d.toString();\r\n return true;\r\n \r\n case DataType.String:\r\n if (!isString(value)) {\r\n this._validationMessage = \"Value is not a string.\";\r\n return false;\r\n }\r\n if (this._maxLength > 0) {\r\n if (value.length > this._maxLength) {\r\n this._validationMessage = String.Format(\"Invalid value. Max length {0} exceeded.\", this._maxLength);\r\n return false;\r\n }\r\n }\r\n this._valid = true;\r\n this._validatedValue = value;\r\n return true;\r\n \r\n case DataType.Date:\r\n // TBD\r\n return true;\r\n }\r\n \r\n this._validationMessage = \"Internal error: Invalid data date.\";\r\n return false;\r\n } catch (error) {\r\n console.error(error);\r\n this._validationMessage = \"Unexpected error!\";\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class RangeValidator extends BaseValidator {\r\n private _minValue: number;\r\n private _maxValue: number;\r\n\r\n constructor(minValue: number, maxValue: number) {\r\n super();\r\n this._minValue = minValue;\r\n this._maxValue = maxValue;\r\n }\r\n\r\n validate(value: any) : boolean {\r\n this._valid = false;\r\n this._validationMessage = \"\";\r\n this._validatedValue = \"\";\r\n if (!isPrimitive(value)) return false;\r\n\r\n try {\r\n if (Number.isNaN(Number(value))) {\r\n this._validationMessage = \"Value is not a number\";\r\n return false;\r\n }\r\n\r\n let n: number = Number(value);\r\n if (n < this._minValue || n > this._maxValue) {\r\n this._validationMessage = String.Format(\"Value out of range. Value must be between {1} and {2}.\", this._minValue, this._maxValue);\r\n }\r\n\r\n return false;\r\n } catch (error) {\r\n console.error(error);\r\n this._validationMessage = \"Unexpected error!\";\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class PasswordComplexityValidator extends BaseValidator {\r\n private readonly _minLength: number;\r\n private readonly _minScore: number;\r\n \r\n constructor(minLength: number, minScore: number) {\r\n super();\r\n this._minLength = minLength;\r\n this._minScore = minScore;\r\n this.evalData = 0;\r\n }\r\n\r\n validate(value: string) : boolean {\r\n this._valid = false;\r\n this._validationMessage = \"\";\r\n this._validatedValue = \"\";\r\n\r\n if (String.IsNullOrWhiteSpace(value)) {\r\n this._valid = true;\r\n return true;\r\n }\r\n\r\n try {\r\n if (value.length < this._minLength) {\r\n this._validationMessage = String.Format(\"Password must be at least {0} characters long.\", this._minLength);\r\n return false;\r\n }\r\n \r\n let result = zz(value);\r\n this.evalData = result.score as number;\r\n if (result.score < this._minScore) {\r\n this._validationMessage = \"Password does not meet complexity requirements.\";\r\n return false;\r\n }\r\n\r\n this._validatedValue = value;\r\n this._valid = true;\r\n return true; \r\n } catch (error) {\r\n console.error(error);\r\n this._validationMessage = \"Unexpected error!\";\r\n return false; \r\n }\r\n }\r\n}","import { IInsightData } from \"./ServerInsight\";\r\n\r\n// maps to AccountDTO on server\r\nexport interface IdDTO {\r\n id: number;\r\n}\r\n\r\nexport interface AppInsight {\r\n id: number;\r\n updatedBy: string;\r\n lastUpdated : Date;\r\n // emailId: string derived\r\n insightType: string;\r\n // insightData: string derived from jData\r\n jData: IInsightData;\r\n}\r\n\r\nexport interface AccountDTO\r\n{\r\n publicId: string;\r\n // updatedBy: string;\r\n // lastUpdated: Date;\r\n emailId: string;\r\n firstName: string;\r\n lastName: string;\r\n enabled: boolean;\r\n approved: boolean;\r\n companyPublicId: number;\r\n expires: Date;\r\n sendNotification: boolean;\r\n companyAdmin: boolean;\r\n company: Company;\r\n}\r\n\r\nexport interface Company {\r\n publicId: string;\r\n updatedBy: string;\r\n lastUpdated: Date;\r\n name: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n addressLine3: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n country: string;\r\n enabled: boolean;\r\n}\r\n\r\nexport interface Administrator\r\n{\r\n id: number;\r\n updatedBy: Date;\r\n lastUpdated: Date;\r\n emailId: string;\r\n name: string;\r\n password: string;\r\n enabled: boolean;\r\n forcePasswordReset: boolean;\r\n passwordResetId: string;\r\n passwordResetExpiry?: Date;\r\n}\r\n\r\nexport interface ProductDTO {\r\n id: number;\r\n name: string;\r\n version: string;\r\n active: boolean;\r\n trialPeriod: number;\r\n subscriptionPeriod: number;\r\n renewalPeriod: number; \r\n perpetual: boolean;\r\n eulaId: number; \r\n buildDate: Date;\r\n pricingConfiguration: ProductConfiguration\r\n remoteInstallEnabled: boolean;\r\n remoteInstallAgreementId: number;\r\n supportTicketsEnabled: boolean;\r\n info: ProductInfo;\r\n videos: ProductVideo[];\r\n}\r\n\r\nexport interface ProductInfo {\r\n name: string;\r\n tagLine: string;\r\n productUrl: string;\r\n image: string;\r\n fsProductPath: string;\r\n fsInstallPath: string;\r\n}\r\n\r\nexport interface ProductConfiguration {\r\n productId: number;\r\n id: string;\r\n name: string;\r\n version: string;\r\n licenseFamily: string;\r\n items: ProductItem[];\r\n}\r\n\r\nexport interface ProductItem {\r\n id: string;\r\n allowUserInput: boolean;\r\n hideForTrial: boolean;\r\n description: string;\r\n tip: string;\r\n type: ProductItemType;\r\n uiType: ProductItemUIType,\r\n config: ProductItemChoiceConfiguration | ProductItemSlabConfiguration\r\n}\r\n\r\nexport interface ProductSupportItem {\r\n id: string;\r\n allowUserInput: boolean;\r\n hideForTrial: boolean;\r\n description: string;\r\n tip: string;\r\n type: ProductItemType;\r\n uiType: ProductItemUIType,\r\n config: ProductItemSlabConfiguration\r\n}\r\n\r\nexport enum ProductItemType {\r\n slab = 1, // => textbox, slider\r\n choice = 2, // dropdown, checkbox, radio button\r\n}\r\n\r\nexport enum ProductItemUIType {\r\n TextBox = 1,\r\n Slider = 2,\r\n DropDown = 3,\r\n CheckBox = 4,\r\n RadioButton = 5\r\n}\r\n\r\nexport interface ProductItemConfiguration {\r\n id: string\r\n}\r\n\r\nexport interface ProductItemChoiceConfiguration extends ProductItemConfiguration {\r\n defaultChoices: number[];\r\n allowMultiple: boolean;\r\n choices: ProductItemChoice[];\r\n}\r\n\r\nexport interface ProductItemChoice {\r\n id: number;\r\n description: string;\r\n // value: number;\r\n // cost: number;\r\n}\r\n\r\nexport interface ProductItemSlabConfiguration extends ProductItemConfiguration {\r\n defaultValue: number,\r\n minValue: number,\r\n maxValue: number,\r\n // perUnit: boolean,\r\n // slabs: ProductItemSlab[]\r\n}\r\n\r\n// export interface ProductItemSlab {\r\n// id: number;\r\n// start: number;\r\n// end: number;\r\n// cost: number;\r\n// }\r\n\r\nexport interface ProdcutItemValue {\r\n item: ProductItem;\r\n value: number | number[];\r\n}\r\n\r\nexport interface ProductVideo {\r\n id: number,\r\n name: string;\r\n description: string;\r\n active: boolean;\r\n image: string;\r\n}\r\n\r\nexport interface SubscriptionDTO {\r\n publicId: string;\r\n isTrial: boolean;\r\n companyPublicId: string;\r\n productId: number;\r\n accountPublicId: string;\r\n organization: string;\r\n startDate: Date;\r\n endDate: Date;\r\n productData: any;\r\n licenseKey: string;\r\n licenseFile: string;\r\n product: ProductDTO;\r\n renewableDate: Date;\r\n cost: number;\r\n installCost: number\r\n}\r\n\r\nexport interface OrderDTO {\r\n publicId: string;\r\n companyPublicId: string;\r\n orderDate: Date;\r\n orderTitle: string;\r\n orderDetailObject: any;\r\n productId: number;\r\n subscriptionPublicId: string;\r\n paymentId: string;\r\n paymentReference: string;\r\n paymentEmail: string;\r\n paymentAccount: string;\r\n paymentSubTotal: number;\r\n paymentTax: number;\r\n paymentTotal: number;\r\n paymentZipCode: string;\r\n paymentCountry: string;\r\n paymentInvoiceUrl: string\r\n}\r\n\r\nexport interface LoginRequest {\r\n emailId: string;\r\n password: string\r\n deviceName: string;\r\n deviceOS : string;\r\n deviceVersion: string;\r\n hostInfo: string;\r\n asAdmin: boolean;\r\n captcha: string;\r\n brc: string;\r\n}\r\n\r\nexport interface ForgotPasswordRequest {\r\n emailId: string;\r\n captcha: string\r\n brc: string;\r\n isAdmin : boolean;\r\n}\r\n\r\nexport interface SubscriptionRequest {\r\n isTrial: boolean;\r\n renewaPubliclId: string;\r\n productId: number;\r\n accountId: number; // admin requests only\r\n productData: any;\r\n eulaAcceptanceId: number;\r\n acceptCompany: string; \r\n acceptDate: Date;\r\n acceptName: string; \r\n acceptTitle: string; \r\n acceptEmail: string; \r\n legalSignatory: boolean;\r\n paymentOrderId: string;\r\n paymentReferenceId : string;\r\n cost: number;\r\n installCost: number\r\n}\r\n\r\nexport interface BaseResponse {\r\n statusCode: number;\r\n requestDate: Date;\r\n responseDate: Date;\r\n internalMessage: string;\r\n message: string;\r\n}\r\n\r\nexport interface IdResponse extends BaseResponse {\r\n id: number;\r\n}\r\n\r\nexport interface GenericResponse extends BaseResponse {\r\n\r\n}\r\n\r\nexport interface GetEntitiesResponse extends BaseResponse {\r\n entities: T[];\r\n}\r\n\r\nexport interface GetEnityResponse extends BaseResponse {\r\n entity: T;\r\n}\r\n\r\nexport interface LoginResponse extends BaseResponse\r\n{\r\n usha: string;\r\n token: string;\r\n resetPassword: boolean;\r\n account: AccountDTO;\r\n admin: Administrator;\r\n config: any;\r\n}\r\n\r\nexport interface LogoffRequest\r\n{\r\n usha: string;\r\n token: string;\r\n}\r\n\r\nexport interface AppInitResponse extends BaseResponse {\r\n appToken: string;\r\n vak: string;\r\n features: any;\r\n buildVersion: string;\r\n countries: Country[]\r\n}\r\n\r\nexport interface ChangePasswordRequest\r\n{\r\n emailId: string;\r\n oldPassword: string\r\n newPassword: string;\r\n // isAdmin is implicit. see controller\r\n}\r\n\r\nexport enum AssetType {\r\n Trial = 1,\r\n Subscription = 2,\r\n Agreement = 3,\r\n Invoice = 4,\r\n Video = 5\r\n}\r\n\r\nexport interface CreateAssetsRequest {\r\n assetType: AssetType\r\n id: number;\r\n publicId: string;\r\n}\r\n\r\nexport interface CreateAssetsResponse extends BaseResponse {\r\n licenseKey: string;\r\n assets: Asset[];\r\n}\r\n\r\nexport interface DeleteAssetsRequest {\r\n ids: string[];\r\n}\r\n\r\nexport interface DownloadAssetsRequest\r\n{\r\n isTrial: boolean;\r\n id: number;\r\n}\r\n\r\nexport interface Asset {\r\n id: string;\r\n displayName: string;\r\n contentType: string;\r\n tag: string;\r\n}\r\n\r\nexport interface ResetPasswordRequest {\r\n resetId: string;\r\n emailId: string;\r\n password: string;\r\n isAdmin: boolean;\r\n captcha: string;\r\n brc: string;\r\n}\r\n\r\nexport interface SignupRequest {\r\n captcha: string;\r\n emailId: string;\r\n password: string;\r\n firstName: string;\r\n lastName: string;\r\n companyName: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n addressLine3: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n country: string;\r\n brc: string;\r\n acceptedTerms: boolean;\r\n}\r\n\r\nexport interface ConfirmEmailRequest {\r\n data: string;\r\n cData: string;\r\n}\r\n\r\nexport interface Signup {\r\n id: number;\r\n emailId: string;\r\n firstName: string;\r\n lastName: string;\r\n ipAddress: string;\r\n signupDate: Date;\r\n companyName: string;\r\n approved: boolean;\r\n approvalDate: Date;\r\n addressLine1: string;\r\n addressLine2: string;\r\n addressLine3: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n country: string;\r\n acceptedTerms: boolean;\r\n emailConfirmed: boolean;\r\n emailConfirmDate: Date;\r\n emailConfirmIp: string;\r\n}\r\n\r\nexport interface EulaDTO {\r\n id: number;\r\n version: string;\r\n fileName: string;\r\n effectiveDate: Date;\r\n asset: Asset;\r\n}\r\n\r\nexport interface AgreementAcceptance {\r\n id: number;\r\n // updatedBy: string;\r\n // lastUpdated: Date;\r\n // ipAddress: string;\r\n accountId: number;\r\n companyId: number;\r\n productId: number;\r\n agreementId: number;\r\n productName: string;\r\n productVersion: string; \r\n subscriptionId: number;\r\n trial: boolean;\r\n acceptCompany: string; \r\n acceptDate: Date;\r\n acceptName: string; \r\n acceptTitle: string; \r\n acceptEmail: string; \r\n legalSignatory: boolean;\r\n custom: boolean;\r\n fileName: string; \r\n expiryDate: Date;\r\n}\r\n\r\nexport interface SendMessageRequest {\r\n subject: string;\r\n message: string;\r\n}\r\n\r\nexport interface FSPayloadResponse extends BaseResponse {\r\n securePayload: string;\r\n secureKey: string\r\n}\r\n\r\nexport interface CostReqest {\r\n productId: number;\r\n trial: boolean;\r\n remoteInstall: boolean;\r\n productData: any;\r\n}\r\n\r\nexport interface CostResponse extends BaseResponse {\r\n cost: number;\r\n remoteInstallCost: number;\r\n}\r\n\r\nexport interface VideoReponse extends BaseResponse {\r\n data: ArrayBuffer;\r\n}\r\n\r\nexport interface Country {\r\n id: number;\r\n isoCode: string;\r\n name: string;\r\n enabled: boolean;\r\n}\r\n\r\nexport interface FSConfirmation {\r\n id: string;\r\n reference: string;\r\n}","import {observable, action, toJS, computed} from 'mobx';\r\nimport {ValidationField} from '../web-store/ValidationField';\r\nimport { String } from 'typescript-string-operations';\r\nimport {IValidationFieldProps} from '../web-store/ValidationFieldProps'\r\nimport { isUndefined } from 'util';\r\nimport { UIStore } from './UIStore';\r\nimport { ICommandBarItemProps } from '@fluentui/react';\r\nimport { isNullOrUndefined } from '../web-store/WebStoreUtil';\r\nimport { DataType } from '../web-store/Validators';\r\nimport moment from 'moment';\r\n\r\nexport class UIFormStore {\r\n parentStore: UIStore;\r\n @observable baseObject: any;\r\n @observable validationFields: ValidationField[];\r\n private readonly _key: number;\r\n private static _nextKey: number = 0;\r\n\r\n constructor(parent: UIStore) {\r\n this.parentStore = parent;\r\n this.validationFields = [];\r\n this._key = UIFormStore.nextKey();\r\n }\r\n\r\n static nextKey() : number {\r\n return ++this._nextKey;\r\n }\r\n\r\n public get Key(): number {\r\n return this._key;\r\n }\r\n\r\n protected setBaseObject(entity: any) {\r\n this.baseObject = {...entity};\r\n }\r\n\r\n @action\r\n setFormValue = (field: ValidationField, value: (string | boolean)): void => {\r\n if (!field) return;\r\n\r\n if (!this.baseObject.hasOwnProperty(field.propName)) {\r\n console.error(\"Invalid propertry \" + field.propName);\r\n return;\r\n }\r\n this.baseObject[field.propName] = value;\r\n }\r\n\r\n getFormValue = (field: ValidationField): (string | boolean) => {\r\n if (!this.baseObject.hasOwnProperty(field.propName)) {\r\n console.error(\"Invalid propertry \" + field.propName);\r\n return \"\";\r\n }\r\n\r\n if (!isNullOrUndefined(field.dataType)) {\r\n if (field.dataType === DataType.Date) {\r\n if (moment.isDate(this.baseObject[field.propName])) {\r\n return moment(this.baseObject[field.propName]).format(\"YYYY-MM-DD\");\r\n }\r\n }\r\n }\r\n\r\n return this.baseObject[field.propName];\r\n }\r\n\r\n getValidationField(props: IValidationFieldProps) : ValidationField {\r\n return this.validationFields.find(x => x.fieldId === props.fieldId);\r\n }\r\n\r\n hasValidators(field: ValidationField): boolean {\r\n if (isNullOrUndefined(field.validators)) return false;\r\n return (field.validators.length > 0);\r\n }\r\n\r\n getValidationFieldErrorMessage = (field: ValidationField, value: string): string => {\r\n field.errorMessage = \"\";\r\n if (!this.hasValidators(field)) {\r\n this.setFormValue(field, value);\r\n field.errorMessage = \"\";\r\n return \"\";\r\n }\r\n \r\n let messages: string[] = [];\r\n let valid: boolean = true;\r\n \r\n // 08/08/2018: return on first error. too many errors confuse the user\r\n for (let i = 0; i < field.validators.length; i++) {\r\n const vf = field.validators[i];\r\n if (!vf.validate(value)) {\r\n messages.push(vf.validationMessage);\r\n valid = false;\r\n break;\r\n }\r\n }\r\n\r\n this.setFormValue(field, valid ? field.validators[0].validatedValue : value);\r\n\r\n // try {\r\n // } catch (error) {\r\n // console.error(field.validators.length);\r\n // throw error;\r\n // }\r\n\r\n\r\n return messages.length > 0 ? messages.join(\" \") : \"\";\r\n }\r\n\r\n validateField = (field: ValidationField, value: string): void => {\r\n field.errorMessage = this.getValidationFieldErrorMessage(field, value);\r\n }\r\n\r\n protected validateForm = (): boolean => {\r\n let valid: boolean = true;\r\n\r\n for (let i = 0; i < this.validationFields.length; i++) {\r\n const vf = this.validationFields[i];\r\n var value: any = this.getFormValue(vf);\r\n if (typeof(value) === \"string\" || isUndefined(value)) {\r\n var message: string = this.getValidationFieldErrorMessage(vf, (value as string));\r\n if (!String.IsNullOrWhiteSpace(message)) {\r\n valid = valid && false;\r\n vf.errorMessage = message;\r\n } else {\r\n vf.errorMessage = \"\";\r\n }\r\n }\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n @action \r\n cancel = (): void => {\r\n let cancelAction = {\r\n dontClose: false\r\n }\r\n this.beforeCancel(cancelAction);\r\n if (cancelAction.dontClose === true) return;\r\n\r\n this.parentStore.messageStore.clear();\r\n this.parentStore.removeForm();\r\n }\r\n\r\n protected beforeCancel = (cancelAction: {dontClose: boolean}): void => {\r\n cancelAction.dontClose = false;\r\n }\r\n\r\n addCloseMenu = (items: ICommandBarItemProps[]) => {\r\n items.push({\r\n key: \"\",\r\n text: \"Close\",\r\n iconProps: {\r\n iconName: \"Cancel\",\r\n },\r\n onClick: this.cancel\r\n }); \r\n }\r\n\r\n getTypedObject() {\r\n return this.baseObject as T;\r\n }\r\n}","import {observable, action} from 'mobx';\r\nimport {UIStore} from './UIStore'\r\nimport { String } from 'typescript-string-operations';\r\nimport { UIFormStore } from './UIFormStore';\r\nimport { IColumn } from '@fluentui/react';\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { isUndefined } from 'util';\r\n\r\nexport interface IColumnProps {\r\n key: string;\r\n name: string;\r\n fieldName: string;\r\n isSortedDescending: boolean;\r\n isSorted: boolean;\r\n}\r\n\r\nexport class SearchFormStore extends UIFormStore {\r\n columns: IColumnProps[];\r\n records: RecordType[];\r\n protected readonly _filterPropName: string;\r\n\r\n @observable displayedRecords: RecordType[];\r\n @observable displayedColumns: IColumnProps[];\r\n @observable sortOrder: boolean;\r\n filterValue: string;\r\n\r\n constructor(parent: UIStore, filterPropName: string) {\r\n super(parent);\r\n this._filterPropName = filterPropName;\r\n this.columns = this.setColumns();\r\n this.displayedColumns = this.columns.slice();\r\n this.filterValue = \"\";\r\n }\r\n\r\n public async getRecordsFromApi(entityName: string, callbackfn: (records: RecordType[], response?: Server.BaseResponse) => void, params?: string[]) {\r\n try {\r\n let resp: Server.GetEntitiesResponse = await this.parentStore.serverApi.getEntities(entityName, params);\r\n // this.parentStore.messageStore.showInfoMessage(resp.message, (resp.statusCode !== 200));\r\n if (resp.statusCode === 200) {\r\n let records: RecordType[] = resp.entities.map(x => x as RecordType)\r\n this.setRecords(records);\r\n\r\n if (callbackfn) {\r\n callbackfn(records, resp);\r\n }\r\n } else {\r\n this.parentStore.messageStore.showMessageFromResponse(resp);\r\n this.parentStore.uiTransition.hide();\r\n }\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorMessage((error as Error).message);\r\n if (callbackfn) {\r\n callbackfn(null, null);\r\n }\r\n } \r\n }\r\n\r\n @action\r\n protected setRecords(records?: RecordType[]) {\r\n if (!isUndefined(records)) this.records = records;\r\n\r\n if (String.IsNullOrWhiteSpace(this.filterValue)) {\r\n this.filterValue = \"\";\r\n this.displayedRecords = (this.records.length > 0) ? this.records.slice() : [];\r\n } else {\r\n this.displayedRecords = this.records.filter(i => this.getFilterRecordValue(i).toLowerCase().indexOf(this.filterValue.toLowerCase()) > -1);\r\n }\r\n }\r\n\r\n protected getFilterRecordValue(r: RecordType): string {\r\n // default is to use _filterPropName, which should point to a stirng property\r\n // override to use a custom value (concatenated etc.)\r\n return (r as any)[this._filterPropName] as string;\r\n }\r\n\r\n protected setColumns(): IColumnProps[] {\r\n // must be overridden to set columns\r\n return null;\r\n }\r\n\r\n filter = (event: React.FormEvent, text: string): void => {\r\n if (String.IsNullOrWhiteSpace(text)) {\r\n this.filterValue = \"\";\r\n } else {\r\n this.filterValue = text;\r\n }\r\n this.setRecords();\r\n }\r\n\r\n @action\r\n sort = (items: RecordType[], sortBy: string, descending = false): RecordType[] => {\r\n if (descending) {\r\n return items.sort((a: RecordType, b: RecordType) => {\r\n if ((a as any)[sortBy] < (b as any)[sortBy]) {\r\n return 1;\r\n }\r\n if ((a as any)[sortBy] > (b as any)[sortBy]) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n return items.sort((a: RecordType, b: RecordType) => {\r\n if ((a as any)[sortBy] < (b as any)[sortBy]) {\r\n return -1;\r\n }\r\n if ((a as any)[sortBy] > (b as any)[sortBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n \r\n @action\r\n onColumnClick = (ev: React.MouseEvent, clickedColumn: IColumn): void => {\r\n if (String.IsNullOrWhiteSpace(clickedColumn.fieldName)) return;\r\n\r\n const columns = this.columns;\r\n const items = this.displayedRecords;\r\n\r\n let newItems: RecordType[] = items.slice();\r\n const newColumns: IColumnProps[] = columns.slice();\r\n const currColumn: IColumnProps = newColumns.filter((currCol: IColumnProps, idx: number) => {\r\n return clickedColumn.key === currCol.key;\r\n })[0];\r\n newColumns.forEach((newCol: IColumnProps) => {\r\n if (newCol === currColumn) {\r\n currColumn.isSortedDescending = !currColumn.isSortedDescending;\r\n currColumn.isSorted = true;\r\n } else {\r\n newCol.isSorted = false;\r\n newCol.isSortedDescending = true;\r\n }\r\n });\r\n\r\n this.displayedColumns = newColumns;\r\n this.displayedRecords = this.sort(newItems, currColumn.fieldName, currColumn.isSortedDescending);\r\n } \r\n}\r\n","import * as React from 'react';\r\nimport { Label } from '@fluentui/react/lib/Label';\r\nimport { UIStore } from '../stores/UIStore';\r\nimport { observer } from \"mobx-react\";\r\nimport { IconButton, FontSizes } from '@fluentui/react';\r\n\r\nexport interface FormHeaderProps {\r\n header: string;\r\n uiStore: UIStore;\r\n}\r\n\r\n@observer\r\nexport class FormHeader extends React.Component {\r\n\r\n _closeForm = () => {\r\n this.props.uiStore.removeForm();\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {\r\n this.props.header\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\n// was\r\n// render() {\r\n// return (\r\n//
\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 { observer } from \"mobx-react\";\r\nimport { DetailsList, DetailsListLayoutMode, SelectionMode, IColumn, ConstrainMode } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { Link } from \"office-ui-fabric-react/lib/Link\";\r\nimport { TextField } from \"office-ui-fabric-react/lib/TextField\";\r\nimport * as Server from \"../web-store/ServerClasses\"\r\nimport { FormHeader } from \"./FormHeader\";\r\nimport { UIProductsFormStore } from \"../stores/UIProductsFormStore\";\r\nimport { IColumnProps } from \"../stores/UISearchFormStore\";\r\nimport { PrimaryButton, ICommandBarItemProps, CommandBar } from \"office-ui-fabric-react\";\r\n\r\nclass ProductsSearchFormProps {\r\n store: UIProductsFormStore;\r\n}\r\n\r\n@observer\r\nexport class ProductsSearchForm extends React.Component {\r\n\r\n componentDidMount () {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIProductsFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [];\r\n this.props.store.addCloseMenu(items);\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n return(\r\n \r\n );\r\n }\r\n\r\n private _getColumns() : IColumn[] {\r\n const columns: IColumn[] = [\r\n {\r\n key: \"1\",\r\n name: \"Product\",\r\n fieldName: \"name\",\r\n minWidth: 250,\r\n maxWidth: 350,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.ProductDTO) => {\r\n return (\r\n
\r\n {item.name + \", v\" + item.version} \r\n
\r\n )\r\n }\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Buy\",\r\n fieldName: \"name\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.ProductDTO) => {\r\n return (\r\n \r\n )\r\n }\r\n },\r\n {\r\n key: \"3\",\r\n name: \"Trial\",\r\n fieldName: \"name\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.ProductDTO) => {\r\n return (\r\n {this.props.store.startTrial(item)} }\r\n /> \r\n )\r\n }\r\n } \r\n ];\r\n\r\n // sync these overriden properties from props\r\n columns.forEach((c: IColumn, i: number) => {\r\n const currColumn: IColumnProps = this.props.store.displayedColumns.filter((currCol: IColumnProps, idx: number) => {\r\n return c.key === currCol.key;\r\n })[0];\r\n \r\n c.isSorted = currColumn.isSorted;\r\n c.isSortedDescending = currColumn.isSortedDescending;\r\n // not setting onColumnClick as not all cols are clickable\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n private _renderProduct(product: Server.ProductDTO) {\r\n return (\r\n
\r\n
\r\n {product.name + \", v\" + product.version} \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n detailList() {\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 render() {\r\n \r\n return (\r\n
\r\n { this._renderCommands() }\r\n\r\n
\r\n \r\n\r\n { this.detailList() }\r\n
\r\n
\r\n );\r\n }\r\n} ","import { UIStore } from \"./UIStore\";\r\nimport { observable, action, computed, toJS } from \"mobx\";\r\nimport { ProductConfiguration, ProdcutItemValue, ProductItem, ProductItemType, ProductItemChoiceConfiguration, ProductItemSlabConfiguration, SubscriptionDTO, SubscriptionRequest, IdResponse, CostReqest as CostRequest, CostResponse, FSPayloadResponse, ProductDTO, FSConfirmation, AccountDTO, GetEnityResponse, ProductVideo } from \"../web-store/ServerClasses\";\r\nimport { UIFormStore } from \"./UIFormStore\";\r\nimport { PurchaseWizardForm } from \"../components/PurchaseWizardForm\";\r\nimport { IDropdownOption } from \"office-ui-fabric-react\";\r\nimport { DialogMode, DialogResult } from \"./UIConfirmDialogStore\";\r\nimport moment from \"moment\";\r\nimport { RequiredValidator, DataTypeValidator, DataType } from \"../web-store/Validators\";\r\nimport { isArray, isNullOrUndefined } from \"../web-store/WebStoreUtil\";\r\nimport { UISubscriptionsFormStore } from \"./UISubscriptionsFormStore\";\r\n\r\nexport enum PurchaseWizardStep {\r\n Config = 1,\r\n AcceptEula = 2,\r\n RemoteInstall = 3,\r\n Confirm = 4\r\n}\r\n\r\nexport interface EulaFields {\r\n acceptanceId: number;\r\n accepted: boolean;\r\n organization: string;\r\n name: string;\r\n title: string;\r\n email: string;\r\n date?: Date;\r\n preAccepted: boolean;\r\n}\r\n\r\nexport interface CostData {\r\n subscriptionCost: number;\r\n remoteInstallCost: number;\r\n totalCost: number; \r\n}\r\n\r\nexport class UIPurchaseWizardStore extends UIFormStore {\r\n product: ProductDTO;\r\n productConfig: ProductConfiguration;\r\n @observable itemValues: ProdcutItemValue[];\r\n @observable step: PurchaseWizardStep;\r\n @observable disableConfirm: boolean;\r\n @observable remoteInstallRequested: boolean;\r\n purchaseMode: boolean;\r\n pricingMode: boolean;\r\n eulaAssetId: string;\r\n remoteInstallAssetId: string;\r\n @observable costData: CostData;\r\n private _subscriptionsFormStore: UISubscriptionsFormStore;\r\n private _renewalSubscription: SubscriptionDTO;\r\n private remoteInstallAgreement: EulaFields;\r\n private eulaAgreement: EulaFields;\r\n\r\n constructor(parent: UIStore, product: ProductDTO, eulaFields: EulaFields) {\r\n super(parent);\r\n this.product = product;\r\n this.productConfig = product.pricingConfiguration;\r\n this.step = PurchaseWizardStep.Config;\r\n this.disableConfirm = false;\r\n this.costData = {\r\n subscriptionCost: 0,\r\n remoteInstallCost: 0,\r\n totalCost: 0\r\n };\r\n this.remoteInstallRequested = false;\r\n this.itemValues = this.productConfig.items.map(i => {\r\n let piv: ProdcutItemValue = {\r\n item: i,\r\n value: (i.type == ProductItemType.choice ? \r\n (i.config as ProductItemChoiceConfiguration).defaultChoices.slice() :\r\n (i.config as ProductItemSlabConfiguration).defaultValue\r\n )\r\n };\r\n return piv;\r\n });\r\n \r\n\r\n this.setBaseObject(eulaFields);\r\n this.eulaAgreement = this.baseObject;\r\n this.remoteInstallAgreement = {\r\n acceptanceId: 0,\r\n accepted: false,\r\n organization: \"\",\r\n name: \"\",\r\n title: \"\",\r\n email: \"\",\r\n date: undefined,\r\n preAccepted: false \r\n }\r\n\r\n this.createValidationFields();\r\n this._resetCart();\r\n\r\n this._subscriptionsFormStore = null;\r\n this._renewalSubscription = null;\r\n }\r\n\r\n setItemValuesFromPreviousSubscription(subscription: SubscriptionDTO, subscriptionsFormStore: UISubscriptionsFormStore) {\r\n let items: any[] = subscription.productData.items;\r\n for (let index = 0; index < items.length; index++) {\r\n const element: {id: string, values: number[] } = items[index];\r\n \r\n let piv: ProdcutItemValue = this.itemValues.find(iv => iv.item.id === element.id);\r\n if (isNullOrUndefined(piv) !== true) {\r\n piv.value = (piv.item.type == ProductItemType.choice ? element.values.slice() : element.values[0]);\r\n }\r\n }\r\n\r\n this._renewalSubscription = subscription;\r\n this._subscriptionsFormStore = subscriptionsFormStore;\r\n }\r\n\r\n _setAgreementValidation(stepNumber: number) {\r\n if (stepNumber=== PurchaseWizardStep.AcceptEula) {\r\n this.setBaseObject(this.eulaAgreement);\r\n\r\n } else if (stepNumber== PurchaseWizardStep.RemoteInstall){\r\n this.setBaseObject(this.remoteInstallAgreement);\r\n }\r\n }\r\n\r\n createValidationFields() {\r\n this.validationFields = [ \r\n {\r\n fieldId: \"accepted\",\r\n propName: \"accepted\",\r\n errorMessage: \"\",\r\n validators: []\r\n }, \r\n {\r\n fieldId: \"organization\",\r\n propName: \"organization\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n }, \r\n {\r\n fieldId: \"name\",\r\n propName: \"name\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"title\",\r\n propName: \"title\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 100, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"email\",\r\n propName: \"email\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n } \r\n ]\r\n }\r\n \r\n private _resetCart() {\r\n try {\r\n let fs = window[\"fastspring\" as any] as any;\r\n fs.builder.reset() \r\n console.log(\"Cart has been reset.\");\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n @action\r\n showForm = async () => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n // this._setTestEulaData();\r\n // this.setBaseObject(this.eulaFields);\r\n this.parentStore.addForm(PurchaseWizardForm.create(this)); \r\n } catch (error) {\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n\r\n @action\r\n confirmCancel = () => {\r\n if (this.pricingMode === true) {\r\n this.cancel();\r\n return;\r\n }\r\n\r\n this.parentStore.confirmDialogStore.callback = (context, result) => { if (result === DialogResult.Yes) this._deleteAsset(); }\r\n this.parentStore.confirmDialogStore.dialogMode = DialogMode.OKCancel;\r\n this.parentStore.confirmDialogStore.showDialog(\"Confirm\", \"Do you want to cancel your purchase/trial?\");\r\n }\r\n\r\n private _deleteAsset = async () => {\r\n try {\r\n let data: any = {\r\n ids: [ this.eulaAssetId, this.remoteInstallAssetId ]\r\n };\r\n\r\n await this.parentStore.serverApi.postData(\"assets\", data, \"DELETE\");\r\n } catch (error) {\r\n \r\n } finally {\r\n this.cancel();\r\n }\r\n }\r\n\r\n @computed\r\n get DisableConfirm(): boolean {\r\n if (this.step !== PurchaseWizardStep.Confirm) return false;\r\n return this.disableConfirm;\r\n }\r\n\r\n @action\r\n gotoNextStep = async() => {\r\n let stepNumber = this.step as number;\r\n if (stepNumber == PurchaseWizardStep.AcceptEula) {\r\n if (this._validateAgreement(stepNumber) !== true)\r\n return;\r\n if (this.product.remoteInstallEnabled !== true || this.remoteInstallRequested !== true ) {\r\n // go to confirm directly if remote install is not enabled\r\n stepNumber++;\r\n }\r\n\r\n } else if (stepNumber === PurchaseWizardStep.RemoteInstall) {\r\n if (this.product.remoteInstallEnabled !== true) {\r\n // should not happen\r\n console.error(\"Cannot go to remote install step when it is not enabled!\");\r\n } else {\r\n if (this._validateAgreement(stepNumber) !== true)\r\n return; \r\n }\r\n } else if (stepNumber === PurchaseWizardStep.Confirm) {\r\n if (this.purchaseMode === true) { \r\n this._confirmPurchase();\r\n } else {\r\n this._confirmTrial();\r\n }\r\n return;\r\n }\r\n \r\n stepNumber++;\r\n\r\n if (stepNumber == PurchaseWizardStep.Confirm) {\r\n // calculate cost, so it can be displayed in the confirm form\r\n this.costData = {...await this._calculateCost()};\r\n }\r\n\r\n this._setAgreementValidation(stepNumber);\r\n this.step = stepNumber;\r\n }\r\n\r\n @action\r\n gotoPreviousStep = () => {\r\n let stepNumber = this.step as number;\r\n if (stepNumber === PurchaseWizardStep.Config) return;\r\n stepNumber--;\r\n this._setAgreementValidation(stepNumber);\r\n this.step = stepNumber;\r\n }\r\n\r\n @action\r\n selectEulaDate = (date: Date | null | undefined) => {\r\n let eulaFields: EulaFields = this.baseObject as EulaFields;\r\n\r\n if (isNullOrUndefined(date)) {\r\n eulaFields.date = undefined;\r\n return;\r\n }\r\n eulaFields.date = date;\r\n }\r\n\r\n private _validateAgreement(stepNumber: number): boolean {\r\n let agreementFields: EulaFields = this.baseObject as EulaFields;\r\n\r\n if (agreementFields.accepted !== true ) {\r\n this.parentStore.confirmDialogStore.dialogMode = DialogMode.OK;\r\n this.parentStore.confirmDialogStore.showDialog(\"Agreeement Acceptance\", \"You must agree to the agreement to proceed with this purchase or trial.\");\r\n return false;\r\n }\r\n\r\n if (!this.validateForm()) \r\n return false;\r\n\r\n if (agreementFields.email.indexOf(\"@\") <= 0) {\r\n this.parentStore.confirmDialogStore.dialogMode = DialogMode.OK;\r\n this.parentStore.confirmDialogStore.showDialog(\"Agreeement Acceptance\", \"The email is invalid.\");\r\n return false;\r\n }\r\n\r\n if (isNullOrUndefined(agreementFields.date)) {\r\n this.parentStore.confirmDialogStore.dialogMode = DialogMode.OK;\r\n this.parentStore.confirmDialogStore.showDialog(\"Agreement Acceptance\", \"Acceptance Date is invalid.\");\r\n return false;\r\n }\r\n\r\n if (moment(agreementFields.date) > moment()) {\r\n this.parentStore.confirmDialogStore.dialogMode = DialogMode.OK;\r\n this.parentStore.confirmDialogStore.showDialog(\"Agreement Acceptance\", \"Acceptance Date cannot be in the future.\");\r\n return false;\r\n }\r\n \r\n if (agreementFields.preAccepted !== true) {\r\n let diff: number = moment(moment()).diff(moment(agreementFields.date), \"days\");\r\n if (diff > 0) {\r\n this.parentStore.confirmDialogStore.dialogMode = DialogMode.OK;\r\n this.parentStore.confirmDialogStore.showDialog(\"Agreement Acceptance\", \"Acceptance Date must be the current date.\");\r\n return false;\r\n }\r\n }\r\n\r\n if (stepNumber === PurchaseWizardStep.AcceptEula) {\r\n this.eulaAgreement = {...this.baseObject};\r\n } else if (stepNumber === PurchaseWizardStep.RemoteInstall) {\r\n this.remoteInstallAgreement = {...this.baseObject};\r\n }\r\n \r\n return true;\r\n }\r\n\r\n private _confirmTrial = async() => {\r\n this.parentStore.uiTransition.show();\r\n this.disableConfirm = true;\r\n try {\r\n \r\n let eulaFields: EulaFields = this.baseObject as EulaFields;\r\n \r\n let sr: SubscriptionRequest = {\r\n renewaPubliclId: null,\r\n accountId: 0,\r\n acceptCompany: eulaFields.organization,\r\n acceptDate: eulaFields.date,\r\n acceptEmail: eulaFields.email,\r\n acceptName: eulaFields.name,\r\n acceptTitle: eulaFields.title,\r\n eulaAcceptanceId: eulaFields.acceptanceId,\r\n isTrial: true,\r\n legalSignatory: true,\r\n productId: this.productConfig.productId,\r\n productData: {\r\n id: this.productConfig.id,\r\n items: this.itemValues.map(iv => { return {\r\n id: iv.item.id,\r\n values: (isArray(iv.value) === true) ? (iv.value as number[]).slice() : [ iv.value ]\r\n }})\r\n },\r\n paymentOrderId: \"\",\r\n paymentReferenceId: \"\",\r\n cost: 0,\r\n installCost: 0\r\n };\r\n\r\n let response: IdResponse = await this.parentStore.serverApi.postData(\"subscriptions\", sr, \"POST\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return;\r\n }\r\n\r\n this.cancel();\r\n \r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n this.disableConfirm = false;\r\n }\r\n }\r\n\r\n private _confirmPurchase = async() => {\r\n this.disableConfirm = true;\r\n this.parentStore.uiTransition.show();\r\n try { \r\n let startedPayment: boolean = await this._startPayment();\r\n if (startedPayment !== true) \r\n this.parentStore.uiTransition.hide();\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n this.parentStore.uiTransition.hide();\r\n }\r\n\r\n // if the call succeeds, uiTransition is kept visible and is closed in _paymentConfirmed\r\n }\r\n\r\n _paymentConfirmed = async (confirmation: FSConfirmation) => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n console.log(JSON.stringify(confirmation, null, 4));\r\n if (confirmation == null) {\r\n this.parentStore.messageStore.showMessage(true, \"The transaction was cancelled.\");\r\n this.disableConfirm = false;\r\n return;\r\n }\r\n\r\n if (isNullOrUndefined(confirmation.id) || isNullOrUndefined(confirmation.reference)) {\r\n this.parentStore.messageStore.showMessage(true, \"The payment gateway did not return an appropriate response.\");\r\n return;\r\n }\r\n\r\n let eulaFields: EulaFields = this.baseObject as EulaFields;\r\n \r\n let sr: SubscriptionRequest = {\r\n accountId: 0,\r\n renewaPubliclId: isNullOrUndefined(this._renewalSubscription) ? null: this._renewalSubscription.publicId,\r\n acceptCompany: eulaFields.organization,\r\n acceptDate: eulaFields.date,\r\n acceptEmail: eulaFields.email,\r\n acceptName: eulaFields.name,\r\n acceptTitle: eulaFields.title,\r\n eulaAcceptanceId: eulaFields.acceptanceId,\r\n isTrial: false,\r\n legalSignatory: true,\r\n productId: this.productConfig.productId,\r\n productData: {\r\n id: this.productConfig.id,\r\n items: this.itemValues.map(iv => { return {\r\n id: iv.item.id,\r\n values: (isArray(iv.value) === true) ? (iv.value as number[]).slice() : [ iv.value ]\r\n }})\r\n },\r\n paymentOrderId: confirmation.id,\r\n paymentReferenceId: confirmation.reference,\r\n cost: this.costData.subscriptionCost,\r\n installCost: this.costData.remoteInstallCost\r\n };\r\n\r\n let response: IdResponse = await this.parentStore.serverApi.postData(\"subscriptions\", sr, \"POST\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return;\r\n }\r\n \r\n this.parentStore.confirmDialogStore.callback = (context, result) => { \r\n if (result === DialogResult.Yes) this.cancel();\r\n // refresh subscriptions after renewal\r\n if (this._subscriptionsFormStore != null) this._subscriptionsFormStore.refresh();\r\n }\r\n\r\n this.parentStore.confirmDialogStore.dialogMode = DialogMode.OK;\r\n this.parentStore.confirmDialogStore.showDialog(\"Payment Processed\", \"Your payment was processed successfully. You can access your license keys and downloads from Subscriptions.\");\r\n \r\n } catch (error) {\r\n console.error(error);\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n }\r\n\r\n private _startPayment = async (): Promise => {\r\n try {\r\n let costData: CostData = await this._calculateCost()\r\n if(isNullOrUndefined(costData)) {\r\n this.parentStore.messageStore.showMessage(true, \"Unable to calculate cost.\");\r\n return false;\r\n }\r\n\r\n let tags: any = this._getProductTags();\r\n\r\n let subScriptionCost: number = costData.subscriptionCost;\r\n let installCost: number = 0;\r\n if (this.remoteInstallRequested === true) {\r\n installCost = costData.remoteInstallCost;\r\n }\r\n\r\n // this cost data is inserted into subscriptions, not the one from fsOrder\r\n // fsOrder data goes into Orders/OrderItems\r\n this.costData = {...costData};\r\n \r\n (window as any).func1 = this._paymentConfirmed;\r\n \r\n // passing contact information works only if contact already exists in FS\r\n // let accountResponse: GetEnityResponse = await this.parentStore.serverApi.getEntity(\"accounts\", [\"id=\" + this.parentStore.rootStore.domainStore.userAccount.publicId]);\r\n // if (accountResponse.statusCode !== 200) {\r\n // this.parentStore.messageStore.showMessageFromResponse(accountResponse);\r\n // return false;\r\n // }\r\n // let account: AccountDTO = accountResponse.entity;\r\n // contact: {\r\n // firstName: account.firstName,\r\n // lastName: account.lastName,\r\n // company: account.company.name,\r\n // postalCode: account.company.zip,\r\n // city: account.company.city\r\n // },\r\n\r\n let fs = window[\"fastspring\" as any] as any;\r\n // *FJ8J is CVC code\r\n var data: any = {\r\n items: [\r\n {\r\n product: this.product.info.fsProductPath,\r\n quantity: 1,\r\n pricing: {\r\n price: {\r\n USD: subScriptionCost\r\n }\r\n }\r\n }, \r\n ]\r\n };\r\n \r\n if (this.remoteInstallRequested === true) {\r\n data.items.push({\r\n product: this.product.info.fsInstallPath,\r\n quantity: 1,\r\n pricing: {\r\n price: {\r\n USD: installCost\r\n }\r\n }\r\n });\r\n }\r\n\r\n let response: FSPayloadResponse = await this.parentStore.serverApi.postData(\"fspayload\", data, \"POST\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return false;\r\n }\r\n \r\n const account: AccountDTO = this.parentStore.rootStore.domainStore.userAccount;\r\n fs.builder.recognize({\r\n email: account.emailId,\r\n firstName: account.firstName, \r\n lastName: account.lastName, \r\n company: account.company.name, //optional\r\n phone: \"\", //optional\r\n addressLine1: account.company.addressLine1, //optional\r\n addressLine2: account.company.addressLine2, //optional\r\n city: account.company.city, //optional\r\n region: \"\", //optional\r\n country: account.company.country, //optional\r\n postalCode: account.company.zip //optional\r\n });\t\r\n\r\n // fs.builder.secure(data, \"\");\r\n // console.log(response.secureKey);\r\n // fs.builder.tag({\"e1Users\": \"100\"});\r\n fs.builder.tag(tags);\r\n fs.builder.secure(response.securePayload, response.secureKey);\r\n // console.log(\"session: \" + kk);\r\n fs.builder.checkout();\r\n return true;\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n return false;\r\n }\r\n } \r\n\r\n @action\r\n dropDownChangeSingle = (event: React.FormEvent, item: IDropdownOption): void => {\r\n let piv: ProdcutItemValue = this.itemValues[item.data as number];\r\n (piv.value as number[])[0] = item.key as number;\r\n this._resetCost();\r\n }\r\n\r\n @action\r\n sliderChange = (vIndex: number, value: number): void => {\r\n let piv: ProdcutItemValue = this.itemValues[vIndex];\r\n (piv.value as number) = value;\r\n this._resetCost();\r\n }\r\n\r\n @action\r\n private _resetCost = () => {\r\n this.costData = {\r\n subscriptionCost: 0,\r\n remoteInstallCost: 0,\r\n totalCost: 0\r\n }; \r\n }\r\n\r\n @action\r\n estimateCost = async() => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n let costData: CostData = await this._calculateCost();\r\n if(isNullOrUndefined(costData)) {\r\n this.parentStore.messageStore.showMessage(true, \"Unable to estimate cost.\");\r\n return \r\n }\r\n\r\n this.costData = {...costData};\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n this.disableConfirm = false;\r\n } \r\n }\r\n\r\n private _calculateCost = async(): Promise => {\r\n try {\r\n let cr: CostRequest = {\r\n productId: this.productConfig.productId,\r\n trial: (this.purchaseMode === false),\r\n remoteInstall: this.remoteInstallRequested,\r\n productData: {\r\n id: this.productConfig.id,\r\n items: this.itemValues.map(iv => { return {\r\n id: iv.item.id,\r\n values: (isArray(iv.value) === true) ? (iv.value as number[]).slice() : [ iv.value ]\r\n }})\r\n }\r\n };\r\n\r\n let response: CostResponse = await this.parentStore.serverApi.postData(\"cost\", cr, \"POST\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return null;\r\n }\r\n\r\n return { \r\n subscriptionCost: parseFloat(response.cost.toFixed(2)), \r\n remoteInstallCost: parseFloat(response.remoteInstallCost.toFixed(2)),\r\n totalCost: (parseFloat(response.cost.toFixed(2)) + parseFloat(response.remoteInstallCost.toFixed(2)))\r\n };\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n return null;\r\n } \r\n }\r\n\r\n private _getProductTags() : {} {\r\n let tags:any = {};\r\n\r\n for (let index = 0; index < this.productConfig.items.length; index++) {\r\n const element = this.productConfig.items[index];\r\n switch (element.type) {\r\n case ProductItemType.choice:\r\n let choiceConfig: ProductItemChoiceConfiguration = element.config as ProductItemChoiceConfiguration;\r\n tags[element.id] = (this.itemValues[index].value as number[]).map(i => choiceConfig.choices.find(c => c.id === i).description).join(\", \");\r\n break;\r\n \r\n case ProductItemType.slab:\r\n let slabConfig: ProductItemSlabConfiguration = element.config as ProductItemSlabConfiguration;\r\n tags[element.id] = (this.itemValues[index].value as number).toString();\r\n break;\r\n }\r\n }\r\n\r\n return tags;\r\n }\r\n\r\n public remoteInstallRequestChanged = (ev: React.FormEvent, isChecked: boolean) => {\r\n this.remoteInstallRequested = isChecked; \r\n }\r\n\r\n}","import * as React from 'react';\r\nimport {Checkbox, ICheckboxProps} from '@fluentui/react/lib/Checkbox';\r\nimport { isUndefined } from 'util';\r\nimport { IValidationFieldProps } from '../web-store/ValidationFieldProps';\r\nimport { ValidationField } from '../web-store/ValidationField';\r\nimport { isNullOrUndefined } from '../web-store/WebStoreUtil';\r\n\r\nexport interface IValidatedCheckBoxProps extends IValidationFieldProps, ICheckboxProps {\r\n onValue?: string;\r\n offValue?: string;\r\n}\r\n\r\nexport class ValidationCheckBox extends React.Component {\r\n \r\n render() {\r\n const props: IValidationFieldProps = this.props as IValidationFieldProps;\r\n let vf: ValidationField = this.props.store.getValidationField(props);\r\n\r\n const onchange = (ev: React.FormEvent, isChecked: boolean) => \r\n { \r\n if (isUndefined(this.props.onValue) || isUndefined(this.props.offValue)) {\r\n this.props.store.setFormValue(vf, isChecked)\r\n return;\r\n } \r\n \r\n this.props.store.setFormValue(vf, isChecked ? this.props.onValue : this.props.offValue)\r\n };\r\n\r\n // let checked: boolean = false; //this.props.checked;\r\n // if (this.props.checked === undefined) {\r\n // if (isUndefined(this.props.onValue) || isUndefined(this.props.offValue)) {\r\n // checked = this.props.store.getFormValue(vf) as boolean;\r\n // } else {\r\n // checked = (this.props.store.getFormValue(vf) === this.props.onValue);\r\n // }\r\n // } else {\r\n // checked = this.props.checked;\r\n // }\r\n \r\n return(\r\n \r\n )\r\n }\r\n}","import * as React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport { TextField, ITextFieldProps } from '@fluentui/react/lib/TextField';\r\nimport { IValidationFieldProps } from '../web-store/ValidationFieldProps';\r\nimport { ValidationField } from '../web-store/ValidationField';\r\nimport { isNullOrUndefined } from '../web-store/WebStoreUtil';\r\n\r\n\r\nexport interface IValidationTextFieldProps extends IValidationFieldProps, ITextFieldProps {\r\n \r\n}\r\n\r\n@observer\r\nexport class ValidationTextField extends React.Component {\r\n\r\n render() {\r\n\r\n const props: IValidationFieldProps = this.props as IValidationFieldProps;\r\n let vf: ValidationField = this.props.store.getValidationField(props);\r\n\r\n //const hasvalidators = vf ? this.props.store.hasValidators(vf) : false;\r\n \r\n const onchanged = vf ? (event: React.FormEvent, v?: string) => \r\n { \r\n this.props.store.validateField(vf, v); \r\n if (!isNullOrUndefined(vf.errorMessage)) {\r\n if (this.props.onChange) this.props.onChange(event, v);\r\n }\r\n } \r\n : this.props.onChange;\r\n\r\n let errorMessage: string = null;\r\n if (vf) {\r\n if (!isNullOrUndefined(vf.errorMessage)) {\r\n errorMessage = vf.errorMessage;\r\n }\r\n }\r\n\r\n const value: string = isNullOrUndefined(this.props.value) ? (vf ? (this.props.store.getFormValue(vf) as string) : \"\") : this.props.value;\r\n //this.props.store.validationFields[1].errorMessage\r\n\r\n return(\r\n { return this.props.store.getValidationFieldErrorMessage(vf, v) } : this.props.onGetErrorMessage} \r\n onChange={ onchanged} \r\n errorMessage={ errorMessage }\r\n validateOnFocusOut={true}\r\n value={value}\r\n />\r\n )\r\n }\r\n}","import * as React from 'react';\r\nimport { UIPurchaseWizardStore, PurchaseWizardStep, EulaFields } from '../stores/UIPurchaseWizardStore';\r\nimport { observer } from \"mobx-react\";\r\nimport { ICommandBarItemProps, CommandBar, Dropdown, IDropdownOption, Slider, PrimaryButton, Stack, TextField, IStackItemStyles, Checkbox, DatePicker, Text, IconButton, IStackItemTokens } from '@fluentui/react';\r\nimport { FormHeader } from './FormHeader';\r\nimport { ProductItemSlabConfiguration, ProductItemChoiceConfiguration, ProductItemType, ProductItemUIType, ProductItem, ProdcutItemValue } from '../web-store/ServerClasses';\r\nimport { ValidationCheckBox } from './ValidationCheckBox';\r\nimport { ValidationTextField } from './ValidationTextField';\r\nimport { toJS } from 'mobx';\r\nimport { utimes } from 'fs';\r\nimport { to2DecimalNumber } from '../web-store/WebStoreUtil';\r\n\r\nexport interface PurchaseWizardFormProps {\r\n store: UIPurchaseWizardStore\r\n}\r\n\r\n@observer\r\nexport class PurchaseWizardForm extends React.Component {\r\n\r\n static create(store: UIPurchaseWizardStore) {\r\n return ;\r\n }\r\n\r\n componentDidMount() {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n private _renderCommands() {\r\n let items: ICommandBarItemProps[] = [{\r\n key: \"\",\r\n text: \"Close\",\r\n iconProps: {\r\n iconName: \"Cancel\",\r\n },\r\n onClick: this.props.store.confirmCancel\r\n }];\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n\r\n return(\r\n \r\n );\r\n }\r\n\r\n private _renderProductConfig() {\r\n \r\n let uiElements: JSX.Element[] = [];\r\n \r\n for (let index = 0; index < this.props.store.productConfig.items.length; index++) {\r\n const element = this.props.store.productConfig.items[index];\r\n\r\n // if in pricing mode (estimate) or purchase mode, show non-trial items\r\n if (element.hideForTrial === true && this.props.store.purchaseMode == false) {\r\n if (this.props.store.pricingMode == false) {\r\n continue;\r\n }\r\n } \r\n\r\n switch (element.type) {\r\n case ProductItemType.choice:\r\n {\r\n switch (element.uiType) {\r\n case ProductItemUIType.DropDown:\r\n uiElements.push(this._renderDropDown(element, element.config as ProductItemChoiceConfiguration, index));\r\n break;\r\n \r\n case ProductItemUIType.RadioButton:\r\n break;\r\n\r\n case ProductItemUIType.CheckBox:\r\n break;\r\n }\r\n }\r\n break;\r\n \r\n case ProductItemType.slab:\r\n {\r\n switch (element.uiType) {\r\n case ProductItemUIType.TextBox:\r\n break;\r\n \r\n case ProductItemUIType.Slider:\r\n uiElements.push(this._renderSlider(element, element.config as ProductItemSlabConfiguration, index));\r\n break;\r\n }\r\n } \r\n break;\r\n }\r\n }\r\n \r\n uiElements.push(this._renderInstallCheckBox(uiElements.length));\r\n\r\n // 2021-06-29 10:38:12 : display estimate price only in pricing or purchase mode\r\n if ((this.props.store.purchaseMode === true || this.props.store.pricingMode === true)) {\r\n uiElements.push(this._renderCost(uiElements.length))\r\n }\r\n\r\n if (this.props.store.purchaseMode === false && this.props.store.pricingMode === false) {\r\n uiElements.push(this._renderTrialInfo(uiElements.length))\r\n }\r\n\r\n return uiElements;\r\n }\r\n\r\n private _paddingStyle(): React.CSSProperties {\r\n return {\r\n padding: 10\r\n };\r\n }\r\n\r\n private _renderDropDown(productItem: ProductItem, choiceConfig: ProductItemChoiceConfiguration, vIndex: number) {\r\n let options: IDropdownOption[] = choiceConfig.choices.map(c => {\r\n let option: IDropdownOption = {\r\n key: c.id,\r\n text: c.description,\r\n data: vIndex \r\n };\r\n return option;\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {\r\n choiceConfig.allowMultiple ?\r\n \r\n :\r\n \r\n }\r\n\r\n
\r\n { productItem.tip }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n private _renderSlider(productItem: ProductItem, slabConfig: ProductItemSlabConfiguration, vIndex: number) {\r\n return (\r\n
\r\n
\r\n { this.props.store.sliderChange(vIndex, value) }}\r\n value={(this.props.store.itemValues[vIndex].value as number)}\r\n snapToStep\r\n />\r\n
\r\n { productItem.tip }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderInstallCheckBox(vIndex: number) {\r\n if (this.props.store.purchaseMode !== true) return null;\r\n if (this.props.store.product.remoteInstallEnabled !== true) return null;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n } \r\n\r\n private _renderCost(vIndex: number) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n ((this.props.store.purchaseMode === true || this.props.store.pricingMode === true) && this.props.store.costData.subscriptionCost > 0) ?\r\n <>\r\n \r\n \r\n Subscription (annual):\r\n \r\n \r\n \r\n \r\n {\"$ \" + to2DecimalNumber(this.props.store.costData.subscriptionCost)}\r\n \r\n \r\n \r\n : null\r\n }\r\n\r\n {\r\n ((this.props.store.purchaseMode === true || this.props.store.pricingMode === true) && this.props.store.costData.remoteInstallCost > 0 && this.props.store.product.remoteInstallEnabled === true) ?\r\n <>\r\n \r\n \r\n Remote Installation:\r\n \r\n \r\n \r\n \r\n {\"$ \" + to2DecimalNumber(this.props.store.costData.remoteInstallCost)}\r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n All amounts are in USD and do not include VAT or Sales Tax.\r\n \r\n \r\n \r\n ); \r\n }\r\n\r\n private _renderTrialInfo(vIndex: number) {\r\n return (\r\n \r\n \r\n \r\n Trial Period: {this.props.store.product.trialPeriod + \" days.\"}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderEulaAccept() {\r\n let url = this.props.store.parentStore.rootStore.serverApi.getAssetUrl(\r\n this.props.store.step === PurchaseWizardStep.AcceptEula ? this.props.store.eulaAssetId : this.props.store.remoteInstallAssetId, \r\n true);\r\n\r\n const stackItemStyles: IStackItemStyles = {\r\n root: {\r\n width: 350\r\n }\r\n };\r\n\r\n let eulaFields: EulaFields = this.props.store.baseObject as EulaFields;\r\n\r\n return (\r\n
\r\n {\r\n (eulaFields.preAccepted === true) ?\r\n null : \r\n \r\n }\r\n \r\n \r\n \r\n To download the agreement, right click anywhere in the pane above and click Save as.\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 \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 (eulaFields.preAccepted === true) ?\r\n <>We have a signed License Agreement from your Organization. : \r\n <>\r\n }\r\n \r\n \r\n \r\n
\r\n );\r\n // Note: For offline acceptance, please send us a message through the contact link.\r\n }\r\n\r\n\r\n private _renderConfirm() {\r\n const itemTokens: IStackItemTokens = {margin: \"0px 0px 0px 20px\"};\r\n\r\n let subscriptionCost: string = to2DecimalNumber(this.props.store.costData.subscriptionCost);\r\n let installCost: string = to2DecimalNumber(this.props.store.costData.remoteInstallCost);\r\n let totalCost: string = to2DecimalNumber(this.props.store.costData.totalCost);\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n { this.props.store.step = PurchaseWizardStep.Config } }\r\n />\r\n \r\n \r\n Product Configuration\r\n \r\n \r\n \r\n {\r\n this._getConfigurationItemValue()\r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n { this.props.store.step = PurchaseWizardStep.AcceptEula } }\r\n />\r\n \r\n \r\n License Agreement\r\n \r\n \r\n \r\n \r\n Accepted: Yes\r\n \r\n \r\n \r\n\r\n {\r\n (this.props.store.remoteInstallRequested === true && this.props.store.purchaseMode === true) ? \r\n \r\n \r\n \r\n \r\n { this.props.store.step = PurchaseWizardStep.RemoteInstall } }\r\n />\r\n \r\n \r\n Remote Installation Agreement\r\n \r\n \r\n \r\n \r\n Accepted: Yes\r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n\r\n {\r\n (this.props.store.purchaseMode === true) ? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Price\r\n \r\n \r\n \r\n \r\n { (this.props.store.purchaseMode === true && this.props.store.costData.subscriptionCost > 0) ? \r\n \r\n \r\n Subscription (yearly): \r\n \r\n \r\n $ {subscriptionCost}\r\n \r\n \r\n : null\r\n }\r\n { (this.props.store.purchaseMode === true && this.props.store.costData.remoteInstallCost > 0) ? \r\n \r\n \r\n Remote Installation: \r\n \r\n \r\n $ {installCost}\r\n \r\n \r\n : null\r\n }\r\n { (this.props.store.purchaseMode === true && this.props.store.costData.remoteInstallCost > 0) ? \r\n \r\n \r\n Total (for this order): \r\n \r\n \r\n $ {totalCost}\r\n \r\n \r\n : null\r\n }\r\n \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 private _getConfigurationItemValue() {\r\n \r\n let uiElements: JSX.Element[] = [];\r\n let text: string = \"\";\r\n const itemTokens: IStackItemTokens = {margin: \"0px 0px 0px 20px\"};\r\n\r\n // console.log(toJS(this.props.store.itemValues));\r\n \r\n for (let index = 0; index < this.props.store.productConfig.items.length; index++) {\r\n const element = this.props.store.productConfig.items[index];\r\n\r\n text = element.description + \": \"\r\n let piv: ProdcutItemValue = this.props.store.itemValues[index];\r\n\r\n switch (element.type) {\r\n case ProductItemType.choice:\r\n {\r\n switch (element.uiType) {\r\n case ProductItemUIType.DropDown:\r\n text += (element.config as ProductItemChoiceConfiguration).choices.find(c => c.id === (piv.value as number[])[0]).description;\r\n break;\r\n \r\n case ProductItemUIType.RadioButton:\r\n break;\r\n\r\n case ProductItemUIType.CheckBox:\r\n break;\r\n }\r\n }\r\n break;\r\n \r\n case ProductItemType.slab:\r\n {\r\n switch (element.uiType) {\r\n case ProductItemUIType.TextBox:\r\n break;\r\n \r\n case ProductItemUIType.Slider:\r\n text += (piv.value as number).toString();\r\n break;\r\n }\r\n } \r\n break;\r\n }\r\n\r\n uiElements.push(\r\n \r\n {text}\r\n \r\n );\r\n }\r\n\r\n return uiElements;\r\n }\r\n \r\n\r\n private _renderStep() { \r\n switch (this.props.store.step) {\r\n case PurchaseWizardStep.Config:\r\n return this._renderProductConfig();\r\n break;\r\n \r\n case PurchaseWizardStep.AcceptEula:\r\n return this._renderEulaAccept();\r\n break;\r\n\r\n case PurchaseWizardStep.RemoteInstall:\r\n return this._renderEulaAccept();\r\n break;\r\n \r\n case PurchaseWizardStep.Confirm:\r\n return this._renderConfirm();\r\n break;\r\n\r\n default:\r\n return null;\r\n break;\r\n }\r\n }\r\n\r\n private _renderNextBack() {\r\n if (this.props.store.pricingMode === true) return null;\r\n\r\n return (\r\n
\r\n {\r\n this.props.store.step === PurchaseWizardStep.Confirm ? \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 render() {\r\n let header: string = \"\";\r\n switch (this.props.store.step) {\r\n case PurchaseWizardStep.Config:\r\n header = \"Product Configuration: \";\r\n break;\r\n \r\n case PurchaseWizardStep.AcceptEula:\r\n header = \"License Agreement: \";\r\n break;\r\n\r\n case PurchaseWizardStep.RemoteInstall:\r\n header = \"Remote Installation Agreement: \";\r\n break;\r\n\r\n case PurchaseWizardStep.Confirm:\r\n header = \"Confirm Purchase/Trial: \";\r\n break;\r\n }\r\n\r\n return (\r\n
\r\n { this._renderCommands() }\r\n\r\n
\r\n \r\n\r\n
\r\n { this._renderStep() }\r\n { this._renderNextBack() }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import { AppStore } from \"./AppStore\";\r\nimport { ITheme, ISemanticColors } from \"office-ui-fabric-react/lib/Styling\";\r\nimport { ServerApi } from \"../web-store/ServerApi\";\r\nimport { observable, action, computed } from \"mobx\";\r\nimport { UITransitionStore } from \"./UITransitionStore\";\r\nimport { UIFooterStore } from \"./UIFooterStore\";\r\nimport { UIConfirmDialogStore } from \"./UIConfirmDialogStore\";\r\nimport { isNullOrUndefined } from \"../web-store/WebStoreUtil\";\r\nimport { UISidebarStore } from \"./UISidebarStore\";\r\nimport { UIUserMenuStore } from \"./UIUserMenuStore\";\r\nimport { UIMessageStore } from \"./UIMessageStore\";\r\nimport { ContextualMenuItemType, ICommandBarItemProps } from \"office-ui-fabric-react\";\r\nimport { UIHomeFormStore } from \"./UIHomeFormStore\";\r\n\r\nexport enum InitForm {\r\n signIn = \"signIn\",\r\n signUp = \"signUp\",\r\n confirmEmail = \"confirmEmail\",\r\n forgotPassword = \"forgotPassword\",\r\n resetPassword = \"resetPassword\",\r\n}\r\n\r\nexport class UIStore {\r\n rootStore: AppStore;\r\n theme: ITheme;\r\n readonly serverApi: ServerApi;\r\n @observable initForm: InitForm;\r\n @observable formStack: JSX.Element[];\r\n @observable uiTransition: UITransitionStore;\r\n @observable confirmDialogStore: UIConfirmDialogStore;\r\n @observable messageStore: UIMessageStore;\r\n @observable sideBarStore: UISidebarStore;\r\n @observable userMenuStore: UIUserMenuStore;\r\n // footerStore: UIFooterStore;\r\n\r\n constructor(root: AppStore, theme: ITheme, serverApi: ServerApi) {\r\n this.sideBarStore = new UISidebarStore(this);\r\n this.userMenuStore = new UIUserMenuStore(this);\r\n this.messageStore = new UIMessageStore(this);\r\n this.rootStore = root;\r\n this.theme = theme;\r\n this.serverApi = serverApi;\r\n this._appInit();\r\n }\r\n\r\n private _appInit(): void {\r\n this.initForm = InitForm.signIn;\r\n // this.footerStore = new UIFooterStore(this);\r\n this.confirmDialogStore = new UIConfirmDialogStore();\r\n this.formStack = [];\r\n }\r\n\r\n public preLoginInit(newTheme: ITheme) {\r\n this.theme = newTheme;\r\n this.messageStore.clear();\r\n // this requires resource manager. don't put this in appInit\r\n this.uiTransition = new UITransitionStore(this);\r\n // this.sideBarStore.initMenus();\r\n // this.statusStore.clearMessage();\r\n this.formStack = [];\r\n } \r\n \r\n get linkColor() : string {\r\n return this.theme.semanticColors.link;\r\n }\r\n\r\n get semanticColors() : ISemanticColors {\r\n return this.theme.semanticColors;\r\n }\r\n\r\n @computed \r\n get currentForm(): JSX.Element {\r\n return (this.formStack.length <= 0) ? null : this.formStack[this.formStack.length -1];\r\n }\r\n\r\n @action\r\n addForm = async (formElement: JSX.Element ): Promise => {\r\n if (this.formStack.length > 0) {\r\n // if same form is added, do nothing\r\n if (this.formStack[this.formStack.length -1].type === formElement.type) {\r\n this.uiTransition.hide();\r\n return;\r\n }\r\n }\r\n // if (contentType === FormType.Home) {\r\n // if (this.formStack.length > 0) {\r\n // // warn user and return her to home\r\n // this.formStack.splice(1, this.formStack.length -1);\r\n // return;\r\n // }\r\n // }\r\n // console.log(formElement.type);\r\n this.formStack.push(formElement);\r\n // in most cases, this has no effect. all non-modal components\r\n // MUST turn this off in componentDidMount\r\n this.uiTransition.show();\r\n }\r\n\r\n @action\r\n gotoHomeForm(): void {\r\n if (this.formStack.length > 0) {\r\n this.formStack.splice(1, this.formStack.length -1);\r\n return;\r\n }\r\n }\r\n\r\n @action\r\n removeForm = (key?: number): void => {\r\n if (!isNullOrUndefined(key)) {\r\n let idx: number = this.formStack.findIndex((f) => {\r\n if (!f.props.store) return false;\r\n if (!f.props.store.Key) return false;\r\n if (typeof f.props.store.Key === \"number\") return false;\r\n return f.props.store.Key === key\r\n });\r\n\r\n if (idx <= 0) return;\r\n this.formStack.splice(idx, 1); \r\n } else {\r\n this.formStack.splice(this.formStack.length -1, 1);\r\n }\r\n }\r\n\r\n getPreviousFormStore = (): any => {\r\n return this.formStack[this.formStack.length - 2].props.store;\r\n } \r\n\r\n setCommandBarItemsKeys(items: ICommandBarItemProps[], iconOnly?: boolean) {\r\n // this is a utility function for all command bars on forms\r\n const iconStyle = {\r\n fontSize: 16,\r\n }\r\n\r\n let key: number = 0;\r\n items.forEach(i => {\r\n key++;\r\n i.key = key.toString()\r\n i.itemType = ContextualMenuItemType.Normal;\r\n i.iconProps.style = iconStyle;\r\n // shows name property as a callout\r\n if (!isNullOrUndefined(iconOnly)) i.iconOnly = iconOnly;\r\n if (i.subMenuProps) {\r\n if (i.subMenuProps.items) {\r\n i.subMenuProps.items.forEach(si =>{\r\n si.key = key.toString();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}","import {UIStore} from './UIStore'\r\nimport {DialogResult, DialogMode} from './UIConfirmDialogStore'\r\nimport { SearchFormStore, IColumnProps } from './UISearchFormStore';\r\nimport { ProductsSearchForm } from \"../components/ProductsSearchForm\";\r\nimport { Selection } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { ProductDTO, SubscriptionDTO, GetEntitiesResponse, EulaDTO, Asset, AgreementAcceptance, CreateAssetsRequest, AssetType, CreateAssetsResponse, FSPayloadResponse } from '../web-store/ServerClasses';\r\nimport { UIPurchaseWizardStore, EulaFields } from './UIPurchaseWizardStore';\r\nimport { toJS } from 'mobx';\r\nimport moment, { isDate } from 'moment';\r\nimport { isNullOrUndefined } from '../web-store/WebStoreUtil';\r\n\r\nexport class UIProductsFormStore extends SearchFormStore {\r\n \r\n selection: Selection;\r\n\r\n constructor(parent: UIStore) {\r\n super(parent, \"name\");\r\n this.setBaseObject({ notUsed: 1});\r\n this.selection = new Selection();\r\n }\r\n\r\n async showForm() {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordsFromApi(\"products\", (records, response) => { \r\n if (records) { \r\n //records.forEach(x => x.key = x.id);\r\n this.parentStore.addForm(ProductsSearchForm.create(this));\r\n }\r\n });\r\n \r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n \r\n setColumns(): IColumnProps[] {\r\n const columns: IColumnProps[] = [\r\n {\r\n key: \"1\",\r\n name: \"Product\",\r\n fieldName: \"name\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Buy\",\r\n fieldName: \"-\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n },\r\n {\r\n key: \"3\",\r\n name: \"Trial\",\r\n fieldName: \"-\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n } \r\n ];\r\n\r\n return columns;\r\n }\r\n\r\n refresh = async () => {\r\n await this.getRecordsFromApi(\"products\", null);\r\n }\r\n\r\n startTrial = async(product: ProductDTO) => {\r\n this.parentStore.uiTransition.show(); \r\n try {\r\n // check if trial has already been done by this account for this product\r\n let trialsResponse: GetEntitiesResponse = await this.parentStore.serverApi.getEntities(\"subscriptions\", [\"productid=\" + product.id.toString(), \"istrial=1\"]);\r\n if (trialsResponse.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(trialsResponse);\r\n return;\r\n }\r\n if (trialsResponse.entities.length > 0) {\r\n this.parentStore.messageStore.showErrorMessage(\"You have already requested a trial for this product. If you want an additional trial, please send us a message throught the Contact link\");\r\n return;\r\n }\r\n\r\n // check if eula has been signed for this product/company/trial - this is for offline acceptance\r\n let eulaAccepted: boolean = false;\r\n let eulaAcceptance: AgreementAcceptance = null;\r\n // let eulaAcceptancesResponse: GetEntitiesResponse = await this.parentStore.serverApi.getEntities(\"eulaacceptances\", \r\n // [\"trial=1\",\r\n // \"productid=\" + product.id.toString()\r\n // // company is implicit for user auth\r\n // ]);\r\n // if (eulaAcceptancesResponse.statusCode !== 200) {\r\n // this.parentStore.messageStore.showMessageFromResponse(eulaAcceptancesResponse);\r\n // return;\r\n // }\r\n // if (eulaAcceptancesResponse.entities.length > 0) {\r\n // eulaAcceptance = eulaAcceptancesResponse.entities[0];\r\n // if (isNullOrUndefined(eulaAcceptance.expiryDate)) {\r\n // eulaAccepted = true;\r\n // } else {\r\n // eulaAccepted = moment(eulaAcceptancesResponse.entities[0].expiryDate).isAfter(moment.utc(), \"days\");\r\n // }\r\n // } \r\n\r\n // create asset for eula\r\n let eulasResponse: CreateAssetsResponse = await this.parentStore.serverApi.postData(\"assets\", {\r\n assetType: AssetType.Agreement,\r\n id: product.eulaId,\r\n publicId: \"\",\r\n }, \"POST\");\r\n if (eulasResponse.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(eulasResponse);\r\n return;\r\n }\r\n if (isNullOrUndefined(eulasResponse.assets) || eulasResponse.assets.length <= 0) {\r\n this.parentStore.messageStore.showErrorMessage(\"EULA record could not be retrieved.\")\r\n return;\r\n }\r\n let asset: Asset = eulasResponse.assets[0];\r\n\r\n let eulaFields: EulaFields = {\r\n acceptanceId: 0,\r\n accepted: eulaAccepted,\r\n organization: \"\",\r\n name: \"\",\r\n title: \"\",\r\n email: \"\",\r\n date: undefined,\r\n preAccepted: false\r\n };\r\n\r\n if (this.parentStore.rootStore.ClientConfig.lazyData.webStore) {\r\n if (this.parentStore.rootStore.ClientConfig.lazyData.webStore.eulaFields) {\r\n eulaFields = {...this.parentStore.rootStore.ClientConfig.lazyData.webStore.eulaFields};\r\n // eulaFields.date = new Date();\r\n eulaFields.preAccepted = false;\r\n }\r\n }\r\n\r\n // if (eulaAccepted === true) {\r\n // eulaFields.acceptanceId = (eulaAcceptance.id);\r\n // eulaFields.organization = (eulaAcceptance.acceptCompany);\r\n // eulaFields.name = (eulaAcceptance.acceptName);\r\n // eulaFields.title = (eulaAcceptance.acceptTitle);\r\n // eulaFields.email = (eulaAcceptance.acceptEmail);\r\n // eulaFields.date = new Date(eulaAcceptance.acceptDate);\r\n // eulaFields.preAccepted = true;\r\n // }\r\n\r\n product.pricingConfiguration.productId = product.id;\r\n\r\n let store: UIPurchaseWizardStore = new UIPurchaseWizardStore(this.parentStore, product, eulaFields);\r\n store.purchaseMode = false;\r\n store.pricingMode = false;\r\n store.eulaAssetId = asset.id;\r\n store.showForm();\r\n\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n } \r\n}","import * as React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { DetailsList, DetailsListLayoutMode, SelectionMode, IColumn, ConstrainMode } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { TextField } from \"office-ui-fabric-react/lib/TextField\";\r\nimport * as Server from \"../web-store/ServerClasses\"\r\nimport { FormHeader } from \"./FormHeader\";\r\nimport { IColumnProps } from \"../stores/UISearchFormStore\";\r\nimport { PrimaryButton, ICommandBarItemProps, CommandBar } from \"office-ui-fabric-react\";\r\nimport { UISubscriptionsFormStore as UISubscriptionsFormStore } from \"../stores/UISubscriptionsFormStore\";\r\nimport moment from \"moment\";\r\n\r\nclass SubscriptionsSearchFormProps {\r\n store: UISubscriptionsFormStore;\r\n}\r\n\r\n@observer\r\nexport class SubscriptionsSearchForm extends React.Component {\r\n\r\n componentDidMount () {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UISubscriptionsFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [];\r\n this.props.store.addCloseMenu(items);\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n return(\r\n \r\n );\r\n }\r\n\r\n private _getColumns() : IColumn[] {\r\n const columns: IColumn[] = [\r\n {\r\n key: \"1\",\r\n name: \"Product\",\r\n fieldName: \"name\",\r\n minWidth: 200,\r\n maxWidth: 250,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.SubscriptionDTO) => {\r\n return (\r\n
\r\n {item.product.name + \", v\" + item.product.version} \r\n
\r\n )\r\n }\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Id\",\r\n fieldName: \"publicId\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true\r\n }, \r\n {\r\n key: \"3\",\r\n name: (this.props.store.isTrial === true) ? \"Trial Ends\": \"Subscription Ends\",\r\n fieldName: \"endDate\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.SubscriptionDTO) => {\r\n return (\r\n
\r\n {moment(item.endDate).format(\"YYYY-MM-DD\")}\r\n
\r\n )\r\n } \r\n },\r\n {\r\n key: \"4\",\r\n name: \"Assets\",\r\n fieldName: \"-\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.SubscriptionDTO) => {\r\n return (\r\n {this.props.store.gotoAssets(item)} }\r\n /> \r\n )\r\n }\r\n },\r\n {\r\n key: \"5\",\r\n name: \"Renew\",\r\n fieldName: \"-\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.SubscriptionDTO) => {\r\n return (\r\n this.props.store.isRenewableNow(item) ? \r\n {this.props.store.gotoRenew(item)} }\r\n /> : null\r\n )\r\n }\r\n } \r\n ];\r\n\r\n if (this.props.store.parentStore.rootStore.AdminMode === true) {\r\n columns.push(\r\n {\r\n key: \"6\",\r\n name: \"Organization\",\r\n fieldName: \"organization\",\r\n minWidth: 250,\r\n maxWidth: 300,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true \r\n } \r\n );\r\n }\r\n\r\n // sync these overrides properties from props\r\n columns.forEach((c: IColumn, i: number) => {\r\n const currColumn: IColumnProps = this.props.store.displayedColumns.filter((currCol: IColumnProps, idx: number) => {\r\n return c.key === currCol.key;\r\n })[0];\r\n \r\n c.isSorted = currColumn.isSorted;\r\n c.isSortedDescending = currColumn.isSortedDescending;\r\n // not setting onColumnClick as not all cols are clickable\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n detailList() {\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 render() {\r\n \r\n return (\r\n
\r\n { this._renderCommands() }\r\n\r\n
\r\n \r\n\r\n { this.detailList() }\r\n
\r\n
\r\n );\r\n }\r\n} ","import * as React from 'react';\r\nimport { observer } from \"mobx-react\";\r\nimport { ICommandBarItemProps, CommandBar, Dropdown, IDropdownOption, Slider, PrimaryButton, Stack, TextField, IStackItemStyles, Checkbox, DatePicker, Text, IconButton, IStackItemTokens } from '@fluentui/react';\r\nimport { FormHeader } from './FormHeader';\r\nimport { toJS } from 'mobx';\r\nimport { UIAssetsFormStore } from '../stores/UIAssetsFormStore';\r\n\r\nexport interface AssetsFormProps {\r\n store: UIAssetsFormStore\r\n}\r\n\r\n@observer\r\nexport class AssetsForm extends React.Component {\r\n\r\n static create(store: UIAssetsFormStore) {\r\n return ;\r\n }\r\n\r\n componentDidMount() {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n private _renderCommands() {\r\n let items: ICommandBarItemProps[] = [];\r\n this.props.store.addCloseMenu(items);\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n return(\r\n \r\n );\r\n }\r\n\r\n render() {\r\n let header: string = \"Download Assets: \" + this.props.store.assetData.product.name + \" \" + this.props.store.assetData.product.version;\r\n\r\n return (\r\n
\r\n { this._renderCommands() }\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\"License Key: \" + this.props.store.assetData.assetResponse.licenseKey}\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","import { UIStore } from \"./UIStore\";\r\nimport { action, observable, } from \"mobx\";\r\nimport { CreateAssetsResponse, ProductDTO, DeleteAssetsRequest, Asset } from \"../web-store/ServerClasses\";\r\nimport { UIFormStore } from \"./UIFormStore\";\r\nimport { AssetsForm } from \"../components/AssetsForm\";\r\nimport copy from 'copy-to-clipboard';\r\n\r\nexport interface AssetFormData {\r\n product: ProductDTO;\r\n assetResponse: CreateAssetsResponse\r\n}\r\n\r\nexport class UIAssetsFormStore extends UIFormStore {\r\n assetData: AssetFormData;\r\n @observable disableLicense: boolean;\r\n @observable disableInstall: boolean;\r\n\r\n constructor(parent: UIStore, assetData: AssetFormData) {\r\n super(parent);\r\n this.setBaseObject({notUsed: 1});\r\n this.assetData = assetData;\r\n this.disableLicense = false;\r\n this.disableInstall = false;\r\n }\r\n\r\n @action\r\n showForm = async () => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n this.parentStore.addForm(AssetsForm.create(this)); \r\n } catch (error) {\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n\r\n protected beforeCancel = (cancelAction: {dontClose: boolean}) => {\r\n this._removeAssets();\r\n return cancelAction.dontClose = false;\r\n }\r\n\r\n private _removeAssets = async() => {\r\n let request: DeleteAssetsRequest = {\r\n ids: this.assetData.assetResponse.assets.map(a => a.id)\r\n }\r\n await this.parentStore.serverApi.postData(\"assets\", request, \"DELETE\");\r\n }\r\n\r\n copyLicenseToClipboard = () => {\r\n try {\r\n copy(this.assetData.assetResponse.licenseKey);\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n }\r\n }\r\n\r\n downloadLicense = () => {\r\n this.disableLicense = true;\r\n let asset = this.assetData.assetResponse.assets.find(a => a.tag == \"License\");\r\n this._createPseudoLink(asset);\r\n }\r\n\r\n downloadInstall = () => {\r\n this.disableInstall = true;\r\n let asset = this.assetData.assetResponse.assets.find(a => a.tag == \"Install\");\r\n this._createPseudoLink(asset);\r\n }\r\n\r\n private _createPseudoLink(asset: Asset) {\r\n let url = this.parentStore.rootStore.serverApi.getAssetUrl(asset.id, false);\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n}","import {UIStore} from './UIStore'\r\nimport { SearchFormStore, IColumnProps } from './UISearchFormStore';\r\nimport { Selection } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { SubscriptionDTO, CreateAssetsResponse, CreateAssetsRequest, AssetType, ProductDTO, GetEntitiesResponse, AgreementAcceptance, Asset } from '../web-store/ServerClasses';\r\nimport { SubscriptionsSearchForm } from '../components/SubscriptionsSearchForm';\r\nimport { UIAssetsFormStore } from './UIAssetsFormStore';\r\nimport moment from 'moment';\r\nimport { isNullOrUndefined } from '../web-store/WebStoreUtil';\r\nimport { EulaFields, UIPurchaseWizardStore } from './UIPurchaseWizardStore';\r\n\r\nexport class UISubscriptionsFormStore extends SearchFormStore {\r\n selection: Selection;\r\n readonly isTrial: boolean;\r\n\r\n constructor(parent: UIStore, isTrial: boolean) {\r\n super(parent, \"name\");\r\n this.setBaseObject({ notUsed: 1});\r\n this.isTrial = isTrial;\r\n this.selection = new Selection();\r\n }\r\n\r\n async showForm() {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordsFromApi(\"subscriptions\", (records, response) => { \r\n if (records) { \r\n this.parentStore.addForm(SubscriptionsSearchForm.create(this));\r\n }\r\n }, [\"istrial=\" + (this.isTrial === true ? \"1\": \"0\")]);\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n \r\n setColumns(): IColumnProps[] {\r\n const columns: IColumnProps[] = [\r\n {\r\n key: \"1\",\r\n name: \"Product\",\r\n fieldName: \"name\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Product\",\r\n fieldName: \"name\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n }, \r\n {\r\n key: \"3\",\r\n name: \"Ends\",\r\n fieldName: \"endDate\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n },\r\n {\r\n key: \"4\",\r\n name: \"Assets\",\r\n fieldName: \"-\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n },\r\n {\r\n key: \"5\",\r\n name: \"Renew\",\r\n fieldName: \"-\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n } \r\n ];\r\n\r\n if (this.parentStore.rootStore.domainStore.AdminMode === true) {\r\n columns.push({\r\n key: \"6\",\r\n name: \"Organization\",\r\n fieldName: \"organization\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n })\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n protected getFilterRecordValue(r: SubscriptionDTO): string {\r\n return r.product.name;\r\n }\r\n \r\n\r\n refresh = async () => {\r\n try {\r\n await this.getRecordsFromApi(\"subscriptions\", null, [\"istrial=\" + (this.isTrial === true ? \"1\": \"0\")]);\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n }\r\n }\r\n\r\n gotoAssets = async(subscription: SubscriptionDTO) => {\r\n this.parentStore.uiTransition.show(); \r\n try {\r\n \r\n let request: CreateAssetsRequest = {\r\n assetType: AssetType.Trial,\r\n publicId: subscription.publicId,\r\n id: 0\r\n };\r\n\r\n let response: CreateAssetsResponse = await this.parentStore.serverApi.postData(\"assets\", request, \"POST\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return;\r\n }\r\n \r\n new UIAssetsFormStore(this.parentStore, {\r\n product: subscription.product,\r\n assetResponse: response\r\n }).showForm();\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n }\r\n\r\n isRenewableNow(subscription: SubscriptionDTO): boolean {\r\n let renewable: boolean = moment(subscription.renewableDate).isSameOrBefore(moment.utc(), \"days\"); \r\n return renewable;\r\n }\r\n\r\n gotoRenew = async(subscription: SubscriptionDTO) => {\r\n this.parentStore.uiTransition.show(); \r\n try {\r\n if (this.isRenewableNow(subscription) !== true) {\r\n this.parentStore.messageStore.showErrorMessage(\"The selected subscription is not eligible for renewal at this time.\");\r\n return;\r\n }\r\n\r\n let productsResponse: GetEntitiesResponse = await this.parentStore.serverApi.getEntities(\"products\", [\"id=\" + subscription.productId.toString()]);\r\n if (productsResponse.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(productsResponse);\r\n return;\r\n } \r\n if (productsResponse.entities.length <= 0) {\r\n this.parentStore.messageStore.showErrorMessage(\"The selected product is not acitive.\");\r\n return;\r\n }\r\n\r\n let product: ProductDTO = productsResponse.entities[0];\r\n \r\n // check if eula has been signed for this product/company/trial - this is for offline acceptance\r\n let eulaAccepted: boolean = false;\r\n let eulaAcceptance: AgreementAcceptance = null;\r\n // let eulaAcceptancesResponse: GetEntitiesResponse = await this.parentStore.serverApi.getEntities(\"eulaacceptances\", \r\n // [\"trial=0\",\r\n // \"productid=\" + product.id.toString()\r\n // // company is implicit for user auth\r\n // ]);\r\n // if (eulaAcceptancesResponse.statusCode !== 200) {\r\n // this.parentStore.messageStore.showMessageFromResponse(eulaAcceptancesResponse);\r\n // return;\r\n // }\r\n // if (eulaAcceptancesResponse.entities.length > 0) {\r\n // eulaAcceptance = eulaAcceptancesResponse.entities[0];\r\n // if (isNullOrUndefined(eulaAcceptance.expiryDate)) {\r\n // eulaAccepted = true;\r\n // } else {\r\n // eulaAccepted = moment(eulaAcceptancesResponse.entities[0].expiryDate).isAfter(moment.utc(), \"days\");\r\n // }\r\n // } \r\n\r\n // create asset for eula\r\n let eulasResponse: CreateAssetsResponse = await this.parentStore.serverApi.postData(\"assets\", {\r\n assetType: AssetType.Agreement,\r\n id: product.eulaId,\r\n publicId: \"\",\r\n }, \"POST\");\r\n if (eulasResponse.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(eulasResponse);\r\n return;\r\n }\r\n if (isNullOrUndefined(eulasResponse.assets) || eulasResponse.assets.length <= 0) {\r\n this.parentStore.messageStore.showErrorMessage(\"EULA record could not be retrieved.\")\r\n return;\r\n }\r\n let asset: Asset = eulasResponse.assets[0];\r\n\r\n let eulaFields: EulaFields = {\r\n acceptanceId: 0,\r\n accepted: eulaAccepted,\r\n organization: \"\",\r\n name: \"\",\r\n title: \"\",\r\n email: \"\",\r\n date: undefined,\r\n preAccepted: false\r\n };\r\n\r\n if (this.parentStore.rootStore.ClientConfig.lazyData.webStore) {\r\n if (this.parentStore.rootStore.ClientConfig.lazyData.webStore.eulaFields) {\r\n eulaFields = {...this.parentStore.rootStore.ClientConfig.lazyData.webStore.eulaFields};\r\n // eulaFields.date = new Date();\r\n eulaFields.preAccepted = false;\r\n }\r\n }\r\n\r\n // if (eulaAccepted === true) {\r\n // eulaFields.acceptanceId = (eulaAcceptance.id);\r\n // eulaFields.organization = (eulaAcceptance.acceptCompany);\r\n // eulaFields.name = (eulaAcceptance.acceptName);\r\n // eulaFields.title = (eulaAcceptance.acceptTitle);\r\n // eulaFields.email = (eulaAcceptance.acceptEmail);\r\n // eulaFields.date = new Date(eulaAcceptance.acceptDate);\r\n // eulaFields.preAccepted = true;\r\n // }\r\n\r\n product.pricingConfiguration.productId = product.id;\r\n\r\n let store: UIPurchaseWizardStore = new UIPurchaseWizardStore(this.parentStore, product, eulaFields);\r\n store.purchaseMode = true;\r\n store.eulaAssetId = asset.id;\r\n store.setItemValuesFromPreviousSubscription(subscription, this);\r\n store.showForm();\r\n \r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n } \r\n}","import {UIFormStore} from './UIFormStore'\r\nimport { UIStore } from './UIStore';\r\nimport * as Server from '../web-store/ServerClasses'\r\n\r\nexport class UIEditFormStore extends UIFormStore {\r\n\r\n constructor(parent: UIStore) {\r\n super(parent);\r\n }\r\n\r\n public async getRecordFromFromApi(entityName: string, callbackfn: (entity: Entity, response?: Server.BaseResponse) => void, params?: string[]) {\r\n try {\r\n let resp: Server.GetEnityResponse = await this.parentStore.serverApi.getEntity(entityName, params);\r\n //this.parentStore.messageStore.showMessageFromResponse(resp);\r\n\r\n if (resp.statusCode === 200) {\r\n this.setBaseObject(resp.entity);\r\n\r\n if (callbackfn) {\r\n callbackfn(resp.entity, resp);\r\n }\r\n } else {\r\n this.parentStore.messageStore.showErrorMessage(resp.message);\r\n this.parentStore.uiTransition.hide();\r\n }\r\n \r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorMessage((error as Error).message);\r\n if (callbackfn) {\r\n callbackfn(null, null);\r\n }\r\n }\r\n finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n } \r\n}","import * as React from 'react';\r\nimport { TextField } from '@fluentui/react/lib/TextField';\r\nimport { observer } from 'mobx-react';\r\nimport { FormHeader } from './FormHeader';\r\nimport { ICommandBarItemProps, CommandBar, Stack, PrimaryButton, Text } from '@fluentui/react';\r\nimport { ChangePasswordData } from '../stores/UIChangePasswordStore';\r\nimport { ValidationPasswordField } from './ValidationPasswordField';\r\nimport { UIContactFormStore, ContactFormData } from '../stores/UIContactFormStore';\r\nimport { ValidationTextField } from './ValidationTextField';\r\n\r\nclass ContactFormProps {\r\n store: UIContactFormStore;\r\n}\r\n\r\n@observer\r\nexport class ContactForm extends React.Component {\r\n\r\n componentDidMount() {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIContactFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [];\r\n this.props.store.addCloseMenu(items);\r\n\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n\r\n return(\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const contactData = this.props.store.baseObject as ContactFormData;\r\n \r\n return (\r\n
\r\n\r\n { this._renderCommands() }\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 {this.props.store.sentMessage}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import {observable, action} from 'mobx';\r\nimport { UIEditFormStore } from './UIEditFormStore';\r\nimport { UIStore } from './UIStore';\r\nimport { RequiredValidator } from '../web-store/Validators';\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { ContactForm } from '../components/ContactForm';\r\n\r\nexport interface ContactFormData {\r\n subject: string;\r\n message: string;\r\n}\r\n\r\nexport class UIContactFormStore extends UIEditFormStore {\r\n @observable sentMessage: string;\r\n\r\n constructor(parent: UIStore) {\r\n super(parent);\r\n let data: ContactFormData = {\r\n subject: \"\",\r\n message: \"\"\r\n }\r\n this.sentMessage = \"\";\r\n this.setBaseObject(data);\r\n this.createValidationFields();\r\n }\r\n\r\n createValidationFields() {\r\n this.validationFields = [\r\n {\r\n fieldId: \"subject\",\r\n propName: \"subject\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n ]\r\n },\r\n {\r\n fieldId: \"message\",\r\n propName: \"message\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n ]\r\n }\r\n ]\r\n }\r\n\r\n @action\r\n showForm = async () => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n this.parentStore.addForm(ContactForm.create(this));\r\n } catch (error) {\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n \r\n sendMessage = async () : Promise => {\r\n let data: ContactFormData = this.baseObject as ContactFormData;\r\n try {\r\n if (!this.validateForm()) \r\n return;\r\n this.parentStore.uiTransition.show();\r\n\r\n let request: Server.SendMessageRequest = {\r\n subject: data.subject,\r\n message: data.message\r\n }\r\n\r\n let response: Server.GenericResponse = await this.parentStore.serverApi.postData(\"sendmessage\", request, \"POST\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return;\r\n }\r\n\r\n this.sentMessage = \"Thank you for contacting us. We will respond to you within one business day.\";\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error as Error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { DetailsList, DetailsListLayoutMode, SelectionMode, IColumn, ConstrainMode } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { TextField } from \"office-ui-fabric-react/lib/TextField\";\r\nimport * as Server from \"../web-store/ServerClasses\"\r\nimport { FormHeader } from \"./FormHeader\";\r\nimport { IColumnProps } from \"../stores/UISearchFormStore\";\r\nimport { PrimaryButton, ICommandBarItemProps, CommandBar, Button, Link } from \"office-ui-fabric-react\";\r\nimport { UISubscriptionsFormStore as UISubscriptionsFormStore } from \"../stores/UISubscriptionsFormStore\";\r\nimport moment from \"moment\";\r\nimport { UIOrdersFormStore } from \"../stores/UIOrdersFormStore\";\r\n\r\nclass OrdersSearchFormProps {\r\n store: UIOrdersFormStore;\r\n}\r\n\r\n@observer\r\nexport class OrdersSearchForm extends React.Component {\r\n\r\n componentDidMount () {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIOrdersFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [];\r\n this.props.store.addCloseMenu(items);\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n return(\r\n \r\n );\r\n }\r\n\r\n private _getColumns() : IColumn[] {\r\n const columns: IColumn[] = [\r\n {\r\n key: \"1\",\r\n name: \"Product\",\r\n fieldName: \"orderTitle\",\r\n minWidth: 200,\r\n maxWidth: 250,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Date\",\r\n fieldName: \"orderDate\",\r\n minWidth: 130,\r\n maxWidth: 130,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.OrderDTO) => {\r\n return (\r\n
\r\n {moment(item.orderDate).format(\"YYYY-MM-DD\")}\r\n
\r\n )\r\n } \r\n }, \r\n {\r\n key: \"3\",\r\n name: \"Amount\",\r\n fieldName: \"paymentTotal\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.OrderDTO) => {\r\n return (\r\n
\r\n {item.paymentTotal.toFixed(2)}\r\n
\r\n )\r\n } \r\n },\r\n {\r\n key: \"4\",\r\n name: \"Invoice\",\r\n fieldName: \"-\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.OrderDTO) => {\r\n return (\r\n \r\n Download \r\n \r\n )\r\n }\r\n } \r\n ];\r\n\r\n if (this.props.store.parentStore.rootStore.AdminMode === true) {\r\n columns.push(\r\n {\r\n key: \"5\",\r\n name: \"Organization\",\r\n fieldName: \"organization\",\r\n minWidth: 250,\r\n maxWidth: 300,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: false,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true \r\n } \r\n );\r\n }\r\n\r\n // this.props.store.gotoAssets(item)\r\n // sync these overrides properties from props\r\n columns.forEach((c: IColumn, i: number) => {\r\n const currColumn: IColumnProps = this.props.store.displayedColumns.filter((currCol: IColumnProps, idx: number) => {\r\n return c.key === currCol.key;\r\n })[0];\r\n \r\n c.isSorted = currColumn.isSorted;\r\n c.isSortedDescending = currColumn.isSortedDescending;\r\n // not setting onColumnClick as not all cols are clickable\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n detailList() {\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 render() {\r\n \r\n return (\r\n
\r\n { this._renderCommands() }\r\n\r\n
\r\n \r\n\r\n { this.detailList() }\r\n
\r\n
\r\n );\r\n }\r\n} ","import {UIStore} from './UIStore'\r\nimport { SearchFormStore, IColumnProps } from './UISearchFormStore';\r\nimport { Selection } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { SubscriptionDTO, CreateAssetsResponse, CreateAssetsRequest, AssetType, OrderDTO } from '../web-store/ServerClasses';\r\nimport { UIAssetsFormStore } from './UIAssetsFormStore';\r\nimport { OrdersSearchForm } from '../components/OrdersSearchForm';\r\n\r\nexport class UIOrdersFormStore extends SearchFormStore {\r\n selection: Selection;\r\n readonly isTrial: boolean;\r\n\r\n constructor(parent: UIStore, isTrial: boolean) {\r\n super(parent, \"name\");\r\n this.setBaseObject({ notUsed: 1});\r\n this.isTrial = isTrial;\r\n this.selection = new Selection();\r\n }\r\n\r\n async showForm() {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordsFromApi(\"orders\", (records, response) => { \r\n if (records) { \r\n this.parentStore.addForm(OrdersSearchForm.create(this));\r\n }\r\n }, [\"istrial=\" + (this.isTrial === true ? \"1\": \"0\")]);\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n \r\n setColumns(): IColumnProps[] {\r\n const columns: IColumnProps[] = [\r\n {\r\n key: \"1\",\r\n name: \"Product\",\r\n fieldName: \"orderTitle\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Date\",\r\n fieldName: \"orderDate\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n }, \r\n {\r\n key: \"3\",\r\n name: \"Amount\",\r\n fieldName: \"paymentTotal\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n },\r\n {\r\n key: \"4\",\r\n name: \"Invoice\",\r\n fieldName: \"-\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n } \r\n ];\r\n\r\n if (this.parentStore.rootStore.domainStore.AdminMode === true) {\r\n columns.push({\r\n key: \"5\",\r\n name: \"Organization\",\r\n fieldName: \"organization\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n })\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n protected getFilterRecordValue(r: OrderDTO): string {\r\n return r.orderTitle;\r\n }\r\n\r\n refresh = async () => {\r\n await this.getRecordsFromApi(\"orders\", null);\r\n }\r\n\r\n gotoAssets = async(trial: SubscriptionDTO) => {\r\n this.parentStore.uiTransition.show(); \r\n try {\r\n \r\n let request: CreateAssetsRequest = {\r\n assetType: AssetType.Trial,\r\n publicId: trial.publicId,\r\n id: 0\r\n };\r\n\r\n let response: CreateAssetsResponse = await this.parentStore.serverApi.postData(\"assets\", request, \"POST\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return;\r\n }\r\n \r\n new UIAssetsFormStore(this.parentStore, {\r\n product: trial.product,\r\n assetResponse: response\r\n }).showForm();\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n }\r\n}","import * as React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { DetailsList, DetailsListLayoutMode, SelectionMode, IColumn, ConstrainMode } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { TextField } from \"office-ui-fabric-react/lib/TextField\";\r\nimport * as Server from \"../web-store/ServerClasses\"\r\nimport { FormHeader } from \"./FormHeader\";\r\nimport { IColumnProps } from \"../stores/UISearchFormStore\";\r\nimport { PrimaryButton, ICommandBarItemProps, CommandBar, Button, Link } from \"office-ui-fabric-react\";\r\nimport { UISubscriptionsFormStore as UISubscriptionsFormStore } from \"../stores/UISubscriptionsFormStore\";\r\nimport moment from \"moment\";\r\nimport { UIOrdersFormStore } from \"../stores/UIOrdersFormStore\";\r\nimport { UIAdminAccountsFormStore } from \"../stores/UIAdminAccountsFormStore\";\r\n\r\nclass AdminAccountsSearchFormProps {\r\n store: UIAdminAccountsFormStore;\r\n}\r\n\r\n@observer\r\nexport class AdminAccountsSearchForm extends React.Component {\r\n\r\n componentDidMount () {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIAdminAccountsFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [{\r\n key: \"\",\r\n text: \"Refresh\",\r\n iconProps: {\r\n iconName: \"Refresh\",\r\n },\r\n onClick: () => { this.props.store.refresh() }\r\n }];\r\n this.props.store.addCloseMenu(items);\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n return(\r\n \r\n );\r\n }\r\n\r\n private _getColumns() : IColumn[] {\r\n const columns: IColumn[] = [\r\n {\r\n key: \"1\",\r\n name: \"Id\",\r\n fieldName: \"publicId\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Email\",\r\n fieldName: \"emailId\",\r\n minWidth: 200,\r\n maxWidth: 200,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.AccountDTO) => {\r\n return (\r\n this.props.store.gotoAccount(item)}>\r\n {item.emailId}\r\n \r\n )\r\n } \r\n }, \r\n {\r\n key: \"3\",\r\n name: \"Name\",\r\n fieldName: \"firstName\",\r\n minWidth: 200,\r\n maxWidth: 200,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.AccountDTO) => {\r\n return (\r\n
\r\n {item.firstName + \" \" + item.lastName}\r\n
\r\n )\r\n } \r\n }, \r\n {\r\n key: \"4\",\r\n name: \"Company\",\r\n fieldName: \"company\",\r\n minWidth: 200,\r\n maxWidth: 200,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true, \r\n onRender: (item: Server.AccountDTO) => {\r\n return (\r\n
\r\n {item.company.name}\r\n
\r\n )\r\n } } \r\n ];\r\n\r\n // this.props.store.gotoAssets(item)\r\n // sync these overriden properties from props\r\n columns.forEach((c: IColumn, i: number) => {\r\n const currColumn: IColumnProps = this.props.store.displayedColumns.filter((currCol: IColumnProps, idx: number) => {\r\n return c.key === currCol.key;\r\n })[0];\r\n \r\n c.isSorted = currColumn.isSorted;\r\n c.isSortedDescending = currColumn.isSortedDescending;\r\n // not setting onColumnClick as not all cols are clickable\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n detailList() {\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 render() {\r\n \r\n return (\r\n
\r\n { this._renderCommands() }\r\n\r\n
\r\n \r\n\r\n { this.detailList() }\r\n
\r\n
\r\n );\r\n }\r\n} ","import * as React from 'react';\r\nimport {Checkbox} from '@fluentui/react/lib/Checkbox';\r\nimport { TextField } from '@fluentui/react/lib/TextField';\r\nimport { UIAccountFormStore } from '../stores/UIAccountFormStore';\r\nimport { observer } from 'mobx-react';\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { FormHeader } from './FormHeader';\r\nimport { ICommandBarItemProps, CommandBar, Icon, Stack, Text, DatePicker } from '@fluentui/react';\r\nimport { ValidationField } from '../web-store/ValidationField';\r\nimport { ValidationTextField } from './ValidationTextField';\r\nimport { ValidationCheckBox } from './ValidationCheckBox';\r\n\r\nclass AccountFormProps {\r\n store: UIAccountFormStore;\r\n}\r\n\r\n@observer\r\nexport class AccountForm extends React.Component {\r\n\r\n componentDidMount() {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIAccountFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [\r\n {\r\n key: \"\",\r\n text: \"Change Password\",\r\n iconProps: {\r\n iconName: \"Lock\",\r\n },\r\n onClick: this.props.store.changePassword\r\n },\r\n {\r\n key: \"\",\r\n text: \"Organization\",\r\n iconProps: {\r\n iconName: \"Org\",\r\n },\r\n onClick: this.props.store.gotoOrg\r\n } \r\n ];\r\n\r\n if (this.props.store.parentStore.rootStore.domainStore.AdminMode === true) {\r\n // replace password with save in admin mode.\r\n // admins should not change user's password\r\n items.splice(0, 1, {\r\n key: \"\",\r\n text: \"Save\",\r\n iconProps: {\r\n iconName: \"Save\",\r\n },\r\n onClick: () => { this.props.store.saveAccount() }\r\n } \r\n );\r\n }\r\n\r\n this.props.store.addCloseMenu(items);\r\n\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n\r\n return(\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const account = this.props.store.baseObject as Server.AccountDTO;\r\n let stackStyles = {root: {width: \"80%\" }};\r\n const userMode = (this.props.store.parentStore.rootStore.domainStore.AdminMode === false);\r\n\r\n return (\r\n
\r\n { this._renderCommands() }\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 { (this.props.store.parentStore.rootStore.AdminMode === false) &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Your account information cannot be changed here. If \r\n you need to change it, please send us a message from\r\n the Contact link.\r\n \r\n \r\n\r\n \r\n \r\n }\r\n\r\n { (this.props.store.parentStore.rootStore.AdminMode === true) &&\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 { (this.props.store.parentStore.rootStore.AdminMode === true) &&\r\n \r\n \r\n \r\n } \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n createMarkup() {\r\n return {__html: '

kk

'};\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport {Checkbox} from '@fluentui/react/lib/Checkbox';\r\nimport { TextField } from '@fluentui/react/lib/TextField';\r\nimport { UIAccountFormStore } from '../stores/UIAccountFormStore';\r\nimport { observer } from 'mobx-react';\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { FormHeader } from './FormHeader';\r\nimport { ICommandBarItemProps, CommandBar } from '@fluentui/react';\r\nimport { UIOrganizationFormStore } from '../stores/UIOrganizationFormStore';\r\nimport { ValidationTextField } from './ValidationTextField';\r\n\r\nclass OrganizationFormProps {\r\n store: UIOrganizationFormStore;\r\n}\r\n\r\n@observer\r\nexport class OrganizationForm extends React.Component {\r\n\r\n componentDidMount() {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIOrganizationFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [\r\n {\r\n key: \"\",\r\n text: \"Save\",\r\n iconProps: {\r\n iconName: \"Save\",\r\n },\r\n onClick: () => { this.props.store.save() }\r\n } \r\n ];\r\n\r\n this.props.store.addCloseMenu(items);\r\n\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n\r\n return(\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const adminMode = this.props.store.parentStore.rootStore.domainStore.AdminMode;\r\n \r\n return (\r\n
\r\n { this._renderCommands() }\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
\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
\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","import { action} from 'mobx';\r\nimport {UIStore} from './UIStore'\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { UIEditFormStore } from './UIEditFormStore';\r\nimport { OrganizationForm } from '../components/OrganizationForm';\r\nimport { RequiredValidator, DataTypeValidator, DataType } from '../web-store/Validators';\r\n\r\nexport class UIOrganizationFormStore extends UIEditFormStore {\r\n private updateCompany: (company: Server.Company) => void;\r\n\r\n constructor(parent: UIStore) {\r\n super(parent);\r\n this.createValidationFields();\r\n }\r\n\r\n createValidationFields() {\r\n this.validationFields = [\r\n {\r\n fieldId: \"name\",\r\n propName: \"name\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"addressLine1\",\r\n propName: \"addressLine1\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"addressLine2\",\r\n propName: \"addressLine2\",\r\n errorMessage: \"\",\r\n validators: [\r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n }, \r\n {\r\n fieldId: \"addressLine3\",\r\n propName: \"addressLine3\",\r\n errorMessage: \"\",\r\n validators: [\r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"city\",\r\n propName: \"city\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 100, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"state\",\r\n propName: \"state\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 100, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"zip\",\r\n propName: \"zip\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 100, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"country\",\r\n propName: \"country\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 100, 0, 0, false)]\r\n } \r\n ]\r\n } \r\n \r\n @action\r\n showForm = async (company: Server.Company, updateCompany: (company: Server.Company) => void) => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n this.setBaseObject(company);\r\n this.updateCompany = updateCompany;\r\n this.parentStore.addForm(OrganizationForm.create(this));\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n }\r\n\r\n @action \r\n save = async (): Promise => {\r\n \r\n if (!this.validateForm()) return;\r\n const company: Server.Company = (this.baseObject as Server.Company);\r\n\r\n this.parentStore.uiTransition.show();\r\n\r\n try { \r\n let resp: Server.IdResponse = await this.parentStore.serverApi.updateEntity(\"companies\", company);\r\n this.parentStore.messageStore.showMessageFromResponse(resp);\r\n if (resp.statusCode === 200) {\r\n \r\n if (this.parentStore.rootStore.domainStore.AdminMode !== true) {\r\n this.parentStore.rootStore.domainStore.userAccount.company = {...this.baseObject};\r\n } else {\r\n if (this.updateCompany) {\r\n this.updateCompany({...this.baseObject});\r\n }\r\n }\r\n\r\n this.parentStore.removeForm();\r\n }\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error as Error);\r\n }\r\n finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n } \r\n}\r\n","import moment from 'moment';\r\nimport { AppInsight } from './ServerClasses';\r\nimport { ServerApi } from './ServerApi';\r\n\r\nexport interface IInsightData {\r\n startDate: Date;\r\n endDate: Date;\r\n insightType: string;\r\n data: any;\r\n // start() : void;\r\n // end(): void;\r\n update(api: ServerApi) : void;\r\n}\r\n\r\nexport class ServerInsight implements IInsightData {\r\n startDate: Date;\r\n endDate: Date;\r\n data: any;\r\n insightType: string;\r\n\r\n constructor(insightType: string) {\r\n this.startDate = moment.utc().toDate();\r\n this.endDate = moment.utc().toDate();\r\n this.insightType = insightType;\r\n }\r\n\r\n public update(api: ServerApi) {\r\n this.endDate = moment.utc().toDate();\r\n let appInsight: AppInsight = {\r\n id: 0,\r\n lastUpdated: new Date(),\r\n updatedBy: \"\",\r\n insightType: this.insightType,\r\n jData: this as IInsightData\r\n }\r\n\r\n api.updateInsight(appInsight);\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport { TextField, ITextFieldProps } from '@fluentui/react/lib/TextField';\r\nimport { isUndefined, isNullOrUndefined } from 'util';\r\nimport { Icon } from '@fluentui/react';\r\nimport { IValidationFieldProps } from '../web-store/ValidationFieldProps';\r\nimport { ValidationField } from '../web-store/ValidationField';\r\nimport { ServerApi } from '../web-store/ServerApi';\r\nimport { PasswordComplexityValidator } from '../web-store/Validators';\r\n\r\nexport interface IValidationPasswordFieldProps extends IValidationFieldProps, ITextFieldProps {\r\n ignoreComplexityRequirement?: boolean\r\n}\r\n\r\n@observer\r\nexport class ValidationPasswordField extends React.Component {\r\n \r\n constructor(props:IValidationPasswordFieldProps, context:any) {\r\n super(props, context);\r\n let vf: ValidationField = this.props.store.getValidationField(props);\r\n if (props.ignoreComplexityRequirement === true) return;\r\n if (!isNullOrUndefined(vf)) {\r\n if (!isNullOrUndefined(vf.validators)) {\r\n vf.validators.push(new PasswordComplexityValidator(this.props.store.parentStore.rootStore.MinPasswordLength, \r\n this.props.store.parentStore.rootStore.MinPasswordScore));\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const props: IValidationFieldProps = this.props as IValidationFieldProps;\r\n let vf: ValidationField = this.props.store.getValidationField(props);\r\n\r\n const onchanged = vf ? (event: React.FormEvent, v?: string) => \r\n { \r\n this.props.store.validateField(vf, v); \r\n if (!isUndefined(vf.errorMessage)) {\r\n if (this.props.onChange) this.props.onChange(event, v);\r\n }\r\n } \r\n : this.props.onChange;\r\n\r\n let errorMessage: string = null;\r\n let valid: boolean = false;\r\n if (vf) {\r\n if (!isUndefined(vf.errorMessage)) {\r\n errorMessage = vf.errorMessage;\r\n }\r\n if (!isNullOrUndefined(vf.validators)) {\r\n valid = vf.validators.findIndex(x => x.valid !== true) < 0;\r\n }\r\n }\r\n\r\n const value: string = isUndefined(this.props.value) ? (vf ? (this.props.store.getFormValue(vf) as string) : \"\") : this.props.value;\r\n\r\n return(\r\n \r\n )\r\n }\r\n}\r\n\r\n\r\n// 2020-03-08 16:22:08 : was: \r\n// return(\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 { TextField } from '@fluentui/react/lib/TextField';\r\nimport { observer } from 'mobx-react';\r\nimport { FormHeader } from './FormHeader';\r\nimport { ICommandBarItemProps, CommandBar } from '@fluentui/react';\r\nimport { UIChangePasswordStore, ChangePasswordData } from '../stores/UIChangePasswordStore';\r\nimport { ValidationPasswordField } from './ValidationPasswordField';\r\n\r\nclass ChangePasswordFormProps {\r\n store: UIChangePasswordStore;\r\n}\r\n\r\n@observer\r\nexport class ChangePasswordForm extends React.Component {\r\n\r\n componentDidMount() {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIChangePasswordStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [\r\n {\r\n key: \"\",\r\n text: \"Change\",\r\n iconProps: {\r\n iconName: \"Save\",\r\n },\r\n onClick: () => { this.props.store.changePassword() }\r\n } \r\n ];\r\n this.props.store.addCloseMenu(items);\r\n\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n\r\n return(\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const changePasswordData = this.props.store.baseObject as ChangePasswordData;\r\n \r\n return (\r\n
\r\n { this._renderCommands() }\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
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import {observable, action} from 'mobx';\r\nimport { UIEditFormStore } from './UIEditFormStore';\r\nimport { UIStore } from './UIStore';\r\nimport { RequiredValidator } from '../web-store/Validators';\r\n//import { ServerInsight } from '../web-store/ServerInsight';\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { ServerInsight } from '../web-store/ServerInsight';\r\nimport { ChangePasswordForm } from '../components/ChangePasswordForm';\r\n\r\nexport interface ChangePasswordData {\r\n userid: string;\r\n oldPassword: string;\r\n newPassword1: string;\r\n newPassword2: string;\r\n}\r\n\r\nexport class UIChangePasswordStore extends UIEditFormStore {\r\n @observable showResetMessage: boolean;\r\n\r\n constructor(parent: UIStore) {\r\n super(parent);\r\n let data: ChangePasswordData = {\r\n userid: this.parentStore.rootStore.domainStore.UserId,\r\n newPassword1: \"\",\r\n newPassword2: \"\",\r\n oldPassword: \"\",\r\n }\r\n this.setBaseObject(data);\r\n this.createValidationFields();\r\n this.showResetMessage = false;\r\n }\r\n\r\n createValidationFields() {\r\n this.validationFields = [\r\n {\r\n fieldId: \"oldPassword\",\r\n propName: \"oldPassword\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n ]\r\n },\r\n {\r\n fieldId: \"newPassword1\",\r\n propName: \"newPassword1\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n ]\r\n },\r\n {\r\n fieldId: \"newPassword2\",\r\n propName: \"newPassword2\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n ]\r\n }\r\n ]\r\n }\r\n \r\n private _resetData() {\r\n const data: ChangePasswordData = this.getTypedObject();\r\n data.newPassword1 = \"\";\r\n data.newPassword2 = \"\";\r\n data.oldPassword = \"\";\r\n }\r\n\r\n @action\r\n showForm = async () => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n this.parentStore.addForm(ChangePasswordForm.create(this));\r\n } catch (error) {\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n\r\n @action\r\n hideResetMessage = (): void => {\r\n this.showResetMessage = false;\r\n }\r\n \r\n changePassword = async () : Promise => {\r\n let data: ChangePasswordData = this.baseObject as ChangePasswordData;\r\n try {\r\n if (!this.validateForm()) \r\n return;\r\n\r\n if (data.newPassword1 !== data.newPassword2) {\r\n this.parentStore.messageStore.showMessage(true, \"Passwords don't match.\");\r\n return;\r\n }\r\n\r\n this.parentStore.uiTransition.show();\r\n\r\n let ai: ServerInsight = new ServerInsight(\"appChangePwd\");\r\n ai.data = {\r\n \"userId\": this.parentStore.rootStore.domainStore.UserId,\r\n }\r\n ai.update(this.parentStore.serverApi);\r\n\r\n let request: Server.ChangePasswordRequest = {\r\n emailId: this.parentStore.rootStore.domainStore.UserId,\r\n newPassword: data.newPassword1,\r\n oldPassword: data.oldPassword\r\n }\r\n\r\n let resp: Server.GenericResponse = await this.parentStore.serverApi.changePassword(request);\r\n this.parentStore.messageStore.showMessageFromResponse(resp);\r\n if (resp.statusCode === 200) {\r\n this.parentStore.messageStore.showInfoMessage(\"Your password has been changed.\");\r\n this._resetData();\r\n } \r\n \r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error as Error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n }\r\n}\r\n","import { action} from 'mobx';\r\nimport {UIStore} from './UIStore'\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { UIEditFormStore } from './UIEditFormStore';\r\nimport { AccountForm } from '../components/AccountForm';\r\nimport { UIOrganizationFormStore } from './UIOrganizationFormStore';\r\nimport { UIChangePasswordStore } from './UIChangePasswordStore';\r\nimport { RequiredValidator, DataTypeValidator, DataType } from '../web-store/Validators';\r\nimport moment, { isDate } from 'moment';\r\nimport { isNullOrUndefined } from '../web-store/WebStoreUtil';\r\n// import { AccountForm } from '../components/AccountForm';\r\n\r\nexport class UIAccountFormStore extends UIEditFormStore {\r\n \r\n constructor(parent: UIStore) {\r\n super(parent);\r\n this.createValidationFields();\r\n }\r\n\r\n @action\r\n showForm = async (publicId: string) => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordFromFromApi(\"accounts\", (account, reponse) => { \r\n if (reponse.statusCode === 200) {\r\n if (this.parentStore.rootStore.domainStore.AdminMode !== true) {\r\n this.parentStore.rootStore.domainStore.userAccount.company = account.company;\r\n }\r\n\r\n // JSON date is not a real date. DatePicket throws a fit\r\n // with toDateString() is not valid\r\n account.expires = moment(account.expires).toDate();\r\n\r\n // set base object after date reset\r\n this.setBaseObject(account);\r\n\r\n this.parentStore.addForm(AccountForm.create(this));\r\n }\r\n }, [\"id=\" + publicId]);\r\n \r\n } catch (error) {\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n\r\n createValidationFields() {\r\n this.validationFields = [ \r\n {\r\n fieldId: \"emailId\",\r\n propName: \"emailId\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n }, \r\n {\r\n fieldId: \"firstName\",\r\n propName: \"firstName\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n }, \r\n {\r\n fieldId: \"lastName\",\r\n propName: \"lastName\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n }, \r\n {\r\n fieldId: \"enabled\",\r\n propName: \"enabled\",\r\n errorMessage: \"\",\r\n validators: []\r\n },\r\n {\r\n fieldId: \"approved\",\r\n propName: \"approved\",\r\n errorMessage: \"\",\r\n validators: []\r\n },\r\n {\r\n fieldId: \"companyAdmin\",\r\n propName: \"companyAdmin\",\r\n errorMessage: \"\",\r\n validators: []\r\n }\r\n ]\r\n } \r\n\r\n gotoOrg = async() => {\r\n let acccount: Server.AccountDTO = this.getTypedObject();\r\n new UIOrganizationFormStore(this.parentStore).showForm(acccount.company, this.updateCompany);\r\n }\r\n\r\n changePassword = (): void => {\r\n new UIChangePasswordStore(this.parentStore).showForm();\r\n }\r\n\r\n @action\r\n selectExpiryDate = (date: Date | null | undefined) => {\r\n let acccount: Server.AccountDTO = this.getTypedObject();\r\n\r\n if (isNullOrUndefined(date)) {\r\n return;\r\n }\r\n acccount.expires = date;\r\n }\r\n\r\n updateCompany = (company: Server.Company) => {\r\n let acccount: Server.AccountDTO = this.getTypedObject();\r\n acccount.company = {...company};\r\n }\r\n\r\n saveAccount = async() => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n let acccount: Server.AccountDTO = this.getTypedObject();\r\n \r\n let response: Server.IdResponse = await this.parentStore.serverApi.postData\r\n (\"accounts\", acccount, \"PUT\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return;\r\n }\r\n\r\n this.cancel(); \r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide(); \r\n } \r\n }\r\n}\r\n","import {UIStore} from './UIStore'\r\nimport { SearchFormStore, IColumnProps } from './UISearchFormStore';\r\nimport { Selection } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { AccountDTO } from '../web-store/ServerClasses';\r\nimport { AdminAccountsSearchForm } from '../components/AdminAccountsSearchForm';\r\nimport { UIAccountFormStore } from './UIAccountFormStore';\r\n\r\nexport class UIAdminAccountsFormStore extends SearchFormStore {\r\n selection: Selection;\r\n readonly isTrial: boolean;\r\n\r\n constructor(parent: UIStore) {\r\n super(parent, \"firstName\");\r\n this.setBaseObject({ notUsed: 1});\r\n this.selection = new Selection();\r\n }\r\n\r\n async showForm() {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordsFromApi(\"accounts\", (records, response) => { \r\n if (records) {\r\n this.parentStore.addForm(AdminAccountsSearchForm.create(this));\r\n }\r\n });\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n }\r\n \r\n setColumns(): IColumnProps[] {\r\n const columns: IColumnProps[] = [\r\n {\r\n key: \"1\",\r\n name: \"Id\",\r\n fieldName: \"publicId\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Email\",\r\n fieldName: \"emailId\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n }, \r\n {\r\n key: \"3\",\r\n name: \"name\",\r\n fieldName: \"firstName\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n }, \r\n {\r\n key: \"4\",\r\n name: \"company\",\r\n fieldName: \"lastName\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n } \r\n ];\r\n\r\n return columns;\r\n }\r\n\r\n protected getFilterRecordValue(r: AccountDTO): string {\r\n return r.firstName + r.lastName;\r\n }\r\n\r\n refresh = async () => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordsFromApi(\"accounts\", null);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n } \r\n }\r\n\r\n gotoAccount = async(account: AccountDTO) => {\r\n new UIAccountFormStore(this.parentStore).showForm(account.publicId);\r\n }\r\n}","import * as React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { DetailsList, DetailsListLayoutMode, SelectionMode, IColumn, ConstrainMode } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { TextField } from \"office-ui-fabric-react/lib/TextField\";\r\nimport * as Server from \"../web-store/ServerClasses\"\r\nimport { FormHeader } from \"./FormHeader\";\r\nimport { IColumnProps } from \"../stores/UISearchFormStore\";\r\nimport { ICommandBarItemProps, CommandBar, Link, Icon } from \"office-ui-fabric-react\";\r\nimport { UIAdminSignupsFormStore } from \"../stores/UIAdminSignupsFormStore\";\r\nimport moment from \"moment\";\r\n\r\nclass AdminSingupsSearchFormProps {\r\n store: UIAdminSignupsFormStore;\r\n}\r\n\r\n@observer\r\nexport class AdminSignupsSearchForm extends React.Component {\r\n\r\n componentDidMount () {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIAdminSignupsFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [{\r\n key: \"\",\r\n text: \"Refresh\",\r\n iconProps: {\r\n iconName: \"Refresh\",\r\n },\r\n onClick: () => { this.props.store.refresh() }\r\n }];\r\n this.props.store.addCloseMenu(items);\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n return(\r\n \r\n );\r\n }\r\n\r\n private _getColumns() : IColumn[] {\r\n const columns: IColumn[] = [\r\n {\r\n key: \"1\",\r\n name: \"Id\",\r\n fieldName: \"id\",\r\n minWidth: 60,\r\n maxWidth: 60,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"number\",\r\n isPadded: true,\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Approved\",\r\n fieldName: \"approved\",\r\n minWidth: 60,\r\n maxWidth: 60,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n data: \"image\",\r\n isPadded: true,\r\n onRender: (item: Server.Signup) => {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n } \r\n }, \r\n {\r\n key: \"3\",\r\n name: \"Email\",\r\n fieldName: \"emailId\",\r\n minWidth: 200,\r\n maxWidth: 200,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.Signup) => {\r\n return (\r\n this.props.store.gotoSignup(item)}>\r\n {item.emailId}\r\n \r\n )\r\n } \r\n }, \r\n {\r\n key: \"4\",\r\n name: \"Name\",\r\n fieldName: \"firstName\",\r\n minWidth: 200,\r\n maxWidth: 200,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true,\r\n onRender: (item: Server.Signup) => {\r\n return (\r\n
\r\n {item.firstName + \" \" + item.lastName}\r\n
\r\n )\r\n } \r\n }, \r\n {\r\n key: \"5\",\r\n name: \"Company\",\r\n fieldName: \"companyName\",\r\n minWidth: 200,\r\n maxWidth: 200,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true \r\n },\r\n {\r\n key: \"6\",\r\n name: \"IP Address\",\r\n fieldName: \"ipAddress\",\r\n minWidth: 100,\r\n maxWidth: 100,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true \r\n },\r\n {\r\n key: \"7\",\r\n name: \"Signup Date\",\r\n fieldName: \"signupDAte\",\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"date\",\r\n isPadded: true,\r\n onRender: (item: Server.Signup) => {\r\n return (\r\n
\r\n {moment(item.signupDate).format(\"YYYY-MM-DD\")}\r\n
\r\n )\r\n } \r\n },\r\n {\r\n key: \"8\",\r\n name: \"Approval Date\",\r\n fieldName: \"approvalDate\",\r\n minWidth: 100,\r\n maxWidth: 100,\r\n isRowHeader: true,\r\n isResizable: false,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n onColumnClick: this.props.store.onColumnClick,\r\n data: \"string\",\r\n isPadded: true, \r\n onRender: (item: Server.Signup) => {\r\n return (\r\n
\r\n {moment.isDate(item.approvalDate) ? moment(item.approvalDate).format(\"YYYY-MM-DD\") : \"\"}\r\n
\r\n )\r\n } \r\n } \r\n ];\r\n\r\n // this.props.store.gotoAssets(item)\r\n // sync these overriden properties from props\r\n columns.forEach((c: IColumn, i: number) => {\r\n const currColumn: IColumnProps = this.props.store.displayedColumns.filter((currCol: IColumnProps, idx: number) => {\r\n return c.key === currCol.key;\r\n })[0];\r\n \r\n c.isSorted = currColumn.isSorted;\r\n c.isSortedDescending = currColumn.isSortedDescending;\r\n // not setting onColumnClick as not all cols are clickable\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n detailList() {\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 render() {\r\n \r\n return (\r\n
\r\n { this._renderCommands() }\r\n\r\n
\r\n \r\n\r\n { this.detailList() }\r\n
\r\n
\r\n );\r\n }\r\n} ","import * as React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { FormHeader } from './FormHeader';\r\nimport { ICommandBarItemProps, CommandBar, Stack, Link, Text } from '@fluentui/react';\r\nimport { ValidationTextField } from './ValidationTextField';\r\nimport { UIAdminSignupFormStore } from '../stores/UIAdminSignupFormStore';\r\nimport moment from 'moment';\r\n\r\nclass AdminSingupFormProps {\r\n store: UIAdminSignupFormStore;\r\n}\r\n\r\n@observer\r\nexport class AdminSignupForm extends React.Component {\r\n\r\n componentDidMount() {\r\n this.props.store.parentStore.uiTransition.hide();\r\n }\r\n\r\n static create(store: UIAdminSignupFormStore) {\r\n return ;\r\n }\r\n\r\n _renderCommands() {\r\n let items: ICommandBarItemProps[] = [];\r\n let signup: Server.Signup = this.props.store.getTypedObject();\r\n\r\n if (signup.approved !== true) {\r\n items.push({\r\n key: \"\",\r\n text: \"Approve\",\r\n iconProps: {\r\n iconName: \"Unlock\",\r\n },\r\n onClick: () => { this.props.store.confirmApproveSignup() }\r\n })\r\n }\r\n\r\n this.props.store.addCloseMenu(items);\r\n\r\n this.props.store.parentStore.setCommandBarItemsKeys(items);\r\n\r\n return(\r\n \r\n );\r\n }\r\n\r\n render() {\r\n let signup: Server.Signup = this.props.store.getTypedObject();\r\n let stackStyles = {root: {width: \"80%\" }};\r\n\r\n return (\r\n
\r\n { this._renderCommands() }\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 Email Confirmed: {signup.emailConfirmed === true ? \"Yes\" : \"No\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Approved: {signup.approved === true ? \"Yes\" : \"No\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Signup Date: {moment( signup.signupDate).format(\"YYYY-MM-DD HH:mm:ss\") + \" UTC\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Signup IP Address: \r\n \r\n \r\n \r\n \r\n {signup.ipAddress}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Email Confirm Date: {moment( signup.emailConfirmDate).format(\"YYYY-MM-DD HH:mm:ss\") + \" UTC\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Email Confirm IP Address: \r\n \r\n \r\n \r\n \r\n {signup.ipAddress}\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 \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 \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import { action} from 'mobx';\r\nimport {UIStore} from './UIStore'\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { UIEditFormStore } from './UIEditFormStore';\r\nimport { RequiredValidator, DataTypeValidator, DataType } from '../web-store/Validators';\r\nimport { AdminSignupForm } from '../components/AdminSignupForm';\r\nimport { DialogMode, DialogResult } from './UIConfirmDialogStore';\r\n\r\nexport class UIAdminSignupFormStore extends UIEditFormStore {\r\n \r\n constructor(parent: UIStore) {\r\n super(parent);\r\n this.createValidationFields();\r\n }\r\n\r\n @action\r\n showForm = async (id: number) => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordFromFromApi(\"signups\", (signup, reponse) => { \r\n if (reponse.statusCode === 200) {\r\n this.parentStore.addForm(AdminSignupForm.create(this));\r\n }\r\n }, [\"id=\" + id.toString()]);\r\n\r\n } catch (error) {\r\n this.parentStore.uiTransition.hide(); \r\n }\r\n }\r\n\r\n createValidationFields() {\r\n this.validationFields = [ \r\n {\r\n fieldId: \"emailId\",\r\n propName: \"emailId\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n }, \r\n {\r\n fieldId: \"firstName\",\r\n propName: \"firstName\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n }, \r\n {\r\n fieldId: \"lastName\",\r\n propName: \"lastName\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"signupDate\",\r\n propName: \"signupDate\",\r\n errorMessage: \"\",\r\n //dataType: DataType.Date,\r\n validators: []\r\n },\r\n {\r\n fieldId: \"companyName\",\r\n propName: \"companyName\",\r\n errorMessage: \"\",\r\n validators: []\r\n },\r\n {\r\n fieldId: \"addressLine1\",\r\n propName: \"addressLine1\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"addressLine2\",\r\n propName: \"addressLine2\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)] \r\n },\r\n {\r\n fieldId: \"addressLine3\",\r\n propName: \"addressLine3\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"city\",\r\n propName: \"city\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"state\",\r\n propName: \"state\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"zip\",\r\n propName: \"zip\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n },\r\n {\r\n fieldId: \"country\",\r\n propName: \"country\",\r\n errorMessage: \"\",\r\n validators: [\r\n new RequiredValidator(), \r\n new DataTypeValidator(DataType.String, 200, 0, 0, false)]\r\n }\r\n ]\r\n } \r\n\r\n confirmApproveSignup = async() => {\r\n let signup: Server.Signup = this.getTypedObject();\r\n if (signup.approved === true) {\r\n this.parentStore.messageStore.showErrorMessage(\"This signup is already approved.\");\r\n return;\r\n }\r\n\r\n this.parentStore.confirmDialogStore.callback = (context, result) => { if (result === DialogResult.Yes) this.approveSignup(); }\r\n this.parentStore.confirmDialogStore.dialogMode = DialogMode.OKCancel;\r\n this.parentStore.confirmDialogStore.showDialog(\"Confirm\", \"Are you sure you want to approve this signup?\");\r\n }\r\n\r\n approveSignup = async() => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n let signup: Server.Signup = this.getTypedObject();\r\n let idDto: Server.IdDTO = {\r\n id: signup.id\r\n }\r\n \r\n let response: Server.GenericResponse = await this.parentStore.serverApi.postData\r\n (\"signupapprove\", idDto, \"POST\");\r\n if (response.statusCode !== 200) {\r\n this.parentStore.messageStore.showMessageFromResponse(response);\r\n return;\r\n }\r\n\r\n this.cancel();\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide(); \r\n } \r\n } \r\n}\r\n","import {UIStore} from './UIStore'\r\nimport { SearchFormStore, IColumnProps } from './UISearchFormStore';\r\nimport { Selection } from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { Signup } from '../web-store/ServerClasses';\r\nimport { UIAccountFormStore } from './UIAccountFormStore';\r\nimport { AdminSignupsSearchForm } from '../components/AdminSignupsSearchForm';\r\nimport { UIAdminSignupFormStore } from './UIAdminSignupFormStore';\r\n\r\nexport class UIAdminSignupsFormStore extends SearchFormStore {\r\n selection: Selection;\r\n readonly isTrial: boolean;\r\n\r\n constructor(parent: UIStore) {\r\n super(parent, \"firstName\");\r\n this.setBaseObject({ notUsed: 1});\r\n this.selection = new Selection();\r\n }\r\n\r\n async showForm() {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordsFromApi(\"signups\", (records, response) => { \r\n if (records) {\r\n this.parentStore.addForm(AdminSignupsSearchForm.create(this));\r\n }\r\n });\r\n } catch (error) {\r\n this.parentStore.messageStore.showErrorFromException(error);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n }\r\n }\r\n \r\n setColumns(): IColumnProps[] {\r\n const columns: IColumnProps[] = [\r\n {\r\n key: \"1\",\r\n name: \"Id\",\r\n fieldName: \"id\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n },\r\n {\r\n key: \"2\",\r\n name: \"Approved\",\r\n fieldName: \"approved\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n },\r\n {\r\n key: \"3\",\r\n name: \"Email\",\r\n fieldName: \"emailId\",\r\n isSortedDescending: false,\r\n isSorted: true\r\n }, \r\n {\r\n key: \"4\",\r\n name: \"First Name\",\r\n fieldName: \"firstName\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n }, \r\n {\r\n key: \"5\",\r\n name: \"Last Name\",\r\n fieldName: \"firstName\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n }, \r\n {\r\n key: \"6\",\r\n name: \"Company\",\r\n fieldName: \"companyName\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n }, \r\n {\r\n key: \"7\",\r\n name: \"IP\",\r\n fieldName: \"ipAddress\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n }, \r\n {\r\n key: \"8\",\r\n name: \"Signup Date\",\r\n fieldName: \"signupDate\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n }, \r\n {\r\n key: \"9\",\r\n name: \"Approval Date\",\r\n fieldName: \"approvalDate\",\r\n isSortedDescending: false,\r\n isSorted: false\r\n } \r\n ];\r\n\r\n return columns;\r\n }\r\n\r\n protected getFilterRecordValue(r: Signup): string {\r\n return r.firstName + r.lastName;\r\n }\r\n\r\n refresh = async () => {\r\n this.parentStore.uiTransition.show();\r\n try {\r\n await this.getRecordsFromApi(\"signups\", null);\r\n } finally {\r\n this.parentStore.uiTransition.hide();\r\n } \r\n }\r\n\r\n gotoSignup = async(signup: Signup) => {\r\n new UIAdminSignupFormStore(this.parentStore).showForm(signup.id);\r\n }\r\n}","import {observable, action} from 'mobx';\r\nimport { UIStore } from './UIStore';\r\nimport { INavLink } from '@fluentui/react';\r\nimport { allowStateReadsStart } from 'mobx/lib/internal';\r\nimport { UIProductsFormStore } from './UIProductsFormStore';\r\nimport { UISubscriptionsFormStore } from './UISubscriptionsFormStore';\r\nimport { UIContactFormStore } from './UIContactFormStore';\r\nimport { UIOrdersFormStore } from './UIOrdersFormStore';\r\nimport { UIAdminAccountsFormStore } from './UIAdminAccountsFormStore';\r\nimport { UIAdminSignupsFormStore } from './UIAdminSignupsFormStore';\r\n\r\nexport class UISidebarStore {\r\n uiStore: UIStore;\r\n @observable adminMenus: INavLink[];\r\n @observable userMenus: INavLink[];\r\n @observable opened: boolean;\r\n\r\n constructor(uiStore: UIStore) {\r\n this.uiStore = uiStore;\r\n this.opened = true;\r\n }\r\n\r\n initMenus() {\r\n this.adminMenus = [\r\n {\r\n key: \"signups\",\r\n name: \"Sign Ups\",\r\n url: \"\",\r\n icon: \"PageHeaderEdit\",\r\n onClick: this._gotoSignups\r\n },\r\n {\r\n key: \"accounts\",\r\n name: \"Accounts\",\r\n url: \"\",\r\n icon: \"AccountBrowser\",\r\n onClick: this._gotoAccounts\r\n },\r\n {\r\n key: \"products\",\r\n name: \"Products\",\r\n url: \"\",\r\n icon: \"Product\",\r\n onClick: this._gotoProducts,\r\n },\r\n {\r\n key: \"purchases\",\r\n name: \"Purchases\",\r\n url: \"\",\r\n icon: \"StoreLogoMed20\",\r\n onClick: this._gotoPurchases\r\n },\r\n {\r\n key: \"trials\",\r\n name: \"Trials\",\r\n url: \"\",\r\n icon: \"TestStep\",\r\n onClick: this._gotoTrials\r\n },\r\n {\r\n key: \"orders\",\r\n name: \"Orders\",\r\n url: \"\",\r\n icon: \"ClipboardList\",\r\n onClick: this._gotoOrders\r\n },\r\n {\r\n key: \"contact\",\r\n name: \"Contact\",\r\n url: \"\",\r\n icon: \"Mail\",\r\n onClick: this._gotoContact\r\n },\r\n {\r\n key: \"faq\",\r\n name: \"FAQ\",\r\n url: \"\",\r\n icon: \"StatusCircleQuestionMark\",\r\n onClick: this._gotoFaq\r\n } \r\n ]\r\n\r\n this.userMenus = [\r\n {\r\n key: \"subscriptions\",\r\n name: \"Subscriptions\",\r\n url: \"\",\r\n icon: \"StoreLogoMed20\",\r\n onClick: this._gotoPurchases\r\n },\r\n {\r\n key: \"trials\",\r\n name: \"Trials\",\r\n url: \"\",\r\n icon: \"TestStep\",\r\n onClick: this._gotoTrials\r\n },\r\n {\r\n key: \"orders\",\r\n name: \"Orders\",\r\n url: \"\",\r\n icon: \"ClipboardList\",\r\n onClick: this._gotoOrders\r\n },\r\n {\r\n key: \"contact\",\r\n name: \"Contact\",\r\n url: \"\",\r\n icon: \"Mail\",\r\n onClick: this._gotoContact\r\n },\r\n {\r\n key: \"faq\",\r\n name: \"FAQ\",\r\n url: \"https://support.aellius.com/hc/en-us/sections/360011931473-Store-FAQ\",\r\n target: \"_blank\",\r\n icon: \"StatusCircleQuestionMark\",\r\n } \r\n ];\r\n \r\n if (this.uiStore.rootStore.AdminMode === false) {\r\n if (this.uiStore.rootStore.domainStore.userAccount.companyAdmin !== true) {\r\n this.userMenus = this.userMenus.splice(this.userMenus.findIndex(u => u.key == \"orders\"));\r\n }\r\n }\r\n }\r\n\r\n public _gotoProducts = (): void => {\r\n this.uiStore.messageStore.clear();\r\n new UIProductsFormStore(this.uiStore).showForm();\r\n // this.uiStore.confirmDialogStore.message = \"testing\";\r\n // this.uiStore.confirmDialogStore.showDialog();\r\n // this.uiStore.messageStore.showInfoMessage(\"testing\")\r\n }\r\n\r\n private _gotoPurchases = (): void => {\r\n this.uiStore.messageStore.clear();\r\n new UISubscriptionsFormStore(this.uiStore, false).showForm();\r\n }\r\n\r\n private _gotoTrials = (): void => {\r\n this.uiStore.messageStore.clear();\r\n new UISubscriptionsFormStore(this.uiStore, true).showForm();\r\n }\r\n \r\n private _gotoOrders = (): void => {\r\n this.uiStore.messageStore.clear();\r\n new UIOrdersFormStore(this.uiStore, false).showForm();\r\n }\r\n\r\n private _gotoSignups = (): void => {\r\n this.uiStore.messageStore.clear();\r\n new UIAdminSignupsFormStore(this.uiStore).showForm();\r\n }\r\n\r\n private _gotoAccounts = (): void => {\r\n this.uiStore.messageStore.clear();\r\n new UIAdminAccountsFormStore(this.uiStore).showForm();\r\n }\r\n\r\n private _gotoContact = (): void => {\r\n this.uiStore.messageStore.clear();\r\n new UIContactFormStore(this.uiStore).showForm();\r\n }\r\n\r\n private _gotoFaq = (): void => {\r\n this.uiStore.messageStore.clear();\r\n } \r\n}","import * as React from \"react\";\r\nimport { UIStore } from \"./UIStore\";\r\nimport { observable } from \"mobx\";\r\nimport { UIAccountFormStore } from \"./UIAccountFormStore\";\r\nimport { AccountForm } from \"../components/AccountForm\";\r\n\r\nexport class UIUserMenuStore {\r\n public uiStore: UIStore;\r\n @observable isContextMenuVisible: boolean;\r\n // @observable contextMenuTarget: any;\r\n\r\n constructor(parent: UIStore) {\r\n this.uiStore = parent;\r\n }\r\n\r\n gotoAccount = async(): Promise => {\r\n if (this.uiStore.rootStore.domainStore.AdminMode === true) {\r\n alert(\"This functionality has not yet been implemented.\");\r\n // new UIAccountFormStore(this.uiStore).showForm(this.uiStore.rootStore.domainStore.adminAccount.publicId);\r\n } else {\r\n new UIAccountFormStore(this.uiStore).showForm(this.uiStore.rootStore.domainStore.userAccount.publicId);\r\n }\r\n }\r\n\r\n signOut = async () : Promise => {\r\n this.uiStore.uiTransition.show();\r\n try {\r\n await this.uiStore.rootStore.domainStore.logoff();\r\n } finally {\r\n this.uiStore.uiTransition.hide();\r\n }\r\n }\r\n}","import { observable, action } from \"mobx\";\r\nimport { UIStore } from \"./UIStore\";\r\nimport { MessageBarType } from \"office-ui-fabric-react\";\r\nimport { String} from 'typescript-string-operations';\r\nimport { BaseResponse } from \"../web-store/ServerClasses\";\r\nimport { isNullOrUndefined } from \"../web-store/WebStoreUtil\";\r\n\r\nexport class UIMessageStore {\r\n private uiStore: UIStore;\r\n @observable show: boolean\r\n @observable message: string;\r\n @observable messageType: MessageBarType;\r\n\r\n constructor(uiStore: UIStore) {\r\n this.uiStore = uiStore;\r\n this.show = false;\r\n this.messageType = MessageBarType.info;\r\n }\r\n\r\n @action\r\n clear() {\r\n this.message = \"\";\r\n this.show = false;\r\n }\r\n\r\n @action\r\n showMessage = async (isError: boolean, format: string, ...args: any[]) => {\r\n this.message = (args && args.length > 0) ? String.Format(format, ...args): format;\r\n this.messageType = (isError === true ? MessageBarType.error : MessageBarType.error);\r\n this.show = true;\r\n }\r\n\r\n @action\r\n showMessageFromResponse = async (response: BaseResponse) => {\r\n if (isNullOrUndefined(response)) {\r\n this.showErrorMessage(\"No response was returned.\");\r\n } else {\r\n if (response.statusCode == 401) {\r\n this.showErrorMessage(response.message + \". Your session may have expired. Refresh the page to log back in.\" );\r\n } else if (response.statusCode !== 200) {\r\n this.showErrorMessage(response.message);\r\n }\r\n // else: no info messages for success responses\r\n }\r\n }\r\n\r\n\r\n @action\r\n showInfoMessage = async (format: string, ...args: any[]) => {\r\n this.message = (args && args.length > 0) ? String.Format(format, ...args): format;\r\n this.messageType = MessageBarType.info;\r\n this.show = true;\r\n }\r\n\r\n @action\r\n showErrorMessage = async (format: string, ...args: any[]) => {\r\n this.message = (args && args.length > 0) ? String.Format(format, ...args): format;\r\n this.messageType = MessageBarType.error;\r\n this.show = true;\r\n } \r\n\r\n @action\r\n showErrorFromException = async (error: any) => {\r\n console.error(error);\r\n let message: string = \"\";\r\n \r\n if (error instanceof Error) {\r\n message = ((error as Error).message);\r\n }\r\n else {\r\n message = error.toString();\r\n }\r\n\r\n this.message = message;\r\n this.messageType = MessageBarType.error;\r\n this.show = true;\r\n } \r\n}","import {action, observable} from 'mobx';\r\nimport { String } from 'typescript-string-operations';\r\nimport {UIStore, InitForm} from './UIStore'\r\nimport {UIEditFormStore} from './UIEditFormStore'\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { RequiredValidator, EmailValidator } from '../web-store/Validators';\r\nimport { ServerInsight } from '../web-store/ServerInsight';\r\nimport { isNullOrUndefined } from '../web-store/WebStoreUtil';\r\n\r\nexport interface WebStoreLogin {\r\n loginMessage: string; \r\n isError: boolean; \r\n userId: string;\r\n password: string;\r\n keepLoggedIn: boolean;\r\n isLoading: boolean;\r\n captcha: string;\r\n}\r\n\r\nexport class UILoginFormStore extends UIEditFormStore {\r\n ref: any;\r\n recaptchaSiteKey: string;\r\n \r\n constructor(parent: UIStore, loginData: WebStoreLogin) {\r\n super(parent)\r\n this.setBaseObject(loginData);\r\n this.createValidationFields();\r\n // storing this locally because login calls preloginInit, which\r\n // resets the sitekey to null and re-retrieves.\r\n this.recaptchaSiteKey = parent.rootStore.ClientConfig.recaptchaSiteKey;\r\n }\r\n\r\n createValidationFields() {\r\n this.validationFields = [\r\n {\r\n fieldId: \"userId\",\r\n propName: \"userId\",\r\n errorMessage: \"\",\r\n validators: [new EmailValidator()]\r\n },\r\n {\r\n fieldId: \"password\",\r\n propName: \"password\",\r\n errorMessage: \"\",\r\n validators: [new RequiredValidator()]\r\n },\r\n {\r\n fieldId: \"keepLoggedIn\",\r\n propName: \"keepLoggedIn\",\r\n errorMessage: \"\",\r\n }\r\n ]\r\n }\r\n\r\n @action\r\n setMessage = (message: string) => {\r\n (this.baseObject as WebStoreLogin).loginMessage = message;\r\n }\r\n\r\n \r\n @action\r\n resetCaptcha = (): void => {\r\n try {\r\n (this.baseObject as WebStoreLogin).captcha = \"\";\r\n if (this.ref != null) this.ref.execute();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n @action\r\n verifyCaptcha = (response: string): void => {\r\n (this.baseObject as WebStoreLogin).captcha = response;\r\n // console.log(response);\r\n }\r\n \r\n @action\r\n login = async () => {\r\n const webStoreLogin: WebStoreLogin = this.baseObject;\r\n webStoreLogin.loginMessage = \"\";\r\n webStoreLogin.isError = false;\r\n\r\n try {\r\n if (String.IsNullOrWhiteSpace(webStoreLogin.userId) || String.IsNullOrWhiteSpace(webStoreLogin.password)) {\r\n webStoreLogin.isError = true;\r\n webStoreLogin.loginMessage = \"User Id and/or password are invalid.\";\r\n return;\r\n }\r\n\r\n webStoreLogin.isLoading = true;\r\n\r\n await this.parentStore.rootStore.preLoginInit();\r\n\r\n webStoreLogin.isError = false; \r\n let bi = this.parentStore.rootStore.BrowserInfo;\r\n let serverApi = this.parentStore.serverApi;\r\n\r\n let request: Server.LoginRequest = {\r\n emailId: webStoreLogin.userId,\r\n password: webStoreLogin.password,\r\n asAdmin: this.parentStore.rootStore.AdminMode,\r\n deviceName: bi.name,\r\n deviceOS: bi.os,\r\n deviceVersion: bi.version,\r\n hostInfo: \"Not Used\",\r\n captcha: webStoreLogin.captcha,\r\n brc: this.parentStore.rootStore.ClientConfig.disableRecaptcha ? \"tuktuk\" : \"\"\r\n };\r\n \r\n let loginResponse: Server.LoginResponse = await serverApi.login(request);\r\n if (loginResponse.statusCode === 403) {\r\n webStoreLogin.isError = true;\r\n webStoreLogin.loginMessage = \"User id and/or password are invalid.\";\r\n return;\r\n } else if (loginResponse.statusCode == 206) {\r\n webStoreLogin.isError = true;\r\n webStoreLogin.loginMessage = \"Your password has expired. Reset your password using the Forgot Password link to log back in.\";\r\n return;\r\n } else if (loginResponse.statusCode !== 200) {\r\n webStoreLogin.isError = true;\r\n webStoreLogin.loginMessage = \"An error occurred in logging into this app. The most likely cause is reCAPTCHA. Try refreshing the page. If you get this message after refreshing the page, please send us a message form our contact page at our web site (https://www.aellius.com/contact)\";\r\n return;\r\n }\r\n\r\n webStoreLogin.isError = false;\r\n webStoreLogin.loginMessage = \"\";\r\n\r\n this.parentStore.rootStore.localStore.UserInfo = {\r\n asAdmin: (loginResponse.admin === null ? false : true),\r\n keepLoggedIn: true,\r\n token: loginResponse.token,\r\n usha: loginResponse.usha,\r\n userId: webStoreLogin.userId,\r\n userName: (loginResponse.admin === null ? loginResponse.account.firstName : loginResponse.admin.name)\r\n }\r\n\r\n this.parentStore.rootStore.domainStore.setLoginStatus(loginResponse);\r\n this.parentStore.rootStore.removegCaptchaBadge();\r\n \r\n } catch (err) {\r\n console.error(err);\r\n webStoreLogin.isError = true;\r\n webStoreLogin.loginMessage = \"An error occurred in logging into this app.\";\r\n }\r\n finally {\r\n webStoreLogin.isLoading = false;\r\n this.resetCaptcha();\r\n }\r\n } \r\n\r\n @action\r\n navigateToForgotPassword = (): void => {\r\n let loginData: WebStoreLogin = this.baseObject;\r\n\r\n this.parentStore.initForm = InitForm.forgotPassword\r\n loginData.isError = false;\r\n loginData.loginMessage = \"\";\r\n }\r\n\r\n @action\r\n navigateToSignup = (): void => {\r\n let loginData: WebStoreLogin = this.baseObject;\r\n\r\n this.parentStore.initForm = InitForm.signUp;\r\n loginData.isError = false;\r\n loginData.loginMessage = \"\";\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { UIStore } from '../stores/UIStore';\r\nimport { ISpinnerStyleProps, ISpinnerStyles } from '@fluentui/react/lib/Spinner';\r\nimport { FontSizes } from '@uifabric/fluent-theme';\r\n\r\nexport class CenterContainerForm extends React.Component {\r\n\r\n static boxStyle(uiStore: UIStore) : React.CSSProperties {\r\n const signInBoxStyle: React.CSSProperties = {\r\n maxWidth: 320,\r\n minWidth:295,\r\n padding: 10,\r\n border: \"2px solid \" + uiStore.linkColor\r\n };\r\n \r\n return signInBoxStyle;\r\n }\r\n\r\n static cellStyle() : React.CSSProperties {\r\n const signInCellStyle: React.CSSProperties = {\r\n padding: 10,\r\n }; \r\n\r\n return signInCellStyle;\r\n }\r\n\r\n static getSpinnerStyles = (props: ISpinnerStyleProps): ISpinnerStyles => {\r\n const { theme } = props;\r\n const { palette } = theme;\r\n\r\n return {\r\n label: [\r\n {\r\n fontSize: FontSizes.size16\r\n },\r\n {\r\n color: palette.themePrimary,\r\n marginTop: 25,\r\n textAlign: 'center',\r\n\r\n }\r\n ],\r\n };\r\n }; \r\n\r\n render() {\r\n return(\r\n
\r\n {this.props.children}\r\n
\r\n )\r\n }\r\n}","import * as React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react/lib/Button';\r\nimport { observer } from 'mobx-react';\r\nimport { Link } from '@fluentui/react/lib/Link';\r\nimport { Text } from '@fluentui/react/lib/Text';\r\nimport { WebStoreLogin, UILoginFormStore } from '../stores/UILoginFormStore';\r\nimport { CenterContainerForm } from './CenterContainerForm';\r\nimport { ValidationTextField } from './ValidationTextField';\r\nimport { ValidationCheckBox } from './ValidationCheckBox';\r\nimport { Spinner, SpinnerSize } from '@fluentui/react/lib/Spinner';\r\nimport { ReCaptcha } from 'react-recaptcha-v3';\r\nimport { FontSizes } from '@fluentui/react';\r\nimport { SharedColors } from '@uifabric/fluent-theme'\r\n\r\ninterface LoginFormProps {\r\n store: UILoginFormStore;\r\n}\r\n\r\n@observer\r\nexport class LoginForm extends React.Component {\r\n\r\n constructor(props: LoginFormProps) {\r\n super(props);\r\n this.props.store.ref = React.createRef();\r\n }\r\n\r\n public render() {\r\n const signInBoxStyle = CenterContainerForm.boxStyle(this.props.store.parentStore);\r\n const signInCellStyle = CenterContainerForm.cellStyle(); \r\n\r\n const loginData: WebStoreLogin = this.props.store.baseObject;\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 Sign into Aellius Store\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n { if (event.charCode === 13) { this.props.store.login()} } } \r\n /> \r\n
\r\n \r\n {/*\r\n removed this. keepLoggedIn is set to true always.\r\n
\r\n \r\n
*/}\r\n \r\n
\r\n \r\n By signing in, I agree to the \r\n \r\n \r\n Terms and Conditions\r\n \r\n
\r\n\r\n
\r\n this.props.store.ref = ref}\r\n /> \r\n\r\n {e.preventDefault(); this.props.store.login()}}\r\n /> \r\n
\r\n\r\n { (this.props.store.parentStore.rootStore.AdminMode === false) &&\r\n <>\r\n
\r\n \r\n Don't have an account? Signup\r\n \r\n \r\n \r\n here\r\n \r\n \r\n \r\n for a free account\r\n \r\n
\r\n\r\n
\r\n \r\n Forgot my password\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 { loginData.loginMessage }\r\n \r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n","import {action, observable} from 'mobx';\r\nimport { String } from 'typescript-string-operations';\r\nimport {UIStore, InitForm} from './UIStore'\r\nimport {UIEditFormStore} from './UIEditFormStore'\r\nimport * as Server from '../web-store/ServerClasses'\r\nimport { RequiredValidator, EmailValidator } from '../web-store/Validators';\r\nimport { ServerInsight } from '../web-store/ServerInsight';\r\n\r\nexport interface ForgotPassword {\r\n message: string; \r\n isError: boolean; \r\n userId: string;\r\n isLoading: boolean;\r\n captcha: string;\r\n}\r\n\r\nexport class UIForgotPasswordFormStore extends UIEditFormStore {\r\n ref: any;\r\n\r\n constructor(parent: UIStore, forgotData: ForgotPassword) {\r\n super(parent)\r\n this.setBaseObject(forgotData);\r\n this.createValidationFields();\r\n }\r\n\r\n createValidationFields() {\r\n this.validationFields = [\r\n {\r\n fieldId: \"userId\",\r\n propName: \"userId\",\r\n errorMessage: \"\",\r\n validators: [new EmailValidator()]\r\n }\r\n ]\r\n }\r\n\r\n @action\r\n resetCaptcha = (): void => {\r\n try {\r\n (this.baseObject as ForgotPassword).captcha = \"\";\r\n if (this.ref != null) this.ref.execute();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n @action\r\n verifyCaptcha = (response: string): void => {\r\n (this.baseObject as ForgotPassword).captcha = response;\r\n }\r\n\r\n @action\r\n navigateToLogin = (): void => {\r\n this.parentStore.initForm = InitForm.signIn;\r\n }\r\n\r\n @action\r\n forgotPassword = async () : Promise => {\r\n let data: ForgotPassword = (this.baseObject as ForgotPassword);\r\n data.message = \"\";\r\n data.isError = false;\r\n let serverApi = this.parentStore.serverApi;\r\n try {\r\n if (!this.validateForm()) \r\n return;\r\n \r\n if (this.parentStore.rootStore.ClientConfig.disableRecaptcha === false) {\r\n if (String.IsNullOrWhiteSpace(data.captcha)) {\r\n data.isError = true;\r\n data.message = \"Unable to verify that this is not a bot.\";\r\n return;\r\n }\r\n } \r\n\r\n data.isLoading = true;\r\n data.isError = false;\r\n\r\n let ai: ServerInsight = new ServerInsight(\"appForgotPwd\");\r\n ai.data = {\r\n \"userId\": data.userId,\r\n }\r\n ai.update(serverApi);\r\n\r\n let request: Server.ForgotPasswordRequest = {\r\n brc: (this.parentStore.rootStore.ClientConfig.disableRecaptcha === true) ? \"tuktuk\" : \"none\",\r\n captcha: data.captcha,\r\n emailId: data.userId,\r\n isAdmin: false\r\n }\r\n\r\n let resp: Server.GenericResponse = await serverApi.forgotPassword(request);\r\n // if (resp.statusCode !== 200) {\r\n // data.message = \"Your request could not processed at this time.\";\r\n // data.isError = true;\r\n // return;\r\n // }\r\n // display message as is \"if you have an account ...\"\r\n data.message = resp.message;\r\n data.userId = \"\";\r\n } catch (error) {\r\n data.message = (error as Error).message;\r\n } finally {\r\n data.isLoading = false;\r\n this.resetCaptcha();\r\n }\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { PrimaryButton } from '@fluentui/react/lib/Button';\r\nimport { observer } from 'mobx-react';\r\nimport { Link } from '@fluentui/react/lib/Link';\r\nimport { Text } from '@fluentui/react/lib/Text';\r\nimport { CenterContainerForm } from './CenterContainerForm';\r\nimport { ValidationTextField } from './ValidationTextField';\r\nimport { Spinner, SpinnerSize } from '@fluentui/react/lib/Spinner';\r\nimport {ReCaptcha} from 'react-recaptcha-v3'\r\nimport { UIForgotPasswordFormStore, ForgotPassword } from '../stores/UIForgotPasswordFormStore';\r\n\r\ninterface ForgotPasswordFormProps {\r\n store: UIForgotPasswordFormStore;\r\n}\r\n\r\n@observer\r\nexport class ForgotPasswordForm extends React.Component {\r\n\r\n constructor(props: ForgotPasswordFormProps) {\r\n super(props);\r\n this.props.store.ref = React.createRef();\r\n }\r\n\r\n public render() {\r\n const signInBoxStyle = CenterContainerForm.boxStyle(this.props.store.parentStore);\r\n const signInCellStyle = CenterContainerForm.cellStyle(); \r\n\r\n const forgotPasswordData: ForgotPassword = this.props.store.baseObject;\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 Aellius Store - Forgot My Password \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n If you forgot your user id, please contact us by clicking the link below.\r\n \r\n
\r\n
\r\n \r\n Contact Us\r\n \r\n
\r\n
\r\n\r\n
\r\n this.props.store.ref = ref}\r\n /> \r\n
\r\n\r\n
\r\n {e.preventDefault(); this.props.store.forgotPassword() }}\r\n /> \r\n
\r\n\r\n
\r\n \r\n Back to Sign In\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n { forgotPasswordData.message }\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 { observer } from \"mobx-react\"\r\nimport { Modal } from '@fluentui/react';\r\nimport { UITransitionStore } from '../stores/UITransitionStore';\r\nimport { Spinner, SpinnerSize, mergeStyleSets } from '@fluentui/react';\r\n\r\nexport interface UITransitionProps {\r\n store: UITransitionStore;\r\n}\r\n\r\n@observer\r\nexport class UITransition extends React.Component { \r\n \r\n public render() {\r\n\r\n // 2020-01-14 15:57:26 : need to override min height. otherwise it is\r\n // set to 176 by default fabric. for ui transition, 50 is enough as\r\n // inner div is set to 50\r\n const contentStyles = mergeStyleSets({\r\n container: {\r\n minHeight: 50,\r\n color: this.props.store.parentStore.theme.semanticColors.bodyText\r\n }\r\n });\r\n\r\n return (\r\n {this.props.store.hide();} }\r\n >\r\n
{ if (e.shiftKey) this.props.store.hide(); } }\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.props.store.message}\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}","import * as React from 'react';\r\nimport { Dialog, DialogType, DialogFooter } from '@fluentui/react/lib/Dialog';\r\nimport { PrimaryButton, DefaultButton } from '@fluentui/react/lib/Button';\r\nimport { observer } from \"mobx-react\"\r\nimport { UIConfirmDialogStore, DialogMode, DialogResult } from '../stores/UIConfirmDialogStore';\r\n\r\nexport interface ConfirmDialogProps {\r\n store: UIConfirmDialogStore;\r\n}\r\n\r\n@observer\r\nexport class ConfirmDialog extends React.Component {\r\n\r\n public render() {\r\n\r\n const buttons = () => {\r\n switch(this.props.store.dialogMode){\r\n case DialogMode.OK:\r\n return (\r\n \r\n { this.props.store.dismissDialog(DialogResult.Yes) } } text='OK' />\r\n \r\n );\r\n\r\n case DialogMode.OKCancel:\r\n return (\r\n \r\n { this.props.store.dismissDialog(DialogResult.Yes) } } text='OK' />\r\n { this.props.store.dismissDialog(DialogResult.Cancel) } } text='Cancel' />\r\n \r\n );\r\n\r\n case DialogMode.YesNo:\r\n return (\r\n \r\n { this.props.store.dismissDialog(DialogResult.Yes) } } text='Yes' />\r\n { this.props.store.dismissDialog(DialogResult.Cancel) } } text='No' />\r\n \r\n );\r\n\r\n case DialogMode.YesNoCancel:\r\n return (\r\n \r\n { this.props.store.dismissDialog(DialogResult.Yes) } } text='Yes' />\r\n { this.props.store.dismissDialog(DialogResult.No) } } text='No' />\r\n { this.props.store.dismissDialog(DialogResult.Cancel) } } text='Cancel' />\r\n \r\n );\r\n\r\n }\r\n return null;\r\n }\r\n\r\n return (\r\n