{"version":3,"sources":["util/EntityValidators.js","components/DateEditField.js","util/Dates.js","components/CsvFileViewer.js","util/File.js","components/PercentageEditField.js","components/WorkItemSelector.js","components/Staffing/AssignmentStatusEditField.js","components/CheckBoxEditField.js","components/CKEditorInput.js","components/Spinner.js","components/PanelModal.js","util/Common.js","app/Routes.js","entities/actionTypes.js","entities/actions/fetching.js","app/API.js","app/Authenticator.js","entities/actions/error.js","entities/actions/account.js","entities/actions/translation.js","util/LocalStorageManager.js","entities/entityTypes.js","entities/actions/entities.js","entities/Entity.js","entities/actions/files.js","entities/EntityManager.js","entities/actions/domain.js","entities/reducers/terms.js","entities/reducers/release.js","entities/reducers/index.js","entities/reducers/error.js","entities/reducers/account.js","entities/reducers/translation.js","entities/reducers/domain.js","entities/reducers/domainState.js","entities/reducers/files.js","entities/reducers/fetching.js","entities/reducers/projections.js","entities/reducers/audit.js","entities/reducers/notifications.js","util/ColorManager.js","components/UserIcon.js","components/Header.js","components/PageTitle.js","components/CardStats.js","pages/DashboardCount.js","pages/Home.js","pages/NoOrderUsers.js","pages/UserNoOrder.js","pages/CompletedOrders.js","pages/UserCompletedOrders.js","pages/TotalInCompleteOrders.js","pages/UserInCompleteOrders.js","pages/FutureEvents.js","components/EntityTables/NoTableData.js","components/EntityTables/EntityImporter.js","components/EntityTables/EntityTableTools.js","components/ActiveEditField.js","components/PopoutEditField.js","components/Staffing/AssignmentLabelEditField.js","components/ColumnMapper.js","components/EntityTables/EntityColumnConfig.js","components/EntityTables/EntityTable.js","util/utils.js","components/PhoneEditor.js","pages/Companies.js","pages/EventGroups.js","pages/EventTypes.js","assets/CollectionsCampaign.svg","pages/Locations.js","pages/Intervals.js","components/Widgets/PopeUpUpdate.js","pages/CompaignTypes.js","assets/analytics.svg","pages/Compaigns.js","pages/Statistics.js","pages/Events.js","pages/Users.js","assets/logo.svg","components/BookingWizard/ConfirmMaziCode.js","components/BookingWizard/CustomerDetails.js","components/BookingWizard/DateSelection.js","components/CalendarView.js","components/AppointmentOptions.js","components/BookingWizard/TimeSelection.js","pages/Sales.js","assets/scrollToTop.svg","components/CalendarDayDetails.js","components/BookingWizard/LocationCalendar.js","components/BookingWizard/EventDetails.js","assets/search.svg","components/BookingWizard/LocationDetails.js","components/BookingWizard/PaymentDetails.js","pages/Booking.js","components/UserSessions.js","components/Appointments.js","components/Prepaids.js","components/PrintOrdersDetails.js","components/PrintOrders.js","pages/UserDetails.js","components/FetchIndicator.js","components/ErrorIndicator.js","components/TemporaryStatusMessage.js","pages/CompanyConfig.js","components/Widgets/SmartImage.js","pages/OrderFullfillment.js","components/MessageBox.js","pages/Presets.js","components/LabBilling.js","pages/Export.js","pages/Calendar.js","components/CalendarDay.js","components/Calendar.js","components/TimeSlot.js","pages/UserScheduler.js","pages/RescheduleAppointment.js","pages/RescheduleAppointmentBooking.js","pages/CompleteOrder.js","pages/Downloads.js","pages/EventPackages.js","pages/Products.js","app/App.js","pages/GroupUsers.js","components/ContactSupportButton.js","components/ErrorBlock.js","components/LoginBlock.js","components/MetaInfo.js","components/SignUp.js","assets/companySignup.svg","components/LoginSelector.js","components/PreLoginError.js","serviceWorker.js","index.js","util/CSV.js"],"names":["Validators","oneRequired","values","oneHasValue","_","each","value","default","required","isEmpty","toString","trim","requiredNumber","isUndefined","isNull","number","vparsed","parseFloat","isNaN","isNumber","numberOnly","test","positiveNumber","positiveIntegerAsPercentage","context","mode","numericValue","Number","Math","floor","isInteger","percentage","email","phone","noColon","indexOf","noWhitespace","match","alphaOnly","domainName","tenant","toLowerCase","Name","length50","length","length100","length200","tenantName","exec","Validate","validators","row","firstError","some","valFunc","DateEditField","Component","constructor","props","super","this","state","selected","Dates","fromISO","getValue","date","invalid","toISO","replace","render","self","_jsx","DatePicker","innerRef","isValid","toJS","onChange","fromDate","setState","onUpdate","className","timeInputLabel","hideTime","showTimeSelect","dateFormat","concat","DateTime","Settings","require","localOffset","Date","getTimezoneOffset","isoCache","arbCache","arbCacheDayJs","DATETIME_MED","DATETIME_LONG","month","day","year","hour","minute","literal","DATE_SHORT","DATE_SHORT_FULL_YEAR","SLOT_FORMAT","DATE_PREF","MONTH_YEAR","MONTH_SHORT","MONTH_YEAR_SHORT","epicBegin","utc","startOf","epicEnd","epicDayRange","epicMonthRange","epicYearRange","usableBegin","fromMillis","usableEnd","visualizableBegin","local","plus","years","visualizableEnd","endOf","now","str","zone","arguments","undefined","fromStr","format","formatStr","key","fromFormat","jsDate","fromJSDate","fromMs","ms","fromObject","obj","toMonthYearStr","dt","toLocaleString","toMonthYearStrShort","toMonthStrShort","toDateShort","toDateString","toDateTime","toFormat","toGroupedStr","grouping","g","quarter","isValidDateStr","e","isoToDateTime","hours","convertDateStringWithT","dateString","datePart","timePart","split","parseInt","_getArrayOfDatesInternal","unit","begin","end","output","counter","push","getArrayOfDays","beginIndex","diff","days","endIndex","ceil","dates","slice","getArrayOfMonths","isNewStyle","getArrayOfYears","currentMonthPlusYears","today","getMonthRangeFromMonthYearStrs","months","doRangesOverlap","a","b","c","d","doMonthRangesOverlap","range1","range2","CsvFileViewer","_ref","data","errors","statuses","cellFormatter","limitTo","hideLimitWarning","errMsgGroups","indexBy","item","index","limit","limitedData","_jsxs","children","map","items","rowIndex","colIndex","msgs","title","EM","t","File","read","ctrl","reader","FileReader","Promise","resolve","reject","onload","fileContents","result","onerror","event","Error","fileSizeLimitSetting","getTenantOption","sizeLimit","sizeLimitInMb","toFixed","files","size","readAsText","save","filename","mime","saver","saveAs","Blob","type","readCSV","async","allowBlankFiles","csvContents","CSV","fromString","readCsvOrXml","conversionFunc","saveHtmlAsExcelTable","html","console","log","PercentageEditField","dv","defaultPercentage","defaultValue","newValue","target","onBlur","blur","WorkItemSelector","tasks","currentValue","componentDidMount","schedules","loadDefaultItem","then","defaultSchedule","loadFile","ScheduleId","getFile","getFilterValues","find","name","wi","label","addTaskList","getSetting","task","cv","Creatable","classNamePrefix","isSearchable","isClearable","isMulti","options","placeholder","formatCreateLabel","input","ref","AssignmentStatusEditField","didMount","select","focus","attr","cs","node","CheckBoxEditField","groupName","getGroupName","hidden","wrapperRef","React","createRef","handleClickOutside","bind","onChangeOption","sticky","document","addEventListener","componentWillUnmount","removeEventListener","current","contains","random","checked","filter","Form","option","FormGroup","Label","Input","CKEditorInput","CKEditor","editor","getData","editorUrl","config","on","instanceReady","setData","style","marginLeft","Spinner","text","classes","id","PanelModal","Modal","fade","isOpen","toggle","onClose","currentTheme","prototype","finally","fn","onFinally","reason","String","capitalize","toUpperCase","decapitalize","toIdToken","Array","sortAlphaNumeric","reA","reN","sort","aA","bA","aN","bN","groupBy","criteria","reduce","hasOwnProperty","mapFiltered","transform","memo","itemIndex","mixin","nest","list","_len","iteratees","_key","filteredNest","filterFunction","_len2","_key2","groups","forEach","cGroup","iteratee","ii","client","home","futureEvents","noOrderUsers","userNoOrdersUsers","totalCompletedOrders","userCompletedOrders","incompleteOrders","userIncompleteOrders","companies","eventGroups","products","companyConfig","locations","compaign","sendGridStats","intervals","groupUser","eventPackages","events","calendar","users","userDetails","userSchdeuler","rescheduleAppointment","rescheduleAppointmentBooking","printOrders","presets","export","booking","completeOrder","downloads","notFound","help","manual","domain","visualizations","demand","dataExplorer","scenarioViewer","scenarios","staffing","staffingEmployee","staffingWorkItem","dashboard","demandReport","staffingReport","management","activities","allocations","complexities","organizations","departments","roles","attributes","algorithms","headcounts","actuals","employees","assignments","settings","generalSettings","advancedSettings","security","referenceTables","pipelinesOld","pipelines","pipelineViewer","sales","clientApi","login","forgetPassword","company","companySignup","dashboardCount","futureEventsDetails","noOrdersUsers","user","account","byId","domainEntity","exportwithEventsList","eventTypes","eventTypeCreate","compaignCUD","compaignTypeCUD","compaignType","childEntity","singleEvent","updateEventBooking","updateEvent","search","groupUsers","eventPromotion","eventUsers","assignGroupUsers","unassignGroupUsers","eventgroups","eventgroupsAssignUsers","eventgroupsCreate","updateUser","userScheduler","calenderMonth","calenderTab","calendarday","userSessions","userSessionImage","appointments","orderRequeue","prepaids","presetsUpload","translation","locationDates","locationSlots","locationSlotsV2","blocktimeslots","deletetimeslots","blocktimeslotsMultiple","eventOrder","resetUser","changeDefaultCompany","assignCompanies","product","companyProduct","addUpdateProduct","shareSession","unlockSession","textSession","sendApp","saveNotes","downloadAppointment","patchAppointment","appointmentsByLocation","openOrders","completedOrders","activateAppointment","userSearch","appointmentPresale","domainEntityImport","domainEntityFile","domainEntityClear","projections","auditEntity","notify","proxy","admin","tenants","domains","adminApi","adminEntity","adminEntityImport","switchTenant","uptimeReport","compose","url","params","qs","process","Object","keys","join","parseQuery","queryString","query","pairs","window","location","i","pair","decodeURIComponent","baseUrl","GLOBAL_ERROR","LOCAL_ERROR","CLEAR_LOCAL_ERROR","LOAD_ACCOUNT","SET_DOMAIN","CLEAR_DOMAIN","LOAD_TRANSLATION","START_FETCH","END_FETCH","REMOVE_FETCH","CLEAR_FILES","AUDIT_ENTITY_ITEM","LOAD_TERMS","LOAD_RELEASE","translate","itemName","startFetch","types","endFetch","setTimeout","dispatch","displayAs","removeFetchItem","API","authenticator","instance","loginMode","baseApiAddress","sendGridbaseApiAddress","Authenticator","abortController","resetSignal","abortPendingFetches","abort","AbortController","signal","password","Routes","loginFetch","method","body","JSON","stringify","Username","Password","IsAssociate","register","registerCompany","createUser","forgetPasword","loadTranslation","Lang","build","fetchStaticJson","loadHelp","CID","IsMetaData","IsMeta","fetch","updateHelp","Content","loadAccount","loadEntityByParent","Entity","isSilent","parentDetail","getUrl","loadSingleEntity","routeParams","searchEntity","searchUrl","loadDomainEntity","auditDomainEntity","DomainId","EntityId","createDomainEntity","Item","createUrl","parentRecordDetail","execute","requestUrl","updateDomainEntity","editUrl","deleteDomainEntity","ids","deleteUrl","importDomainEntity","Items","modsOnly","MODSONLY","clearDomainEntity","loadDomainEntityFile","Id","fetchFile","updateDomainEntityFile","Data","uploadDomainFile","uploadUrl","regenerateProjections","loadAdminEntity","tenantId","entity","entityId","TenantId","createAdminEntity","newItem","deleteAdminEntity","updateAdminEntity","importAdminEntity","newTenantId","auditUsers","auditLogins","newUserObj","generateUserToken","userId","UserId","dateStr","messageDetails","loadViaProxy","urlToProxy","defaultOptions","cache","headers","newOptions","assign","responseText","json","responseObj","status","catch","ex","campaignId","start_date","fetchingActions","token","allowAnonymous","acquireToken","message","Authorization","TypeError","fetchStaticText","loginStyle","clientId","cacheLocation","storeAuthStateInCookie","system","loggerOptions","currentAccount","localStorage","getItem","parse","switchAccount","logout","api","credentials","loginResponse","loginFailure","username","emailAddress","prefUsername","firstName","lastName","setItem","removeItem","clear","href","isAuthenticated","sessionStorage","tokenFailure","error","getUsername","globalError","localError","eid","clearLocalError","getState","errorActions","loadTranslationSuccess","lng","LocalStorageManager","store","localNamespace","set","toSave","get","remove","idField","apiName","singleName","uniqueness","assignUserUrl","getSingleUrl","searchUrlV2","requeueUrl","executeDispatch","entityName","getDispatchAction","setError","entityTypeDef","allowDuplicates","modelName","modelNameSingular","single","isFileListingTable","fileType","fileTypeClass","optionList","valueList","idList","keyList","resetCachedLists","load","force","entityActions","parentDetails","create","created","createBulk","newItems","domainId","delete","deleted","update","oldItem","updated","import","imported","audit","itemId","clearAll","debugMode","makeFileName","fileActions","saveFile","upload","newFile","invalidateFile","findDefaultItem","isLoaded","asOptionList","labelField","sortByLbl","valueField","lbl","sortBy","asIndexed","asKeyed","makeKeyFromItem","asValueList","objKey","findItem","findByKey","hasDuplicates","dupes","Active","warn","findDuplicates","currentSet","defaultItem","IsDefault","lookupValue","fld","found","lookupId","exact","columns","isOverridden","executePost","executePut","executeGet","executeDelete","EntityManager","_isInitialized","storage","fallbackLanguage","fallbackTheme","currentLanguage","helpCache","languageList","themeList","_debugMode","helpMode","history","domainPermission","tenantPermission","domainColor","statusMessageRef","featureCache","dpCache","hostname","registerLogging","unregisterLogging","roleNames","SuperAdmin","Owner","Admin","Sales","Photographer","origin","initialize","fallback","action","accountDispatchedResponse","accountActions","me","entityTypes","et","entityType","setActiveDomain","domainActions","documentElement","setProperty","color","isDomainAdmin","getActiveDomain","clearActiveDomain","clearDpCache","allLoaded","args","every","allEntitiesLoaded","loaded","loadEntities","allEntities","promiseSet","all","errorIn","getTime","errorOut","errorCode","Message","hideErrors","setDomainPermission","Domains","Permission","PermissionLookupId","setTenantPermission","User","Permissions","isTenantAdmin","isDomainEditor","isDomainSubscriber","hasAnyDomainAdmin","isMyEntity","entityObject","CreatedBy","hasAcceptedTerms","termsUpdatedDate","terms","dateUpdated","userTermsAcceptedDate","TermsAccepted","termsUpdatedTicks","setAcceptedTerms","toISOString","opts","tOverride","property","selectorFunc","strOutput","supplant","r","time","timeEnd","logState","logProcess","triggerWindowResize","delay","dispatchEvent","Event","eName","overrideSetting","settingRecord","settingValue","Value","tenantOptions","Tenant","Options","getConfig","configType","configurations","ConfigurationTypeLookupId","loadScript","uri","tag","createElement","src","firstScriptTag","getElementsByTagName","parentNode","insertBefore","getUserNotifications","notificationsArr","reduxStore","userNotificationAcknowledgedDate","NotificationsAcknowledged","releaseNotesUpdatedDate","release","payload","notifications","removeNotification","notification","updateUserNotificationsAcknowledged","setHistory","navCount","listen","clearCrossPage","crossPage","setTheme","theme","pc","getElementById","toggles","getElementsByClassName","call","elem","classList","add","getVariables","variables","attributeTypeLookup","attribute","AttributeTypeLookupId","aType","uniq","isDomainDirty","domainState","markDomainDirty","markDomainClean","getStatusMessageRef","setStatusMessage","timeout","setMessage","clearStatusMessage","clearMessage","isProd","isDev","hasFeature","feature","Features","dn","denyFeature","clearProjectionsCache","projStore","IdbKv","clearDataExplorerCache","fromDpCache","func","clearDpCacheItem","redirectTo","getDefaultCompany","findWhere","userCompanies","defaultCompany","getUserRole","roleId","isSuperAdmin","role","isOwner","isAdmin","isSales","isPhotographer","intialState","reducerSet","omit","fetching","without","x","generateEntityReducer","combineReducers","ACTNAME","ColorManager","currentIndex","COLORS","reset","next","isAlt","isAlt2","tinycolor","at","darken","newIndex","userColors","UserIcon","altUser","initials","accumulator","colorObj","getBrightness","backgroundColor","alt","Email","Header","closeMenus","pathname","click","getCompanyId","companyId","changeCompany","reload","_ref5","_this$props$account","_this$props$account2","matchPath","Navbar","dark","expand","NavLink","to","onClick","NavbarToggler","Collapse","navbar","DisplayName","Nav","NavItem","isActive","_ref2","_ref3","_ref4","UncontrolledDropdown","nav","inNavbar","DropdownToggle","caret","DropdownMenu","right","companyName","PageTitle","classNames","bar","icon","img","collapsible","collapsed","CardStats","navigate","Card","maxHeight","height","CardHeader","CardBody","cursor","DashboardCount","getColorForValue","totalCompanies","totalEvents","totalEventDays","pastEventCounts","futureEventCounts","totalOrders","inCompleteCartUsers","completeCartUsers","totalUsers","totalActiveUsers","totalInActiveUsers","nonSignUpUsers","Home","alpha","order","pageTitle","zIndex","NoOrderUsers","_data2","errMsg","_data","goBack","paddingTop","locationId","locationName","noOrderUsersCount","colSpan","UserNoOrder","userNoOrderUsers","_data$noOrderUsers","_data2$noOrderUsers","phoneNumber","address","city","zip","CompletedOrders","userCartCount","UserCompletedOrder","_data3","TotalInCompleteOrders","UserInCompleteOrders","FutureEvents","border","free810Promotion","freeImagePromotion","force810Promotion","forceImagePromotion","textAlign","timeSlotsCounts","timeSlot","counts","NoTableData","EntityImporter","currentDataSet","canImport","importItems","updatedItemRows","parsingFile","onImport","parseFile","entityTitle","clearState","formattedItems","onBeforeImport","withErrors","importLimitSetting","importLimit","results","generateDataSetFromCsv","columnDefs","columnDefinitionsTextIndex","columnMessages","displayName","col","dataField","validationMessages","validationResult","getValidationContext","newCsvContents","valueIn","columnDef","fromEntity","allowNulls","fromList","asActive","asPercentage","asPermission","permId","permissionLookup","asUser","object","existingItem","ModalHeader","ModalBody","for","CustomInput","accept","fileName","innerText","FormText","Alert","lr","ModalFooter","Button","disabled","EntityCreator","lazy","SearchBar","ClearSearchButton","Search","ExportCSVButton","CSVExport","EntityTableTools","importModalOpen","createModalOpen","componentWillReceiveProps","nextProps","customTools","tool","restrictedOperations","hideAddRecord","hideDelete","onDelete","hideImportExport","hideImport","csvProps","showingFilters","hasOutputPipeline","UncontrolledButtonDropdown","positionFixed","DropdownItem","onPipelineExport","hideAudit","onAudit","hideClearAll","onClear","shouldShowFilters","onToggleFilters","onClearFilters","hideSearch","searchProps","shouldShowColumnToggle","showingColumnToggle","onToggleColumnToggle","Suspense","customOverRide","onCreate","ActiveEditField","PopoutEditField","AssignmentLabelEditField","labelList","labelSetting","registerFilter","columnIndex","newDef","formatter","Type","SELECT","optionLabelField","omitEntitySort","el","sortValue","csvFormatter","cell","filterValue","selectFilter","getFilter","userText","asUserIcon","editable","permission","asCheckbox","editorRenderer","editorProps","column","asWorkItem","asDate","toJSDate","dateFilter","withoutEmptyComparatorOption","comparators","Comparator","EQ","GT","LT","asDateTime","asFeature","onStartEdit","jsonObj","tmp","feat","asOptions","_Fragment","asReferenceTable","headerClasses","csvExport","asAssignmentStatus","asAssignmentLabel","isReference","isDummyField","isDateReference","toMillis","asFunctions","asMeta","creatable","isMeta","unhideable","width","validator","valResult","valid","filterOptions","dynamicEntity","numberFilter","textFilter","bool","characterLimit","maxLength","EntityColumnConfig","onColumnToggle","columnToggleProps","EntityTable","selectedRows","currentPage","auditId","filterRegistry","clearFilters","filterOpt","comparator","mapColumns","ColumnMapper","neverShowId","unshift","suppressMeta","forceMeta","metaCols","apply","confirm","cancel","onAfterDelete","alert","isChildDomain","ParentDomainId","permissions","highlighted","rowClasses","setRowClasses","newRowClasses","showColumnToggle","addAlertClass","ToolkitProvider","keyField","hideInTable","columnToggle","exportCSV","exportAll","onlyExportFiltered","searchFormatted","hideToolbar","pageIcon","onCreateClose","confirmationText","prompt","onExport","showingExtraTools","hideFilters","subtitle","PaginationProvider","pagination","paginationFactory","sizePerPage","page","onPageChange","showTotal","hideTotals","hideSizePerPage","hidePageListOnlyOnePage","paginationTotalRenderer","from","paginationProps","paginationTableProps","PaginationTotalStandalone","BootstrapTable","remote","cellEdit","noDataIndication","expandRow","filterFactory","defaultSort","cellEditFactory","blurToSave","beforeSaveCell","oldValueIn","newValueIn","done","oldValue","beforeUpdate","selectRow","hideSelectColumn","onSelect","isSelect","onSelectAll","rows","onTableChange","newState","baseProps","disableAudit","phoneNumberString","PhoneEditor","getCtrlRef","ctrlRefs","updateData","rest","formattedValue","utils","mask","InputMask","Companies","pageLoad","asPhone","onKeyDown","addColumnNames","columnNames","rowData","columnName","EventGroups","handleAssignUsersFile","file","fileUploaded","csvString","parseCSV","updateCreateModel","uploadEventGroup","hiddenFileInput","openUpload","assignUsersToGroup","createNewGroup","reloadEventGroups","toUsers","eventGroupId","usersList","request","eventGroupName","eventId","Papa","header","complete","parsedData","dataWithHeaders","getcsvData","inputs","response","uploadAssignedUsers","helperContent","rel","asFile","display","EventTypes","toEventPackages","eventTypeId","toUpdate","newRow","res","chooseControls","element","renderer","expandable","class","showExpandColumn","onExpand","isExpand","expandHeaderColumnRenderer","isAnyExpands","expandColumnRenderer","expanded","Locations","handleSelect","tabKey","eventTypesEntity","isGESKUS","eventCategory","printinglabId","printing","toRedirect","toward","splice","Tabs","activeKey","Tab","eventKey","Intervals","durationOptions","getDurationOption","bookingCountOptions","getBookingCountOption","daysOptions","getDaysOptions","getLocation","getTitle","initialState","loading","popUpError","route","PopeUpUpdate","onTextChange","ShowError","setConfig","validate","updateEntity","closeSelf","close","conf","autoFocus","CompaignTypes","compaignTypeEntity","isEditOpen","eventLocation","openEdit","popUpRef","messageType","asEmail","Compaigns","timezoneOptions","timezones","timezone","_row$startDate","eventName","campaignName","marketingCompaignId","startDate","deal","substring","analytics","field","proceed","record","endDate","marketingComaignTypeId","Statistics","selectedDate","componentDidUpdate","prevProps","prevState","calculateTotals","statsData","totals","bounce_drops","bounces","clicks","delivered","invalid_emails","opens","processed","requests","spam_report_drops","spam_reports","unique_clicks","unique_opens","stats","metrics","newData","metricsObject","marginRight","Events","locationOptions","getLocations","CopyToClipboard","isEqual","allLocations","Users","redirectTouserDetail","userTypeId","showAssignCompany","selectedUser","companiesOptions","selectedCompanies","dynamicLabel","userTypeChange","mapUsers","currentUserId","where","userTypes","phonenumber1","getDerivedStateFromProps","current_state","storeUsers","UserTypeId","isAssociate","getColumns","companyIds","_EM$getDefaultCompany","Select","isDisabled","maziOrganizationCode","ConfirmMaziCode","confirmMatch","resetState","prefix","CustomerDetails","handleDelete","childrenNames","handleAddition","handleInputBlur","handleDrag","currPos","newPos","newTags","handleDownload","open","firstName2","lastName2","isPopOpen","isPopOpen2","onlineRegistration","confirmAndDownload","onError","openPopUp","openPopUp2","closePopUp","handleValidCode","updateOnlineRegistration","isOpen2","onlineBooking","delimiters","jsxRender","mazibook","childrenArray","maskChar","ReactTags","tagInputField","tags","inputFieldPosition","autocomplete","step","prev","DateSelection","slotSelected","slot","disableEvent","availableDays","showZipSearch","slotsAvailable","CalendarView","Foward","Backward","GetDay","DayClick","ny","nx","rmvc","css","enabled","setMonth","getMonth","onCalendarChange","strdt","Day","Week","onDayClick","GetWeek","align","aptCount","AppointmentOptions","FirstNameChange","capt","LastNameChange","PhoneChange","BackupPhoneChange","backupNumber","AddressChange","address1","CityChange","StateChange","ZipChange","EMailChange","eMail","IDhange","TypeChange","m_bPleaseWait","m_bCanceled","m_bShowConfirm","m_strID","m_strType","m_strAddress","m_strErrorMessage","CancelChecking","CheckinView","patchCheckIn","checkedIn","appointmentId","appointmentID","propertyName","onCheckInChange","RenderRescheduleButton","_this$state$data$loca","_this$state$data$loca2","bookingPage","userID","companyID","RenderConfirmButton","confirmed","RenderSitting","sitting","RenderCancelButton","cancelled","canceled","reservedTime","blockShow","slotId","selectedSlotBlock","selectedSlotDelete","TimeSelection","timeSelected","pushSlots","isSelectedSlot","handleBlockUnblock","handleBlockButton","available","includes","prevItem","timeSlotId","foundInBlockSlot","foundInDeleteSlot","timeSlots","dateSelected","availableSlots","timeSlotIds","loadSlots","slots","mazibit","stateData","userFirstName","userLastName","userPhone","userEmail","locationAddress","locationobj","selectedDateSlot","selectedTimeSlot","isPaid","isCreated","paymentObj","selectedStep","visible","steps","contactInformation","timeDetails","incomplete","locationsDetails","dateDetails","paymentDetails","previous","Fragment","staticState","reInitialize","loadLocationDates","getSelectedSlot","emailValidator","schedule","req","backupPhoneNumber","notes","paid","salesId","createdBy","creationSourceId","slotDateTime","userInfoValidate","marginTop","CalendarDayDetails","handleScroll","showScrollButton","scrollY","scrollToTop","scrollTo","top","behavior","createAppointmentMode","Forward","notesChange","checkinChanged","createAppointmentToggle","reLoad","setDate","getDate","testButton","note","appointment","_this$props$btnsCol","_this$props","_this$props$btnsCol2","_this$props2","_this$props$btnsCol3","_this$props3","toLocaleDateString","createAppointmentButton","btnsCol","loc","_this$props$btnsCol4","_this$props4","displayTime","recheduleCSS","recheduleCount","cols","LocationCalendar","showCalendar","showDetails","dayDetails","locationChange","_this$props$company","EventDetails","_this$props$location","_this$props$location$","popeUpAction","openCalendar","description","fontWeight","LocationDetails","zipCode","locationSelected","searchIcon","distance","fullyBooked","PaymentDetails","Booking","isLoading","eventDetails","skip","skipLocationStep","stepAfterSkip","dateSelection","timeSelection","customerDetails","placeOrderIfRequired","currentStep","nextStep","skipPaymentStep","thankYou","placeOrder","hideAll","getNextStep","getEvent","bookByAdmin","getCompany","chargeAmount","getPrevStep","skipPrev","stepBeforeSkip","childrenName","location2","externalResponse","createuserExternal","maziAdult2FirstName","maziAdult2LastName","maziChildrenNames","sessionId","stripePublishableKey","loadStripe","stripe","redirectToCheckout","first_name","last_name","gender","organization_code","children_names","adult2_first_name","adult2_last_name","_this$state","_this$state$event","closeMessage","UserSessions","rootContainer","sessions","showView","showUnlock","showImages","price","userImages","selectedSession","clearAllSessions","handleShowView","session","handleShowUnlock","handleViewImage","imageCount","_this$state$userImage","fromUserId","toPhone","userSessionId","boughtDigitalSession","downloadSession","blobId","updateSession","published","userSessionIds","pluck","clearSession","sessionIds","getSessionImages","FaShareAlt","FaUnlockAlt","FaRegListAlt","FaEye","FaDownload","image","thumbnailUrl","originalImageUrl","Appointments","appointmentsData","redirectToReschedule","apt","_appointment$location","padding","readOnly","Prepaids","prepaid","deletePrepaid","prepaidId","consumed","FaTrashAlt","PrintOrdersDetails","getTransformOrderLines","printOrderLineItems","_item$product","quantity","imagepath","show","PrintOrders","orderDetailsHidden","selectedOrder","handleRequeue","orderId","printOrderId","gross","package","UserDetails","userData","includeDS","sheetCount","largePrint_11_14","largePrint_16_20","largePrint_20_30","redirectTouserScheduler","saveUserDetail","handModal","createPackage","newRecord","allDigital","largePrint1114","largePrint1620","largePrint2030","deleteUser","signedUp","active","check","inline","evt","FetchIndicator","ErrorIndicator","messages","bits","msg","TemporaryStatusMessage","CompanyConfig","onCheckChanged","onTextChanged","onSave","stripeSecretKey","stripeApiKey","unitPrice","sessionExpiryDuration","sessionEnhance","customerNumber","sendGrid","sendGridFromEmail","sendGridApikey","sendGridCompanName","twilio","twilioPhone","twilioAccountSid","twilioAuthToken","SmartImage","imageLoaded","onLoad","OrderFullfillment","orderFulfillment","imageName","orders","renderAddress","shippingAddress","address2","renderImage","openImage","editImageUrl","fulfilled","updatedOrder","fullfilled","renderOrderLineItems","orderLineItem","formateDate","o","createdDate","total","shipped","shippedDateTime","printQueueStatusId","shipToFirstName","shipToLastName","oli","Presets","showDeleteBox","deleteMessage","selectedPreset","showUploadPreset","presetName","showUploadImage","handleUploadPreset","handleUploadImage","handleFileChange","uploadFile","rowStyleFormat","rowIdx","populatePresets","preset","fileExtension","FaUpload","path","FaFileDownload","showDeleteEvent","confirmMessage","imgType","imgName","newImgName","pr","containsSpecialChars","FormData","isImage","append","updatedPresets","isImgExist","existingOne","ExcelJS","LabBilling","companys","recordsNotFound","singleUnitProduct","singleUnitSessionProduct","startDateChange","endDateChange","loadData","createHeaderCell","createHeaderRow","initSummaryData","getProducts","getCompanyConfig","summary","totalSales","totalLabCost","excelCellStyle","font","alignment","vertical","horizontal","left","bottom","excelHeaderStyle","bold","argb","fill","pattern","fgColor","bgColor","p","productId","maxDate","minDate","workbook","Workbook","sheet","addWorksheet","rowNumber","addOrderNumberHeading","totalUnits","imageUnit","singleImageProducts","singleSessionProduct","hasSheet","lineItems","lineItem","userSessionImageCount","createContentRow","addRow","summaryHeader","summaryContent","initSummaryStyles","getCell","getColumn","xlsx","writeBuffer","triggerDownload","content","arrayBuffer","Uint8Array","blob","URL","createObjectURL","anchor","download","revokeObjectURL","cellAddress","createContentCell","addDays","Export","aptEndDate","aptStartDate","locationIds","formattedDateLong","getFullYear","Calendar","toIntervals","selection","CalendarDay","BuildComponent","lastSelectDay","lastSelectWeek","aptDays","selectedDateView","getMonths","aptCalender","updateCalendar","dayClick","strdate","week","calendarChange","getWeek","getDay","CalDay","mvd","y","navigateCalendar","isForward","newDate","TimeSlot","times","selectedTime","internalDate","appointmentsByDate","getAppointmentsCount","displayDate","convertDateString","am_pm","dateToConvert","timeChange","UserScheduler","timeSlotHidden","showMyComponent","showContactInfo","updatedUser","redirectToUserDetail","locId","uUser","AppointmentCalender","Row","Col","RescheduleAppointment","reschedule","RescheduleAppointmentBooking","redirectToBooking","CompleteOrder","stripeSessionId","logo","Downloads","EventPackages","eventpackage","Products","showPriceChange","priceValidationMessage","priceInvalid","CompaniesList","onCompanyChanged","superAdmin","showChangeCompanyPrice","onCompanyPriceChange","onCompanyVisibleChange","updateCompanyPrice","notValid","companyProducts","FormFeedback","HeaderComp","withRouter","HomePage","FutureEventsPage","NoOrderUsersPage","UserNoOrderPage","CompletedOrdersPage","UserCompletedOrdersPage","UserCompletedOrders","TotalInCompleteOrdersPage","UserInCompleteOrdersPage","CompaniesPage","EventGroupsPage","GroupUsersPage","selectedUserIds","selectedEventUserIds","SelectfilterOptions","useState","commonUserIds","transformedArray","assigned","commonEventUserIds","useEffect","assignUsers","userIds","htmlFor","selectedUsers","ProductsPage","LocationsPage","EventsPage","UsersPage","UserDetailsPage","IntervalsPage","CompaignsPage","StatisticsPage","EventPackagesPage","OrderFullfillmentPage","PresetsPage","BookingPage","CompanyConfigPage","ExportPage","CalendarPage","UserSchedulerPage","RescheduleAppointmentPage","RescheduleAppointmentBookingPage","CompleteOrderPage","DownloadsPage","SalesPage","withAuthorize","authorized","roleDetail","App","BrowserRouter","isHelpMode","Switch","Route","connect","mapStateToProps","ownProps","complexityLookup","ContactSupportButton","ErrorBlock","msgKey","isAccountError","startsWith","LoginBlockNaive","Signup","loginError","responseMessage","signUpFormValues","setSignUpFormValues","handleFormValues","LoginSelector","showEnterprise","loginModes","setCurrentPage","setEmail","setloading","setPassword","setLoginError","setResponseMessage","resetValidate","handleSubmit","companyIcon","PreLoginError","navigator","swUrl","serviceWorker","scope","registration","onupdatefound","registerValidSW","loginRequired","toLocaleLowerCase","isCallback","parent","opener","createStore","reducers","applyMiddleware","thunk","withExtraArgument","success","component","code","replaceState","LoginBlock","ReactDOM","Provider","Common","onSelectLoginMode","csv_output","rowOutput","strData","strDelimiter","objPattern","RegExp","arrData","arrMatches","strMatchedValue","strMatchedDelimiter","outputArray"],"mappings":"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","file":"static/js/main.2117a046.chunk.js","sourcesContent":["/* eslint no-useless-escape: 0 */\r\nimport _ from 'underscore';\r\n\r\nexport const Validators = {\r\n oneRequired:(values) =>{\r\n let oneHasValue = true;\r\n _.each(values,(value)=>{\r\n oneHasValue = oneHasValue && value.value !== value.default;\r\n });\r\n return oneHasValue;\r\n },\r\n required: (value) => {\r\n if (_.isEmpty(value)){ \r\n return \"Value is required.\"\r\n }\r\n if (!value.toString().trim()){\r\n return \"Value is required.\"\r\n }\r\n },\r\n requiredNumber: (value) => { \r\n if (!value || _.isUndefined(value) || _.isNull(value) ){\r\n return \"Value is required.\"\r\n }\r\n },\r\n number: (value) => {\r\n if (!value)return;\r\n var vparsed = parseFloat(value);\r\n if (_.isNaN(vparsed) || !_.isNumber(vparsed)) {\r\n return \"Value is not a valid number.\"\r\n }\r\n },\r\n numberOnly: (value) => {\r\n if (!value)return;\r\n var vparsed = parseFloat(value);\r\n if (_.isNaN(vparsed) || !_.isNumber(vparsed)) {\r\n return \"Value is not a valid number.\"\r\n }\r\n var re = /[^\\d|\\-|\\.]/;\r\n if (re.test(value)){\r\n return \"Value is not a valid number.\"\r\n }\r\n }, \r\n positiveNumber: (value) => {\r\n if (!value || _.isUndefined(value) || _.isNull(value) || value < 0){\r\n return \"A positive numeric value is required.\"\r\n }\r\n },\r\n positiveIntegerAsPercentage: (value, context, mode) => {\r\n if (!value || _.isUndefined(value) || _.isNull(value)){\r\n return \"A positive integer value is required.\"\r\n }\r\n\r\n let numericValue = Number(value);\r\n if (isNaN(numericValue)){\r\n return \"A positive integer value is required.\"\r\n }\r\n\r\n if (mode !== 'import'){ \r\n numericValue = Math.floor(numericValue * 100);\r\n }\r\n \r\n if (numericValue <= 0 || !Number.isInteger(numericValue)){\r\n return \"A positive integer value is required.\"\r\n }\r\n }, \r\n percentage: (value) => {\r\n if (!value)return;\r\n var vparsed = parseFloat(value);\r\n if (_.isNaN(vparsed) || !_.isNumber(vparsed)) {\r\n return \"Value is not a valid percentage.\"\r\n }\r\n },\r\n email: function(value){ \r\n if (!value)return; \r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (!re.test(value)){\r\n return \"Value is not a valid email address.\"\r\n } \r\n },\r\n phone:function(value){\r\n if (!value)return; \r\n var re = /^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$/;\r\n if (!re.test(value)){\r\n return \"Value is not a valid phone number.\"\r\n } \r\n },\r\n noColon: function(value){\r\n if (value.indexOf(':') > -1){\r\n return 'Value may not contain colons (:).'\r\n }\r\n },\r\n noWhitespace: function(value){\r\n if (value.match(/\\s/)){\r\n return 'Value may not contain whitespace.'\r\n }\r\n },\r\n alphaOnly: function(value){\r\n if (value.match(/[\\W\\d]/g)){\r\n return 'Value may only contain alphabetic characters.';\r\n }\r\n },\r\n domainName: function(value, tenant){\r\n if (value.toLowerCase().indexOf(tenant.Name + '_') !== 0){\r\n return 'Domain name must begin with tenant name, followed by an underscore.'\r\n }\r\n },\r\n length50: function(value){\r\n if (value.toString().length > 50){\r\n return 'Value may not exceed 50 characters.'\r\n }\r\n },\r\n length100: function(value){\r\n if (value.toString().length > 100){\r\n return 'Value may not exceed 100 characters.'\r\n }\r\n },\r\n length200: function(value){\r\n if (value.toString().length > 200){\r\n return 'Value may not exceed 100 characters.'\r\n }\r\n },\r\n tenantName: function(value){\r\n if (value.toString().length < 3){\r\n return 'Value may not be less than 3 characters.'\r\n }\r\n if (value.toString().length > 63){\r\n return 'Value may not exceed 63 characters.'\r\n }\r\n\r\n let regex = /[^a-z0-9-]/gm;\r\n if (regex.exec(value) !== null){\r\n return 'Value may only contain lowercase letters, numbers, or hyphens.'\r\n } \r\n \r\n if (value[0] === '-' || value[value.length -1] === '-'){\r\n return 'Value may not begin or end with a hyphen.'\r\n }\r\n }\r\n}\r\n\r\nexport function Validate(value, validators, context, mode,row){\r\n var firstError = null;\r\n if (validators){\r\n validators.some((valFunc) => {\r\n return firstError = valFunc(value, context, mode,row);\r\n });\r\n }\r\n\r\n return firstError || null;\r\n}","/* eslint no-return-assign: 0 */\r\nimport React, { Component } from \"react\";\r\n// import MonthPicker from \"./MonthPicker\";\r\nimport Dates from \"../util/Dates\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nexport default class DateEditField extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={\r\n selected : Dates.fromISO(this.props.value)\r\n }\r\n }\r\n getValue() {\r\n let date = this.state.selected;\r\n return date && date.invalid ==null ? date.toISO().replace(':00.000Z','') : '';\r\n }\r\n\r\n render() {\r\n let selected =this.state.selected; \r\n let self = this;\r\n return (\r\n {\r\n selected = date ? Dates.fromDate(date).toISO() : '';\r\n self.setState({selected: selected ? Dates.fromISO(selected):null});\r\n if(this.props.onUpdate)\r\n this.props.onUpdate(selected);\r\n }}\r\n className=\"form-control\"\r\n timeInputLabel={this.props.hideTime?false:\"Time:\"}\r\n showTimeSelect={this.props.hideTime?false:true}\r\n dateFormat={`${this.props.hideTime?'MM/dd/yyyy':'MM/dd/yyyy h:mm aa'} `}\r\n /> \r\n );\r\n }\r\n}\r\n","const { DateTime, Settings } = require(\"luxon\");\r\n\r\n// Settings.defaultZoneName = \"utc\";\r\nlet localOffset = - (new Date().getTimezoneOffset() / 60);\r\n\r\nconst Dates = {\r\n isoCache: {},\r\n arbCache: {},\r\n arbCacheDayJs: {},\r\n DATETIME_MED: DateTime.DATETIME_MED,\r\n DATETIME_LONG: { month: 'long', day: 'numeric', year: 'numeric', hour: 'numeric', minute: '2-digit', literal: '' },\r\n DATE_SHORT: 'L/d/y',\r\n DATE_SHORT_FULL_YEAR: 'L/d/yyyy',\r\n SLOT_FORMAT:'LL/dd/yyyy hh:mm a',\r\n DATE_PREF: 'L/y',\r\n MONTH_YEAR: { month: 'long', year: 'numeric' },\r\n MONTH_SHORT: { month: 'short' },\r\n MONTH_YEAR_SHORT: { month: 'short', year: 'numeric' },\r\n epicBegin: DateTime.utc(1970, 1, 1).startOf('year'),\r\n epicEnd: DateTime.utc(2100, 12, 31).startOf('year'),\r\n epicDayRange: null, \r\n epicMonthRange: null,\r\n epicYearRange: null, \r\n usableBegin: DateTime.fromMillis(946702800000),\r\n usableEnd: DateTime.fromMillis(2082690000000), \r\n visualizableBegin: DateTime.local().plus({ years: -5 }).startOf('year'),\r\n visualizableEnd: DateTime.local().plus({ years: 10 }).endOf('year'), \r\n now: () => {\r\n return DateTime.local();\r\n },\r\n fromISO: (str, zone=null) => {\r\n if (!Dates.isoCache[str]) {\r\n Dates.isoCache[str] = DateTime.fromISO(str, { zone: zone });\r\n }\r\n return Dates.isoCache[str];\r\n },\r\n fromStr: (str, format) => {\r\n let formatStr = format || Dates.DATE_SHORT;\r\n let key = str + ':' + formatStr;\r\n\r\n if (!Dates.arbCache[key]) { \r\n Dates.arbCache[key] = DateTime.fromFormat(str, formatStr);\r\n }\r\n return Dates.arbCache[key];\r\n },\r\n fromDate: (jsDate) => { \r\n return DateTime.fromJSDate(jsDate);\r\n }, \r\n fromMs: (ms) => {\r\n return DateTime.fromMillis(ms);\r\n },\r\n fromObject: (obj) => {\r\n return DateTime.fromObject(obj);\r\n },\r\n toMonthYearStr(dt) {\r\n return dt.toLocaleString(Dates.MONTH_YEAR);\r\n },\r\n toMonthYearStrShort(dt) {\r\n return dt.toLocaleString(Dates.MONTH_YEAR_SHORT);\r\n },\r\n toMonthStrShort(dt) {\r\n return dt.toLocaleString(Dates.MONTH_SHORT);\r\n },\r\n toDateShort(dt){\r\n return dt.toLocaleString(Dates.DATE_SHORT);\r\n },\r\n toDateString(dt){\r\n return dt.toLocaleString(\"LL/dd/yyyy\");\r\n },\r\n toDateTime(dt){\r\n return dt.toFormat(Dates.SLOT_FORMAT);\r\n }, \r\n toJS(dt){\r\n return new Date(dt.toISO().replace(':00.000Z',''));\r\n },\r\n toGroupedStr(dt, grouping) {\r\n let g = grouping.toLowerCase();\r\n if (g === 'year') {\r\n return dt.year;\r\n } else if (g === 'quarter') {\r\n return 'Q' + dt.quarter + ' ' + dt.year;\r\n } else {\r\n return dt.toLocaleString(Dates.MONTH_YEAR);\r\n }\r\n },\r\n isValidDateStr: (str) => {\r\n try{ \r\n let attempt1 = Dates.fromStr(str, Dates.DATE_SHORT_FULL_YEAR);\r\n if (!attempt1.isValid){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n }catch(e){\r\n return false;\r\n }\r\n },\r\n isoToDateTime: (str, format) => {\r\n if (!str) return null; \r\n let dt = Dates.fromISO(str).plus({ hours: localOffset });\r\n return dt.toLocaleString(format || Dates.DATETIME_MED);\r\n },\r\n convertDateStringWithT(dateString) {\r\n // Split the date string into its components\r\n \r\n let [datePart, timePart] = dateString.split('T');\r\n \r\n // Further split the date part into month, day, and year\r\n let [year, month, day] = datePart.split('-');\r\n\r\n // Remove leading zero from the month\r\n month = parseInt(month, 10).toString();\r\n\r\n // Reassemble the date string\r\n return `${month}/${day}/${year}`;\r\n },\r\n _getArrayOfDatesInternal(unit, begin, end) {\r\n let output = [];\r\n let counter = begin;\r\n while (counter <= end) {\r\n output.push(counter);\r\n counter = counter.plus({ [unit]: 1 });\r\n }\r\n return output;\r\n },\r\n getArrayOfDays(begin, end) {\r\n if (!Dates.epicDayRange) { \r\n Dates.epicDayRange = Dates._getArrayOfDatesInternal('day', Dates.epicBegin, Dates.epicEnd);\r\n } \r\n let beginIndex = Math.floor(begin.diff(Dates.epicBegin, 'days').days);\r\n let endIndex = Math.ceil(end.diff(Dates.epicBegin, 'days').days);\r\n\r\n return { dates: Dates.epicDayRange.slice(beginIndex, endIndex), beginIndex, endIndex };\r\n }, \r\n getArrayOfMonths(begin, end, isNewStyle) {\r\n if (!Dates.epicMonthRange) {\r\n Dates.epicMonthRange = Dates._getArrayOfDatesInternal('month', Dates.epicBegin, Dates.epicEnd);\r\n }\r\n\r\n let beginIndex = ((begin.year - 1970) * 12) + begin.month - 1;\r\n let endIndex = ((end.year - 1970) * 12) + end.month;\r\n \r\n return { dates: Dates.epicMonthRange.slice(beginIndex, endIndex), beginIndex, endIndex };\r\n },\r\n getArrayOfYears(begin, end) {\r\n if (!Dates.epicYearRange) {\r\n Dates.epicYearRange = Dates._getArrayOfDatesInternal('year', Dates.epicBegin, Dates.epicEnd);\r\n } \r\n let beginIndex = begin.year - 1970;\r\n let endIndex = end.year - 1970 + 1;\r\n\r\n return { dates: Dates.epicYearRange.slice(beginIndex, endIndex), beginIndex, endIndex };\r\n },\r\n currentMonthPlusYears(years) {\r\n let today = DateTime.local();\r\n return [today, today.plus({ years: years })];\r\n },\r\n getMonthRangeFromMonthYearStrs(begin, end, years) {\r\n let output = []; \r\n if (begin) {\r\n output[0] = Dates.fromStr(begin, Dates.DATE_PREF);\r\n } else {\r\n output[0] = DateTime.local().startOf('month');\r\n }\r\n\r\n if (end) {\r\n output[1] = Dates.fromStr(end, Dates.DATE_PREF);\r\n } else {\r\n output[1] = output[0].plus({ months: (12 * (years || 3)) - 1 });\r\n }\r\n return output;\r\n },\r\n doRangesOverlap(a, b, c, d) {\r\n return (a >= c && a <= d) || (b >= c && b <= d) || (a >= c && b <= d);\r\n },\r\n doMonthRangesOverlap(range1, range2) {\r\n if (range1.beginIndex < range2.beginIndex && range2.beginIndex < range1.endIndex) { \r\n return true;\r\n }\r\n if (range1.beginIndex < range2.endIndex && range2.endIndex < range1.endIndex) {\r\n return true;\r\n }\r\n if (range2.beginIndex <= range1.beginIndex && range1.endIndex <= range2.endIndex) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n};\r\n\r\nexport default Dates;","/* global EM */\r\nimport React from 'react';\r\nimport _ from 'underscore';\r\n\r\nconst CsvFileViewer = ({data, errors, statuses, cellFormatter, className, limitTo, hideLimitWarning}) => {\r\n if (!data)return null;\r\n \r\n let errMsgGroups = _.indexBy(errors, (item, index) => {\r\n return item[0];\r\n });\r\n\r\n let limit = limitTo || 1000;\r\n let limitedData = data.slice(0, limit);\r\n\r\n return (\r\n
\r\n \r\n \r\n {limitedData.map((items, rowIndex) => { \r\n return( \r\n \r\n \r\n {items.map((value, colIndex) => { \r\n let msgs = errMsgGroups[rowIndex + ':' + colIndex];\r\n if (msgs){\r\n return \r\n }else{\r\n return \r\n }\r\n })}\r\n { statuses ? \r\n \r\n : null }\r\n \r\n ); \r\n })}\r\n \r\n
{rowIndex + 1}{cellFormatter?cellFormatter(rowIndex, colIndex, value):value}{cellFormatter?cellFormatter(rowIndex, colIndex, value):value}\r\n {rowIndex === 0 ? 'Status' : statuses[rowIndex]}\r\n
\r\n { data.length > limit && !hideLimitWarning ? \r\n
\r\n  {EM.t('util.table.limitWarning', null, [limit])}\r\n
\r\n : null }\r\n
\r\n );\r\n};\r\n\r\nexport default CsvFileViewer;","/* global EM */\r\nimport CSV from './CSV';\r\nimport saver from 'file-saver';\r\n\r\nconst File = {\r\n read: (ctrl) => {\r\n var reader = new FileReader();\r\n return new Promise(function (resolve, reject) {\r\n reader.onload = function () {\r\n let fileContents = reader.result;\r\n\r\n //remove zero-width spaces and various other control characters\r\n fileContents = fileContents.replace(/[\\u200B-\\u200D\\uFEFF\\u200E]/g, '');//\\u200F\\u0000-\\u001F\\u007F-\\u009F\r\n\r\n //remove non-breaking spaces from text\r\n fileContents = fileContents.replace(/\\u00A0/g, ' ');\r\n\r\n resolve(fileContents);\r\n };\r\n\r\n reader.onerror = function (event) {\r\n reject(new Error('File could not be read.'));\r\n };\r\n\r\n let fileSizeLimitSetting = parseInt(EM.getTenantOption('fileSizeLimit'));\r\n let sizeLimit = isNaN(fileSizeLimitSetting) ? 10485760 : fileSizeLimitSetting; \r\n let sizeLimitInMb = (sizeLimit/1048576).toFixed(2);\r\n\r\n if (ctrl.files[0].size > sizeLimit){\r\n reject(new Error('File is too large. Maximum file size is ' + sizeLimitInMb + ' MB.'));\r\n return;\r\n }\r\n\r\n reader.readAsText(ctrl.files[0]);\r\n });\r\n },\r\n\r\n save: (filename, data, mime) => {\r\n saver.saveAs(new Blob([data], { type: (mime || \"text/plain\") + ';charset=utf-8' }), filename);\r\n },\r\n\r\n readCSV: async (ctrl, allowBlankFiles) => {\r\n let fileContents = await File.read(ctrl);\r\n if (!fileContents) {\r\n throw new Error(EM.t('error.csv-no-data'));\r\n }\r\n\r\n let csvContents = CSV.fromString(fileContents.trim());\r\n if (csvContents.length < 2 && !allowBlankFiles) {\r\n throw new Error(EM.t('error.csv-no-data'));\r\n }\r\n\r\n return csvContents;\r\n },\r\n\r\n readCsvOrXml: async (ctrl, conversionFunc, allowBlankFiles) => {\r\n let fileContents = await File.read(ctrl);\r\n if (!fileContents) {\r\n throw new Error(EM.t('error.csv-no-data'));\r\n }\r\n\r\n let contents = fileContents.trim();\r\n if (contents.indexOf('' + html + '';\r\n\r\n File.save(filename + '.xls', output, mime);\r\n }\r\n}\r\n\r\nexport default File;\r\n","/* eslint no-return-assign: 0 */\r\nimport React, { Component } from 'react';\r\n\r\nexport default class PercentageEditField extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n value: null\r\n }\r\n }\r\n\r\n getValue(){\r\n return this.state.value;\r\n }\r\n\r\n render() {\r\n let dv = this.props.value ? (this.props.value * 100).toFixed(0) : (this.props.defaultPercentage);\r\n\r\n return (\r\n {\r\n let newValue = event.target.value;\r\n if (newValue){\r\n this.setState({ value: newValue / 100 });\r\n if(this.props.onChange)this.props.onChange({ target: { value: newValue / 100 }});\r\n }\r\n }} onBlur={(event) => {\r\n let newValue = event.target.value;\r\n if (newValue){\r\n if (this.props.onUpdate)this.props.onUpdate(newValue / 100);\r\n this.setState({ value: newValue / 100 })\r\n event.target.blur();\r\n }\r\n }}/> \r\n );\r\n }\r\n}","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport Creatable from 'react-select/creatable';\r\n\r\nexport default class WorkItemSelector extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tasks: [],\r\n currentValue: this.props.value || ''\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n EM.schedules.loadDefaultItem().then((defaultSchedule) => {\r\n if (!defaultSchedule)return;\r\n EM.schedules.loadFile(defaultSchedule.ScheduleId).then(() => {\r\n let fileContents = EM.schedules.getFile(defaultSchedule.ScheduleId);\r\n if (fileContents){\r\n let filters = fileContents.getFilterValues();\r\n let workitems = filters.find((item) => { return item.name === 'workitem' });\r\n let tasks = workitems.values.map((wi) => {\r\n return { label: wi, value: wi };\r\n });\r\n\r\n let addTaskList = EM.getSetting('AdditionalTasks'); \r\n if (addTaskList){\r\n addTaskList.split(',').map((task) => {\r\n return tasks.push({ value: task.trim(), label: task.trim() });\r\n });\r\n }\r\n\r\n this.setState({ tasks });\r\n }\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n let cv = this.state.currentValue;\r\n let value = cv ? { value: cv, label: cv } : this.props.value;\r\n return (\r\n { return EM.t('util.select-create', null, [input]) }}\r\n value={value} \r\n ref={this.props.innerRef} \r\n onChange={(selected) => {\r\n this.setState({ currentValue: selected ? selected.value.trim() : null });\r\n if (this.props.onChange)this.props.onChange(selected);\r\n if (this.props.onUpdate)this.props.onUpdate(selected ? selected.value.trim() : null);\r\n }} \r\n />\r\n );\r\n }\r\n};","/* global EM */\r\n/* eslint no-return-assign: 0 */\r\nimport React, { Component } from 'react';\r\nimport cs from 'classnames';\r\n\r\nexport default class AssignmentStatusEditField extends Component {\r\n componentDidMount() {\r\n const { defaultValue, didMount } = this.props;\r\n this.select.value = defaultValue;\r\n this.select.focus();\r\n if (didMount) didMount();\r\n }\r\n\r\n getValue() {\r\n return this.select.value.toString();\r\n }\r\n\r\n render() {\r\n const { defaultValue, className } = this.props;\r\n const editorClass = cs('form-control editor edit-select', className);\r\n \r\n const attr = {\r\n className: editorClass\r\n };\r\n\r\n return (\r\n this.select = node }\r\n defaultValue={ defaultValue }\r\n onChange={() => {\r\n if (this.props.onUpdate)this.props.onUpdate(this.getValue());\r\n this.select.blur();\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n}","/* global EM */\r\n/* eslint no-return-assign: 0 */\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport { Form, FormGroup, Input, Label } from \"reactstrap\";\r\n\r\nexport default class CheckBoxEditField extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n groupName: this.getGroupName(),\r\n hidden: false,\r\n selected: this.props.value || [],\r\n };\r\n this.wrapperRef = React.createRef();\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n this.onChangeOption = this.onChangeOption.bind(this);\r\n }\r\n componentDidMount() {\r\n if (this.props.sticky === false)\r\n document.addEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.sticky === false)\r\n document.removeEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n handleClickOutside(event) {\r\n let self = this;\r\n if (this.props.sticky === false) {\r\n if (this.wrapperRef && !this.wrapperRef.current.contains(event.target)) {\r\n //close this\r\n this.setState({ hidden: true }, () => {\r\n if (this.props.onUpdate) this.props.onUpdate(self.getValue());\r\n });\r\n return;\r\n }\r\n if (this.state.hidden === true) this.setState({ hidden: false });\r\n }\r\n }\r\n\r\n getGroupName() {\r\n return `${Math.random() * (999999999 - 111111111) + 111111111}`;\r\n }\r\n\r\n getValue() {\r\n return this.state.selected;\r\n }\r\n\r\n onChangeOption(event, value) {\r\n let selected = [...this.state.selected];\r\n if (event.target.checked === true && !_.contains(selected, value))\r\n selected.push(value);\r\n else if (event.target.checked === false)\r\n selected = _.filter(selected, (item) => {\r\n return item !== value;\r\n });\r\n\r\n this.setState({ selected });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import { CKEditor } from 'ckeditor4-react';\r\n\r\nfunction CKEditorInput(props) {\r\n const initializeEditor = (editor) => {\r\n if (props.value) {\r\n editor.setData(props.value);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n props.onChange(e.editor.getData())}\r\n editorUrl=\"https://cdn.ckeditor.com/4.18.0/standard-all/ckeditor.js\"\r\n config={{\r\n on: {\r\n instanceReady: (event) => {\r\n initializeEditor(event.editor);\r\n },\r\n },\r\n }}\r\n />\r\n

Add Mobile app url: https://flashop.page.link/openapp

\r\n
Add tags in the email body
\r\n
\r\n Promotion Link: {\"{promotion_link}\"} This tag will be replaced by actual promotion link in the email
\r\n Cart first image Link: {\"{cart_image_link}\"} This tag will be replaced by actual first image link in the email
\r\n Event Name: {\"{event_name}\"} This tag will be replaced by actual event name in the email
\r\n Add First Name of User: {\"{first_name}\"} This tag will be replaced by actual first name of the actual user in the email
\r\n Add Last Name of User: {\"{last_name}\"} This tag will be replaced by actual last name of the actual user in the email
\r\n Add Time slot of Appointment: {\"{time_slot}\"} This tag will be replaced by actual time slot of the actual user's appointment in the email\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CKEditorInput;\r\n","import React from 'react';\r\n\r\nconst Spinner = ({text, classes}) => {\r\n return (\r\n
\r\n
\r\n
Loading...
\r\n
\r\n {text}\r\n
\r\n );\r\n};\r\n\r\nexport default Spinner;","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport { Modal } from 'reactstrap';\r\n\r\nexport default class PanelModal extends Component {\r\n render() {\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n}\r\n","/* eslint no-extend-native: \"off\" */\r\nimport _ from 'underscore';\r\n\r\nexport default {\r\n registerGlobal: function () {\r\n Promise.prototype.finally = Promise.prototype.finally || {\r\n finally (fn) {\r\n const onFinally = value => Promise.resolve(fn()).then(() => value);\r\n return this.then(\r\n result => onFinally(result),\r\n reason => onFinally(Promise.reject(reason))\r\n );\r\n }\r\n }.finally;\r\n \r\n String.prototype.capitalize = function () {\r\n return this[0].toUpperCase() + this.slice(1);\r\n };\r\n\r\n String.prototype.decapitalize = function () {\r\n return this[0].toLowerCase() + this.slice(1);\r\n };\r\n\r\n String.prototype.toIdToken = function () {\r\n return this.replace(/\\W/g, '_');\r\n };\r\n\r\n Array.prototype.sortAlphaNumeric = function(){\r\n var reA = /[^a-zA-Z]/g;\r\n var reN = /[^0-9]/g;\r\n\r\n function sortAlphaNum(a, b) {\r\n var aA = a.replace(reA, \"\");\r\n var bA = b.replace(reA, \"\");\r\n if (aA === bA) {\r\n var aN = parseInt(a.replace(reN, \"\"), 10);\r\n var bN = parseInt(b.replace(reN, \"\"), 10);\r\n return aN === bN ? 0 : aN > bN ? 1 : -1;\r\n } else {\r\n return aA > bA ? 1 : -1;\r\n }\r\n }\r\n\r\n return this.sort(sortAlphaNum);\r\n };\r\n\r\n Array.prototype.groupBy = Array.prototype.groupBy || function (criteria) {\r\n return this.reduce(function (obj, item) { \r\n var key = typeof criteria === 'function' ? criteria(item) : item[criteria]; \r\n if (!obj.hasOwnProperty(key))obj[key] = [];\r\n obj[key].push(item);\r\n return obj; \r\n }, {});\r\n };\r\n\r\n Array.prototype.mapFiltered = function(transform){\r\n return this.reduce(function(memo, item, itemIndex) {\r\n let result = transform(item, itemIndex);\r\n if (result)memo.push(result);\r\n return memo;\r\n }, []);\r\n };\r\n\r\n _.mixin({\r\n nest: (list, ...iteratees) => {\r\n return _.filteredNest(list, null, ...iteratees);\r\n },\r\n filteredNest: (list, filterFunction, ...iteratees) => {\r\n let groups = {};\r\n list.forEach((item, itemIndex) => {\r\n if (filterFunction) {\r\n let included = filterFunction(item);\r\n if (!included) return;\r\n }\r\n\r\n let cGroup = groups;\r\n iteratees.forEach((iteratee, ii) => {\r\n let result = (typeof iteratee === 'string' ? item[iteratee] : iteratee(item, itemIndex));\r\n if (!cGroup[result]) cGroup[result] = ii === iteratees.length - 1 ? [] : {};\r\n cGroup = cGroup[result];\r\n });\r\n cGroup.push(item);\r\n });\r\n\r\n return groups;\r\n }\r\n });\r\n },\r\n\r\n loadScript: function(uri) {\r\n return new Promise((resolve, reject) => {\r\n var tag = document.createElement('script');\r\n tag.src = uri;\r\n tag.async = true;\r\n tag.onload = () => {\r\n resolve();\r\n };\r\n var firstScriptTag = document.getElementsByTagName('script')[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n });\r\n }\r\n}","export default {\r\n client: {\r\n home: '/',\r\n futureEvents:\"/futureEvents\",\r\n noOrderUsers:\"/noOrderUsers\",\r\n userNoOrdersUsers:\"/userNoOrders/:locationId\",\r\n totalCompletedOrders:\"/totalCompletedOrders\",\r\n userCompletedOrders:\"/userCompletedOrders/:locationId\",\r\n incompleteOrders:\"/incompleteOrders\",\r\n userIncompleteOrders:\"/userIncompleteOrders/:locationId\",\r\n companies: '/companies',\r\n eventGroups: '/location/eventgroups',\r\n products: '/products',\r\n companyConfig:'/companyConfig/:companyId',\r\n locations: '/locations',\r\n compaign: '/:locationId/compaign',\r\n sendGridStats: '/statistics/:eventName/:campaignName/:campaignId/:startDate',\r\n intervals: '/:locationId/intervals',\r\n groupUser: '/groupUsers/:eventGroupId',\r\n eventPackages: '/:locationId/eventPackages',\r\n events: '/:companyId/events',\r\n calendar: '/calendar',\r\n users:'/users',\r\n userDetails: '/userDetails/:userId/:companyId',\r\n userSchdeuler:\"/userScheduler/:userId/:companyId\",\r\n rescheduleAppointment:\"/rescheduleAppointment/:userId/:companyId/:appointmentId\",\r\n rescheduleAppointmentBooking:\"/rescheduleAppointmentBooking/:userId/:companyId/:appointmentId/:locationId\",\r\n printOrders: '/orderFulFillment/:userId',\r\n presets: '/presets',\r\n export:'/export',\r\n booking:'/booking/:eventId',\r\n completeOrder:'/CompleteOrder/:stripeSessionId',\r\n downloads:'/downloads',\r\n notFound: '/404',\r\n help: '/support',\r\n manual: '/manual',\r\n domain: '/:DomainName',\r\n visualizations: '/:DomainName/visualizations',\r\n demand: '/:DomainName/visualizations/demand',\r\n dataExplorer: '/:DomainName/visualizations/data-explorer',\r\n scenarioViewer: '/:DomainName/visualizations/scenario-view/:ScenarioId',\r\n scenarios: '/:DomainName/visualizations/scenarios',\r\n staffing: '/:DomainName/visualizations/staffing',\r\n staffingEmployee: '/:DomainName/visualizations/staffing/employee',\r\n staffingWorkItem: '/:DomainName/visualizations/staffing/workitem',\r\n dashboard: '/:DomainName/dashboard',\r\n demandReport: '/:DomainName/reports/demand',\r\n staffingReport: '/:DomainName/reports/staffing',\r\n management: '/:DomainName/management',\r\n schedules: '/:DomainName/management/schedules',\r\n activities: '/:DomainName/management/activities',\r\n allocations: '/:DomainName/management/allocations',\r\n complexities: '/:DomainName/management/complexities',\r\n organizations: '/:DomainName/management/organizations',\r\n departments: '/:DomainName/management/departments',\r\n roles: '/:DomainName/management/roles',\r\n attributes: '/:DomainName/management/attributes',\r\n algorithms: '/:DomainName/management/algorithms',\r\n headcounts: '/:DomainName/management/headcounts',\r\n actuals: '/:DomainName/management/actuals',\r\n employees: '/:DomainName/management/employees',\r\n assignments: '/:DomainName/management/assignments',\r\n settings: '/:DomainName/management/settings',\r\n generalSettings: '/:DomainName/management/settings/general',\r\n advancedSettings: '/:DomainName/management/settings/advanced',\r\n security: '/:DomainName/management/settings/security',\r\n referenceTables: '/:DomainName/management/settings/referenceTables',\r\n pipelinesOld: '/:DomainName/management/settings/pipelines-old',\r\n pipelines: '/:DomainName/management/settings/pipelines',\r\n pipelineViewer: '/:DomainName/management/settings/pipeline-view/:ConfigurationId',\r\n sales: \"/sales\",\r\n },\r\n clientApi: {\r\n login:'authentication/login',\r\n forgetPassword:'user/forgotpassword',\r\n company: 'company', //added it for company signup\r\n companySignup: 'companysignup', //added it for company signup\r\n dashboardCount: 'company/dashboardcounts/:id',\r\n futureEventsDetails: 'company/dashboard/futureeventsdetails/:companyId',\r\n incompleteOrders: 'company/dashboard/userOrdersWithevents/:companyId/incomplete_orders',\r\n userIncompleteOrders: 'company/dashboard/userListWithevents/:companyId/:locationId/incomplete_orders',\r\n totalCompletedOrders: 'company/dashboard/userOrdersWithevents/:companyId/completed_orders',\r\n userCompletedOrders: 'company/dashboard/userListWithevents/:companyId/:locationId/completed_orders',\r\n noOrdersUsers: 'company/dashboard/userOrdersWithevents/:companyId/no_orders_users',\r\n userNoOrdersUsers: 'company/dashboard/userListWithevents/:companyId/:locationId/no_orders_users',\r\n user: 'user', //added it for company signup\r\n account: 'account',\r\n byId:':Entity/:id',\r\n domainEntity: ':Entity',\r\n exportwithEventsList: 'exportwitheventList',\r\n eventTypes:'location/eventtypes/:companyId',\r\n eventTypeCreate: 'location/eventtypes',\r\n compaignCUD: 'marketing/compaign',\r\n compaign: 'marketing/compaign/:locationId',\r\n compaignTypeCUD: 'marketing/compaigntype',\r\n compaignType: 'marketing/compaigntype/:locationId',\r\n sendGridStats:'marketing/compaign/stats/:campaignId/:start_date',\r\n childEntity: ':companyId/:Entity',\r\n events:'company/:companyId/:Entity',\r\n singleEvent:'event/:eventId',\r\n updateEventBooking:'event/OnlineBooking',\r\n updateEvent:'event',\r\n search:':Entity/search',\r\n intervals:':companyId/:locationId/:Entity',\r\n groupUsers:'location/eventgroups/group/users/:eventGroupId',\r\n eventPromotion:'event/promotion/:locationId',\r\n eventUsers:'location/eventgroups/eventusers/:locationId',\r\n assignGroupUsers:'location/eventgroups/group',\r\n unassignGroupUsers:'location/eventgroups/group/:eventGroupId',\r\n eventgroups:'location/eventgroups/group/:companyId',\r\n eventgroupsAssignUsers:'location/eventgroups/csvUsers',\r\n eventgroupsCreate:'location/eventgroups',\r\n eventPackages:':companyId/:locationId/:Entity',\r\n userDetails: 'user/:id',\r\n updateUser:'user',\r\n userScheduler:':Entity/:locationId',\r\n calenderMonth:'calendar',\r\n calenderTab:'calendar/calendarTab',\r\n calendar:'mobile/calendar',\r\n calendarday:'calendarday',\r\n userSessions: ':Entity/:userId/:companyId',\r\n userSessionImage: ':Entity/byUserSessionId/:id',\r\n appointments: 'user/:Entity/:userId/:companyId',\r\n printOrders: \":Entity/:companyId/:userId\",\r\n orderRequeue: \"order/requeue\",\r\n prepaids: ':Entity/:userId/:companyId',\r\n presetsUpload: ':Entity/uploadPreset',\r\n translation: '%PUBLIC_URL%/i18n/:Lang.json',\r\n locationDates:'location/dates/:locationId',\r\n locationSlots:'location/slots/:locationId',\r\n locationSlotsV2:'location/slots_v2/:locationId',\r\n blocktimeslots:'blocktimeslots',\r\n deletetimeslots:'blocktimeslots/:slotId',\r\n blocktimeslotsMultiple:'blocktimeslots/multiple',\r\n eventOrder:'order/event',\r\n resetUser:'user/reset',\r\n changeDefaultCompany:'user/changeDefaultCompany',\r\n assignCompanies:'user/assign',\r\n products:'product/:companyId',\r\n eventGroups:'product/:companyId',\r\n product:'product/:productId/:companyId',\r\n companyProduct:'companyProduct',\r\n addUpdateProduct:'product',\r\n shareSession:'usersession/sharesession',\r\n unlockSession:'usersession/unlock',\r\n textSession:'usersession/sendtext',\r\n sendApp:'sendapp',\r\n saveNotes:'appointment/savenotes',\r\n downloadAppointment:'appointment/printschedule?LocationId=:LocationId',\r\n patchAppointment:'appointment/patch',\r\n rescheduleAppointment:\"appointment/reschedule\",\r\n appointmentsByLocation:'appointment/bylocationId',\r\n openOrders:'order/openordersforfullfilment/:companyId',\r\n completedOrders:'order/completedOrders/:companyId',\r\n activateAppointment:'appointment/activate/:stripeSessionId',\r\n userSearch:'user/search',\r\n help: 'docs/:Lang/:Name?cid=:CID&meta=:IsMeta',\r\n appointmentPresale:\"appointment/presales\",\r\n\r\n domainEntityImport: 'data/:DomainId/:Entity/import',\r\n domainEntityFile: 'file/:DomainId/:Entity/:Id',\r\n domainEntityClear: 'data/:DomainId/:Entity/clear',\r\n projections: 'projections/:DomainId/:ScheduleId',\r\n auditEntity: 'audit/:DomainId/:Entity/:EntityId',\r\n notify: 'notify',\r\n proxy: 'proxy'\r\n },\r\n admin: {\r\n home: '/administration',\r\n tenants: '/administration/tenants',\r\n domains: '/administration/domains',\r\n // users: '/administration/users',\r\n },\r\n adminApi: {\r\n adminEntity: 'management/:TenantId/:Entity',\r\n adminEntityImport: 'management/:TenantId/:Entity/import',\r\n switchTenant: 'management/*/tenants/switch',\r\n uptimeReport: 'management/*/uptime'\r\n },\r\n compose: function(url, params, qs) {\r\n var output = url.replace('%PUBLIC_URL%', process.env.PUBLIC_URL);\r\n if (params){\r\n Object.keys(params).forEach(function (key, index) {\r\n let value = params[key];\r\n output = output.replace(':' + key, value);\r\n });\r\n }\r\n if (!qs) return output; \r\n if (typeof qs === 'string'){\r\n return output + '?' + qs;\r\n }else{\r\n return output + '?' + Object.keys(qs).map(key => key + '=' + qs[key]).join('&');\r\n }\r\n },\r\n parseQuery(queryString) {\r\n let toParse = queryString || window.location.search.slice(1);\r\n let query = {};\r\n let pairs = toParse.split('&');\r\n for (let i = 0; i < pairs.length; i++) {\r\n let pair = pairs[i].split('=');\r\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');\r\n }\r\n return query;\r\n },\r\n baseUrl(){\r\n return process.env.PUBLIC_URL || 'http://20.237.233.211/';\r\n }\r\n}","export const GLOBAL_ERROR = 'GLOBAL_ERROR';\r\nexport const LOCAL_ERROR = 'LOCAL_ERROR';\r\nexport const CLEAR_LOCAL_ERROR = 'CLEAR_LOCAL_ERROR';\r\n\r\nexport const LOAD_ACCOUNT = 'LOAD_ACCOUNT';\r\n\r\nexport const SET_DOMAIN = 'SET_DOMAIN';\r\nexport const CLEAR_DOMAIN = 'CLEAR_DOMAIN';\r\nexport const MARK_DOMAIN_DIRTY = 'MARK_DOMAIN_DIRTY';\r\nexport const MARK_DOMAIN_CLEAN = 'MARK_DOMAIN_CLEAN';\r\n\r\nexport const LOAD_TRANSLATION = 'LOAD_TRANSLATION';\r\n\r\nexport const START_FETCH = 'START_FETCH';\r\nexport const END_FETCH = 'END_FETCH';\r\nexport const REMOVE_FETCH = 'REMOVE_FETCH';\r\n\r\nexport const LOAD_FILE = 'LOAD_FILE';\r\nexport const CLEAR_FILES = 'CLEAR_FILES';\r\nexport const FILE_ERROR = 'FILE_ERROR';\r\nexport const UPDATE_FILE = 'UPDATE_FILE';\r\n\r\nexport const CLEAR_PROJECTIONS = 'CLEAR_PROJECTIONS';\r\nexport const LOAD_PROJECTIONS = 'LOAD_PROJECTIONS';\r\nexport const PROJECTIONS_ERROR = 'PROJECTIONS_ERROR';\r\n\r\nexport const LOAD_USERS = 'LOAD_USERS';\r\nexport const CREATE_USERS = 'CREATE_USERS';\r\nexport const DELETE_USERS = 'DELETE_USERS';\r\nexport const UPDATE_USERS = 'UPDATE_USERS';\r\nexport const CREATE_PERMISSIONS = 'CREATE_PERMISSIONS';\r\n\r\nexport const AUDIT_ENTITY_ITEM = 'AUDIT_ENTITY_ITEM';\r\n\r\nexport const LOAD_TERMS = 'LOAD_TERMS';\r\nexport const LOAD_RELEASE = 'LOAD_RELEASE';\r\n\r\nexport const LOAD_NOTIFICATIONS = 'LOAD_NOTIFICATIONS';\r\nexport const REMOVE_NOTIFICATION = 'REMOVE_NOTIFICATION';\r\nexport const CLEAR_NOTIFICATIONS = 'CLEAR_NOTIFICATIONS';","/* global EM */\r\nimport * as types from '../actionTypes';\r\n\r\nfunction translate(itemName){\r\n let t = EM.t(itemName.toLowerCase() + '.title', true);\r\n return t || itemName;\r\n}\r\n\r\nexport function startFetch(itemName) {\r\n return { type: types.START_FETCH, data: translate(itemName) };\r\n}\r\n\r\nexport function endFetch(itemName) {\r\n window.setTimeout(() => {\r\n EM.dispatch(removeFetchItem(itemName));\r\n }, 500);\r\n return { type: types.END_FETCH, data: translate(itemName) };\r\n}\r\n\r\nexport function removeFetchItem(itemName, displayAs) {\r\n return { type: types.REMOVE_FETCH, data: translate(itemName) };\r\n}\r\n","/* global EM */\r\n/* eslint no-throw-literal: 0 */\r\nimport Routes from './Routes';\r\nimport * as fetchingActions from '../entities/actions/fetching';\r\n\r\nexport default class API{ \r\n constructor(authenticator, instance, loginMode){\r\n\r\n this.baseApiAddress = 'https://api.flashopllc.com/api/';\r\n //this.baseApiAddress = 'http://flashapi.techliance.com/api/';\r\n //this.baseApiAddress = 'http://203.215.175.50:5000/api/';\r\n //this.baseApiAddress = 'http://localhost:5000/api/';\r\n this.sendGridbaseApiAddress = \"https://api.sendgrid.com/v3/\"\r\n this.Authenticator = authenticator;\r\n this.abortController = null;\r\n this.instance = instance;\r\n this.loginMode = loginMode;\r\n\r\n this.resetSignal();\r\n }\r\n\r\n abortPendingFetches(){\r\n this.abortController.abort();\r\n this.resetSignal();\r\n }\r\n\r\n resetSignal(){\r\n if (AbortController){\r\n this.abortController = new AbortController();\r\n }else{\r\n this.abortController = { signal: null, abort: function(){} };\r\n }\r\n }\r\n\r\n async login(email, password){\r\n const url = Routes.compose(Routes.clientApi.login, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify({Username:email,Password:password,IsAssociate:true}) }, {}); \r\n } \r\n async register(body){\r\n const url = Routes.compose(Routes.clientApi.company, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(body) }, {}); \r\n } \r\n async registerCompany(body){\r\n const url = Routes.compose(Routes.clientApi.companySignup, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(body) }, {}); \r\n } \r\n async createUser(body){\r\n const url = Routes.compose(Routes.clientApi.user, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(body) }, {}); \r\n } \r\n \r\n async forgetPasword(email){\r\n const url = Routes.compose(Routes.clientApi.forgetPassword, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify({Username:email,IsAssociate:true}) }, {}); \r\n } \r\n\r\n async loadTranslation(Lang) {\r\n const url = Routes.compose(Routes.clientApi.translation, { Lang: Lang }, { build: process.env.REACT_APP_BUILD });\r\n return this.fetchStaticJson(url, {});\r\n } \r\n\r\n async loadHelp(CID, Name, Lang, IsMetaData) {\r\n const url = Routes.compose(Routes.clientApi.help, { CID: CID, Name: Name, Lang: Lang, IsMeta: IsMetaData });\r\n return await this.fetch(this.baseApiAddress + url, {}, Name);\r\n } \r\n \r\n async updateHelp(Name, Lang, Content) {\r\n const url = Routes.compose(Routes.clientApi.help, { Name: Name, Lang: Lang });\r\n return await this.fetch(this.baseApiAddress + url, { method: 'PUT', body: Content }, Name);\r\n } \r\n\r\n async loadAccount(loginMode) {\r\n let qs = (loginMode ? 'loginMode=' + loginMode : null); \r\n const url = Routes.compose(Routes.clientApi.account, null, qs);\r\n return this.fetch(this.baseApiAddress + url, {}, 'Account');\r\n } \r\n async loadEntityByParent(Entity, isSilent,parentDetail,getUrl){\r\n let params = {...(parentDetail ? parentDetail:{}), Entity: Entity}\r\n let url = Routes.compose(Routes.clientApi.childEntity, params);\r\n if(parentDetail && getUrl)\r\n { \r\n url = Routes.compose(getUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, {}, isSilent ? null : Entity); \r\n }\r\n\r\n async loadSingleEntity(Entity, isSilent,routeParams,getUrl){ \r\n let params = {...(routeParams ? routeParams:{}), Entity: Entity}\r\n let url = Routes.compose(Routes.clientApi.byId, params);\r\n if(routeParams && getUrl)\r\n { \r\n url = Routes.compose(getUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, {}, isSilent ? null : Entity); \r\n }\r\n\r\n async searchEntity(Entity, isSilent,routeParams,searchUrl,qs){ \r\n let params = {...(routeParams ? routeParams:{}), Entity: Entity}\r\n let url = Routes.compose(Routes.clientApi.search, params,qs);\r\n if(routeParams && searchUrl)\r\n url = Routes.compose(searchUrl,params,qs);\r\n return this.fetch(this.baseApiAddress + url, {}, isSilent ? null : Entity); \r\n }\r\n\r\n async loadDomainEntity(Entity, isSilent){\r\n const url = Routes.compose(Routes.clientApi.domainEntity, { Entity: Entity });\r\n return this.fetch(this.baseApiAddress + url, {}, isSilent ? null : Entity); \r\n }\r\n\r\n async auditDomainEntity(DomainId, Entity, EntityId){\r\n const url = Routes.compose(Routes.clientApi.auditEntity, { DomainId: DomainId, Entity: Entity, EntityId: EntityId });\r\n return this.fetch(this.baseApiAddress + url, {}, Entity); \r\n }\r\n\r\n async createDomainEntity(Entity, Item,createUrl,parentRecordDetail){\r\n let url = Routes.compose(Routes.clientApi.domainEntity, { Entity: Entity });\r\n if(parentRecordDetail && createUrl)\r\n {\r\n let params = {...(parentRecordDetail ? parentRecordDetail:{}), Entity: Entity}\r\n url = Routes.compose(createUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(Item) }, Entity); \r\n } \r\n \r\n async execute(Entity,data,requestUrl,qs,parentRecordDetail, method){ \r\n let params = {Entity: Entity };\r\n method = method || 'GET';\r\n if(parentRecordDetail)\r\n params = {...(parentRecordDetail ? parentRecordDetail:{}), Entity: Entity}\r\n \r\n let url = Routes.compose(requestUrl, params,(qs||null));\r\n let options = {method:method}\r\n\r\n if(data)\r\n options.body = JSON.stringify(data);\r\n\r\n return this.fetch(this.baseApiAddress + url,options,Entity)\r\n }\r\n\r\n async updateDomainEntity(Entity, Item,editUrl,parentRecordDetail){\r\n let url = Routes.compose(Routes.clientApi.domainEntity, { Entity: Entity });\r\n if(parentRecordDetail && editUrl)\r\n {\r\n let params = {...(parentRecordDetail ? parentRecordDetail:{}), Entity: Entity}\r\n url = Routes.compose(editUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(Item) }, Entity); \r\n } \r\n \r\n async deleteDomainEntity(Entity, ids,deleteUrl,parentRecordDetail){ \r\n let url = Routes.compose(Routes.clientApi.domainEntity, { Entity: Entity });\r\n if(parentRecordDetail && deleteUrl)\r\n {\r\n let params = {...(parentRecordDetail ? parentRecordDetail:{}), Entity: Entity}\r\n url = Routes.compose(deleteUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, { method: 'DELETE', body: JSON.stringify(ids) }, Entity); \r\n } \r\n\r\n async importDomainEntity(DomainId, Entity, Items, isSilent, modsOnly){\r\n const qs = modsOnly ? { MODSONLY: true } : null;\r\n const url = Routes.compose(Routes.clientApi.domainEntityImport, { DomainId: DomainId, Entity: Entity }, qs);\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(Items) }, isSilent ? null : Entity); \r\n } \r\n \r\n async clearDomainEntity(DomainId, Entity){\r\n const url = Routes.compose(Routes.clientApi.domainEntityClear, { DomainId: DomainId, Entity: Entity });\r\n return this.fetch(this.baseApiAddress + url, { method: 'DELETE' }, Entity); \r\n }\r\n\r\n async loadDomainEntityFile(DomainId, Entity, Id){\r\n const url = Routes.compose(Routes.clientApi.domainEntityFile, { DomainId: DomainId, Entity: Entity, Id: Id });\r\n return this.fetchFile(this.baseApiAddress + url, {}, Entity + ' File'); \r\n }\r\n\r\n async updateDomainEntityFile(DomainId, Entity, Id, Data){\r\n const url = Routes.compose(Routes.clientApi.domainEntityFile, { DomainId: DomainId, Entity: Entity, Id: Id });\r\n return this.fetchFile(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(Data) }, null); \r\n } \r\n\r\n \tasync uploadDomainFile(Entity, Item, uploadUrl){\r\n let url = Routes.compose(uploadUrl, { Entity: Entity });\r\n return this.fetchFile(this.baseApiAddress + url, { method: 'POST', body: Item }, null); \r\n } \r\n async regenerateProjections(DomainId, ScheduleId, isSilent){\r\n const url = Routes.compose(Routes.clientApi.projections, { DomainId, ScheduleId }, 'output=1');\r\n return this.fetch(this.baseApiAddress + url, {}, 'Projections', isSilent); \r\n } \r\n\r\n async loadAdminEntity(tenantId, entity, entityId){ \r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: entity, EntityId: entityId});\r\n return this.fetch(this.baseApiAddress + url, {}, entity); \r\n } \r\n\r\n async createAdminEntity(tenantId, entity, newItem, entityId){\r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: entity, EntityId:entityId ? entityId:\"\"});\r\n return this.fetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(newItem) }, entity); \r\n }\r\n\r\n async deleteAdminEntity(tenantId, entity, ids){\r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: entity, EntityId:\"\" });\r\n return this.fetch(this.baseApiAddress + url, { method: 'DELETE', body: JSON.stringify(ids) }, entity); \r\n }\r\n\r\n async updateAdminEntity(tenantId, entity, item){\r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: entity, EntityId:\"\" });\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(item) }, entity); \r\n } \r\n\r\n async importAdminEntity(tenantId, entity, items, isSilent){\r\n const url = Routes.compose(Routes.adminApi.adminEntityImport, { TenantId: tenantId, Entity: entity, EntityId:\"\" });\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(items) }, isSilent ? null : entity); \r\n } \r\n \r\n async switchTenant(newTenantId){\r\n const url = Routes.compose(Routes.adminApi.switchTenant, {});\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify({ TenantId: newTenantId }) }, 'Tenants'); \r\n } \r\n \r\n async auditUsers(tenantId){ \r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: 'users' });\r\n return this.fetch(this.baseApiAddress + url + '?operation=audit', {}, 'Users'); \r\n } \r\n \r\n async auditLogins(tenantId){ \r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: 'users' });\r\n return this.fetch(this.baseApiAddress + url + '?operation=logins', {}, 'Users'); \r\n } \r\n\r\n async updateUser(newUserObj){ \r\n const url = Routes.compose(Routes.clientApi.users, {});\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(newUserObj) }); \r\n } \r\n\r\n async generateUserToken(tenantId, userId){ \r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: 'users' });\r\n return this.fetch(this.baseApiAddress + url + '?operation=generateToken', { method: 'POST', body: JSON.stringify({ UserId: userId }) }, 'Users'); \r\n } \r\n \r\n async uptimeReport(dateStr){ \r\n const url = Routes.compose(Routes.adminApi.uptimeReport, {});\r\n return this.fetch(this.baseApiAddress + url + '?since=' + dateStr, {}, 'Uptime'); \r\n } \r\n \r\n async notify(messageDetails){ \r\n const url = Routes.compose(Routes.clientApi.notify, {});\r\n return this.fetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(messageDetails) }); \r\n } \r\n\r\n async loadViaProxy(urlToProxy) {\r\n const url = Routes.compose(Routes.clientApi.proxy, {}, { url: urlToProxy });\r\n return this.fetch(this.baseApiAddress + url, {});\r\n } \r\n \r\n async loginFetch(url, options, itemName, isSilent){ \r\n let defaultOptions = {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache', \r\n signal: this.abortController.signal, \r\n headers: {\r\n 'Content-Type':'application/json' \r\n }\r\n }\r\n\r\n \r\n let newOptions = Object.assign(defaultOptions, options);\r\n \r\n return await fetch(url, newOptions)\r\n .then(responseText => {\r\n return responseText.json()\r\n })\r\n .then(responseObj => {\r\n if (responseObj.status === 200){\r\n return responseObj.data\r\n }else{\r\n throw responseObj;\r\n }\r\n }) \r\n .catch((ex) => { \r\n console.log('API Error:', ex); \r\n throw ex;\r\n })\r\n .finally(() => {\r\n // if (itemName && !isSilent)EM.dispatch(fetchingActions.endFetch(\"Authentication\")); \r\n });\r\n }\r\n\r\n async sendGridStats({campaignId, start_date}) {\r\n const url = Routes.compose(Routes.clientApi.sendGridStats, {campaignId, start_date});\r\n return this.fetch(this.baseApiAddress + url); \r\n } \r\n\r\n async fetch(url, options, itemName, isSilent){ \r\n if (itemName && !isSilent){\r\n EM.dispatch(fetchingActions.startFetch(itemName))\r\n }; \r\n let defaultOptions = {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache', \r\n signal: this.abortController.signal, \r\n headers: { \r\n 'Content-Type':'application/json' \r\n }\r\n }\r\n\r\n let allowAnonymous = await this.Authenticator.allowAnonymous(); \r\n var token = '' ;\r\n if(allowAnonymous!==true)\r\n {\r\n token = await this.Authenticator.acquireToken(); \r\n if (!token){\r\n throw { message: 'Token acquisition failed.', name: 'acquisitionFailure'};\r\n }\r\n defaultOptions.headers.Authorization =token;\r\n } \r\n \r\n let newOptions = Object.assign(defaultOptions, options);\r\n return await fetch(url, newOptions)\r\n .then(responseText => {\r\n return responseText.json()\r\n })\r\n .then(responseObj => { \r\n if (responseObj.status === 200){\r\n return responseObj.data\r\n }else{\r\n throw responseObj;\r\n }\r\n }) \r\n .catch((ex) => { \r\n if (ex instanceof TypeError && ex.message === \"Failed to fetch\") {\r\n throw 'Network Error: Please check your internet connection'\r\n } else { \r\n console.log('API Error:', ex); \r\n throw ex;\r\n }\r\n })\r\n .finally(() => {\r\n if (itemName && !isSilent)EM.dispatch(fetchingActions.endFetch(itemName)); \r\n });\r\n }\r\n\r\n async fetchFile(url, options, itemName, isSilent){ \r\n if (itemName && !isSilent)EM.dispatch(fetchingActions.startFetch(itemName)); \r\n\r\n var token = await this.Authenticator.acquireToken();\r\n if (!token){\r\n throw { message: 'Token acquisition failed.', name: 'acquisitionFailure'};\r\n }\r\n\r\n let defaultOptions = {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache', \r\n headers: {\r\n 'Authorization': token \r\n }\r\n }\r\n let newOptions = Object.assign(defaultOptions, options);\r\n \r\n return await fetch(url, newOptions)\r\n .then(responseText => {\r\n return responseText.json()\r\n })\r\n .then(responseObj => {\r\n if (responseObj.status === 'error'){\r\n throw responseObj;\r\n }else{\r\n return responseObj;\r\n }\r\n }) \r\n .catch((ex) => {\r\n console.log('API Error:', ex);\r\n throw ex;\r\n })\r\n .finally(() => {\r\n if (itemName && !isSilent)EM.dispatch(fetchingActions.endFetch(itemName)); \r\n });\r\n } \r\n \r\n async fetchStaticJson(url, options, itemName){ \r\n if (itemName)EM.dispatch(fetchingActions.startFetch(itemName)); \r\n return await fetch(url, options)\r\n .then(responseText => {\r\n return responseText.json()\r\n }) \r\n .catch(function (ex, b) {\r\n console.log('Fetch Static Error:', ex);\r\n throw ex;\r\n })\r\n .finally(() => {\r\n if (itemName)EM.dispatch(fetchingActions.endFetch(itemName)); \r\n });\r\n } \r\n \r\n async fetchStaticText(url, options){ \r\n return await fetch(url, options)\r\n .then(responseText => {\r\n return responseText.text()\r\n }) \r\n .catch(function (ex, b) {\r\n console.log('Fetch Static Error:', ex);\r\n throw ex;\r\n });\r\n } \r\n}","/* global msal */\r\n/* eslint no-throw-literal: 0 */\r\nimport Common from \"../util/Common\";\r\nimport API from \"./API\";\r\nexport default class Authenticator {\r\n\r\n constructor() {\r\n this.mode = \"Enterprise\";\r\n this.loginStyle = \"popup\";\r\n\r\n this.clientId = \"604417e0-0d21-48fa-895a-1b0a2e9a3db6\";\r\n this.config = {\r\n cache: {\r\n cacheLocation: \"localStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {},\r\n },\r\n };\r\n\r\n\r\n let currentAccount = window.localStorage.getItem(\"fo.account\");\r\n this.account = currentAccount ? JSON.parse(currentAccount):null;\r\n\r\n let usernamePref = window.localStorage.getItem(\"fo.username\");\r\n\r\n this.switchAccount = this.switchAccount.bind(this);\r\n this.logout = this.logout.bind(this);\r\n this.api = new API(this, null, \"Enterprise\");\r\n }\r\n\r\n async login(credentials) {\r\n var loginResponse = await this.api.login(credentials.email,credentials.password);\r\n if (loginResponse && loginResponse.user && loginResponse.user.userId > 0) {\r\n let user = loginResponse.user;\r\n let username = user.emailAddress;\r\n let prefUsername = `${user.firstName} ${user.lastName}`; \r\n window.localStorage.setItem(\"fo.username\", username);\r\n window.localStorage.setItem(\"fo.preferred_username\", prefUsername);\r\n window.localStorage.setItem(\"fo.authToken\", loginResponse.token);\r\n \r\n this.account = loginResponse.user;\r\n window.localStorage.setItem(\"fo.account\",JSON.stringify(this.account));\r\n } else {\r\n throw this.loginFailure();\r\n }\r\n }\r\n\r\n async forgetPassword(credentials) {\r\n return await this.api.forgetPasword(credentials.email);\r\n \r\n }\r\n \r\n async register(body) {\r\n return await this.api.register(body);\r\n }\r\n async registerCompany(body) {\r\n return await this.api.registerCompany(body);\r\n }\r\n async createUser(body) {\r\n return await this.api.createUser(body);\r\n }\r\n\r\n switchAccount() {\r\n this.login(\"select_account\");\r\n }\r\n\r\n logout() {\r\n window.localStorage.removeItem(\"rm.login_mode\");\r\n window.localStorage.clear();\r\n\r\n window.location.href = '/';\r\n\r\n }\r\n\r\n async isAuthenticated() {\r\n return !!this.account;\r\n }\r\n\r\n allowAnonymous() {\r\n return new Promise((resolve, reject) => {\r\n let allowAnonymous = window.sessionStorage.getItem('fo.allowAnonymous');\r\n resolve(allowAnonymous===\"true\"); \r\n });\r\n }\r\n\r\n acquireToken() {\r\n let self = this;\r\n return new Promise((resolve, reject) => {\r\n let token = window.localStorage.getItem(\"fo.authToken\");\r\n if (token) resolve(\"Bearer \" + token);\r\n else reject(self.tokenFailure(\"Not authorized\"));\r\n });\r\n }\r\n\r\n loginFailure(error) {\r\n return {\r\n message: \"Login failed. Possibly cancelled by user or popup blocked.\",\r\n };\r\n }\r\n\r\n tokenFailure(error) {\r\n return {\r\n message: \"Token acquisition failed. \" + error.toString(),\r\n name: \"acquisitionFailure\",\r\n };\r\n }\r\n\r\n getUsername() {\r\n let account = this.account;\r\n return account.username;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport function globalError(error) {\r\n return { type: types.GLOBAL_ERROR, data: error };\r\n}\r\n\r\nexport function localError(eid, error) {\r\n return { type: types.LOCAL_ERROR, eid: eid, data: error };\r\n}\r\n\r\nexport function clearLocalError(eid) {\r\n return { type: types.CLEAR_LOCAL_ERROR, eid: eid };\r\n}","import * as types from '../actionTypes';\r\nimport * as errorActions from './error';\r\n\r\nexport function loadAccountSuccess(accountData) {\r\n return { type: types.LOAD_ACCOUNT, data: accountData };\r\n}\r\n\r\nexport function loadAccount(loginMode) {\r\n return (dispatch, getState, api) => {\r\n let account = window.localStorage.getItem(\"fo.account\");\r\n let data = JSON.parse(account); \r\n if(data)\r\n return dispatch(loadAccountSuccess(data));\r\n else{\r\n dispatch(errorActions.globalError('User not found'));\r\n throw \"User not found\";\r\n }\r\n };\r\n}\r\n","import * as types from '../actionTypes';\r\nimport * as errorActions from './error';\r\n\r\nexport function loadTranslationSuccess(lng) {\r\n return { type: types.LOAD_TRANSLATION, data: lng };\r\n}\r\n\r\nexport function loadTranslation(lng, fallback) {\r\n return (dispatch, getState, api) => {\r\n return api.loadTranslation(lng).then(data => {\r\n data.name = lng;\r\n return dispatch(loadTranslationSuccess(data));\r\n }).catch(error => {\r\n return api.loadTranslation(fallback).then(data => {\r\n data.name = fallback;\r\n return dispatch(loadTranslationSuccess(data));\r\n }).catch(error => {\r\n console.log(error);\r\n dispatch(errorActions.globalError({ message: 'Translation file could not be loaded.' }));\r\n throw error;\r\n });\r\n });\r\n };\r\n}","export default class LocalStorageManager{\r\n constructor(store){\r\n this.localNamespace = 'fo.'; \r\n }\r\n\r\n set(key, value){\r\n let toSave = value;\r\n if (typeof value !== 'string'){\r\n toSave = JSON.stringify(value);\r\n }\r\n localStorage.setItem(this.localNamespace + key, toSave);\r\n }\r\n\r\n get(key){\r\n return localStorage.getItem(this.localNamespace + key);\r\n }\r\n\r\n remove(key){\r\n localStorage.removeItem(this.localNamespace + key);\r\n }\r\n\r\n keys(){\r\n return Object.keys(localStorage).filter(key => { \r\n return key.indexOf(this.localNamespace) === 0;\r\n }).map(key => {\r\n return key.replace(this.localNamespace, '');\r\n });\r\n }\r\n}","import Routes from '../app/Routes';\r\n\r\nexport default [\r\n {\r\n name: 'account', \r\n idField: 'userId'\r\n },\r\n {\r\n name: 'companies', \r\n apiName:'company',\r\n singleName:'company', \r\n idField: 'companyId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'dashboard', \r\n apiName:'company/dashboardcounts',\r\n getUrl:Routes.clientApi.dashboardCount,\r\n },\r\n {\r\n name: 'futureEvents', \r\n apiName:'futureeventsdetails',\r\n getUrl:Routes.clientApi.futureEventsDetails,\r\n idField: 'eventTypeId',\r\n uniqueness: [ 'eventTypeId' ]\r\n },\r\n {\r\n name: 'noOrderUsers', \r\n apiName:'noOrderUsers',\r\n getUrl:Routes.clientApi.noOrdersUsers,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'userNoOrderUsers', \r\n apiName:'userNoOrder',\r\n getUrl:Routes.clientApi.userNoOrdersUsers,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'totalCompletedOrders', \r\n apiName:'totalCompletedOrders',\r\n getUrl:Routes.clientApi.totalCompletedOrders,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'userCompletedOrders', \r\n apiName:'userCompletedOrders',\r\n getUrl:Routes.clientApi.userCompletedOrders,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'incompleteOrders', \r\n apiName:'incompleteOrders',\r\n getUrl:Routes.clientApi.incompleteOrders,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'userIncompleteOrders', \r\n apiName:'userIncompleteOrders',\r\n getUrl:Routes.clientApi.userIncompleteOrders,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'eventTypes', \r\n apiName:'location/eventtypes',\r\n getUrl:Routes.clientApi.eventTypes,\r\n createUrl:Routes.clientApi.eventTypeCreate,\r\n editUrl:Routes.clientApi.eventTypeCreate,\r\n deleteUrl:Routes.clientApi.eventTypeCreate,\r\n idField: 'eventTypeId',\r\n uniqueness: [ 'eventTypeId' ]\r\n },\r\n {\r\n name: 'eventGroups', \r\n apiName:'location/eventgroups',\r\n getUrl:Routes.clientApi.eventgroups,\r\n createUrl:Routes.clientApi.eventgroupsCreate,\r\n editUrl:Routes.clientApi.eventgroupsCreate,\r\n deleteUrl:Routes.clientApi.eventgroupsCreate,\r\n assignUserUrl:Routes.clientApi.eventgroupsAssignUsers,\r\n singleName:'Group', \r\n idField: 'eventGroupId',\r\n uniqueness: [ 'eventGroupId' ]\r\n },\r\n {\r\n name: 'companyConfig', \r\n apiName:'companyConfig',\r\n singleName:'companyConfig', \r\n idField: 'companyConfigId',\r\n uniqueness: [ 'companyConfigId' ]\r\n },\r\n {\r\n name: 'locations', \r\n singleName:'location',\r\n apiName:'location',\r\n createUrl:Routes.clientApi.childEntity,\r\n editUrl:Routes.clientApi.childEntity,\r\n deleteUrl:Routes.clientApi.childEntity,\r\n idField: 'locationId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'compaign', \r\n apiName:'marketing/compaign',\r\n getUrl:Routes.clientApi.compaign,\r\n createUrl:Routes.clientApi.compaignCUD,\r\n editUrl:Routes.clientApi.compaignCUD,\r\n deleteUrl:Routes.clientApi.compaignCUD,\r\n idField: 'marketingCompaignId',\r\n uniqueness: [ 'marketingCompaignId' ]\r\n },\r\n {\r\n name: 'sendGridStats', \r\n apiName:'marketing/compaign/stats',\r\n getUrl:Routes.clientApi.sendGridStats,\r\n idField: 'date',\r\n },\r\n {\r\n name: 'compaignType', \r\n singleName:'compaignType',\r\n apiName:'marketing/compaigntype',\r\n getUrl:Routes.clientApi.compaignType,\r\n createUrl:Routes.clientApi.compaignTypeCUD,\r\n editUrl:Routes.clientApi.compaignTypeCUD,\r\n deleteUrl:Routes.clientApi.compaignTypeCUD,\r\n idField: 'marketingComaignTypeId',\r\n uniqueness: [ 'marketingComaignTypeId' ]\r\n },\r\n {\r\n name: 'products', \r\n singleName:'product',\r\n apiName:'product',\r\n createUrl:Routes.clientApi.addUpdateProduct,\r\n editUrl:Routes.clientApi.addUpdateProduct,\r\n deleteUrl:Routes.clientApi.addUpdateProduct,\r\n idField: 'productId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'companyProducts', \r\n singleName:'companyProducts',\r\n apiName:'companyProducts', \r\n idField: 'companyProductId',\r\n uniqueness: [ 'companyProductId' ]\r\n },\r\n {\r\n name: 'intervals', \r\n apiName:'interval',\r\n getUrl:Routes.clientApi.intervals,\r\n createUrl:Routes.clientApi.intervals,\r\n editUrl:Routes.clientApi.intervals,\r\n deleteUrl:Routes.clientApi.intervals,\r\n idField: 'intervalId',\r\n uniqueness: [ 'intervalId' ]\r\n },\r\n {\r\n name: 'groupUsers', \r\n apiName:'groupUsers',\r\n getUrl:Routes.clientApi.groupUsers,\r\n createUrl:Routes.clientApi.assignGroupUsers,\r\n deleteUrl:Routes.clientApi.unassignGroupUsers,\r\n idField: 'userId',\r\n uniqueness: [ 'userId' ]\r\n },\r\n {\r\n name: 'eventpackage', \r\n apiName:'eventpackage',\r\n getUrl:Routes.clientApi.eventPackages,\r\n createUrl:Routes.clientApi.eventPackages,\r\n editUrl:Routes.clientApi.eventPackages,\r\n deleteUrl:Routes.clientApi.eventPackages,\r\n idField: 'eventPackageId',\r\n uniqueness: [ 'eventPackageId' ]\r\n },\r\n {\r\n name: 'events', \r\n singleName:'event',\r\n apiName:'event',\r\n getUrl:Routes.clientApi.events,\r\n editUrl:Routes.clientApi.updateEvent,\r\n getSingleUrl:Routes.clientApi.singleEvent,\r\n idField: 'eventId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'eventPromotion', \r\n apiName:'eventPromotion',\r\n getUrl:Routes.clientApi.eventPromotion,\r\n idField: 'eventId',\r\n uniqueness: [ 'eventId' ]\r\n },\r\n {\r\n name: 'users', \r\n apiName:'user',\r\n singleName:'user',\r\n idField: 'userId',\r\n uniqueness: [ 'firstName' ]\r\n },\r\n {\r\n name: 'userDetails', \r\n apiName:'user',\r\n getUrl:Routes.clientApi.userDetails,\r\n idField: 'userId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'userScheduler', \r\n apiName:'calendar',\r\n getUrl:Routes.clientApi.userScheduler,\r\n },\r\n {\r\n name: 'rescheduleAppointment', \r\n apiName:'rescheduleAppointment',\r\n getUrl:Routes.clientApi.userScheduler,\r\n },\r\n {\r\n name: 'userSessions', \r\n apiName:'userSession',\r\n getUrl:Routes.clientApi.userSessions,\r\n editUrl:Routes.clientApi.userSessions,\r\n idField: 'userSessionId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'userSessionImage', \r\n apiName:'usersessionimage',\r\n getUrl:Routes.clientApi.userSessionImage,\r\n idField: 'userSessionId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'appointments', \r\n apiName:'appointment',\r\n getUrl:Routes.clientApi.appointments,\r\n idField: 'appointmentId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'availableDays', \r\n apiName:'calendarmonthsmall',\r\n searchUrl:Routes.clientApi.locationDates \r\n },\r\n {\r\n name: 'availableSlots', \r\n apiName:'slots',\r\n searchUrl:Routes.clientApi.locationSlots,\r\n searchUrlV2:Routes.clientApi.locationSlotsV2, \r\n },\r\n {\r\n name: 'calendar', \r\n apiName:'calendar'\r\n },\r\n {\r\n name: 'userTypes', \r\n apiName:'userTypes',\r\n idField: 'userTypeId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name:'prepaid',\r\n apiName:'prepaid',\r\n getUrl:Routes.clientApi.prepaids,\r\n idField:'prepaidId',\r\n uniqueness:['prepaidId']\r\n },\r\n {\r\n name:'printOrders',\r\n apiName:'order',\r\n getUrl:Routes.clientApi.printOrders,\r\n requeueUrl:Routes.clientApi.orderRequeue,\r\n idField:'printOrderId',\r\n uniqueness:['printOrderId']\r\n },\r\n {\r\n name:'printOrderLineItems',\r\n apiName:'order',\r\n idField:'printOrderLineItemId',\r\n uniqueness:['printOrderLineItemId']\r\n },\r\n {\r\n name:'orderFulfillment',\r\n apiName:'order',\r\n getUrl:Routes.clientApi.printOrders,\r\n idField:'printOrderId',\r\n uniqueness:['printOrderId']\r\n },\r\n {\r\n name:'completedOrders',\r\n apiName:'order',\r\n getUrl:Routes.clientApi.completedOrders,\r\n idField:'printOrderId',\r\n uniqueness:['printOrderId']\r\n },\r\n {\r\n name:'presets',\r\n apiName:'presets',\r\n uploadUrl:Routes.clientApi.presetsUpload\r\n },\r\n {\r\n name:'export',\r\n apiName:'export',\r\n },\r\n {\r\n name: 'role', \r\n apiName:'role',\r\n idField: 'id',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'eventOrder', \r\n apiName:'order',\r\n createUrl:Routes.clientApi.eventOrder, \r\n }\r\n]","/* global EM */\r\nimport * as types from '../actionTypes';\r\n\r\nexport function clearDomainEntity(entity) {\r\n return { type: 'CLEAR_' + entity.name.toUpperCase() };\r\n}\r\n\r\nexport function loadEntityByParent(entity, isSilent, parentDetails) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.loadEntityByParent(apiName, isSilent, parentDetails, entity.getUrl).then(data => {\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function loadSingleEntity(entity, isSilent, params) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.loadSingleEntity(apiName, isSilent, params, entity.getSingleUrl).then(data => {\r\n return dispatch({ type: `LOAD_${entityName.toUpperCase()}`, data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function searchEntity(entity, isSilent, params, qs) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.searchEntity(apiName, isSilent, params, entity.searchUrl, qs).then(data => {\r\n console.log(`LOAD_${entityName.toUpperCase()}`);\r\n return dispatch({ type: `LOAD_${entityName.toUpperCase()}`, data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function loadDomainEntity(entity, isSilent) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.loadDomainEntity(apiName, isSilent).then(data => {\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function createDomainEntity(entity, newItem, parentRecordDetail) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.createDomainEntity(apiName, newItem, entity.createUrl, parentRecordDetail).then(data => {\r\n return dispatch({ type: 'CREATE_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function createBulkDomainEntity(domainId, entity, newItems) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.createDomainEntity(domainId, entityName, newItems).then(data => {\r\n return dispatch({ type: 'CREATE_BULK_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function updateDomainEntity(entity, newItem, oldItem, parentRecordDetail) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n //Optimisitically update the value for immediate re-render\r\n dispatch({ type: 'UPDATE_' + entityName.toUpperCase(), data: newItem });\r\n return api.updateDomainEntity(apiName, newItem, entity.editUrl, parentRecordDetail).catch(error => {\r\n EM.setError(error);\r\n return dispatch({ type: 'UPDATE_' + entityName.toUpperCase(), data: oldItem });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteDomainEntity(entity, ids, parentRecordDetail) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.deleteDomainEntity(apiName, ids, entity.deleteUrl, parentRecordDetail).then(data => {\r\n return dispatch({ type: 'DELETE_' + entityName.toUpperCase(), data: ids });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function clearAllDomainEntity(domainId, entity) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.clearDomainEntity(domainId, entityName).then(data => {\r\n return dispatch({ type: 'CLEARALL_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function importDomainEntity(domainId, entity, items, isSilent, modsOnly) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.importDomainEntity(domainId, entityName, items, isSilent, modsOnly).then(data => {\r\n console.log(`LOAD_${entityName.toUpperCase()}`);\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function loadAdminEntity(tenantId, entity, entityId) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.loadAdminEntity(tenantId, entityName, entityId ? entityId : \"\").then(data => {\r\n console.log(`LOAD_${entityName.toUpperCase()}`);\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function createAdminEntity(tenantId, entity, newItem, entityId) {\r\n let entityName = entity.name;\r\n\r\n return (dispatch, getState, api) => {\r\n return api.createAdminEntity(tenantId, entityName, newItem, entityId).then(data => {\r\n return dispatch({ type: 'CREATE_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function deleteAdminEntity(tenantId, entity, ids) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.deleteAdminEntity(tenantId, entityName, ids).then(data => {\r\n return dispatch({ type: 'DELETE_' + entityName.toUpperCase(), data: ids });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function updateAdminEntity(tenantId, entity, newItem, oldItem) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n dispatch({ type: 'UPDATE_' + entityName.toUpperCase(), data: newItem });\r\n return api.updateAdminEntity(tenantId, entityName, newItem).catch(error => {\r\n EM.setError(error);\r\n return dispatch({ type: 'UPDATE_' + entityName.toUpperCase(), data: oldItem });\r\n });\r\n };\r\n}\r\n\r\nexport function importAdminEntity(tenantId, entity, items, isSilent) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.importAdminEntity(tenantId, entityName, items, isSilent).then(data => {\r\n console.log(`LOAD_${entityName.toUpperCase()}`);\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });;\r\n };\r\n}\r\n\r\nexport function auditDomainEntity(domainId, entity, entityId) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.auditDomainEntity(domainId, entityName, entityId).then(data => {\r\n return dispatch({ type: types.AUDIT_ENTITY_ITEM, key: entityName + entityId, data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function execute(entity, data, requestUrl, qs, parentRecordDetail, method,executeDispatch) {\r\n // execute(Entity,data,requestUrl,qs,parentRecordDetail, method)\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.execute(apiName, data, requestUrl, qs, parentRecordDetail, method).then(data => {\r\n if(executeDispatch ===true)\r\n return dispatch({ type: getDispatchAction(method) + entityName.toUpperCase(), data: data });\r\n return data;\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nfunction getDispatchAction(method) {\r\n switch (method) {\r\n case 'GET':\r\n return 'LOAD_';\r\n case 'POST':\r\n return 'CREATE_';\r\n case 'PUT':\r\n return 'UPDATE_';\r\n case 'DELETE':\r\n return 'DELETE_';\r\n default:\r\n return '';\r\n }\r\n}","/* global EM */\r\nimport _ from 'underscore';\r\nimport * as entityActions from '../entities/actions/entities';\r\nimport * as fileActions from '../entities/actions/files';\r\n\r\nexport default class Entity {\r\n constructor(store, entityTypeDef) {\r\n this.store = store;\r\n this.dispatch = store.dispatch;\r\n\r\n this.entityTypeDef = entityTypeDef;\r\n this.idField = entityTypeDef.idField;\r\n this.apiName = entityTypeDef.apiName;\r\n this.createUrl = entityTypeDef.createUrl;\r\n this.editUrl = entityTypeDef.editUrl;\r\n this.deleteUrl = entityTypeDef.deleteUrl;\r\n this.getUrl = entityTypeDef.getUrl;\r\n this.uploadUrl = entityTypeDef.uploadUrl;\r\n this.getSingleUrl = entityTypeDef.getSingleUrl;\r\n this.singleName = entityTypeDef.singleName;\r\n this.name = entityTypeDef.name;\r\n this.allowDuplicates = entityTypeDef.allowDuplicates || false;\r\n this.modelName = (entityTypeDef.modelName || this.name).capitalize();\r\n this.modelNameSingular = entityTypeDef.modelNameSingular || (this.modelName.slice(-1) === 's' ? this.modelName.slice(0, -1) : this.modelName);\r\n this.single = false;\r\n this.searchUrl = entityTypeDef.searchUrl;\r\n this.uniqueness = entityTypeDef.uniqueness || ['Name'];\r\n this.isFileListingTable = entityTypeDef.isFileListingTable ? true : false;\r\n\r\n if (this.isFileListingTable) {\r\n this.fileType = entityTypeDef.fileTypeClass;\r\n }\r\n\r\n this.optionList = null;\r\n this.valueList = null;\r\n this.idList = null;\r\n this.keyList = null;\r\n }\r\n\r\n resetCachedLists() {\r\n this.optionList = null;\r\n this.valueList = null;\r\n this.idList = null;\r\n this.keyList = null;\r\n }\r\n\r\n async load(force, isSilent) {\r\n await this.dispatch(entityActions.loadDomainEntity(this, isSilent));\r\n this.resetCachedLists();\r\n }\r\n\r\n async loadEntityByParent(parentDetail, force, isSilent) {\r\n await this.dispatch(entityActions.loadEntityByParent(this, isSilent, parentDetail));\r\n this.resetCachedLists();\r\n }\r\n async loadSingleEntity(params, force, isSilent) {\r\n await this.dispatch(entityActions.loadSingleEntity(this, isSilent, params));\r\n this.resetCachedLists();\r\n }\r\n async searchEntity(params, qs, force, isSilent) {\r\n await this.dispatch(entityActions.searchEntity(this, isSilent, params, qs));\r\n this.resetCachedLists();\r\n }\r\n async create(newItem, parentRecordDetail) {\r\n let state = this.store.getState();\r\n let created = await this.dispatch(entityActions.createDomainEntity(this, newItem, parentRecordDetail));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.account.userId, this);\r\n return created;\r\n }\r\n\r\n async createBulk(newItems, entityId) {\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n let created = await this.dispatch(entityActions.createBulkDomainEntity(state.domain.DomainId, this, newItems, entityId));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.domain.DomainId, this);\r\n return created;\r\n }\r\n\r\n async delete(ids, parentRecordDetail) {\r\n let state = this.store.getState();\r\n let deleted = await this.dispatch(entityActions.deleteDomainEntity(this, ids, parentRecordDetail));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.domain.DomainId, this);\r\n return deleted;\r\n }\r\n\r\n async update(oldItem, newItem, parentRecordDetail) {\r\n let state = this.store.getState();\r\n let updated = await this.dispatch(entityActions.updateDomainEntity(this, newItem, oldItem, parentRecordDetail));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.account.userId, this);\r\n return updated;\r\n }\r\n\r\n async import(items, isSilent, modsOnly) {\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n let imported = this.dispatch(entityActions.importDomainEntity(state.domain.DomainId, this, items, isSilent, modsOnly));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.domain.DomainId, this);\r\n return imported;\r\n }\r\n\r\n async audit(itemId) {\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n let audit = await this.dispatch(entityActions.auditDomainEntity(state.domain.DomainId, this, itemId));\r\n return audit.data;\r\n }\r\n\r\n async clearAll() {\r\n if (EM.debugMode) {\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n await this.dispatch(entityActions.clearAllDomainEntity(state.domain.DomainId, this));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.domain.DomainId, this);\r\n }\r\n }\r\n\r\n makeFileName(id, type) {\r\n return this.name + '-' + id + (type || '');\r\n }\r\n\r\n async loadFile(id, type, force) {\r\n if (!this.isFileListingTable) return;\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n if (!state.files[this.makeFileName(id, type)] || force) {\r\n return await this.dispatch(fileActions.loadDomainEntityFile(state.domain.DomainId, this, id));\r\n }\r\n }\r\n\r\n async saveFile(id, data) {\r\n if (!this.isFileListingTable) return;\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n return await this.dispatch(fileActions.updateDomainEntityFileBackground(state.domain.DomainId, this, id, data));\r\n }\r\n async upload(newFile, entityId) {\r\n let state = this.store.getState();\r\n let created = await this.dispatch(fileActions.uploadDomainEntityFile(this, newFile, entityId));\r\n this.resetCachedLists();\r\n return created;\r\n }\r\n async invalidateFile(id) {\r\n if (!this.isFileListingTable) return;\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n return await this.dispatch(fileActions.invalidateFile(state.domain.DomainId, this, id));\r\n }\r\n\r\n async loadDefaultItem() {\r\n let self = this;\r\n await self.load();\r\n return this.findDefaultItem();\r\n }\r\n\r\n clear() {\r\n this.resetCachedLists();\r\n this.dispatch(entityActions.clearDomainEntity(this));\r\n }\r\n\r\n isLoaded() {\r\n return this.get() ? true : false;\r\n }\r\n\r\n get() {\r\n let state = this.store.getState();\r\n return state[this.name];\r\n }\r\n\r\n getFile(id, type) {\r\n let state = this.store.getState();\r\n return state.files[this.makeFileName(id, type)];\r\n }\r\n\r\n asOptionList(labelField, sortByLbl, valueField) {\r\n let state = this.get();\r\n if (!state) return [];\r\n if (!this.optionList) {\r\n this.optionList = state.map((row) => {\r\n let lbl = row[labelField || 'name'];\r\n if (labelField && typeof labelField === 'function') {\r\n lbl = labelField(row);\r\n }\r\n return { value: row[valueField || this.idField], label: lbl };\r\n });\r\n if (sortByLbl) {\r\n this.optionList = _.sortBy(this.optionList, (item) => {\r\n return item.label;\r\n });\r\n }\r\n }\r\n return this.optionList;\r\n }\r\n\r\n asIndexed() {\r\n let state = this.get();\r\n if (!state) return [];\r\n if (!this.idList) {\r\n this.idList = _.indexBy(state, this.idField.toString());\r\n }\r\n return this.idList;\r\n }\r\n\r\n asKeyed() {\r\n let state = this.get();\r\n if (!state) return [];\r\n if (!this.keyList) {\r\n this.keyList = _.indexBy(state, (item) => {\r\n return this.makeKeyFromItem(item);\r\n });\r\n }\r\n return this.keyList;\r\n }\r\n\r\n asValueList(labelField) {\r\n let state = this.get();\r\n if (!state) return [];\r\n if (!this.valueList) {\r\n this.valueList = {};\r\n state.forEach((row) => {\r\n this.valueList[row[labelField || 'Name']] = row[this.idField];\r\n });\r\n }\r\n return this.valueList;\r\n }\r\n\r\n makeKeyFromItem(item) {\r\n let fieldValues = this.uniqueness.map((objKey) => {\r\n return item[objKey] || '';\r\n });\r\n\r\n return fieldValues.join('.');\r\n }\r\n\r\n findItem(item) {\r\n let key = this.makeKeyFromItem(item);\r\n if (!key) {\r\n console.log('Key could not be created for entity. Check that the uniqueness field is set in entityTypes: ' + this.name);\r\n return null;\r\n }\r\n return this.findByKey(key);\r\n }\r\n\r\n findByKey(key) {\r\n return this.asKeyed()[key];\r\n }\r\n\r\n hasDuplicates() {\r\n let state = this.get();\r\n if (!state) return false;\r\n let dupes = {};\r\n for (var i = 0; i < state.length; i++) {\r\n let item = state[i];\r\n if (typeof item.Active !== 'undefined' && item.Active === false) continue;\r\n let key = this.makeKeyFromItem(item);\r\n if (dupes[key]) {\r\n EM.warn('First duplicate found: ', item);\r\n return true;\r\n } else {\r\n dupes[key] = true;\r\n }\r\n };\r\n return false;\r\n }\r\n\r\n findDuplicates() {\r\n let state = this.get();\r\n if (!state) return false;\r\n let keys = {};\r\n let dupes = {};\r\n for (var i = 0; i < state.length; i++) {\r\n let item = state[i];\r\n if (typeof item.Active !== 'undefined' && item.Active === false) continue;\r\n let key = this.makeKeyFromItem(item);\r\n if (keys[key]) {\r\n dupes[item[this.idField]] = true;\r\n }\r\n keys[key] = true;\r\n };\r\n return dupes;\r\n }\r\n\r\n findDefaultItem() {\r\n let self = this;\r\n let currentSet = self.get();\r\n if (!currentSet) return null;\r\n\r\n let defaultItem = currentSet.find(item => { return item.IsDefault });\r\n if (!defaultItem) {\r\n console.warn('No default. Returning the newest item instead.');\r\n defaultItem = currentSet[currentSet.length - 1];\r\n }\r\n\r\n return defaultItem;\r\n }\r\n\r\n lookupValue(id, fld) {\r\n let found = this.asIndexed()[id];\r\n return found ? found[fld || 'name'] : '';\r\n }\r\n\r\n lookupId(value, fld) {\r\n return this.asValueList(fld)[value];\r\n }\r\n\r\n byId(id) {\r\n return this.asIndexed()[id];\r\n }\r\n\r\n //Translation helpers\r\n t(key, exact) {\r\n return EM.t(this.name + '.' + key, exact);\r\n }\r\n\r\n columns(key, exact) {\r\n return EM.t(this.name + '.columns.' + key, exact);\r\n }\r\n\r\n isOverridden() {\r\n return EM.isOverridden(this);\r\n }\r\n\r\n async executePost(data,qs,requestUrl, parentRecordDetail,executeDispatch){ \r\n executeDispatch = typeof executeDispatch === 'undefined' ? true : executeDispatch;\r\n let created = await this.dispatch(entityActions.execute(this,data,requestUrl,qs,parentRecordDetail,'POST',executeDispatch)); \r\n this.resetCachedLists(); \r\n return created ? created.data : {};\r\n }\r\n\r\n async executePut(data,qs,requestUrl, parentRecordDetail,executeDispatch){ \r\n executeDispatch = typeof executeDispatch === 'undefined' ? true : executeDispatch;\r\n let created = await this.dispatch(entityActions.execute(this,data,requestUrl,qs,parentRecordDetail,'PUT',executeDispatch)); \r\n \r\n this.resetCachedLists(); \r\n if(created===undefined)return\r\n return created.data ? created.data : created;\r\n }\r\n\r\n async executeGet(data,qs,requestUrl, parentRecordDetail,executeDispatch){ \r\n executeDispatch = typeof executeDispatch === 'undefined' ? true : executeDispatch;\r\n let result = await this.dispatch(entityActions.execute(this,data,requestUrl,qs,parentRecordDetail,'GET',executeDispatch)); \r\n this.resetCachedLists(); \r\n return result && result.data ? result.data : result;\r\n }\r\n\r\n async executeDelete(data,qs,requestUrl, parentRecordDetail,executeDispatch){ \r\n executeDispatch = typeof executeDispatch === 'undefined' ? true : executeDispatch;\r\n \r\n let result = await this.dispatch(entityActions.execute(this,data,requestUrl,qs,parentRecordDetail,'DELETE',executeDispatch)); \r\n return result;\r\n }\r\n\r\n}","/* global EM */\r\nimport * as types from '../actionTypes';\r\n\r\nexport function loadDomainEntityFile(domainId, entity, id) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.loadDomainEntityFile(domainId, entityName, id).then(data => { \r\n return dispatch({ type: 'LOAD_FILE', key: entity.makeFileName(id), data: new entity.fileType(data, entityName, id) });\r\n }).catch(error => {\r\n EM.setError(error);\r\n return dispatch({ type: 'FILE_ERROR', key: entity.makeFileName(id) });\r\n });\r\n };\r\n}\r\n\r\nexport function updateDomainEntityFileBackground(domainId, entity, id, data) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.updateDomainEntityFile(domainId, entityName, id, data).then(data => { \r\n return dispatch({ type: 'UPDATE_FILE', key: entity.makeFileName(id) });\r\n }).catch(error => {\r\n EM.setError(error);\r\n return dispatch({ type: 'FILE_ERROR', key: entity.makeFileName(id) });\r\n });\r\n };\r\n}\r\n\r\nexport function invalidateFile(domainId, entity, id) {\r\n return (dispatch, getState, api) => {\r\n return dispatch({ type: 'FILE_ERROR', key: entity.makeFileName(id) });\r\n };\r\n}\r\n\r\nexport function clearFiles() {\r\n return { type: types.CLEAR_FILES };\r\n}\r\n\r\nexport function uploadDomainEntityFile(entity, newFile) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.uploadDomainFile(apiName, newFile,entity.uploadUrl).then(data => {\r\n return dispatch({ type: 'CREATE_' + entityName.toUpperCase(), data: data }); \r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}","import _ from \"underscore\";\r\nimport * as errorActions from \"./actions/error\";\r\nimport * as accountActions from \"./actions/account\";\r\nimport * as translationActions from \"./actions/translation\";\r\nimport * as domainActions from \"./actions/domain\";\r\nimport * as fileActions from \"./actions/files\";\r\nimport * as termsActions from \"./actions/terms\";\r\nimport * as releaseActions from \"./actions/release\";\r\nimport LocalStorageManager from \"../util/LocalStorageManager\";\r\nimport entityTypes from \"./entityTypes\";\r\nimport Entity from \"./Entity\";\r\nimport * as IdbKv from \"idb-keyval\";\r\nimport Routes from \"../app/Routes\";\r\n\r\nexport default class EntityManager {\r\n constructor(store, authenticator, api) {\r\n \r\n this._isInitialized = false;\r\n\r\n this.storage = new LocalStorageManager();\r\n this.store = store;\r\n this.dispatch = store.dispatch;\r\n this.authenticator = authenticator;\r\n this.api = api;\r\n\r\n this.fallbackLanguage = \"en\";\r\n this.fallbackTheme = \"Light\";\r\n this.currentLanguage = this.storage.get(\"lang\") || this.fallbackLanguage;\r\n\r\n this.translation = null; //set after load\r\n this.helpCache = {};\r\n this.languageList = [{ value: \"en\", label: \"English\" }];\r\n if (process.env.REACT_APP_ENV !== \"prod\") {\r\n this.languageList.push({ value: \"dev\", label: \"Dev\" });\r\n }\r\n\r\n this.themeList = [\r\n { label: \"Light\", value: \"Light\" },\r\n { label: \"Dark\", value: \"Dark\" },\r\n ];\r\n this.currentTheme = this.storage.get(\"theme\") || this.fallbackTheme;\r\n\r\n this._debugMode = this.storage.get(\"debug\");\r\n this.helpMode = false;\r\n this.history = null;\r\n\r\n this.domainPermission = null;\r\n this.tenantPermission = null;\r\n this.domainColor = null;\r\n\r\n this.statusMessageRef = null;\r\n this.featureCache = null;\r\n\r\n this.dpCache = {};\r\n\r\n if (window.location.hostname === \"localhost\") {\r\n this.registerLogging();\r\n } else {\r\n this.unregisterLogging();\r\n }\r\n\r\n this.roleNames={\r\n SuperAdmin:'SuperAdmin',\r\n Owner :'Owner',\r\n Admin :'Admin',\r\n Sales :'Sales',\r\n Photographer :'Photographer',\r\n }\r\n this.roles = [\r\n {id:1,name:'SuperAdmin'},\r\n {id:2,name:'Owner'},\r\n {id:3,name:'Admin'},\r\n {id:4,name:'Sales'},\r\n {id:5,name:'Photographer'}\r\n ];\r\n this.baseUrl =window.location.origin;\r\n }\r\n\r\n get debugMode() {\r\n return this._debugMode;\r\n }\r\n\r\n set debugMode(value) {\r\n this._debugMode = value;\r\n if (value) {\r\n this.storage.set(\"debug\", true);\r\n this.registerLogging();\r\n } else {\r\n this.storage.remove(\"debug\");\r\n this.unregisterLogging();\r\n }\r\n }\r\n\r\n async initialize(allowAnonymous) {\r\n try {\r\n await this.dispatch(\r\n translationActions.loadTranslation(\r\n this.currentLanguage,\r\n this.fallbackLanguage\r\n )\r\n ).then((action) => {\r\n let state = this.store.getState();\r\n if (state.translation) {\r\n this.translation = state.translation;\r\n this.storage.set(\"lang\", state.translation.name);\r\n }\r\n });\r\n window.sessionStorage.setItem('fo.allowAnonymous',allowAnonymous);\r\n if (allowAnonymous === true) {\r\n } else {\r\n let accountDispatchedResponse = await this.dispatch(\r\n accountActions.loadAccount(this.authenticator.mode)\r\n );\r\n this.me = accountDispatchedResponse.data;\r\n }\r\n\r\n entityTypes.forEach((et) => {\r\n if (et.entityType) {\r\n this[et.name] = new et.entityType(this.store, et);\r\n } else {\r\n this[et.name] = new Entity(this.store, et);\r\n if(et.singleName)\r\n {\r\n\r\n this[et.singleName] = new Entity(this.store, Object.assign({},et,{name:et.singleName}));\r\n this[et.singleName].single = true;\r\n this[et.singleName].singleName = null;\r\n }\r\n }\r\n });\r\n this.warn(\"EM Initialized.\");\r\n\r\n // this.dispatch(releaseActions.loadReleaseData()).then(() => {\r\n // this.getUserNotifications();\r\n // });\r\n\r\n return true;\r\n } catch (e) {\r\n this.warn(\"EM Initialization Error\", e);\r\n return false;\r\n }\r\n }\r\n\r\n /*-----------------Entity & Data Methods-----------*/\r\n loadAccount() {\r\n return this.dispatch(accountActions.loadAccount());\r\n }\r\n\r\n async setActiveDomain(domain) {\r\n let state = this.store.getState();\r\n if (state.domain !== domain) {\r\n this.log(\"Setting active domain:\", domain.Name);\r\n this.dispatch(domainActions.setDomain(domain));\r\n document.documentElement.style.setProperty(\r\n \"--domain-color\",\r\n domain.color\r\n );\r\n await this.settings.load();\r\n if (this.debugMode && this.isDomainAdmin()) {\r\n await this.users.load();\r\n }\r\n }\r\n }\r\n\r\n getActiveDomain() {\r\n let state = this.store.getState();\r\n return state.domain;\r\n }\r\n\r\n async clearActiveDomain() {\r\n let state = this.store.getState();\r\n this.api.abortPendingFetches();\r\n if (state.domain) {\r\n this.log(\"Clearing active domain.\");\r\n await this.dispatch(domainActions.clearDomain());\r\n await this.dispatch(fileActions.clearFiles());\r\n this.domainPermission = null;\r\n entityTypes.forEach(async (et) => {\r\n await this[et.name].clear();\r\n });\r\n }\r\n this.domainColor = null;\r\n this.clearDpCache();\r\n }\r\n\r\n allLoaded(...args) {\r\n return _.every(args, (entity) => {\r\n return entity.isLoaded();\r\n });\r\n }\r\n\r\n allEntitiesLoaded(args) {\r\n let loaded = true;\r\n _.each(args, (entity) => {\r\n loaded = loaded && entity.isLoaded();\r\n });\r\n return loaded === true;\r\n }\r\n\r\n loadEntities(allEntities, force) {\r\n let promiseSet = [];\r\n allEntities.forEach((entity) => {\r\n promiseSet.push(entity.load(force));\r\n });\r\n return Promise.all(promiseSet);\r\n }\r\n\r\n setError(errorIn) {\r\n const eid = new Date().getTime();\r\n\r\n let errorOut = { errorCode: null, message: \"\",eid };\r\n\r\n if (typeof errorIn === \"string\") {\r\n errorOut.message = errorIn;\r\n } \r\n else if(errorIn.Message) errorOut.message = errorIn.Message;\r\n else {\r\n if (errorIn instanceof Error) {\r\n errorOut.message = errorIn.Message || errorIn.toString();\r\n } else {\r\n errorOut = Object.assign(errorOut, errorIn);\r\n }\r\n }\r\n\r\n //Don't show abort errors, since the user initiated the abort by changing domains.\r\n if (errorOut.message.indexOf(\"AbortError\") === 0) {\r\n console.log(errorOut.message);\r\n return;\r\n }\r\n\r\n this.dispatch(errorActions.localError(eid, errorOut));\r\n window.setTimeout(() => {\r\n this.dispatch(errorActions.clearLocalError(eid));\r\n }, 5000);\r\n }\r\n\r\n hideErrors(eid){\r\n this.dispatch(errorActions.clearLocalError(eid));\r\n }\r\n\r\n /*-------------------Security & Permissions-----------*/\r\n setDomainPermission() {\r\n let state = this.store.getState();\r\n let domain = state.domain;\r\n let match = this.me.Domains.find((d) => {\r\n return (\r\n d.DomainId === (domain ? domain.DomainId : -1) ||\r\n d.Permission.PermissionLookupId >= 500\r\n );\r\n });\r\n if (match) {\r\n return (this.domainPermission = match.Permission);\r\n }\r\n }\r\n\r\n setTenantPermission() {\r\n let match = this.me.User.Permissions.find((d) => {\r\n return d.PermissionLookupId >= 500;\r\n });\r\n if (match) {\r\n return (this.tenantPermission = match);\r\n }\r\n }\r\n\r\n \r\n\r\n isTenantAdmin() {\r\n if (!this.tenantPermission) this.setTenantPermission();\r\n if (!this.tenantPermission) return false;\r\n return this.tenantPermission.PermissionLookupId >= 500;\r\n }\r\n\r\n isDomainAdmin() {\r\n return true;\r\n // if (!this.domainPermission) this.setDomainPermission();\r\n // if (!this.domainPermission) return false;\r\n // return this.domainPermission.PermissionLookupId >= 100;\r\n }\r\n\r\n isDomainEditor() {\r\n return false;\r\n }\r\n\r\n isDomainSubscriber() {\r\n return false;\r\n // if (!this.domainPermission) this.setDomainPermission();\r\n // if (!this.domainPermission) return false;\r\n // return this.domainPermission.PermissionLookupId >= 1;\r\n }\r\n\r\n hasAnyDomainAdmin() {\r\n return true;\r\n }\r\n\r\n isMyEntity(entityObject) {\r\n return entityObject.CreatedBy === this.me.User.UserId;\r\n }\r\n\r\n hasAcceptedTerms() {\r\n let state = this.store.getState();\r\n let termsUpdatedDate = state.terms.dateUpdated;\r\n let userTermsAcceptedDate = state.account.User.TermsAccepted;\r\n let termsUpdatedTicks = new Date(termsUpdatedDate).getTime();\r\n let userTermsAcceptedTicks = new Date(userTermsAcceptedDate).getTime();\r\n if (userTermsAcceptedTicks < termsUpdatedTicks) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n async setAcceptedTerms() {\r\n let newUserObj = {\r\n TermsAccepted: new Date().toISOString(),\r\n };\r\n\r\n await this.api.updateUser(newUserObj);\r\n }\r\n\r\n /*-------------------Translation-----------*/\r\n t(key, exact, opts) {\r\n if (this.settings) {\r\n let tOverride = this.getSetting(\"t.\" + key);\r\n if (tOverride) {\r\n return tOverride;\r\n }\r\n }\r\n\r\n let selectorFunc = _.property(key.split(\".\"));\r\n let result = selectorFunc(this.translation);\r\n let strOutput = exact ? result : result || key;\r\n return opts ? this.supplant(strOutput, opts) : strOutput;\r\n }\r\n\r\n supplant(str, opts) {\r\n return str.replace(/{([^{}]*)}/g, function (a, b) {\r\n let r = opts[b];\r\n return typeof r === \"string\" || typeof r === \"number\" ? r : a;\r\n });\r\n }\r\n\r\n /*-------------------Logging-----------*/\r\n registerLogging() {\r\n this.log = console.log.bind(window.console);\r\n this.warn = console.warn.bind(window.console);\r\n this.time = console.time.bind(window.console);\r\n this.timeEnd = console.timeEnd.bind(window.console);\r\n }\r\n\r\n unregisterLogging() {\r\n this.log = () => {};\r\n this.warn = () => {};\r\n this.time = () => {};\r\n this.timeEnd = () => {};\r\n }\r\n\r\n logState() {\r\n this.log(this.store.getState());\r\n }\r\n\r\n logProcess() {\r\n this.log(process.env);\r\n }\r\n\r\n /*-------------------Utility methods-----------*/\r\n triggerWindowResize(delay) {\r\n window.setTimeout(() => {\r\n window.dispatchEvent(new Event(\"resize\"));\r\n }, delay || 500);\r\n }\r\n\r\n isOverridden(entity) {\r\n let eName = typeof entity === \"object\" ? entity.modelName : entity;\r\n let overrideSetting = this.getSetting(\"OverrideParent:\" + eName);\r\n if (overrideSetting) {\r\n if (overrideSetting.toLowerCase() === \"true\") return true;\r\n }\r\n return false;\r\n }\r\n\r\n getSetting(name) {\r\n let settingRecord = this.settings.findByKey(name);\r\n let settingValue = null;\r\n if (settingRecord && settingRecord.Value) {\r\n settingValue = settingRecord.Value;\r\n }\r\n\r\n return settingValue;\r\n }\r\n\r\n getTenantOption(name) {\r\n if (!this.tenantOptions) {\r\n try {\r\n this.tenantOptions = JSON.parse(this.me.Tenant.Options || \"{}\");\r\n } catch (e) {\r\n this.tenantOptions = {};\r\n }\r\n }\r\n return this.tenantOptions[name] || null;\r\n }\r\n\r\n async getConfig(name, configType) {\r\n await this.configurations.load();\r\n return this.configurations.get().find((config) => {\r\n if (configType) {\r\n return (\r\n config.ConfigurationTypeLookupId === configType &&\r\n config.Name === name\r\n );\r\n } else {\r\n return config.Name === name;\r\n }\r\n });\r\n }\r\n\r\n loadScript(uri) {\r\n return new Promise((resolve, reject) => {\r\n var tag = document.createElement(\"script\");\r\n tag.src = uri;\r\n tag.async = true;\r\n tag.onload = () => {\r\n resolve();\r\n };\r\n var firstScriptTag = document.getElementsByTagName(\"script\")[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n });\r\n }\r\n\r\n /*-------------------Notifications-----------*/\r\n async getUserNotifications() {\r\n let notificationsArr = [];\r\n\r\n let reduxStore = this.store.getState();\r\n let userNotificationAcknowledgedDate =\r\n reduxStore.account.User.NotificationsAcknowledged;\r\n let releaseNotesUpdatedDate = reduxStore.release.dateUpdated;\r\n let userNotificationAcknowledgedTicks = new Date(\r\n userNotificationAcknowledgedDate\r\n ).getTime();\r\n let releaseNotesUpdatedTicks = new Date(releaseNotesUpdatedDate).getTime();\r\n\r\n if (userNotificationAcknowledgedTicks < releaseNotesUpdatedTicks) {\r\n notificationsArr.push({\r\n id: 1,\r\n type: \"new_release\",\r\n Message: this.t(\"util.releaseNotification\", null, [\r\n process.env.REACT_APP_VERSION,\r\n ]),\r\n });\r\n }\r\n\r\n let payload = {\r\n type: \"LOAD_NOTIFICATIONS\",\r\n notifications: notificationsArr,\r\n };\r\n this.dispatch(payload);\r\n\r\n return notificationsArr;\r\n }\r\n\r\n async removeNotification(notification) {\r\n let payload = { type: \"REMOVE_NOTIFICATION\", notification: notification };\r\n await this.dispatch(payload);\r\n\r\n if (this.store.getState().notifications.length === 0) {\r\n this.updateUserNotificationsAcknowledged();\r\n }\r\n }\r\n\r\n async updateUserNotificationsAcknowledged() {\r\n let newUserObj = {\r\n NotificationsAcknowledged: new Date().toISOString(),\r\n };\r\n await this.api.updateUser(newUserObj).then(() => {\r\n this.dispatch(accountActions.loadAccount(this.authenticator.mode));\r\n });\r\n }\r\n\r\n /*-------------------Cross-page/Nav-----------*/\r\n setHistory(history) {\r\n var self = this;\r\n this.history = history;\r\n this.navCount = 0;\r\n this.history.listen((location, action) => {\r\n self.navCount++;\r\n if (self.navCount > 2) self.clearCrossPage();\r\n });\r\n }\r\n\r\n set crossPage(value) {\r\n this.navCount = 0;\r\n this.storage.set(\"crossPage\", value);\r\n }\r\n\r\n get crossPage() {\r\n return JSON.parse(this.storage.get(\"crossPage\"));\r\n }\r\n\r\n clearCrossPage() {\r\n this.storage.remove(\"crossPage\");\r\n }\r\n\r\n /*-------------------Themes-----------*/\r\n setTheme(theme, e) {\r\n this.storage.set(\"theme\", theme);\r\n this.currentTheme = theme;\r\n\r\n var pc = document.getElementById(\"page-container\");\r\n var toggles = document.getElementsByClassName(\"theme-toggle\");\r\n [].forEach.call(toggles, function (elem) {\r\n elem.classList.remove(\"active\");\r\n });\r\n\r\n var target = e.target;\r\n target.classList.add(\"active\");\r\n\r\n if (theme === \"Dark\") {\r\n pc.classList.add(\"dark-mode\");\r\n document.body.classList.add(\"dark\");\r\n } else {\r\n pc.classList.remove(\"dark-mode\");\r\n document.body.classList.remove(\"dark\");\r\n }\r\n }\r\n\r\n //Get variables for use in custom algo expression\r\n async getVariables() {\r\n var self = this;\r\n\r\n //default variables\r\n let variables = [\r\n \"Projection\",\r\n \"Complexity\",\r\n \"ComplexityNumeric\",\r\n \"Role\",\r\n \"Department\",\r\n \"Organization\",\r\n \"WorkItemName\",\r\n \"ActivityName\",\r\n \"ActivityId\",\r\n \"Begin\",\r\n \"End\",\r\n ];\r\n\r\n await self.attributeTypeLookup.load();\r\n await self.attributes.load().then(() => {\r\n self.attributes.get().forEach((attribute) => {\r\n if (attribute.AttributeTypeLookupId === 3) return;\r\n let aType = self.attributeTypeLookup.lookupValue(\r\n attribute.AttributeTypeLookupId\r\n );\r\n variables.push(aType + '[\"' + attribute.Name + '\"]');\r\n });\r\n });\r\n\r\n await self.schedules.loadDefaultItem().then(async (defaultSchedule) => {\r\n if (!defaultSchedule) return;\r\n await self.schedules.loadFile(defaultSchedule.ScheduleId).then(() => {\r\n let fileContents = self.schedules.getFile(defaultSchedule.ScheduleId);\r\n if (fileContents) {\r\n let filters = fileContents.getFilterValues();\r\n filters.forEach((filter) => {\r\n if (filter.label === \"Work Item\" || filter.label === \"Activity\")\r\n return;\r\n if (filter.name === \"workitem\" || filter.name === \"activity\")\r\n return;\r\n variables.push('Schedule[\"' + filter.label + '\"]');\r\n });\r\n }\r\n });\r\n });\r\n\r\n return _.uniq(variables);\r\n }\r\n\r\n /*-------------------Dirty/clean State-----------*/\r\n isDomainDirty() {\r\n let state = this.store.getState();\r\n let domain = state.domain;\r\n if (state.domain && state.domainState) {\r\n if (state.domainState[domain.DomainId]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n markDomainDirty(domainId, entity) {\r\n if (entity) {\r\n if (\r\n entity.name === \"assignments\" ||\r\n entity.name === \"activities\" ||\r\n entity.name === \"employees\" ||\r\n entity.name === \"roles\" ||\r\n entity.name === \"departments\" ||\r\n entity.name === \"organizations\" ||\r\n entity.name === \"headcounts\" ||\r\n entity.name === \"schedules\" ||\r\n entity.name === \"actuals\" ||\r\n entity.name === \"configurations\" ||\r\n entity.name === \"permissions\" ||\r\n entity.name === \"scenarios\" ||\r\n entity.name === \"notes\" ||\r\n entity.name === \"referenceTables\" ||\r\n entity.name === \"settings\"\r\n )\r\n return;\r\n }\r\n let payload = { type: \"MARK_DOMAIN_DIRTY\", domainId: domainId };\r\n return this.dispatch(payload);\r\n }\r\n\r\n markDomainClean(domainId) {\r\n let payload = { type: \"MARK_DOMAIN_CLEAN\", domainId: domainId };\r\n return this.dispatch(payload);\r\n }\r\n\r\n /*-------------------Global Status Messages-----------*/\r\n getStatusMessageRef(React) {\r\n return (this.statusMessageRef = React.createRef());\r\n }\r\n\r\n setStatusMessage(message, className, timeout) {\r\n if (!this.statusMessageRef) return;\r\n if (!this.statusMessageRef.current) return;\r\n this.statusMessageRef.current.setMessage(message, className, timeout);\r\n }\r\n\r\n clearStatusMessage() {\r\n if (!this.statusMessageRef) return;\r\n if (!this.statusMessageRef.current) return;\r\n this.statusMessageRef.current.clearMessage();\r\n }\r\n\r\n /*-------------------Env Stuff-----------*/\r\n isProd() {\r\n return process.env.REACT_APP_ENV === \"prod\";\r\n }\r\n\r\n isDev() {\r\n return process.env.REACT_APP_ENV === \"dev\";\r\n }\r\n\r\n /*-------------------Feature Stuff-----------*/\r\n hasFeature(feature) {\r\n if (!this.featureCache) {\r\n try {\r\n this.featureCache = JSON.parse(this.me.Tenant.Features || '{\"*\":{}}');\r\n } catch (e) {\r\n this.featureCache = { \"*\": {} };\r\n }\r\n }\r\n\r\n let domain = this.getActiveDomain();\r\n let dn = domain ? domain.Name : \"*\";\r\n let querySet = this.featureCache[dn] || this.featureCache[\"*\"];\r\n if (querySet[feature]) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n denyFeature() {\r\n if (this.history) this.history.push(\"/\");\r\n let errorCode = \"account:98\";\r\n this.dispatch(\r\n errorActions.localError(errorCode, {\r\n errorCode,\r\n message: this.t(\"util.noFeatureAccess\"),\r\n })\r\n );\r\n window.setTimeout(() => {\r\n this.dispatch(errorActions.clearLocalError(errorCode));\r\n }, 5000);\r\n }\r\n\r\n /*-------------------Cache Helpers-----------*/\r\n clearProjectionsCache() {\r\n let projStore = new IdbKv.Store(\"ProjectionsStoreDB\", \"ProjectionsStore\");\r\n IdbKv.clear(projStore);\r\n }\r\n\r\n clearDataExplorerCache() {\r\n let projStore = new IdbKv.Store(\"DataExplorerDb\", \"DataExplorerStore\");\r\n IdbKv.clear(projStore);\r\n }\r\n\r\n fromDpCache(key, func) {\r\n if (!this.dpCache[key]) {\r\n this.dpCache[key] = func();\r\n }\r\n return this.dpCache[key];\r\n }\r\n\r\n clearDpCacheItem(key) {\r\n this.dpCache[key] = null;\r\n }\r\n\r\n clearDpCache() {\r\n this.dpCache = {};\r\n }\r\n redirectTo(url, data) {\r\n url = Routes.compose(url, data);\r\n this.history.push(url);\r\n }\r\n\r\n getDefaultCompany(user){\r\n user = user ? user: this.account.get();\r\n return _.findWhere(user.userCompanies,{defaultCompany:true}) || (user.userCompanies ? user.userCompanies[0]:null);\r\n }\r\n\r\n\r\n\r\n getUserRole(){\r\n let roles =this.roles;\r\n let user = this.account.get(); \r\n\r\n return user ? _.findWhere(roles,{id:user.roleId}) : null;\r\n \r\n }\r\n\r\n isSuperAdmin() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 1;\r\n }\r\n\r\n isOwner() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 2;\r\n }\r\n isAdmin() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 3;\r\n }\r\n\r\n isSales() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 4;\r\n }\r\n isPhotographer() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 5;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport function setDomain(domain) {\r\n return { type: types.SET_DOMAIN, data: domain };\r\n}\r\n\r\nexport function clearDomain() {\r\n return { type: types.CLEAR_DOMAIN };\r\n}","import * as types from '../actionTypes';\r\n\r\nconst intialState = {\r\n dateUpdated : null\r\n}\r\nexport default function terms(state = intialState, action) {\r\n switch (action.type) {\r\n case types.LOAD_TERMS:\r\n return action.data;\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nconst intialState = {\r\n dateUpdated : null\r\n}\r\nexport default function release(state = intialState, action) {\r\n switch (action.type) {\r\n case types.LOAD_RELEASE:\r\n return action.data;\r\n default:\r\n return state;\r\n }\r\n}","import { combineReducers } from 'redux';\r\nimport error from './error';\r\nimport account from './account';\r\nimport domain from './domain';\r\nimport domainState from './domainState';\r\nimport fetching from './fetching';\r\nimport translation from './translation';\r\nimport files from './files';\r\nimport projections from './projections';\r\nimport audit from './audit';\r\nimport terms from './terms';\r\nimport release from './release';\r\nimport notifications from './notifications';\r\nimport entityTypes from '../entityTypes';\r\n\r\nlet reducerSet = {\r\n error, \r\n account,\r\n translation,\r\n domain,\r\n domainState,\r\n files,\r\n fetching,\r\n projections,\r\n audit,\r\n terms,\r\n release,\r\n notifications\r\n};\r\n\r\nentityTypes.forEach(entityObject => {\r\n reducerSet[entityObject.name] = generateEntityReducer(entityObject);\r\n if(entityObject.singleName)\r\n reducerSet[entityObject.singleName] = generateEntityReducer(Object.assign({},entityObject,{name:entityObject.singleName}));\r\n});\r\n\r\nexport default combineReducers(reducerSet);\r\n\r\nfunction generateEntityReducer(entityObject){\r\n const ACTNAME = entityObject.name.toUpperCase();\r\n // const ACTNAMESINGLE = entityObject.singleName ? entityObject.singleName.toUpperCase():'';\r\n return function (state = null, action) {\r\n switch (action.type) {\r\n case `CLEAR_${ACTNAME}`:\r\n return null; \r\n case `CLEARALL_${ACTNAME}`:\r\n return []; \r\n case `LOAD_${ACTNAME}`:\r\n return action.data; \r\n case `RELOAD_${ACTNAME}`:\r\n return [ ...state ]; \r\n case `CREATE_${ACTNAME}`: \r\n if(action.data instanceof Array !==true && state instanceof Array === true)\r\n {\r\n return [ ...(state ? state : []), action.data ]; \r\n }\r\n else if(action.data instanceof Array ===true)\r\n return [...action.data];\r\n else return action.data; \r\n case `CREATE_BULK_${ACTNAME}`: \r\n return [ ...(state ? state : []), ...action.data ]; \r\n case `UPDATE_${ACTNAME}`: \r\n if(entityObject.single ===true || state instanceof Array !== true)\r\n return state ? Object.assign({}, state) : state;\r\n\r\n return state ? state.map((item) => {\r\n if (item[entityObject.idField] === action.data[entityObject.idField]) { \r\n return action.data; \r\n }else{\r\n if (entityObject.isFileListingTable && action.data.IsDefault){\r\n return Object.assign({}, item, { IsDefault: false });\r\n }else{\r\n return Object.assign({}, item);\r\n }\r\n }\r\n }) : state;\r\n case `DELETE_${ACTNAME}`:\r\n return state.filter((item) => {\r\n if(action.data)\r\n {return action.data.indexOf(item[entityObject.idField]) === -1;} \r\n }); \r\n default:\r\n return state;\r\n }\r\n }\r\n}","import * as types from '../actionTypes';\r\nimport _ from 'underscore';\r\n\r\nexport default function error(state = null, action) {\r\n switch (action.type) {\r\n case types.GLOBAL_ERROR:\r\n return action.data;\r\n case types.LOCAL_ERROR:\r\n return Object.assign({}, state, { [action.eid]: action.data }) \r\n case types.CLEAR_LOCAL_ERROR:\r\n return _.omit(state, action.eid);\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function account(state = null, action) {\r\n switch (action.type) {\r\n case types.LOAD_ACCOUNT:\r\n return action.data;\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function translation(state = {}, action) {\r\n switch (action.type) {\r\n case types.LOAD_TRANSLATION:\r\n return action.data;\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function domain(state = null, action) {\r\n switch (action.type) {\r\n case types.SET_DOMAIN:\r\n return action.data;\r\n case types.CLEAR_DOMAIN:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\nimport _ from 'underscore';\r\n\r\nexport default function domainState(state = {}, action) {\r\n switch (action.type) {\r\n case types.MARK_DOMAIN_DIRTY:\r\n return Object.assign({}, state, { [action.domainId]: true }) \r\n case types.MARK_DOMAIN_CLEAN:\r\n return _.omit(state, action.domainId);\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function files(state = {}, action) {\r\n switch (action.type) {\r\n case types.LOAD_FILE:\r\n return Object.assign({}, state, { [ action.key ] : action.data })\r\n case types.CLEAR_FILES:\r\n return {} \r\n case types.FILE_ERROR:\r\n return Object.assign({}, state, { [ action.key ] : null })\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\nimport _ from 'underscore';\r\n\r\nexport default function fetching(state = [], action) {\r\n switch (action.type) {\r\n case types.START_FETCH:\r\n return [ ...state, action.data ];\r\n case types.END_FETCH:\r\n return state.map((item) => {\r\n if (item === action.data) { \r\n return '#' + action.data; \r\n }else{\r\n return item;\r\n }\r\n });\r\n case types.REMOVE_FETCH:\r\n return _.without(state, '#' + action.data); \r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function projections(state = {}, action) {\r\n switch (action.type) {\r\n case types.LOAD_PROJECTIONS:\r\n return Object.assign({}, state, { [ action.key ] : action.data })\r\n case types.CLEAR_PROJECTIONS:\r\n return {} \r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function audit(state = {}, action) {\r\n switch (action.type) {\r\n case types.AUDIT_ENTITY_ITEM:\r\n return Object.assign({}, state, { [ action.key ] : action.data }) \r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function notifications(state = [], action) {\r\n switch (action.type) {\r\n case types.LOAD_NOTIFICATIONS:\r\n return action.notifications;\r\n case types.REMOVE_NOTIFICATION:\r\n let leftNotifications = state.filter(x => {\r\n return x.id !== action.notification.id;\r\n });\r\n return leftNotifications;\r\n case types.CLEAR_NOTIFICATIONS:\r\n return {}\r\n default:\r\n return state;\r\n }\r\n}","import tinycolor from 'tinycolor2';\r\n\r\nexport default class ColorManager{\r\n constructor(){\r\n this.currentIndex = -1;\r\n this.set = ColorManager.COLORS;\r\n }\r\n\r\n reset(){\r\n this.currentIndex = -1;\r\n }\r\n\r\n next(){\r\n this.currentIndex++;\r\n if (this.currentIndex > this.set.length)this.currentIndex = 0;\r\n return this.current();\r\n }\r\n\r\n current(isAlt, isAlt2){\r\n if (isAlt){\r\n if(isAlt2){\r\n return tinycolor(this.at(this.currentIndex)).darken(20).toString();\r\n }else{\r\n return tinycolor(this.at(this.currentIndex)).darken().toString();\r\n }\r\n }else{\r\n return this.at(this.currentIndex);\r\n }\r\n }\r\n\r\n at(index){\r\n let newIndex = index >= this.set.length ? index % this.set.length : index;\r\n return this.set[newIndex];\r\n }\r\n\r\n static get COLORS(){\r\n return [\r\n //new colors\r\n '#e91e63', '#9f2db3', '#673ab7', '#3f51b4', '#2596f3', '#24bcd4', '#179688', '#8ac34a', \r\n '#cddc39', '#e8d300', '#fdc108', '#fc9800', '#fc5722',\r\n\r\n //old colors\r\n '#0074c7', '#809693', '#11C700', '#B600C7', '#00C7B6', '#C70011', '#C7B600', '#0597FF',\r\n '#FF6D05', '#D157A0', '#5300C7', \"#FF4A46\", \"#008941\", \"#006FA6\", \"#A30059\", \"#DBDB00\",\r\n \"#FFDBE5\", \"#7A4900\", \"#0000A6\", \"#63FFAC\", \"#B79762\", \"#004D43\", \"#8FB0FF\", \"#997D87\",\r\n \"#5A0007\", \"#C75300\", \"#1B4400\", \"#4FC601\", \"#3B5DFF\", \"#4A3B53\", \"#FF2F80\", \"#1CE6FF\",\r\n \"#61615A\", \"#BA0900\", \"#6B7900\", \"#00C2A0\", \"#FFAA92\", \"#FF90C9\", \"#B903AA\", \"#D16100\",\r\n \"#DDEFFF\", \"#000035\", \"#7B4F4B\", \"#A1C299\", \"#300018\", \"#0AA6D8\", \"#013349\", \"#00846F\",\r\n \"#372101\", \"#FFB500\", \"#C2FFED\", \"#A079BF\", \"#CC0744\", \"#C0B9B2\", \"#C2FF99\", \"#001E09\",\r\n \"#00489C\", \"#6F0062\", \"#0CBD66\", \"#EEC3FF\", \"#456D75\", \"#B77B68\", \"#7A87A1\", \"#788D66\",\r\n \"#885578\", \"#FAD09F\", \"#FF8A9A\", \"#00C753\", \"#BEC459\", \"#456648\", \"#0086ED\", \"#886F4C\",\r\n \"#34362D\", \"#B4A8BD\", \"#00A6AA\", \"#452C2C\", \"#636375\", \"#A3C8C9\", \"#FF913F\", \"#938A81\",\r\n \"#575329\", \"#00FECF\", \"#B05B6F\", \"#8CD0FF\", \"#3B9700\", \"#04F757\", \"#C8A1A1\", \"#1E6E00\",\r\n \"#7900D7\", \"#A77500\", \"#6367A9\", \"#A05837\", \"#6B002C\", \"#772600\", \"#D790FF\", \"#9B9700\",\r\n \"#549E79\", \"#FFF69F\", \"#201625\", \"#72418F\", \"#BC23FF\", \"#99ADC0\", \"#3A2465\", \"#922329\",\r\n \"#5B4534\", \"#FDE8DC\", \"#404E55\", \"#0089A3\", \"#CB7E98\", \"#A4E804\", \"#324E72\", \"#FF34FF\"\r\n ];\r\n }\r\n\r\n}","import React from 'react';\r\nimport ColorManager from '../util/ColorManager';\r\nimport tinycolor from 'tinycolor2';\r\n\r\nconst userColors = new ColorManager();\r\n\r\nconst UserIcon = ({ user, className, altUser}) => {\r\n if (!user && !altUser)return null;\r\n\r\n let bits = altUser ? altUser.split(' ') : user.firstName.split(' ');\r\n let initials = bits.reduce((accumulator, value) => {\r\n return accumulator + (value[0] || '');\r\n }, '').replace(/\\W/g, '').toUpperCase();\r\n\r\n let color = altUser ? '#dddddd' : userColors.at(user.UserId);\r\n let colorObj = tinycolor(color);\r\n if (colorObj.getBrightness() > 175){\r\n color = colorObj.darken(10).toString();\r\n }\r\n\r\n return (\r\n
\r\n {initials}\r\n
\r\n );\r\n};\r\n\r\nexport default UserIcon;","/* global EM */\r\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\r\nimport React, { Component } from 'react';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport Routes from \"../app/Routes\";\r\nimport { matchPath } from 'react-router';\r\nimport UserIcon from './UserIcon';\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n Collapse,\r\n Navbar,\r\n NavbarToggler,\r\n Nav,\r\n NavItem,\r\n NavLink as RsNavLink,\r\n UncontrolledDropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem\r\n} from 'reactstrap';\r\n\r\n\r\n\r\nclass Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.state = {\r\n isOpen: false,\r\n allowAnonymous: this.props.allowAnonymous,\r\n companies: []\r\n };\r\n\r\n this.closeMenus = this.closeMenus.bind(this);\r\n if (!EM.history) EM.setHistory(this.props.history);\r\n }\r\n\r\n componentDidMount() {\r\n // Regular expression pattern to match \"/booking/\" followed by a number\r\n const pattern = /\\/booking\\/(\\d+)/;\r\n const patternRescheduleAppointment = /\\/rescheduleAppointmentBooking\\/(\\d+)/;\r\n // Check if the string matches the pattern\r\n const match = this.props.location.pathname.match(pattern) || this.props.location.pathname.match(patternRescheduleAppointment)\r\n if(match){\r\n return\r\n }\r\n var companies = EM.companies.get();\r\n if (companies && companies.length > 0) this.setState({ companies });\r\n else {\r\n EM.companies.load().then(() => {\r\n this.setState({ companies: EM.companies.get() });\r\n })\r\n }\r\n }\r\n\r\n toggle() {\r\n this.setState({\r\n isOpen: !this.state.isOpen\r\n });\r\n }\r\n\r\n closeMenus() {\r\n var elem = document.getElementById('root');\r\n if (elem) elem.click();\r\n this.setState({ isOpen: false });\r\n }\r\n\r\n getCompanyId() {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true }) || user.userCompanies[0];\r\n return company.companyId;\r\n }\r\n\r\n getDefaultCompany() {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true }) || user.userCompanies[0];\r\n return company;\r\n }\r\n\r\n changeCompany(companyId) {\r\n console.log(`change company : ${companyId}`);\r\n let user = EM.account.get();\r\n EM.account.executePut({ userId: user.userId, companyId: companyId }, null, Routes.clientApi.changeDefaultCompany, {},true).then((account) => {\r\n EM.storage.set('account',account);\r\n if(window.location.pathname.indexOf('/companyConfig/')===0){\r\n EM.redirectTo(Routes.client.companyConfig,{companyId:companyId})\r\n window.location.reload();\r\n } else {\r\n window.location.reload();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const isDashboard = !!matchPath(this.props.location.pathname, Routes.client.dashboard);\r\n const allowAnonymous = this.state.allowAnonymous;\r\n if (allowAnonymous) return \"\";\r\n const companyId = this.getCompanyId();\r\n const defaultCompany = this.getDefaultCompany();\r\n const isSuperAdmin = EM.isSuperAdmin();\r\n const isAdmin = EM.isAdmin();\r\n const isSales = EM.isSales();\r\n const isPhotographer = EM.isPhotographer();\r\n\r\n const companies = this.state.companies;\r\n return (\r\n \r\n {\r\n // EM.clearActiveDomain();\r\n }}>\r\n {/* \"Logo\" */}\r\n \r\n \r\n \r\n {this.props.domain ?\r\n
\r\n {\r\n // EM.clearActiveDomain();\r\n }}>{this.props.account.Tenant.DisplayName}\r\n
{this.props.domain.DisplayName}
\r\n
\r\n : null}\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n}\r\n\r\nexport default Header;","import React, { Component } from 'react';\r\nimport classNames from 'classnames';\r\n\r\nclass PageTitle extends Component {\r\n render() {\r\n return (\r\n
\r\n

\r\n {this.props.icon?:null}\r\n {this.props.img?{this.props.title}/:null}\r\n {this.props.title}\r\n { this.props.collapsible ? (this.props.collapsed ? : ) : null}\r\n

\r\n {!this.props.bar && this.props.text? \r\n
{this.props.text}
\r\n : null }\r\n {this.props.children?\r\n
\r\n {this.props.children}\r\n
\r\n :null}\r\n {this.props.bar && this.props.text? \r\n

{this.props.text}

\r\n : null } \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PageTitle;\r\n","import React from 'react'\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n Button,\r\n } from 'reactstrap'\r\n \r\nconst CardStats = ({label, value, color, navigate, to}) => {\r\n return (\r\n \r\n \r\n
{label}
\r\n
\r\n \r\n

{value}

\r\n {navigate? (\r\n // \r\n ): null}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CardStats;\r\n\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport CardStats from \"../components/CardStats\";\r\nimport _ from 'underscore';\r\n\r\nclass DashboardCount extends Component {\r\n constructor(props) {\r\n super(props);\r\n let user = EM.account.get();\r\n this.entity = EM.dashboard\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n this.state = {\r\n parentRecordDetail: { id: company.companyId },\r\n }; \r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n \r\n getColorForValue = (value) => {\r\n return 'green';\r\n };\r\n\r\n render() {\r\n let data = {};\r\n if (this.entity.isLoaded()) {\r\n data = this.entity.get();\r\n if(data.totalCompanies) delete data.totalCompanies\r\n }\r\n return (\r\n
\r\n

Events

\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

User Orders

\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

Users

\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\nexport default DashboardCount;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport PageTitle from '../components/PageTitle';\r\nimport _ from 'underscore';\r\nimport DashboardCount from './DashboardCount'\r\nclass Home extends Component {\r\n \r\n alpha(set){\r\n return _.sortBy(set, item => {\r\n return (item.order || 'z') + item.DisplayName;\r\n });\r\n }\r\n render() {\r\n const isAdmin = EM.isAdmin();\r\n const isSuperAdmin = EM.isSuperAdmin();\r\n let pageTitle = \"\"\r\n if(!isAdmin && !isSuperAdmin) {\r\n pageTitle = `Welcome ${this.props.account.firstName} ${this.props.account.lastName}!`\r\n } else {\r\n pageTitle = `Welcome to ${EM.getDefaultCompany().companyName}!`\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {isAdmin || isSuperAdmin ? (\r\n \r\n ): null} \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Home;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nclass NoOrderUsers extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.noOrderUsers;\r\n\r\n let company = EM.getDefaultCompany();\r\n\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
No Purchases
\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 {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
Event IDEvent NameUser's Cart CountActions
{row.locationId}{row.locationName}{row.noOrderUsersCount}\r\n this.props.history.push(`/userNoOrders/${row.locationId}`)}/>\r\n
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default NoOrderUsers;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass UserNoOrder extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.userNoOrderUsers;\r\n\r\n let company = EM.getDefaultCompany();\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId, locationId: this.props.match.params.locationId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
{data&&data?.noOrderUsers?.length?`No Purchases: ${data.locationName}`:\"No Purchases\"}
\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 {data && data?.noOrderUsers?.length ? data.noOrderUsers.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
NamePhoneEmailAddress
{`${row.firstName||''} ${row.lastName||''}`}{row.phoneNumber}{row.emailAddress}{`${row.address?`${row.address}, ${row.city}, ${row.state}, ${row.zip}`:''}`}
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserNoOrder;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass CompletedOrders extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.totalCompletedOrders;\r\n\r\n let company = EM.getDefaultCompany();\r\n\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
Completed Orders
\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 {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
Event IDEvent NameUser's Cart CountActions
{row.locationId}{row.locationName}{row.userCartCount}\r\n this.props.history.push(`/userCompletedOrders/${row.locationId}`)}/>\r\n
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CompletedOrders;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass UserCompletedOrder extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.userCompletedOrders;\r\n\r\n let company = EM.getDefaultCompany();\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId, locationId: this.props.match.params.locationId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n \r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
{data?.length?`Completed Orders: ${data[0].locationName}`:\"Completed Orders\"}
\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 {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
NamePhoneEmailAddress
{`${row.firstName||''} ${row.lastName||''}`}{row.phoneNumber}{row.emailAddress}{`${row.address?`${row.address}, ${row.city}, ${row.state}, ${row.zip}`:''}`}
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserCompletedOrder;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates';\r\n\r\nclass TotalInCompleteOrders extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.incompleteOrders;\r\n\r\n let company = EM.getDefaultCompany();\r\n\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
Incomplete Orders
\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 {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
Event IDEvent NameUser's Cart CountAction
{row.locationId}{row.locationName}{row.userCartCount}\r\n this.props.history.push(`/userIncompleteOrders/${row.locationId}`)}/>\r\n
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default TotalInCompleteOrders;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass UserInCompleteOrders extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.userIncompleteOrders;\r\n\r\n let company = EM.getDefaultCompany();\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId, locationId: this.props.match.params.locationId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
{data?.length?`Incompleted Orders: ${data[0].locationName}`:\"Inompleted Orders\"}
\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 {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
NamePhoneEmailAddress
{`${row.firstName||''} ${row.lastName||''}`}{row.phoneNumber}{row.emailAddress}{`${row.address?`${row.address}, ${row.city}, ${row.state}, ${row.zip}`:''}`}
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserInCompleteOrders;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates';\r\n\r\nclass FutureEvents extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.futureEvents;\r\n\r\n let company = EM.getDefaultCompany();\r\n\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n

Future Events Details

\r\n
\r\n {data?.length > 0 ? data.map((row) => (\r\n
\r\n
\r\n {/*
Order {row.name}
*/}\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 {row.timeSlotsCounts.map((value, index) => (\r\n \r\n \r\n \r\n \r\n ))} \r\n \r\n
IDNameFree 8x10 Promotion\tFree Image PromotionForce 8x10 PromotionForce Image Promotion
{row.locationId}{row.name}{row.free810Promotion?\"Yes\":\"No\"}{row.freeImagePromotion?\"Yes\":\"No\"}{row.force810Promotion?\"Yes\":\"No\"}{row.forceImagePromotion?\"Yes\":\"No\"}
Time Slot By Day
\r\n Date\r\n \r\n Counts\r\n
{Dates.convertDateStringWithT(value.timeSlot)}{value.counts}
\r\n
\r\n
\r\n
\r\n
\r\n )):
\r\n
{errMsg}
\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 {data.length > 0 && data.map((row, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {row.timeSlotsCounts.length?(\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {row.timeSlotsCounts.map((value, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ):null}\r\n \r\n ))}\r\n
#NameFree 8x10 Promotion\tFree Image PromotionForce 8x10 PromotionForce Image Promotion
{index+1}{row.name}{row.free810Promotion?\"Yes\":\"No\"}{row.freeImagePromotion?\"Yes\":\"No\"}{row.force810Promotion?\"Yes\":\"No\"}{row.forceImagePromotion?\"Yes\":\"No\"}
Time Slot By Day
\r\n Date\r\n \r\n Count\r\n
{Dates.isoToDateTime(value.timeSlot, \"YYYY-MM-DD hh:mm A\")}{value.counts}
*/}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default FutureEvents;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport Spinner from '../Spinner';\r\n\r\nexport default class NoTableData extends Component {\r\n render() {\r\n return (\r\n
\r\n { this.props.data ? \r\n EM.t('util.table.noData') \r\n : \r\n \r\n } \r\n
\r\n );\r\n }\r\n};","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, FormGroup, FormText, CustomInput, Label, Alert } from 'reactstrap';\r\nimport PanelModal from '../PanelModal';\r\nimport CsvFileViewer from '../CsvFileViewer';\r\nimport File from '../../util/File';\r\nimport { Validate } from '../../util/EntityValidators';\r\nimport _ from 'underscore';\r\nimport Spinner from '../Spinner';\r\n\r\nclass EntityImporter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentDataSet: null,\r\n errors: [],\r\n canImport: false,\r\n importItems: null,\r\n updatedItemRows: null,\r\n parsingFile: false\r\n };\r\n\r\n this.onClose = this.onClose.bind(this);\r\n this.onImport = this.onImport.bind(this);\r\n this.parseFile = this.parseFile.bind(this);\r\n this.entityTitle = this.props.entity.t('title');\r\n }\r\n\r\n onClose() {\r\n this.props.onClose();\r\n this.clearState();\r\n }\r\n\r\n onImport() {\r\n let formattedItems = null;\r\n\r\n //If caller wants to modify items before sending to server for import\r\n if (this.props.onBeforeImport) {\r\n try{\r\n formattedItems = this.props.onBeforeImport([...this.state.importItems]);\r\n if (formattedItems === false)return;\r\n }catch(e){\r\n console.log(e);\r\n return;\r\n }\r\n }\r\n\r\n this.props.entity.import(formattedItems ? formattedItems : this.state.importItems);\r\n this.props.onClose();\r\n this.clearState();\r\n }\r\n\r\n clearState(withErrors) {\r\n this.setState({ currentDataSet: null, errors: withErrors || [], canImport: false, importItems: null, updatedItemRows: null, parsingFile: false });\r\n }\r\n\r\n async parseFile(event) {\r\n var input = document.getElementById('importFile');\r\n let csvContents = null;\r\n try {\r\n csvContents = await File.readCSV(input);\r\n } catch (e) {\r\n this.clearState([['', e.message]]);\r\n return;\r\n }\r\n\r\n if (!csvContents){\r\n this.setState({ parsingFile: false });\r\n return;\r\n } \r\n\r\n \r\n let importLimitSetting = parseInt(EM.getTenantOption('importLimit'));\r\n let importLimit = isNaN(importLimitSetting) ? 10000 : importLimitSetting;\r\n if (csvContents.length > (importLimit + 1)){\r\n this.clearState([['', 'File exceeds import limit of ' + importLimit + ' rows.']]);\r\n return;\r\n }\r\n\r\n try {\r\n let results = await this.generateDataSetFromCsv(csvContents);\r\n this.setState({ currentDataSet: csvContents, errors: [], canImport: true, importItems: results.importItems, updatedItemRows: results.updatedItemRows, parsingFile: false });\r\n } catch (e) {\r\n this.setState({ currentDataSet: csvContents, errors: e, canImport: false, importItems: null, updatedItemRows: null, parsingFile: false }); \r\n }\r\n }\r\n\r\n generateDataSetFromCsv(csvContents) {\r\n let self = this;\r\n return new Promise(function (resolve, reject) {\r\n let keys = [];\r\n let validators = [];\r\n let columnDefs = [];\r\n let items = [];\r\n let updatedItemRows = {};\r\n let columnDefinitionsTextIndex = _.indexBy(self.props.columns, 'text');\r\n\r\n //Check that the CSV contains the correct columns\r\n let columnMessages = [];\r\n csvContents[0].forEach((displayName, colIndex) => {\r\n var col = columnDefinitionsTextIndex[displayName];\r\n if (!col) {\r\n columnMessages.push(['0:' + colIndex, EM.t('error.csv-wrong-column', false, [displayName, self.entityTitle])]);\r\n } else {\r\n columnDefs.push(col);\r\n keys.push(col.dataField);\r\n validators.push(col.validators || []);\r\n }\r\n });\r\n if (columnMessages.length > 0) {\r\n reject(columnMessages);\r\n return;\r\n }\r\n\r\n //Validate each row\r\n let validationMessages = [];\r\n csvContents.slice(1).forEach((row, rowIndex) => {\r\n //Perform validation on the row \r\n row.forEach((value, colIndex) => {\r\n let validationResult = Validate(value, validators[colIndex], (columnDefs[colIndex].getValidationContext ? columnDefs[colIndex].getValidationContext() : null), 'import');\r\n if (validationResult) {\r\n let dn = csvContents[0][colIndex];\r\n validationMessages.push([(rowIndex + 1) + ':' + colIndex, dn + ': ' + validationResult]);\r\n }\r\n });\r\n });\r\n\r\n //Reverse lookup fields based on column config so that server is sent IDs, not text strings\r\n let newCsvContents = csvContents.slice(1).map((row, rowIndex) => {\r\n return row.map((valueIn, colIndex) => {\r\n let value = (valueIn && valueIn.trim) ? valueIn.trim() : valueIn;\r\n let columnDef = columnDefs[colIndex];\r\n if (columnDef.fromEntity) {\r\n let id = columnDef.fromEntity.lookupId(value);\r\n if ((typeof id === 'undefined' || id === null) && !columnDef.allowNulls) {\r\n validationMessages.push([(rowIndex + 1) + ':' + colIndex, columnDef.text + ': Not found']);\r\n return null;\r\n } else {\r\n return id;\r\n }\r\n }else if (columnDef.fromList){\r\n let item = columnDef.fromList.find(item => item.label === value);\r\n if (item){\r\n return item.value;\r\n }else{\r\n return null;\r\n }\r\n } else if (columnDef.asActive) {\r\n return value === 'Yes' ? 'true' : 'false';\r\n } else if (columnDef.asPercentage) {\r\n return (value ? (value+\"\").replace('%','') : 0) / 100;\r\n } else if (columnDef.asPermission) {\r\n let permId = EM.permissionLookup.lookupId(value);\r\n if (!permId || permId > 100){\r\n validationMessages.push([(rowIndex + 1) + ':' + colIndex, columnDef.text + ': Not found']);\r\n return null;\r\n }\r\n return permId;\r\n } else if (columnDef.asUser) {\r\n let userId = EM.users.lookupId(value);\r\n if (!userId){\r\n validationMessages.push([(rowIndex + 1) + ':' + colIndex, columnDef.text + ': Not found']);\r\n return null;\r\n }\r\n return userId;\r\n } else {\r\n return value;\r\n }\r\n });\r\n });\r\n\r\n if (validationMessages.length > 0) {\r\n reject(validationMessages);\r\n return;\r\n }\r\n\r\n newCsvContents.forEach((row, rowIndex) => { \r\n const item = _.object(keys, row.map(value => {\r\n if (typeof value !== \"undefined\" && value !== null){\r\n if (value.trim){\r\n return value.trim();\r\n }else{\r\n return value;\r\n }\r\n }else{\r\n return value;\r\n }\r\n }));\r\n \r\n const existingItem = self.props.entity.findItem(item); \r\n if (existingItem) {\r\n updatedItemRows[rowIndex + 1] = 'Update';\r\n item[self.props.entity.idField] = existingItem[self.props.entity.idField];\r\n } else {\r\n updatedItemRows[rowIndex + 1] = 'New';\r\n }\r\n\r\n items.push(item);\r\n });\r\n\r\n resolve({ importItems: items, updatedItemRows: updatedItemRows });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {EM.t('util.table.importTitle', false, [this.entityTitle])}\r\n \r\n
\r\n \r\n \r\n event.target.value = null} onChange={async (event) => {\r\n let fileName = event.target.value.replace(\"C:\\\\fakepath\\\\\", \"\");\r\n document.getElementsByClassName('custom-file-label')[0].innerText = fileName;\r\n this.setState({ parsingFile: true });\r\n await this.parseFile();\r\n }} label=\"Select a file\" />\r\n \r\n {EM.t('util.table.importInstructions')}\r\n \r\n \r\n {this.state.parsingFile ? \r\n \r\n : null } \r\n {this.state.errors.length <= 0 && this.state.currentDataSet !== null ?\r\n {EM.t('util.table.importAllowed')}\r\n : null}\r\n {this.state.errors.length > 0 ?\r\n {EM.t('util.table.importDisallowed')}\r\n : null}\r\n {this.state.errors.length > 0 ?\r\n
    \r\n {this.state.errors.slice(0, 20).map((error, index) => {\r\n let lr = error[0] ? error[0].split(':') : null;\r\n return
  • \r\n {lr ?\r\n Line {parseInt(lr[0]) + 1}, Column {parseInt(lr[1]) + 1}: \r\n : null}\r\n {error[1]}\r\n
  • \r\n })}\r\n {this.state.errors && this.state.errors.length > 20 ? \r\n
  • {EM.t('util.table.moreErrors', null , [this.state.errors.length - 20])}.
  • \r\n : null} \r\n
\r\n : null}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EntityImporter;\r\n","/* global EM */\r\nimport React, { Component, Suspense } from 'react';\r\nimport { Search, CSVExport } from 'react-bootstrap-table2-toolkit';\r\nimport EntityImporter from './EntityImporter';\r\nimport {Button} from 'reactstrap';\r\nimport { UncontrolledButtonDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap';\r\nimport _ from 'underscore';\r\n\r\nconst EntityCreator = React.lazy(() => import('./EntityCreator'));\r\n\r\nconst { SearchBar, ClearSearchButton } = Search;\r\nconst { ExportCSVButton } = CSVExport;\r\n\r\nclass EntityTableTools extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n importModalOpen: false,\r\n createModalOpen: false\r\n };\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if(nextProps.createModalOpen!==null && nextProps.createModalOpen!==undefined){\r\n this.setState({createModalOpen: nextProps.createModalOpen}) \r\n }\r\n }\r\n render() { \r\n return [\r\n
\r\n {this.props.customTools ? _.map(this.props.customTools,function(tool){\r\n return tool()\r\n }) : null}\r\n {!this.props.restrictedOperations?\r\n
\r\n {!this.props.hideAddRecord ?\r\n \r\n : null }\r\n { !this.props.hideDelete ?\r\n \r\n : null }\r\n
\r\n : null }\r\n {!this.props.entity.isFileListingTable && !this.props.hideImportExport ? \r\n
\r\n {!this.props.restrictedOperations && EM.isDomainAdmin() && !this.props.hideImport ?\r\n \r\n : null } \r\n \r\n {EM.t('util.table.exportRecords')}{this.props.showingFilters?' Filtered':' All'}\r\n \r\n {this.props.hasOutputPipeline ? \r\n \r\n \r\n \r\n \r\n \r\n \r\n {EM.t('util.table.exportViaPipeline')}\r\n \r\n \r\n \r\n : null } \r\n
\r\n : null }\r\n \r\n {this.props.children} \r\n {!this.props.restrictedOperations && EM.isDomainAdmin()? \r\n
\r\n {!this.props.hideAudit ? \r\n \r\n : null }\r\n {EM.debugMode && !this.props.hideClearAll ? \r\n \r\n : null }\r\n
\r\n : null } \r\n {this.props.shouldShowFilters?\r\n
\r\n \r\n { this.props.showingFilters ?\r\n \r\n : null }\r\n
\r\n : null } \r\n { \r\n !this.props.hideSearch ? : null \r\n }\r\n {\r\n // !this.props.hideSearch ? :null\r\n !this.props.hideSearch ? null :null\r\n }\r\n {this.props.shouldShowColumnToggle?\r\n
\r\n \r\n
\r\n : null } \r\n
,\r\n {\r\n this.setState({ importModalOpen: false }); \r\n }}\r\n />,\r\n \r\n {\r\n this.setState({ createModalOpen: false }); \r\n if(this.props.onClose)\r\n this.props.onClose(); \r\n }}\r\n />\r\n \r\n ];\r\n }\r\n}\r\n\r\nexport default EntityTableTools;\r\n","/* global EM */\r\n/* eslint no-return-assign: 0 */\r\nimport React, { Component } from 'react';\r\nimport cs from 'classnames';\r\n\r\nexport default class ActiveEditField extends Component {\r\n componentDidMount() {\r\n const { defaultValue, didMount } = this.props;\r\n this.select.value = defaultValue;\r\n this.select.focus();\r\n if (didMount) didMount();\r\n }\r\n\r\n getValue() {\r\n return this.select.value.toString().toLowerCase() === 'true';\r\n }\r\n\r\n render() {\r\n const { defaultValue, className } = this.props;\r\n const editorClass = cs('form-control editor edit-select', className);\r\n \r\n const attr = {\r\n className: editorClass\r\n };\r\n\r\n return (\r\n this.select = node }\r\n defaultValue={ defaultValue }\r\n onChange={() => {\r\n \r\n if(this.props.row && this.props.dataField){\r\n this.props.onUpdate({row:this.props.row,dataField:this.props.dataField,value:this.getValue()});\r\n } else {\r\n this.props.onUpdate(this.getValue());\r\n }\r\n \r\n this.select.blur();\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nexport default class PopoutEditField extends Component {\r\n getValue(){\r\n return this.props.value;\r\n }\r\n\r\n render() {\r\n return \r\n }\r\n}","/* global EM */\r\n/* eslint no-return-assign: 0 */\r\nimport React, { Component } from 'react';\r\nimport Creatable from 'react-select/creatable';\r\n\r\nexport default class AssignmentLabelEditField extends Component {\r\n constructor(props){\r\n super(props);\r\n \r\n this.state = {\r\n labelList: [],\r\n currentValue: this.props.value || ''\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let labelList = []; \r\n let labelSetting = EM.getSetting('AdditionalLabels'); \r\n if (labelSetting){\r\n labelSetting.split(',').forEach((label) => {\r\n labelList.push({ value: label.trim(), label: label.trim() });\r\n });\r\n } \r\n\r\n this.setState({ labelList });\r\n }\r\n\r\n render() {\r\n let cv = this.state.currentValue;\r\n let value = cv ? { value: cv, label: cv } : this.props.value;\r\n\r\n return (\r\n { return EM.t('util.select-create', null, [input]) }}\r\n value={value} \r\n ref={this.props.innerRef} \r\n onChange={(selected) => {\r\n this.setState({ currentValue: selected ? selected.value.trim() : null });\r\n if (this.props.onChange)this.props.onChange(selected);\r\n if (this.props.onUpdate)this.props.onUpdate(selected ? selected.value.trim() : null);\r\n }} \r\n />\r\n );\r\n }\r\n}","/* global EM */\r\nimport { Type } from 'react-bootstrap-table2-editor';\r\nimport ActiveEditField from './ActiveEditField';\r\nimport PercentageEditField from './PercentageEditField';\r\nimport DateEditField from './DateEditField';\r\nimport PopoutEditField from './PopoutEditField';\r\nimport WorkItemSelector from './WorkItemSelector';\r\nimport UserIcon from '../components/UserIcon';\r\nimport AssignmentStatusEditField from './Staffing/AssignmentStatusEditField';\r\nimport AssignmentLabelEditField from './Staffing/AssignmentLabelEditField';\r\nimport React from 'react';\r\nimport { Validate } from '../util/EntityValidators';\r\nimport Dates from '../util/Dates';\r\nimport { textFilter, selectFilter, numberFilter, dateFilter, Comparator } from 'react-bootstrap-table2-filter';\r\nimport CheckBoxEditField from './CheckBoxEditField';\r\nimport _ from 'underscore';\r\n\r\nexport default function (columns, registerFilter) {\r\n return columns.map((columnDef, columnIndex) => {\r\n var newDef = Object.assign({}, columnDef);\r\n \r\n if (!newDef.hasOwnProperty('sort')) {\r\n newDef.sort = true;\r\n }\r\n\r\n if (newDef.fromEntity && !newDef.formatter && !newDef.editor) {\r\n newDef.editor = {\r\n type: Type.SELECT,\r\n options: newDef.allowNulls ? [{ value: null, label: null }, ...newDef.fromEntity.asOptionList(newDef.optionLabelField, newDef.omitEntitySort ? false : true)] : newDef.fromEntity.asOptionList(newDef.optionLabelField, newDef.omitEntitySort ? false : true)\r\n };\r\n\r\n // Handling filter case of role for super admin\r\n if(columnDef.text === 'Role') {\r\n let roles = newDef.editor.options;\r\n if(EM.isSuperAdmin()) {}\r\n else if(EM.isAdmin()) {\r\n roles = newDef.editor.options.filter((el) => {\r\n if(el.label !== 'SuperAdmin')\r\n return el\r\n })\r\n } else {\r\n roles = newDef.editor.options.filter((el) => {\r\n if(el.label !== 'SuperAdmin' && el.label !== 'Admin')\r\n return el\r\n })\r\n }\r\n newDef.editor.options = roles;\r\n }\r\n\r\n if(columnDef.text === 'User Type' && !EM.isAdmin() && !EM.isSuperAdmin()) {\r\n let types = newDef.editor.options;\r\n types = newDef.editor.options.filter((el) => {\r\n if(el.label !== 'Associate')\r\n return el\r\n })\r\n newDef.editor.options = types;\r\n }\r\n\r\n newDef.formatter = newDef.sortValue = newDef.csvFormatter = (cell, row) => {\r\n return newDef.fromEntity.lookupValue(cell);\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filterValue = (cell) => {\r\n return cell;\r\n };\r\n\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: newDef.allowNulls ? [{ value: null, label: null }, ...newDef.fromEntity.asOptionList(null, newDef.omitEntitySort ? false : true)] : newDef.fromEntity.asOptionList(null, newDef.omitEntitySort ? false : true)\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asUser) {\r\n newDef.editor = {\r\n type: Type.SELECT,\r\n options: EM.users.asOptionList((row) => {\r\n return row.Name + ' (' + row.Email + ')';\r\n }, true)\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: EM.users.asOptionList((row) => {\r\n return row.Name + ' (' + row.Email + ')';\r\n }, true)\r\n });\r\n }\r\n\r\n newDef.formatter = (cell) => {\r\n if (!cell) return null;\r\n let user = EM.users.byId(cell);\r\n if (!user) return {EM.t('users.userRemoved')};\r\n return {newDef.userText || user.Name}\r\n };\r\n\r\n newDef.csvFormatter = (cell) => {\r\n let user = EM.users.byId(cell);\r\n return user ? user.Name : 'User has been removed.';\r\n };\r\n }\r\n\r\n if (newDef.asUserIcon) {\r\n newDef.editor = null;\r\n newDef.editable = false;\r\n newDef.formatter = (cell) => {\r\n let user = EM.users.byId(cell);\r\n return \r\n };\r\n newDef.csvFormatter = (cell) => {\r\n let user = EM.users.byId(cell);\r\n return user ? user.Name : 'Unknown: ' + cell;\r\n };\r\n }\r\n\r\n if (newDef.asPermission) {\r\n newDef.editor = {\r\n type: Type.SELECT,\r\n options: [\r\n { value: 1, label: 'Subscriber (Read-Only)' },\r\n { value: 50, label: 'Editor (Read/Write)' },\r\n { value: 100, label: 'Domain Admin (Administrative)' }\r\n ]\r\n };\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n let permission = EM.permissionLookup.byId(cell);\r\n return permission ? permission.Name : cell;\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: [\r\n { value: 1, label: 'Subscriber' },\r\n { value: 50, label: 'Editor' },\r\n { value: 100, label: 'Domain Admin' }\r\n ]\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asCheckbox && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n\r\n newDef.formatter = (cell,row) => {\r\n if (!cell) return;\r\n let output = [];\r\n _.each(cell,(item)=>{\r\n let option = _.findWhere(newDef.options,{value:item});\r\n if(option)\r\n output.push(option.label);\r\n });\r\n return output.toString();\r\n };\r\n }\r\n\r\n if (newDef.asActive && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n if (typeof cell === 'undefined' || cell === null) return '';\r\n return cell.toString().toLowerCase() === 'true' ? 'Yes' : 'No'\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: [\r\n { value: true, label: 'Yes' },\r\n { value: false, label: 'No' },\r\n ]\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asWorkItem && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n return cell;\r\n };\r\n newDef.csvFormatter = newDef.csvFormatter = (cell) => {\r\n return cell ? cell : '';\r\n };\r\n }\r\n\r\n if (newDef.asPercentage && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n if (!cell) return '';\r\n return (cell * 100).toFixed(0);\r\n };\r\n }\r\n\r\n if (newDef.asDate && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n if (!cell) return;\r\n return Dates.toMonthYearStrShort(Dates.fromISO(cell));\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n if (!cell) return '';\r\n return Dates.toDateShort(Dates.fromISO(cell));\r\n };\r\n newDef.filterValue = (cell) => {\r\n if (!cell) return null;\r\n return Dates.fromISO(cell).toJSDate();\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = dateFilter({\r\n placeholder: 'Date',\r\n withoutEmptyComparatorOption: true,\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT],\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter, 'date'); },\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asDateTime && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n if (!cell) return;\r\n return Dates.toDateTime(Dates.fromISO(cell));\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n if (!cell) return '';\r\n return Dates.toDateShort(Dates.fromISO(cell));\r\n };\r\n newDef.filterValue = (cell) => {\r\n if (!cell) return null;\r\n return Dates.fromISO(cell).toJSDate();\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = dateFilter({\r\n placeholder: 'Date',\r\n withoutEmptyComparatorOption: true,\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT],\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter, 'date'); },\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asFeature && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n if (newDef.onStartEdit) {\r\n newDef.onStartEdit(editorProps, value, row, column, rowIndex, columnIndex);\r\n }\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n let jsonObj;\r\n try {\r\n jsonObj = JSON.parse(cell);\r\n } catch (e) { }\r\n if (!jsonObj) {\r\n return cell ? 'Invalid JSON' : '';\r\n }\r\n let output = '';\r\n Object.keys(jsonObj).forEach(key => {\r\n let tmp = [];\r\n Object.keys(jsonObj[key]).forEach(feat => {\r\n if (jsonObj[key][feat]) {\r\n tmp.push(feat.capitalize());\r\n }\r\n });\r\n if (tmp.length > 0) {\r\n output += (key === '*' ? 'All' : key) + ': ' + tmp.join(', ');\r\n }\r\n });\r\n return output;\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n return cell || '';\r\n };\r\n newDef.classes = 'column-pre';\r\n }\r\n\r\n if (newDef.asOptions && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n if (newDef.onStartEdit) {\r\n newDef.onStartEdit(editorProps, value, row, column, rowIndex, columnIndex);\r\n }\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n let jsonObj;\r\n try {\r\n jsonObj = JSON.parse(cell);\r\n } catch (e) { }\r\n\r\n if (!jsonObj) {\r\n return cell ? 'Invalid JSON' : ;\r\n } else {\r\n return <>\r\n \r\n {jsonObj.color ?\r\n \r\n : null}\r\n \r\n }\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n return cell || '';\r\n };\r\n newDef.classes = 'column-options';\r\n }\r\n\r\n if (newDef.asReferenceTable && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n if (newDef.onStartEdit) {\r\n newDef.onStartEdit(editorProps, value, row, column, rowIndex, columnIndex);\r\n }\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n return \r\n }\r\n newDef.csvFormatter = (cell) => {\r\n return cell || '';\r\n };\r\n newDef.headerClasses = 'column-functions';\r\n newDef.classes = 'column-functions';\r\n newDef.csvExport = false;\r\n }\r\n\r\n if (newDef.asAssignmentStatus && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n return cell ? cell : 'Assigned';\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: [\r\n { value: 'Assigned', label: 'Assigned' },\r\n { value: 'Locked', label: 'Locked' },\r\n ]\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asAssignmentLabel) { \r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n return cell;\r\n };\r\n\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n }\r\n\r\n if (newDef.isReference) {\r\n newDef.isDummyField = true;\r\n newDef.headerClasses = 'column-reference';\r\n newDef.classes = 'column-reference';\r\n newDef.editable = false;\r\n newDef.csvExport = false;\r\n }\r\n\r\n if (newDef.isDateReference) {\r\n newDef.headerClasses = newDef.headerClasses || 'column-reference';\r\n newDef.classes = newDef.classes || 'column-reference';\r\n newDef.editable = false;\r\n if (typeof newDef.csvExport === 'undefined') newDef.csvExport = false;\r\n newDef.formatter = (cell) => {\r\n if (!cell) return;\r\n return Dates.isoToDateTime(cell);\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n if (!cell) return;\r\n let rawDate = Dates.isoToDateTime(cell, Dates.DATETIME_LONG);\r\n return rawDate.replace(/(\\d{4}),\\s/gm, '$1 '); //This could cause trouble for ex-us folks. \r\n };\r\n newDef.sortValue = (cell) => {\r\n if (!cell) return;\r\n return Dates.fromISO(cell).toMillis();\r\n };\r\n newDef.filterValue = (cell) => {\r\n if (!cell) return undefined;\r\n return Dates.fromISO(cell).toJSDate();\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = dateFilter({\r\n placeholder: 'Date',\r\n withoutEmptyComparatorOption: true,\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT],\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter, 'date'); },\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asFunctions) {\r\n newDef.isDummyField = true;\r\n newDef.dataField = 'functions' + columnIndex;\r\n newDef.headerClasses = 'column-functions';\r\n newDef.classes = 'column-functions';\r\n newDef.editable = false;\r\n newDef.csvExport = false;\r\n }\r\n\r\n if (newDef.asMeta) {\r\n newDef.headerClasses = 'column-meta';\r\n newDef.classes = 'column-meta';\r\n newDef.editable = false;\r\n newDef.creatable = false;\r\n newDef.isMeta = true;\r\n newDef.unhideable = true;\r\n if (typeof newDef.csvExport === 'undefined') newDef.csvExport = false;\r\n }\r\n\r\n if (newDef.width) {\r\n newDef.classes = (newDef.classes ? newDef.classes + ' ' : '') + 'width-' + newDef.width;\r\n newDef.headerClasses = (newDef.headerClasses ? newDef.headerClasses + ' ' : '') + 'width-' + newDef.width;\r\n }\r\n\r\n if (newDef.validators) {\r\n newDef.validator = (newValue, row, column) => {\r\n let valResult = Validate(newValue, newDef.validators,null,null,row);\r\n if (valResult === null) {\r\n return true;\r\n } else {\r\n window.setTimeout(() => { EM.setError(valResult) }, 100);\r\n return { valid: false, message: valResult }\r\n }\r\n }\r\n }\r\n\r\n if (newDef.editable === false) {\r\n newDef.classes = (newDef.classes ? newDef.classes + ' ' : '') + 'readonly';\r\n }\r\n\r\n if (!newDef.csvFormatter) {\r\n newDef.csvFormatter = (cell) => {\r\n if (cell) {\r\n return cell;\r\n } else {\r\n if (cell === 0) {\r\n return '0';\r\n } else {\r\n return '';\r\n }\r\n }\r\n };\r\n }\r\n\r\n if (!newDef.hasOwnProperty('filter') && newDef.filterOptions && registerFilter) {\r\n if (newDef.filterOptions.dynamicEntity) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: newDef.filterOptions.dynamicEntity.asOptionList('Name', false, 'Name')\r\n });\r\n }\r\n if (newDef.filterOptions.number) {\r\n newDef.filter = numberFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter, 'number'); },\r\n withoutEmptyComparatorOption: true,\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT],\r\n placeholder: 'Value'\r\n });\r\n }\r\n if (newDef.filterOptions.text) {\r\n newDef.filter = textFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Value'\r\n });\r\n }\r\n if (newDef.filterOptions.bool) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: [\r\n { value: true, label: 'Yes' },\r\n { value: false, label: 'No' },\r\n ]\r\n });\r\n }\r\n }\r\n\r\n \r\n if (!newDef.editor && !newDef.editorRenderer && newDef.editable !== false && newDef.characterLimit){\r\n newDef.editor = {\r\n maxLength: newDef.characterLimit\r\n }\r\n }\r\n return newDef;\r\n });\r\n}","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nexport default class EntityColumnConfig extends Component {\r\n constructor(props) { \r\n super(props);\r\n\r\n this.onClose = this.onClose.bind(this);\r\n }\r\n\r\n onClose() {\r\n this.props.onClose();\r\n }\r\n\r\n render() {\r\n let { columns, onColumnToggle, toggles } = this.props.columnToggleProps;\r\n return (\r\n \r\n {EM.t('util.table.configureColumns')}\r\n \r\n
\r\n {\r\n columns\r\n .map(column => ({\r\n ...column,\r\n toggle: toggles[column.dataField]\r\n }))\r\n .map(column => {\r\n return (\r\n {\r\n if (column.unhideable)return;\r\n onColumnToggle(column.dataField);\r\n event.target.blur();\r\n this.props.onColumnToggle(toggles);\r\n }}\r\n >\r\n { column.text }\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","/* global EM */\r\nimport React, { Component, Suspense } from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport ToolkitProvider from 'react-bootstrap-table2-toolkit';\r\nimport cellEditFactory from 'react-bootstrap-table2-editor';\r\nimport paginationFactory, { PaginationProvider, PaginationTotalStandalone } from 'react-bootstrap-table2-paginator';\r\nimport filterFactory from 'react-bootstrap-table2-filter';\r\nimport NoTableData from './NoTableData';\r\nimport PageTitle from '../PageTitle';\r\nimport EntityTableTools from './EntityTableTools';\r\nimport ColumnMapper from '../ColumnMapper';\r\nimport EntityColumnConfig from './EntityColumnConfig';\r\nimport { numberFilter, Comparator } from 'react-bootstrap-table2-filter';\r\n\r\n// const EntityAuditTrail = React.lazy(() => import('./EntityAuditTrail'));\r\n\r\nexport default class EntityTable extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.columns = null;\r\n this.selectedRows = [];\r\n\r\n this.state = {\r\n currentPage:1,\r\n auditId: null,\r\n showingColumnToggle: false,\r\n showingFilters: false,\r\n collapsed : this.props.collapsible && this.props.collapsed ===true\r\n }\r\n\r\n this.onDelete = this.onDelete.bind(this);\r\n this.onAudit = this.onAudit.bind(this);\r\n this.filterRegistry = [];\r\n\r\n }\r\n\r\n registerFilter(filter, type){\r\n this.filterRegistry.push({ filter, type }); \r\n }\r\n\r\n clearFilters(){\r\n this.filterRegistry.forEach(filterOpt => {\r\n try{\r\n if (filterOpt.filter){\r\n if (filterOpt.type === 'date'){\r\n filterOpt.filter({ date: '', comparator: Comparator.EQ });\r\n }else if (filterOpt.type === 'number'){\r\n filterOpt.filter({ number: '', comparator: Comparator.EQ });\r\n }else{\r\n filterOpt.filter('');\r\n }\r\n }\r\n }catch(e){\r\n }\r\n }) \r\n }\r\n\r\n mapColumns() {\r\n if (this.props.columns) {\r\n this.columns = ColumnMapper(this.props.columns, this.registerFilter.bind(this));\r\n \r\n if (!this.props.neverShowId) {\r\n if (!this.columns.find(col => col.text === EM.t('util.table.idColumn'))){\r\n this.columns.unshift({\r\n dataField: this.props.entity.idField + 'Ref',\r\n text: EM.t('util.table.idColumn'),\r\n isDummyField: true,\r\n headerClasses: 'column-id',\r\n classes: 'column-id',\r\n editable: false,\r\n sort: true,\r\n csvExport: false,\r\n formatter: (cell, row) => {\r\n let value = row[this.props.entity.idField];\r\n return value;\r\n },\r\n csvFormatter: (cell, row) => {\r\n return row[this.props.entity.idField]\r\n },\r\n unhideable: true,\r\n filterValue: (cell, row) => {\r\n let value = row[this.props.entity.idField];\r\n return value;\r\n },\r\n sortValue: (cell, row) => {\r\n let value = row[this.props.entity.idField];\r\n return value;\r\n },\r\n filter: numberFilter({\r\n withoutEmptyComparatorOption: true,\r\n className: 'filter-label',\r\n placeholder: 'Value',\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT]\r\n })\r\n });\r\n }\r\n }\r\n // this.columns.unshift({\r\n // dataField: 'SNumberRef',\r\n // text: EM.t('util.table.sNumber'),\r\n // isDummyField: true,\r\n // headerClasses: 'column-id',\r\n // classes: 'column-id',\r\n // editable: false,\r\n // sort: true,\r\n // csvExport: false,\r\n // formatter: (cell, row,rowIndex ) => {\r\n // let value = (this.state.currentPage - 1) * 100 + (rowIndex + 1);\r\n // return value;\r\n // },\r\n // csvFormatter: (cell, row) => {\r\n // return row[this.props.entity.idField]\r\n // },\r\n // unhideable: true,\r\n // filterValue: (cell, row) => {\r\n // let value = row[this.props.entity.idField];\r\n // return value;\r\n // },\r\n // sortValue: (cell, row) => {\r\n // let value = row[this.props.entity.idField];\r\n // return value;\r\n // },\r\n // filter: numberFilter({\r\n // withoutEmptyComparatorOption: true,\r\n // className: 'filter-label',\r\n // placeholder: 'Value',\r\n // comparators: [Comparator.EQ, Comparator.GT, Comparator.LT]\r\n // })\r\n // });\r\n if ((EM.debugMode && !this.props.suppressMeta) || this.props.forceMeta){\r\n let metaCols = [{\r\n dataField: 'CreatedOn',\r\n text: EM.t('util.meta.created'),\r\n isDateReference: true,\r\n asMeta: true,\r\n width: 150\r\n },{\r\n dataField: 'CreatedBy',\r\n text: EM.t('util.meta.createdBy'),\r\n asUser: true,\r\n asMeta: true,\r\n width: 125\r\n },{\r\n dataField: 'ModifiedOn',\r\n text: EM.t('util.meta.modified'),\r\n isDateReference: true,\r\n asMeta: true,\r\n width: 150\r\n },{\r\n dataField: 'ModifiedBy',\r\n text: EM.t('util.meta.modifiedBy'),\r\n asUser: true,\r\n asMeta: true,\r\n width: 125\r\n }];\r\n\r\n Array.prototype.push.apply(this.columns, ColumnMapper(metaCols, this.registerFilter.bind(this)));\r\n }\r\n } else {\r\n this.columns = [\r\n {\r\n dataField: 'loading',\r\n text: this.props.entity.t('title'),\r\n editable: false,\r\n isDummyField: true,\r\n sort: true\r\n }\r\n ];\r\n }\r\n }\r\n\r\n // shouldComponentUpdate(nextProps, nextState) {\r\n // if (nextProps.data === this.props.data) {\r\n // if (nextState.auditId !== this.state.auditId || \r\n // nextState.showingColumnToggle !== this.state.showingColumnToggle ||\r\n // nextState.showingFilters !== this.state.showingFilters\r\n // ){\r\n // return true;\r\n // }else{\r\n // return false;\r\n // }\r\n // }\r\n // return true;\r\n // }\r\n\r\n onDelete() {\r\n let self = this;\r\n if (self.selectedRows.length <= 0) return;\r\n if (window.confirm(EM.t('util.table.deleteConfirmation'))) {\r\n let ids = self.selectedRows.map(item => { return item[self.props.entity.idField] }); \r\n if (self.props.onDelete) {\r\n let result = self.props.onDelete(ids);\r\n if (result && result.cancel)return;\r\n } else {\r\n self.props.entity.delete(ids,this.props.parentRecordDetail);\r\n }\r\n self.selectedRows = [];\r\n\r\n if (self.props.onAfterDelete) {\r\n self.props.onAfterDelete(ids);\r\n }\r\n }\r\n }\r\n\r\n onAudit(){\r\n let self = this;\r\n if (self.selectedRows.length > 1){\r\n window.alert(EM.t('util.table.auditMultipleWarning'));\r\n return;\r\n }\r\n\r\n if (self.selectedRows.length <= 0 && !EM.isSuperAdmin()){\r\n window.alert(EM.t('util.table.auditMultipleWarning'));\r\n return;\r\n }\r\n\r\n let selected = self.selectedRows[0];\r\n let id = selected ? selected[self.props.entity.idField] : '*';\r\n self.setState({ auditId: id });\r\n }\r\n\r\n // onPipelineExport(){\r\n // DataOutputHelper.exportEntity(this.props.entity, '-pipeline');\r\n // }\r\n\r\n render() {\r\n let self = this;\r\n this.mapColumns();\r\n let domain = EM.getActiveDomain();\r\n let isChildDomain = domain ? (domain.ParentDomainId ? true : false) : false;\r\n let restrictedOperations = isChildDomain && this.props.entity !== EM.settings && this.props.entity !== EM.permissions;\r\n\r\n // let hasDuplicates = this.props.entity.hasDuplicates();\r\n let hasDuplicates =false;\r\n // let highlighted = EM.debugMode ? this.props.entity.findDuplicates() : {};\r\n let highlighted = {};\r\n let rowClasses = (row, rowIndex) => {\r\n let classes = [];\r\n if (row.hasOwnProperty('Active')) {\r\n if (row.Active === false) classes.push('dimmed');\r\n }\r\n if (row.hasOwnProperty('IsDefault')) {\r\n if (row.IsDefault === true) classes.push('default');\r\n }\r\n if (EM.debugMode) {\r\n if (highlighted[row[this.props.entity.idField]]) {\r\n classes.push('highlight');\r\n }\r\n }\r\n if (this.props.setRowClasses){\r\n let newRowClasses = this.props.setRowClasses(row, rowIndex);\r\n return [...classes, (newRowClasses || [])].join(' ');\r\n }else{\r\n return classes.join(' ');\r\n }\r\n \r\n };\r\n\r\n if (isChildDomain) {\r\n if (this.props.entity.isOverridden()) restrictedOperations = false;\r\n }\r\n\r\n if (!this.props.columns && this.props.showColumnToggle){\r\n return null;\r\n }\r\n\r\n let addAlertClass = hasDuplicates || restrictedOperations;\r\n\r\n return (\r\n !column.hideInTable)}\r\n columnToggle={this.props.showColumnToggle}\r\n exportCSV={{\r\n fileName: this.props.entity.name + '.csv',\r\n exportAll: this.state.showingFilters ? false : true,\r\n onlyExportFiltered: this.state.showingFilters ? true : false,\r\n }}\r\n search={{\r\n searchFormatted: true\r\n }}\r\n >{props => (\r\n
\r\n {!this.props.hideToolbar ?\r\n
{if(this.props.collapsible){ this.setState({collapsed:!this.state.collapsed})} else this.setState({collapsed:false})}}>\r\n \r\n {this.props.columns ?\r\n {\r\n let confirmationText = EM.t('util.table.clearConfirmation', false, [this.props.entity.t('title')]);\r\n let promptResult = window.prompt(EM.t('util.table.clearPrompt', false, [confirmationText]));\r\n if (promptResult === confirmationText) {\r\n if (csvProps) csvProps.onExport();\r\n this.props.entity.clearAll();\r\n }\r\n }}\r\n \r\n showingExtraTools={this.state.showingColumnToggle}\r\n shouldShowColumnToggle={this.props.showColumnToggle}\r\n onToggleColumnToggle={() => {\r\n this.setState({ showingColumnToggle: !this.state.showingColumnToggle });\r\n }}\r\n\r\n showingFilters={this.state.showingFilters}\r\n shouldShowFilters={!this.props.hideFilters}\r\n onToggleFilters={() => {\r\n this.clearFilters();\r\n this.setState({ showingFilters: !this.state.showingFilters });\r\n }}\r\n onClearFilters={() => {\r\n this.clearFilters();\r\n }}\r\n >{this.props.children}\r\n : null}\r\n \r\n
\r\n : null }\r\n {this.props.subtitle ?\r\n

{this.props.subtitle}

\r\n : null}\r\n {/* {hasDuplicates && !this.props.entity.allowDuplicates ?\r\n
\r\n {EM.t('util.table.duplicatesMessage')}\r\n
\r\n : null} */}\r\n {restrictedOperations ?\r\n
\r\n {EM.t('util.table.restrictedMessage')}\r\n
\r\n : null}\r\n\r\n {this.props.showColumnToggle && props.columnToggleProps.toggles ?\r\n {\r\n this.setState({ showingColumnToggle: !this.state.showingColumnToggle })\r\n }}\r\n columnToggleProps={props.columnToggleProps} \r\n />\r\n : null }\r\n\r\n \r\n { !this.props.disableAudit ? \r\n \r\n {/* {\r\n this.setState({ auditId: null });\r\n }} /> */}\r\n \r\n : null }\r\n
\r\n )}\r\n \r\n );\r\n }\r\n};","/* eslint no-extend-native: \"off\" */\r\n\r\nexport default {\r\n formatPhoneNumber: function (phoneNumberString) {\r\n // Remove all non-digit characters\r\n let cleaned = ('' + phoneNumberString).replace(/\\D/g, '');\r\n \r\n // Extract the necessary parts\r\n let match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\r\n \r\n // If the phone number doesn't match the expected format, return original\r\n if (match) {\r\n return '(' + match[1] + ') ' + match[2] + '-' + match[3];\r\n }\r\n \r\n return phoneNumberString;\r\n }\r\n}","/* global EM */\r\nimport React from 'react';\r\nimport InputMask from \"react-input-mask\";\r\nimport { Input } from \"reactstrap\";\r\nimport utils from '../util/utils';\r\n\r\nclass PhoneEditor extends React.Component { \r\n constructor(props) {\r\n super(props);\r\n this.value = '';\r\n }\r\n getValue() {\r\n return this.value;\r\n }\r\n\r\n getCtrlRef(column, ref) {\r\n return (this.ctrlRefs = ref || React.createRef());\r\n }\r\n\r\n render() {\r\n let self =this;\r\n const { updateData, value, column, rowIndex, ...rest } = this.props;\r\n let formattedValue = utils.formatPhoneNumber(value);\r\n return ( {\r\n self.value = event.target.value;\r\n }}\r\n // invalid={valMsg ? true : false}\r\n >);\r\n }\r\n}\r\n\r\nexport default PhoneEditor;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport utils from '../util/utils'\r\nimport PhoneEditor from '../components/PhoneEditor';\r\n\r\nclass Companies extends Component {\r\n constructor(props) {\r\n super(props); \r\n\r\n this.entity = EM.companies;\r\n this.state = {\r\n pageLoad:true\r\n }; \r\n }\r\n\r\n componentDidMount(){ \r\n this.entity.load(true);\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"emailAddress\",\r\n text: this.entity.columns(\"email\"),\r\n validators: [ Validators.required,Validators.email,Validators.length200],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"address\",\r\n text: this.entity.columns(\"address\"),\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"address2\",\r\n text: this.entity.columns(\"address2\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"phone\",\r\n text:\"Phone\",\r\n validators:[Validators.required,Validators.phone], \r\n asPhone:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell,row) => { \r\n return utils.formatPhoneNumber(cell);\r\n },\r\n editorRenderer: (editorProps, value, row, column, rowIndex, columnIndex, onKeyDown, onBlur) => {\r\n return ;\r\n }\r\n },\r\n {\r\n dataField: \"city\",\r\n text: this.entity.columns(\"city\"),\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"state\",\r\n text: this.entity.columns(\"state\"),\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"zip\",\r\n text: this.entity.columns(\"zip\"),\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n },\r\n {\r\n dataField: \"Config\",\r\n text:\"Config\", \r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return \r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Companies;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport Papa from 'papaparse';\r\nconst addColumnNames = (data, columnNames) => {\r\n const dataWithHeaders = data.map((row, index) => {\r\n const rowData = {};\r\n columnNames.forEach((columnName, columnIndex) => {\r\n if(row[columnIndex]!==undefined){\r\n rowData[columnName] = row[columnIndex];\r\n }else{\r\n rowData[columnName] = \"\"\r\n }\r\n });\r\n return rowData;\r\n });\r\n return dataWithHeaders;\r\n};\r\nclass EventGroups extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.eventGroups;\r\n this.state = {\r\n pageLoad:true,\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n defaultCompany:EM.getDefaultCompany(),\r\n parentRecordDetail:{companyId:EM.getDefaultCompany().companyId},\r\n uploadEventGroup:null,\r\n createModalOpen:null\r\n }; \r\n this.hiddenFileInput = React.createRef()\r\n \r\n this.openUpload = this.openUpload.bind(this);\r\n this.parseCSV = this.parseCSV.bind(this);\r\n this.updateCreateModel = this.updateCreateModel.bind(this);\r\n this.assignUsersToGroup = this.assignUsersToGroup.bind(this);\r\n this.createNewGroup = this.createNewGroup.bind(this);\r\n }\r\n async componentDidMount(){ \r\n await EM.locations.loadEntityByParent(this.state.parentRecordDetail,true);\r\n await this.entity.loadEntityByParent(this.state.parentRecordDetail,true) \r\n \r\n }\r\n reloadEventGroups(){\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,true)\r\n }\r\n toUsers(eventGroupId){\r\n this.props.history.push(Routes.compose(Routes.client.groupUser,{eventGroupId})); \r\n }\r\n openUpload(uploadEventGroup){\r\n this.setState({uploadEventGroup})\r\n this.hiddenFileInput.current.click();\r\n }\r\n handleAssignUsersFile = event => {\r\n const file = event.target.files[0];\r\n const allowedExtensions = /(\\.csv)$/i;\r\n\r\n if (!allowedExtensions.test(file.name)) {\r\n alert('Please upload a CSV file.');\r\n return;\r\n }\r\n const fileUploaded = event.target.files[0];\r\n const reader = new FileReader();\r\n const self= this\r\n reader.onload = function (e) {\r\n const csvString = e.target.result;\r\n self.parseCSV(csvString);\r\n };\r\n\r\n reader.readAsText(fileUploaded);\r\n }\r\n async assignUsersToGroup(usersList){ \r\n const {uploadEventGroup} = this.state\r\n var request = {\r\n eventGroupName: uploadEventGroup.name,\r\n eventId: uploadEventGroup.locationId,\r\n usersList: usersList,\r\n eventGroupId: uploadEventGroup.eventGroupId\r\n }\r\n await this.entity.executePut(request,null,this.entity.entityTypeDef.assignUserUrl, {},false);\r\n this.reloadEventGroups()\r\n }\r\n parseCSV(csvString) {\r\n \r\n Papa.parse(csvString, { header: false, \r\n \r\n complete: (results) => { \r\n let parsedData = { data: [] };\r\n if (results && results.data && results.data.length > 0) {\r\n parsedData.data = results.data.slice(1).filter(row => {\r\n return row.some(cell => cell.trim() !== ''); // Filter out rows with at least one non-empty cell\r\n });\r\n } \r\n const dataWithHeaders = addColumnNames(parsedData.data, ['phone','firstName','lastName']); \r\n this.assignUsersToGroup(dataWithHeaders)\r\n } \r\n });\r\n }\r\n updateCreateModel = (value) => {\r\n this.setState({ createModalOpen: value });\r\n };\r\n async getcsvData(file){\r\n if(!file) return null;\r\n const allowedExtensions = /(\\.csv)$/i;\r\n\r\n if (!allowedExtensions.test(file.name)) {\r\n alert('Please upload a CSV file.');\r\n return false;\r\n }\r\n return new Promise((resolve, reject) => {\r\n const fileUploaded = file;\r\n const reader = new FileReader(); \r\n reader.onload = async function (e) {\r\n const csvString = e.target.result;\r\n await Papa.parse(csvString, {\r\n header: false, \r\n complete: async (results) => { \r\n let parsedData = { data: [] };\r\n if (results && results.data && results.data.length > 0) {\r\n parsedData.data = results.data.slice(1).filter(row => {\r\n return row.some(cell => cell.trim() !== ''); // Filter out rows with at least one non-empty cell\r\n });\r\n } \r\n const dataWithHeaders = addColumnNames(parsedData.data, ['phone','firstName','lastName']); \r\n resolve( dataWithHeaders) \r\n } \r\n });\r\n };\r\n \r\n reader.readAsText(fileUploaded);\r\n })\r\n }\r\n async createNewGroup(inputs){\r\n const response = await this.getcsvData(inputs.uploadAssignedUsers)\r\n \r\n if(response!==false){\r\n const body = {\r\n eventGroupName: inputs.name,\r\n eventId: inputs.locationId,\r\n usersList:response\r\n }\r\n await this.entity.executePost(body,null,this.entity.entityTypeDef.assignUserUrl, {},false);\r\n this.reloadEventGroups() \r\n this.updateCreateModel(false)\r\n const self = this\r\n setTimeout(() => {\r\n self.updateCreateModel(null)\r\n }, 100);\r\n }\r\n }\r\n helperContent(){\r\n return Download a Sample CSV\r\n }\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let self=this\r\n if (EM.allLoaded(EM.eventGroups,EM.locations)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"locationId\",\r\n text: \"Event\",\r\n // hideInTable:true,\r\n validators: [ Validators.required],\r\n fromEntity:EM.locations,\r\n creatable:true\r\n }, \r\n {\r\n dataField: \"name\",\r\n text: \"Name\",\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"uploadAssignedUsers\",\r\n text: \"Upload Csv to assign Users\",\r\n hideInTable:true,\r\n // validators: [ Validators.required],\r\n asFile:true,\r\n helperContent:this.helperContent()\r\n }, \r\n {\r\n dataField: \"numberOfUsers\",\r\n text: \"Users\",\r\n editable:false,\r\n creatable:false\r\n },\r\n // {\r\n // dataField: \"isActive\",\r\n // text: \"Active\",\r\n // asActive: true,\r\n // creatable:false\r\n // },\r\n {\r\n dataField: \"Users\",\r\n text:\"Users\", \r\n creatable:false,\r\n editable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n )\r\n }, \r\n },\r\n ];\r\n }\r\n \r\n return (\r\n
\r\n {\r\n \r\n \r\n this.createNewGroup(data)\r\n \r\n }}\r\n // onDelete={()=>alert('das')}\r\n pageTitle={`Groups ${(this.state.defaultCompany.companyName && this.state.isSuperAdmin)?`(${this.state.defaultCompany.companyName})`:''}`}\r\n entity={this.entity}\r\n data={data}\r\n columns={columns}\r\n className=\"table-overflow-container\"\r\n hideImportExport={true}\r\n hideAudit ={true}\r\n onClose={() => {\r\n \r\n this.data = this.entity.get();\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EventGroups;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport ActiveEditField from '../components/ActiveEditField';\r\nclass EventTypes extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.entity = props.eventTypes;\r\n this.state = {\r\n parentRecordDetail:{companyId:props.company.companyId},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n companyName:props.company.companyName,\r\n };\r\n }\r\n\r\n toEventPackages(locationId){\r\n console.log(Routes.compose(Routes.client.eventPackages,{locationId}))\r\n this.props.history.push(Routes.compose(Routes.client.eventPackages,{locationId}));\r\n // EM.redirectTo(Routes.client.intervals,{locationId})\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let self = this;\r\n if (EM.allLoaded(this.entity)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"Packages\",\r\n text: this.entity.columns(\"packages\"),\r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \r\n \r\n )\r\n }, \r\n },\r\n ];\r\n }\r\n const onUpdate=(toUpdate)=>{\r\n // console.log(toUpdate)\r\n const newRow= toUpdate.row\r\n newRow[toUpdate.dataField]=toUpdate.value\r\n\r\n this.entity.update(toUpdate.row, newRow,{companyId:toUpdate.row.companyId}).then((res) => {\r\n });\r\n }\r\n const chooseControls = (element, row)=>{\r\n if(element.asActive && !element.formatter && !element.editor){\r\n return \r\n } else {\r\n return onUpdate({row:row,dataField:element.dataField,value:event.target.value})} defaultValue={row[element.dataField]} />\r\n }\r\n }\r\n const expandRow = {\r\n renderer: row => {\r\n const expandableColumns = columns.filter(column => (column.expandable===true))\r\n const render = expandableColumns.map((element,index) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {chooseControls(element, row)}\r\n \r\n
\r\n
\r\n )\r\n });\r\n return
{render}
\r\n },\r\n showExpandColumn: false,\r\n onExpand: (row, isExpand, rowIndex, e) => {\r\n // console.log(row);\r\n // console.log(isExpand);\r\n // console.log(rowIndex);\r\n // console.log(e);\r\n },\r\n expandHeaderColumnRenderer: ({ isAnyExpands }) => {\r\n if (isAnyExpands) {\r\n return ;\r\n }\r\n return ;\r\n },\r\n expandColumnRenderer: ({ expanded }) => {\r\n if (expanded) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n }\r\n };\r\n return ( \r\n {\r\n return true;\r\n }}\r\n onClose={() => {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default EventTypes;\r\n","export default __webpack_public_path__ + \"static/media/CollectionsCampaign.9bfa658b.svg\";","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport {Tabs, Tab} from 'react-bootstrap';\r\nimport ActiveEditField from '../components/ActiveEditField';\r\nimport EventTypes from './EventTypes';\r\nimport compaign from \"../assets/CollectionsCampaign.svg\";\r\n\r\nclass Locations extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.entity = EM.locations;\r\n this.eventTypesEntity = EM.eventTypes\r\n // let user = EM.account.get();\r\n let company = EM.getDefaultCompany();\r\n // _.findWhere(user.userCompanies,{defaultCompany:true});\r\n this.state = {\r\n isGESKUS:false,\r\n company,\r\n parentRecordDetail:{companyId:company.companyId},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n companyName:null,\r\n tabKey:'eventsList'\r\n };\r\n \r\n this.eventTypesEntity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.eventCategory = {\r\n \"null\":null,\r\n \"1\": \"Normal Event\", \r\n \"2\": \"School Event\",\r\n \"3\": \"Sports Event\"\r\n }\r\n }\r\n async componentDidMount(){\r\n \r\n const companyId = EM.getDefaultCompany().companyId\r\n this.setState({companyName:EM.getDefaultCompany().companyName})\r\n const parentRecordDetail = {id: companyId} \r\n await EM.companyConfig.loadSingleEntity(parentRecordDetail).then((data) => {\r\n \r\n });\r\n \r\n const companyConfig = EM.companyConfig.get()\r\n \r\n if(companyConfig.printinglabId===2 && companyConfig.printing===true){\r\n this.setState({isGESKUS:true})\r\n }\r\n \r\n }\r\n toRedirect(locationId, toward){\r\n this.props.history.push(Routes.compose(Routes.client[toward],{locationId}));\r\n // EM.redirectTo(Routes.client.intervals,{locationId})\r\n }\r\n\r\n handleSelect = (tabKey) => {\r\n this.setState({ tabKey });\r\n }\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let self = this;\r\n if (EM.allLoaded(this.entity, this.eventTypesEntity)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"expiryDate\",\r\n text: this.entity.columns(\"expiryDate\"),\r\n asDateTime: true,\r\n // hideInTable:true,\r\n // expandable:true,\r\n hideTime:true,\r\n // filterOptions: {\r\n // text: true,\r\n // },\r\n },\r\n {\r\n dataField: \"address1\",\r\n text: this.entity.columns(\"address1\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"address2\",\r\n text: this.entity.columns(\"address2\"),\r\n hideInTable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"city\",\r\n text: this.entity.columns(\"city\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"state\",\r\n text: this.entity.columns(\"state\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"zip\",\r\n text: this.entity.columns(\"zip\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"phone\",\r\n text: this.entity.columns(\"phone\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"free810Promotion\",\r\n text: this.entity.columns(\"free810Promotion\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"freeImagePromotion\",\r\n text: this.entity.columns(\"freeImagePromotion\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"force810Promotion\",\r\n text: this.entity.columns(\"force810Promotion\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"forceImagePromotion\",\r\n text: this.entity.columns(\"forceImagePromotion\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"onlyDirectoryUpload\",\r\n text: this.entity.columns(\"onlyDirectoryUpload\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"maziOrganizationCode\",\r\n text: this.entity.columns(\"maziOrganizationCode\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n },\r\n {\r\n dataField: \"eventTypeId\",\r\n text: this.eventTypesEntity.t(\"title\"),\r\n fromEntity: this.eventTypesEntity,\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"eventCategory\",\r\n text: this.entity.columns(\"eventCategory\"),\r\n editor:{\r\n type: \"select\",\r\n options: [\r\n {value:\"1\", label: \"Normal Event\"},\r\n {value:\"2\",label:\"School Event\"},\r\n {value:\"3\",label:\"Sports Event\"}\r\n ]},\r\n validators: [ Validators.required ],\r\n formatter: (cell, row) => {\r\n return (
{this.eventCategory[row.eventCategory]}
)\r\n },\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"Intervals\",\r\n text:\"Intervals\", \r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \r\n \r\n )\r\n }, \r\n },\r\n {\r\n dataField: \"Compaigns\",\r\n text:\"Campaigns\", \r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \"compaign\"{self.toRedirect(row.locationId,\"compaign\");}}/>\r\n \r\n )\r\n }, \r\n },\r\n ];\r\n\r\n if(this.state.isGESKUS){\r\n columns.splice(1, 0, {\r\n dataField: \"bookFront\",\r\n text: this.entity.columns(\"bookFront\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n hideInTable:true,\r\n expandable:true\r\n });\r\n columns.splice(2, 0, {\r\n dataField: \"bookBack\",\r\n text: this.entity.columns(\"bookBack\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n hideInTable:true,\r\n expandable:true\r\n });\r\n columns.splice(3, 0, {\r\n dataField: \"bookAd1\",\r\n text: this.entity.columns(\"bookAd1\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n hideInTable:true,\r\n expandable:true\r\n });\r\n columns.splice(4, 0, {\r\n dataField: \"bookAd2\",\r\n text: this.entity.columns(\"bookAd2\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n hideInTable:true,\r\n expandable:true\r\n });\r\n }\r\n }\r\n const onUpdate=(toUpdate)=>{\r\n // console.log(toUpdate)\r\n const newRow= toUpdate.row\r\n newRow[toUpdate.dataField]=toUpdate.value\r\n\r\n this.entity.update(toUpdate.row, newRow,{companyId:toUpdate.row.companyId}).then((res) => {\r\n });\r\n }\r\n const chooseControls = (element, row)=>{\r\n if(element.asActive && !element.formatter && !element.editor){\r\n return \r\n } else {\r\n return onUpdate({row:row,dataField:element.dataField,value:event.target.value})} defaultValue={row[element.dataField]} />\r\n }\r\n }\r\n const expandRow = {\r\n renderer: row => {\r\n const expandableColumns = columns.filter(column => (column.expandable===true))\r\n const render = expandableColumns.map((element,index) => {\r\n \r\n \r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {chooseControls(element, row)}\r\n \r\n
\r\n
\r\n )\r\n \r\n });\r\n return
{render}
\r\n // console.log(this.expandableColumns)\r\n // return (\r\n //
\r\n //

{ `This Expand row is belong to rowKey ${row.id}` }

\r\n //

You can render anything here, also you can add additional data on every row object

\r\n //

expandRow.renderer callback will pass the origin row object to you

\r\n //
\r\n // )\r\n },\r\n showExpandColumn: true,\r\n onExpand: (row, isExpand, rowIndex, e) => {\r\n // console.log(row);\r\n // console.log(isExpand);\r\n // console.log(rowIndex);\r\n // console.log(e);\r\n },\r\n expandHeaderColumnRenderer: ({ isAnyExpands }) => {\r\n if (isAnyExpands) {\r\n return ;\r\n }\r\n return ;\r\n },\r\n expandColumnRenderer: ({ expanded }) => {\r\n if (expanded) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n }\r\n };\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n {this.state.tabKey === \"eventsList\" ? (\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n ) : }\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Locations;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from \"../util/EntityValidators\";\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport { Type } from \"react-bootstrap-table2-editor\";\r\n\r\nclass Intervals extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.intervals;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n let locationId = this.props.match.params.locationId;\r\n this.state = {\r\n parentRecordDetail: { companyId: company.companyId, locationId },\r\n locationId: locationId,\r\n durationOptions: this.getDurationOption(),\r\n bookingCountOptions: this.getBookingCountOption(),\r\n daysOptions:this.getDaysOptions(),\r\n location:{},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n }; \r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentDidMount(){ \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n this.getLocation();\r\n }\r\n\r\n getLocation(){ \r\n let location = _.findWhere(EM.locations.get(),{locationId:parseInt(this.props.match.params.locationId)});\r\n if(!location)\r\n {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n EM.locations.loadEntityByParent({companyId:company.companyId}).then(()=>{\r\n let location = _.findWhere(EM.locations.get(),{locationId:parseInt(this.props.match.params.locationId)});\r\n this.setState({location:location});\r\n });\r\n }\r\n else{\r\n this.setState({location});\r\n }\r\n\r\n }\r\n getDaysOptions() {\r\n return [\r\n { label: 'Monday', value: 1 },\r\n { label: 'Tuesday', value: 2 },\r\n { label: 'Wednesday', value:3 },\r\n { label: 'Thursday', value: 4 },\r\n { label: 'Friday', value: 5 },\r\n { label: 'Saturday', value: 6 },\r\n { label: 'Sunday', value: 7 }\r\n ];\r\n }\r\n\r\n getDurationOption() {\r\n return [\r\n { label: 10, value: \"10\" },\r\n { label: 15, value: \"15\" },\r\n { label: 20, value: \"20\" },\r\n { label: 30, value: \"30\" },\r\n { label: 60, value: \"60\" },\r\n ];\r\n }\r\n\r\n getBookingCountOption() {\r\n return [\r\n { label: 1, value: \"1\" },\r\n { label: 2, value: \"2\" },\r\n { label: 3, value: \"3\" },\r\n { label: 4, value: \"4\" },\r\n ];\r\n }\r\n\r\n getTitle(){\r\n return `Intervals for ${this.state.location.name}`;\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let allLoaded = EM.allLoaded(this.entity,EM.locations); \r\n if (allLoaded) {\r\n data = this.entity.get();\r\n columns = [\r\n {\r\n dataField: \"startDateTime\",\r\n text: \"Start Date Time\",\r\n validators: [Validators.required],\r\n asDateTime: true,\r\n // formatter: (cell, row) => { \r\n // return '';\r\n // }\r\n },\r\n {\r\n dataField: \"endDateTime\",\r\n text: \"End Date Time\",\r\n validators: [Validators.required],\r\n asDateTime: true,\r\n },\r\n {\r\n dataField: \"duration\",\r\n text: \"Duration\",\r\n validators: [Validators.required],\r\n editor: {\r\n type: Type.SELECT,\r\n options: this.state.durationOptions,\r\n },\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"bookingCount\",\r\n text: \"Booking Count\",\r\n validators: [Validators.required],\r\n editor: {\r\n type: Type.SELECT,\r\n options: this.state.bookingCountOptions,\r\n },\r\n },\r\n {\r\n dataField: \"days\",\r\n text: \"Days\",\r\n validators: [Validators.required],\r\n asCheckbox: true,\r\n options: this.state.daysOptions,\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Intervals;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport PanelModal from '../PanelModal';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport Routes from '../../app/Routes';\r\nimport Spinner from '../Spinner';\r\nimport CKEditorInput from \"../CKEditorInput\";\r\nimport { Validators, Validate } from '../../util/EntityValidators'\r\nconst initialState={\r\n loading: false,\r\n key:\"\",\r\n label:\"\",\r\n value:\"\",\r\n popUpError:\"\",\r\n validators:false,\r\n entity:null,\r\n route:\"\",\r\n row:false\r\n}\r\nexport default class PopeUpUpdate extends Component{\r\n constructor(props){\r\n super(props); \r\n \r\n this.state = initialState; \r\n this.onTextChange = this.onTextChange.bind(this);\r\n this.ShowError = this.ShowError.bind(this);\r\n this.setConfig = this.setConfig.bind(this);\r\n this.validate = this.validate.bind(this);\r\n this.updateEntity = this.updateEntity.bind(this);\r\n this.reset = this.reset.bind(this); \r\n }\r\n reset(){\r\n this.setState(initialState);\r\n }\r\n closeSelf(){\r\n this.props.close()\r\n this.reset()\r\n }\r\n validate(value, column) {\r\n // console.log(this.state.entity)\r\n let currentValue = value;\r\n if (this.state.validators) {\r\n let valResult = Validate(\r\n currentValue,\r\n this.state.validators,\r\n this.state.getValidationContext ? this.state.getValidationContext() : null,\r\n \"creation\"\r\n );\r\n let errs = {};\r\n if (valResult !== null) {\r\n this.setState({ popUpError: valResult });\r\n } else {\r\n this.setState({ popUpError: \"\" });\r\n }\r\n }\r\n }\r\n updateEntity(){\r\n if(this.state.popUpError===\"\"){\r\n const request = this.state.row \r\n request[this.state.key]=this.state.value \r\n this.state.entity.executePut(request,null,this.state.entity.editUrl, {},true)\r\n this.props.close()\r\n }\r\n } \r\n ShowError() {\r\n if (this.state.popUpError != \"\") {\r\n return
\r\n
\r\n
\r\n {this.state.popUpError}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n setConfig(conf){\r\n this.setState({\r\n key:conf.key,\r\n label:conf.label,\r\n value:conf.value,\r\n validators:conf.validators,\r\n entity:conf.entity,\r\n row:conf.row\r\n })\r\n }\r\n \r\n\r\n onTextChange(value) {\r\n this.setState({ value:value });\r\n this.validate(value, this.state.key)\r\n }\r\n\r\n render(){\r\n return { this.props.close() }}>\r\n Update {this.state.label}\r\n \r\n {this.ShowError()}\r\n
\r\n
\r\n
\r\n {this.state.label}\r\n {this.state.key === \"emailToSend\" ? (\r\n { this.onTextChange(value) }} value={this.state.value}/>\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};","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport PopeUpUpdate from '../components/Widgets/PopeUpUpdate'\r\nclass CompaignTypes extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = props.compaignTypeEntity;\r\n this.state = {\r\n isEditOpen:false,\r\n parentRecordDetail:{locationId:props.eventLocation.locationId},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n locationName:props.eventLocation.name,\r\n };\r\n this.openEdit = this.openEdit.bind(this);\r\n this.popUpRef = React.createRef()\r\n this.messageType = {\r\n \"null\":null,\r\n \"1\": \"No Orders\",\r\n \"2\":\"In Complete Cart\",\r\n \"3\":\"Marketing Campaign\",\r\n \"4\":\"Appointment Reminder\"\r\n }\r\n }\r\n\r\n openEdit(column,row,validators, entity){\r\n this.popUpRef.current.setConfig({\r\n key:column.dataField,\r\n label:column.text,\r\n value:row[column.dataField],\r\n validators,\r\n entity,\r\n row\r\n })\r\n this.setState({isEditOpen:true})\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"messageType\",\r\n text: this.entity.columns(\"messageType\"),\r\n editor:{\r\n type: \"select\",\r\n options: [\r\n {value:\"1\", label: \"No Orders\"},\r\n {value:\"2\",label:\"In Complete Cart\"},\r\n {value:\"3\",label:\"Marketing Campaign\"},\r\n {value:\"4\",label:\"Appointment Reminder\"},\r\n ]},\r\n validators: [ Validators.required ],\r\n formatter: (cell, row) => {\r\n return (
{this.messageType[row.messageType]}
)\r\n },\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"messageToSent\",\r\n text: this.entity.columns(\"messageToSent\"),\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n type:'textarea'\r\n },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n },\r\n {\r\n dataField: \"emailToSend\",\r\n text: this.entity.columns(\"emailToSend\"),\r\n // validators: [Validators.required],\r\n asEmail: true,\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n },\r\n ];\r\n }\r\n return ( \r\n <>\r\n this.setState({isEditOpen:false})} />\r\n {\r\n return true;\r\n }}\r\n onClose={() => {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CompaignTypes;\r\n","export default __webpack_public_path__ + \"static/media/analytics.47b371ea.svg\";","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport {Tabs, Tab} from 'react-bootstrap';\r\nimport CompaignTypes from './CompaignTypes';\r\nimport timezones from \"../util/timezones.json\"\r\nimport analytics from \"../assets/analytics.svg\";\r\nimport Routes from '../app/Routes';\r\nclass Compaigns extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.compaign;\r\n this.compaignTypeEntity = EM.compaignType\r\n this.eventTypesEntity = EM.eventTypes\r\n this.eventPromotion = EM.eventPromotion\r\n let company = EM.getDefaultCompany();\r\n let locationId = this.props.match.params.locationId;\r\n\r\n // _.findWhere(user.userCompanies,{defaultCompany:true});\r\n this.state = {\r\n location:{name:''},\r\n parentRecordDetail:{locationId},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n tabKey:'marketingCompaigns'\r\n };\r\n \r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n this.compaignTypeEntity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.eventTypesEntity.loadEntityByParent({companyId:company.companyId},true);\r\n this.eventPromotion.loadEntityByParent(this.state.parentRecordDetail,true);\r\n }\r\n\r\n async componentDidMount(){\r\n this.getLocation()\r\n }\r\n\r\n getLocation(){ \r\n let location = _.findWhere(EM.locations.get(),{locationId:parseInt(this.props.match.params.locationId)});\r\n if(!location)\r\n {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n EM.locations.loadEntityByParent({companyId:company.companyId}).then(()=>{\r\n let location = _.findWhere(EM.locations.get(),{locationId:parseInt(this.props.match.params.locationId)});\r\n this.setState({location:location});\r\n });\r\n }\r\n else{\r\n this.setState({location});\r\n }\r\n }\r\n\r\n handleSelect = (tabKey) => {\r\n this.setState({ tabKey });\r\n }\r\n getTitle(){\r\n return `Marketing Campaigns for ${this.state.location.name}`;\r\n }\r\n\r\n timezoneOptions() {\r\n return timezones.map(timezone => {\r\n return {\r\n label: `${timezone.value} ${timezone.text}`,\r\n value: timezone.value\r\n };\r\n });\r\n }\r\n toRedirect(row){\r\n if(this.state.location.name) {\r\n this.props.history.push(Routes.compose(Routes.client.sendGridStats,{eventName:this.state.location.name,campaignName:row.name,campaignId:row.marketingCompaignId, startDate:row.startDate?.split('T')[0]}));\r\n }\r\n }\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let self = this;\r\n if (EM.allLoaded(this.entity, this.compaignTypeEntity, this.eventPromotion)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"startDate\",\r\n asDateTime: true,\r\n text: this.entity.columns(\"startDate\"),\r\n // validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"interval\",\r\n text: this.entity.columns(\"interval\"),\r\n editor:{\r\n type: \"select\",\r\n options: [\r\n {value:\"1\", label: \"Everyday\"},\r\n {value:\"2\",label:\"2 days\"},\r\n {value:\"4\",label:\"4 days\"},\r\n {value:\"7\",label:\"7 days\"},\r\n {value:\"15\",label:\"15 days\"},\r\n {value:\"30\",label:\"30 days\"},\r\n ]},\r\n validators: [ Validators.required ],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"endDate\",\r\n asDateTime: true,\r\n text: this.entity.columns(\"endDate\"),\r\n // validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"marketingComaignTypeId\",\r\n text: this.compaignTypeEntity.t(\"title\"),\r\n fromEntity: this.compaignTypeEntity,\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"eventTypeId\",\r\n text: this.eventTypesEntity.t(\"title\"),\r\n fromEntity: this.eventTypesEntity,\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"eventId\",\r\n text: this.eventPromotion.t(\"title\"),\r\n fromEntity: this.eventPromotion,\r\n optionLabelField:(row)=> `${row.deal.substring(0,25)}.....`,\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"timezone\",\r\n text: this.entity.columns(\"timezone\"),\r\n editor:{\r\n type: \"select\",\r\n options: this.timezoneOptions()\r\n },\r\n validators: [ Validators.required ],\r\n filterOptions: {\r\n text: true,\r\n },\r\n }, {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n },\r\n {\r\n dataField: \"Analytics\",\r\n text:\"Analytics\", \r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \"analytics\"{self.toRedirect(row)}}/>\r\n \r\n )\r\n }, \r\n },\r\n ];\r\n }\r\n \r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n {this.state.tabKey === \"marketingCompaigns\" ? (\r\n {\r\n let proceed = true\r\n for (const record of data) {\r\n if (\r\n ((field.startDate >= record.startDate && field.startDate <= record.endDate) ||\r\n (field.endDate >= record.startDate && field.endDate <= record.endDate) ||\r\n (record.startDate >= field.startDate && record.startDate <= field.endDate) ||\r\n (record.endDate >= field.startDate && record.endDate <= field.endDate)) &&\r\n record.marketingComaignTypeId == field.marketingComaignTypeId\r\n ) {\r\n EM.setError(\"Another campaign is already added in selected Dates and marketing campaign type\");\r\n proceed = false;\r\n return\r\n }\r\n }\r\n return proceed;\r\n }}\r\n onClose={() => {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n ) : }\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Compaigns;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n// import EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport CardStats from \"../components/CardStats\";\r\nimport DateEditField from \"../components/DateEditField\";\r\nimport {\r\n FormGroup,\r\n Label,\r\n} from \"reactstrap\";\r\nclass Statistics extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.sendGridStats;\r\n const { campaignId, startDate, campaignName } = this.props.match.params;\r\n this.state = {\r\n selectedDate:startDate,\r\n parentRecordDetail:{campaignId, start_date:startDate, campaignName},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n this.entity.loadEntityByParent({campaignId, start_date:this.state.selectedDate});\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevState.selectedDate !== this.state.selectedDate) {\r\n this.entity.loadEntityByParent({\r\n campaignId: this.state.parentRecordDetail.campaignId,\r\n start_date: this.state.selectedDate,\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n getTitle(){\r\n return `Marketing Campaign Statistics for ${this.state.parentRecordDetail.campaignName}`;\r\n }\r\n\r\n calculateTotals(statsData) {\r\n if (!statsData) return null;\r\n\r\n const totals = {\r\n bounce_drops: 0,\r\n bounces: 0,\r\n clicks: 0,\r\n delivered: 0,\r\n invalid_emails: 0,\r\n opens: 0,\r\n processed: 0,\r\n requests: 0,\r\n spam_report_drops: 0,\r\n spam_reports: 0,\r\n unique_clicks: 0,\r\n unique_opens: 0,\r\n };\r\n\r\n statsData.forEach(({ stats }) => {\r\n stats.forEach(({ metrics }) => {\r\n totals.bounce_drops += metrics.bounce_drops || 0;\r\n totals.bounces += metrics.bounces || 0;\r\n totals.clicks += metrics.clicks || 0;\r\n totals.delivered += metrics.delivered || 0;\r\n totals.invalid_emails += metrics.invalid_emails || 0;\r\n totals.opens += metrics.opens || 0;\r\n totals.processed += metrics.processed || 0;\r\n totals.requests += metrics.requests || 0;\r\n totals.spam_report_drops += metrics.spam_report_drops || 0;\r\n totals.spam_reports += metrics.spam_reports || 0;\r\n totals.unique_clicks += metrics.unique_clicks || 0;\r\n totals.unique_opens += metrics.unique_opens || 0;\r\n });\r\n });\r\n\r\n return totals;\r\n }\r\n\r\n getColorForValue = (value) => {\r\n if (value >= 100) {\r\n return 'green';\r\n } else if (value >= 1) {\r\n return 'orange';\r\n } else {\r\n return 'red';\r\n }\r\n };\r\n render() {\r\n // let columns = [];\r\n let errMsg = ''\r\n let data = [];\r\n let newData = [];\r\n // let self = this;\r\n let totals = null\r\n if (this.entity.isLoaded()) {\r\n data = this.entity.get();\r\n if((data.errors && data.errors.length > 0) || (data && data.length<1)) {\r\n errMsg= \"No Analytics Found\"\r\n } else {\r\n totals = this.calculateTotals(data)\r\n data.forEach(row => {\r\n const metricsObject = {\r\n date: row.date,\r\n ...row.stats[0].metrics\r\n };\r\n newData.push(metricsObject);\r\n });\r\n }\r\n // columns = [ \r\n // {\r\n // dataField: \"date\",\r\n // text: \"date\",\r\n // filterOptions: {\r\n // text: true,\r\n // },\r\n // }\r\n // ];\r\n }\r\n return (\r\n
\r\n
\r\n \r\n

{this.getTitle()}

\r\n
\r\n\r\n \r\n \r\n this.setState({selectedDate:date?.split('T')[0]})}\r\n />\r\n \r\n
\r\n {totals&&newData.length>0?\r\n Object.keys(totals).map((key) => (\r\n
\r\n \r\n
\r\n )):
\r\n

{errMsg}

\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 {newData.length > 0 && newData.map(row => (\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
DateBounce DropsBouncesDeliveredInvalid EmailsOpensProcessedRequestsSpam Report DropsSpam ReportsUnique ClicksUnique Opens
{row.date}{row.bounce_drops}{row.bounces}{row.delivered}{row.invalid_emails}{row.opens}{row.processed}{row.requests}{row.spam_report_drops}{row.spam_reports}{row.unique_clicks}{row.unique_opens}
\r\n {/* */}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Statistics;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\nimport Routes from '../app/Routes';\r\nimport PopeUpUpdate from '../components/Widgets/PopeUpUpdate'\r\nclass Events extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.events;\r\n this.state = {\r\n isEditOpen:false,\r\n parentRecordDetail: { companyId: this.props.match.params.companyId },\r\n locationOptions:[],\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.openEdit = this.openEdit.bind(this);\r\n this.getLocations();\r\n this.popUpRef = React.createRef()\r\n }\r\n async componentDidMount(){\r\n \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n \r\n }\r\n getLocations() {\r\n EM.locations.loadEntityByParent(this.state.parentRecordDetail,true);\r\n }\r\n\r\n openEdit(column,row,validators, entity){\r\n this.popUpRef.current.setConfig({\r\n key:column.dataField,\r\n label:column.text,\r\n value:row[column.dataField],\r\n validators,\r\n entity,\r\n row\r\n })\r\n this.setState({isEditOpen:true})\r\n }\r\n \r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity, EM.locations)) {\r\n data = this.entity.get();\r\n columns = [\r\n {\r\n dataField: \"deal\",\r\n text: 'Deal',\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n type:'textarea'\r\n },\r\n {\r\n dataField: \"description\",\r\n text: this.entity.columns(\"description\"),\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n type:'textarea'\r\n },\r\n {\r\n dataField: \"locationId\",\r\n text: this.entity.columns(\"locationId\"),\r\n fromEntity: EM.locations,\r\n filterOptions: {\r\n text: true\r\n }\r\n },\r\n {\r\n dataField: \"allLocations\",\r\n text: this.entity.columns(\"allLocations\"),\r\n asActive: true\r\n },\r\n {\r\n dataField: \"chargeAmount\",\r\n text: this.entity.columns(\"chargeAmount\"),\r\n validators:[Validators.positiveNumber,Validators.numberOnly],\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"closeMessage\",\r\n text: this.entity.columns(\"closeMessage\"),\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n type:'textarea'\r\n },\r\n // {\r\n // dataField: \"order\",\r\n // text: this.entity.columns(\"order\"),\r\n // validators:[Validators.positiveNumber,Validators.numberOnly],\r\n // filterOptions: {\r\n // number: true\r\n // }\r\n // },\r\n // {\r\n // dataField: \"showZipSearch\",\r\n // text: this.entity.columns(\"showZipSearch\"),\r\n // asActive: true,\r\n // filterOptions: {\r\n // bool: true\r\n // }\r\n // },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable: false\r\n },\r\n {\r\n dataField: \"copy\",\r\n text: this.entity.columns(\"copy\"),\r\n creatable: false,\r\n editable:false,\r\n formatter: (cell, row) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n this.setState({isEditOpen:false})} />\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n onCreate={(data) =>{\r\n let proceed=true;\r\n if(_.isNull(data.locationId) && _.isEqual(data.allLocations,false))\r\n {\r\n EM.setError(\"Please select a location or all.\");\r\n proceed=false;\r\n }\r\n return proceed;\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Events;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport _ from \"underscore\";\r\nimport Routes from '../app/Routes';\r\nimport PanelModal from '../components/PanelModal';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, FormGroup } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport { textFilter,Comparator } from 'react-bootstrap-table2-filter';\r\n\r\nclass Users extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.users;\r\n this.state = {\r\n userTypeId:\"\",\r\n showAssignCompany:false,\r\n selectedUser:null,\r\n companiesOptions:[],\r\n selectedCompanies:[],\r\n users:[],\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n dynamicLabel:this.entity.columns(\"emailAddressUserName\")\r\n };\r\n this.entity = EM.users;\r\n this.userTypeChange = this.userTypeChange.bind(this);\r\n this.redirectTouserDetail = this.redirectTouserDetail.bind(this);\r\n this.reset = this.reset.bind(this);\r\n this.showAssignCompany = this.showAssignCompany.bind(this);\r\n this.onChange = this.onChange.bind(this);\r\n this.assignCompanies = this.assignCompanies.bind(this); \r\n this.mapUsers = this.mapUsers.bind(this);\r\n }\r\n\r\n componentDidMount(){ \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n let company = EM.getDefaultCompany();\r\n let body = {\r\n currentUserId:EM.account.get().userId,\r\n companyId:\r\n EM.isSuperAdmin() !== true && company\r\n ? company.companyId\r\n : company.companyId,\r\n userTypeId: !EM.isSuperAdmin() && !EM.isAdmin() ? 1 : null,\r\n };\r\n this.entity.executePost(body,{},Routes.clientApi.userSearch,{},true)\r\n .then((result)=>{\r\n let users = EM.users.get();\r\n if(!EM.isSuperAdmin() && !EM.isAdmin())\r\n users = _.where(users,{userTypeId:1});\r\n \r\n this.setState({users});\r\n });\r\n EM.userTypes.load();\r\n EM.role.load();\r\n //only if superadmin\r\n // EM.companies.load().then(()=>{\r\n // this.setState({companiesOptions:EM.companies.asOptionList('name',true,'companyId')});\r\n // });\r\n EM.companies.executeGet(null, null, 'company/active', {})\r\n }\r\n\r\n mapUsers(){\r\n return (this.state.users ||[]).map((user)=>{\r\n return Object.assign({},user,{phonenumber1:user.phoneNumber ? user.phoneNumber.replace(/\\D/g, ''):user.phoneNumber});\r\n });\r\n }\r\n\r\n static getDerivedStateFromProps(props, current_state) {\r\n let storeUsers = EM.users.get();\r\n if (storeUsers && current_state.users !== storeUsers) {\r\n return {\r\n users: storeUsers\r\n }\r\n }\r\n return null\r\n }\r\n\r\n userTypeChange(event,userTypeId){\r\n this.setState({userTypeId});\r\n }\r\n\r\n redirectTouserDetail =(userId,row) =>{\r\n //should use logged in users company as the desired user can belong to multiple companies\r\n var company = EM.getDefaultCompany();\r\n let url=Routes.compose(Routes.client.userDetails,{userId,companyId:company.companyId});\r\n this.props.history.push(url);\r\n }\r\n\r\n reset(user){\r\n //debugger\r\n const UserTypeId = user.userTypeId;\r\n var companyId = EM.getDefaultCompany().companyId\r\n if(UserTypeId === 2){\r\n EM.user.executePost(null,{companyId,email:user.emailAddress,isAssociate:true},Routes.clientApi.resetUser, {}); \r\n } else { \r\n EM.user.executePost(null,{companyId,phone:user.phonenumber1,isAssociate:false},Routes.clientApi.resetUser, {}); \r\n }\r\n \r\n }\r\n\r\n showAssignCompany(user){ \r\n this.setState({showAssignCompany:true,selectedUser:user});\r\n }\r\n\r\n getColumns(){\r\n let self =this;\r\n return [ \r\n {\r\n dataField: \"userTypeId\",\r\n text: \"User Type\",\r\n validators: [ Validators.required],\r\n fromEntity:EM.userTypes,\r\n onChange:self.userTypeChange,\r\n }, \r\n {\r\n dataField: \"roleId\",\r\n text: \"Role\",\r\n validators: [Validators.required],\r\n fromEntity:EM.role,\r\n creatable:this.state.userTypeId === '2',\r\n }, \r\n {\r\n dataField: \"companyId\",\r\n text: \"Company\",\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n fromEntity:EM.companies,\r\n creatable:EM.isSuperAdmin(),\r\n // formatter: (cell, row) => {\r\n // let company = '';\r\n // if(row.userCompanies && row.userCompanies.length > 0) {\r\n // row.userCompanies.forEach((el) => {\r\n // if(el && el.defaultCompany === true)\r\n // company = el.companyName\r\n // })\r\n // }\r\n // return company;\r\n // }\r\n }, \r\n {\r\n dataField: \"firstName\",\r\n text: this.entity.columns(\"firstName\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filter: textFilter({\r\n placeholder: 'Exact match',\r\n defaultValue: '',\r\n comparator: Comparator.EQ\r\n }),\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n \r\n {\r\n dataField: \"lastName\",\r\n text: this.entity.columns(\"lastName\"),\r\n validators: [ Validators.required],\r\n filter: textFilter({\r\n placeholder: 'Exact match',\r\n defaultValue: '',\r\n comparator: Comparator.EQ\r\n }),\r\n filterOptions: {\r\n text: true,\r\n }\r\n },\r\n {\r\n dataField: \"phoneNumber\",\r\n text: this.entity.columns(\"phoneNumber\"),\r\n validators:[Validators.required,Validators.phone,(value, context, mode,row)=>{\r\n return (typeof row !='undefined' && row.userTypeId === 1) ? \"Not allowed\" : '';\r\n }], \r\n asPhone:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"emailAddress\",\r\n text: this.state.userTypeId == ''?this.entity.columns(\"emailAddressUserName\"):(this.state.userTypeId === '2')?this.entity.columns(\"userName\"):this.entity.columns(\"emailAddress\"),\r\n validators: [Validators.required,Validators.length200,(value, context, mode,row)=>{\r\n return (typeof row !='undefined' && row.userTypeId === 1) ? Validators.email(value) : '';\r\n }],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n }, \r\n {\r\n dataField: \"userId\",\r\n // text: this.entity.columns(\"userId\"),\r\n text: \"Actions\",\r\n creatable: false,\r\n editable:false,\r\n width:200,\r\n formatter: (cell, row) => {\r\n //check super admin role for different options available/removed. \r\n return (
\r\n \r\n \r\n \r\n
);\r\n }\r\n },\r\n {\r\n dataField: \"phonenumber1\",\r\n text: 'd',\r\n creatable:false,\r\n editable:false,\r\n hidden:true, \r\n classes: 'hidden',\r\n headerClasses :'hidden',\r\n sort:false\r\n } \r\n ];\r\n }\r\n\r\n onChange(values){\r\n let items = values ? values.map(item => { return item.value }) : [];\r\n this.setState({selectedCompanies:items})\r\n }\r\n\r\n assignCompanies(){\r\n let self =this;\r\n EM.user.executePost({userId:this.state.selectedUser.userId,companyIds:this.state.selectedCompanies},null,Routes.clientApi.assignCompanies, {}).then(()=>{\r\n let users = [...this.state.users]\r\n let user = _.findWhere(users,{userId:self.state.selectedUser.userId});\r\n _.each(this.state.selectedCompanies,(companyId)=>{\r\n let company = _.findWhere(user.userCompanies,{companyId:companyId});\r\n if(!company)\r\n user.userCompanies.push({userId:self.state.userId,companyId:companyId});\r\n });\r\n self.setState({selectedUser:null,selectedCompanies:[],showAssignCompany:false});\r\n });\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(EM.users, EM.userTypes, EM.role)) { \r\n data = this.mapUsers(); \r\n columns = this.getColumns();\r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n onCreateClose={() => { \r\n this.setState({dynamicLabel:this.entity.columns(\"emailAddressUserName\")})\r\n this.setState({userTypeId:''});\r\n }}\r\n onCreate={(data) =>{\r\n let proceed=true;\r\n // if(_.isNull(data.phoneNumber) && data.userTypeId === '1') \r\n // {\r\n // EM.setError(\"Phone number is required.\");\r\n // proceed=false;\r\n // }\r\n if(_.isEmpty(data.emailAddress) && data.userTypeId === '2'){\r\n EM.setError(\"Email address is required.\");\r\n proceed=false;\r\n }\r\n if(!EM.isSuperAdmin()) {\r\n data.companyId = EM.getDefaultCompany()?.companyId\r\n }\r\n return proceed;\r\n }}\r\n />\r\n \r\n Assign Companies\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\nexport default Users;\r\n","export default __webpack_public_path__ + \"static/media/logo.02384eaf.svg\";","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport PanelModal from '../PanelModal';\r\nimport { Button as ButtonPop, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\n\r\nconst initialState={\r\n maziOrganizationCode:'',\r\n popUpError:''\r\n};\r\nexport default class ConfirmMaziCode extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.state =initialState \r\n this.onTextChange = this.onTextChange.bind(this);\r\n this.confirmMatch = this.confirmMatch.bind(this);\r\n this.ShowError = this.ShowError.bind(this);\r\n this.resetState = this.resetState.bind(this);\r\n }\r\n onTextChange(event, field) {\r\n this.setState({ maziOrganizationCode:event.target.value });\r\n }\r\n resetState(){\r\n this.setState(initialState);\r\n this.props.isValid(false)\r\n } \r\n confirmMatch(){\r\n const maziOrganizationCode = this.state.maziOrganizationCode\r\n const prefix = this.props.prefix?this.props.prefix:''\r\n if((maziOrganizationCode)===(prefix+EM.location.get().maziOrganizationCode)){\r\n this.resetState()\r\n return this.props.isValid(true)\r\n } else {\r\n this.setState({popUpError:\"Invalid Authorization Code Given!\"})\r\n this.props.isValid(false)\r\n }\r\n }\r\n ShowError() {\r\n if (this.state.popUpError != \"\") {\r\n return
\r\n
\r\n
\r\n {this.state.popUpError}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n render(){\r\n\r\n return { this.resetState();this.props.close() }}>\r\n Confirm Identity\r\n \r\n {this.ShowError()}\r\n
\r\n
\r\n
\r\n Authorization Code\r\n { this.onTextChange(event, 'maziOrganizationCode') }}>\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport Spinner from \"../Spinner\";\r\nimport InputMask from 'react-input-mask';\r\nimport Routes from '../../app/Routes';\r\nimport { Route } from \"react-router-dom\";\r\nimport { WithContext as ReactTags } from 'react-tag-input';\r\nimport PanelModal from '../PanelModal';\r\nimport ConfirmMaziCode from './ConfirmMaziCode'\r\nimport { Button as ButtonPop, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\n\r\nexport default class CustomerDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n user: {\r\n firstName: '',\r\n lastName: '',\r\n phoneNumber: '',\r\n email: '',\r\n firstName2:'',\r\n lastName2: '',\r\n maziOrganizationCode:'',\r\n childrenNames:[]\r\n },\r\n popUpError:'',\r\n isPopOpen:false,\r\n isPopOpen2:false,\r\n onlineRegistration:true,\r\n location:false,\r\n company:false\r\n };\r\n this.onTextChange = this.onTextChange.bind(this);\r\n this.validate = this.validate.bind(this);\r\n this.confirmAndDownload = this.confirmAndDownload.bind(this);\r\n this.ShowError = this.ShowError.bind(this);\r\n this.onError = this.onError.bind(this);\r\n this.openPopUp = this.openPopUp.bind(this);\r\n this.openPopUp2 = this.openPopUp2.bind(this);\r\n this.closePopUp = this.closePopUp.bind(this);\r\n this.handleValidCode = this.handleValidCode.bind(this);\r\n this.updateOnlineRegistration = this.updateOnlineRegistration.bind(this);\r\n this.validate();\r\n console.log(EM)\r\n }\r\n handleValidCode(){\r\n this.setState({isOpen2:false})\r\n this.updateOnlineRegistration()\r\n }\r\n openPopUp2(){\r\n this.setState({isOpen2:true})\r\n }\r\n closePopUp(){\r\n this.setState({isOpen2:false})\r\n }\r\n updateOnlineRegistration(){\r\n \r\n const self=this\r\n const onlineRegistration = this.state.onlineRegistration\r\n EM.event.executePut({eventId:EM.event.get().eventId, onlineBooking:!onlineRegistration},null,Routes.clientApi.updateEventBooking, {},true)\r\n .then((result)=>{\r\n self.setState({onlineRegistration:!self.state.onlineRegistration})\r\n });\r\n }\r\n ShowError() {\r\n if (this.state.popUpError != \"\") {\r\n return
\r\n
\r\n
\r\n {this.state.popUpError}\r\n
\r\n
\r\n
\r\n }\r\n}\r\n onError(){\r\n if(this.props.error){\r\n return
\r\n
\r\n
\r\n {this.props.error}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n handleDelete = i => {\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n childrenNames: this.state.user.childrenNames.filter((tag, index) => index !== i),\r\n }\r\n }))\r\n };\r\n\r\n handleAddition = (tag) => {\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n childrenNames: [...this.state.user.childrenNames, tag],\r\n }\r\n }))\r\n }\r\n handleInputBlur= (tag) => {\r\n if(tag===\"\")return\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n childrenNames: [...this.state.user.childrenNames, {id:tag,text:tag}]\r\n }\r\n }))\r\n \r\n }\r\n\r\n handleDrag = (tag, currPos, newPos) => {\r\n const newTags = this.state.user.childrenNames.slice();\r\n\r\n newTags.splice(currPos, 1);\r\n newTags.splice(newPos, 0, tag);\r\n\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n childrenNames: newTags\r\n }\r\n }))\r\n }\r\n async componentDidMount(){\r\n this.setState({location:EM.location.get()})\r\n this.setState({company:EM.company.get()})\r\n }\r\n \r\n onTextChange(event, field) {\r\n let user = Object.assign(this.state.user, {});\r\n user[field] = event.target.value;\r\n this.setState({ user });\r\n this.validate();\r\n }\r\n\r\n validate(){\r\n let user=this.state.user\r\n return user.firstName.trim().length >0 &&\r\n user.lastName.trim().length >0 &&\r\n user.phoneNumber.trim().length >0 &&\r\n user.email.trim().length >0 ;\r\n }\r\n handleDownload = (locationId) => {\r\n var url = 'https://api.flashopllc.com/api/appointment/printschedule?LocationId='\r\n \r\n window.open(`${url+locationId}`,)\r\n }\r\n confirmAndDownload(){\r\n const maziOrganizationCode = this.state.user.maziOrganizationCode\r\n if(maziOrganizationCode===EM.location.get().maziOrganizationCode){\r\n this.handleDownload(this.state.location.locationId)\r\n this.setState({isPopOpen:false})\r\n } else {\r\n this.setState({popUpError:\"Authorization Code Given!\"})\r\n }\r\n }\r\n openPopUp(){\r\n this.setState({isPopOpen:true,popUpError:''})\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n maziOrganizationCode: \"\"\r\n }\r\n }));\r\n }\r\n render() {\r\n const KeyCodes = {\r\n comma: 188,\r\n enter: 13\r\n };\r\n \r\n const delimiters = [KeyCodes.comma, KeyCodes.enter];\r\n if (EM.allLoaded(EM.event)) {\r\n let jsxRender\r\n \r\n if(this.state.company && this.state.location && this.state.company.companyConfig.mazibook===true && (this.state.location.maziOrganizationCode!==null && this.state.location.maziOrganizationCode!=='')){\r\n jsxRender=(\r\n
\r\n
\r\n {this.state.user.firstName && `(${this.state.user.firstName})`}\r\n {this.state.user.firstName && this.state.user.firstName2 && ` & `}\r\n {this.state.user.firstName2 && `(${this.state.user.firstName2})`}\r\n {this.state.user.lastName && ` (${this.state.user.lastName})`}\r\n
\r\n {this.state.user.childrenNames.map((name, i) => { \r\n const childrenArray=this.state.user.childrenNames \r\n return <>({name.id}){(childrenArray.length>1 && i!=(childrenArray.length-1))?', ':''};\r\n })\r\n }\r\n
\r\n {this.onError()}\r\n
\r\n
\r\n *Head Of Household First Name\r\n { this.onTextChange(event, 'firstName') }}>\r\n
\r\n
\r\n *Head Of Household Last Name\r\n { this.onTextChange(event, 'lastName') }}>\r\n
\r\n
\r\n
\r\n
\r\n *Head Of Household MOBILE NUMBER\r\n { this.onTextChange(event, 'phoneNumber') }} mask=\"(999) 999-9999\" maskChar=\" \" />\r\n
\r\n
\r\n *Head Of Household Email\r\n { this.onTextChange(event, 'email') }}>\r\n
\r\n
\r\n
\r\n
\r\n Spouse First Name\r\n { this.onTextChange(event, 'firstName2') }}>\r\n
\r\n
\r\n Spouse Last Name\r\n { this.onTextChange(event, 'lastName2') }}>\r\n
\r\n
\r\n
\r\n
\r\n Children Names\r\n {/* { this.onTextChange(event, 'childrenNames') }}> */}\r\n \r\n Enter Oldest child's name then press comma or enter key, repeat for additional children. \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {/*
\r\n
_________For Official Use Only_________
\r\n
\r\n
\r\n { this.openPopUp() }} style={{color:'black !important',fontWeight:'600'}}>Print Schedule\r\n this.openPopUp2()}>{this.state.onlineRegistration===true?'Suspend Online Registration':'Resume Online Registration'}\r\n
*/}\r\n\r\n { this.setState({isPopOpen:false}) }}>\r\n Confirm Identity\r\n \r\n {this.ShowError()}\r\n
\r\n
\r\n
\r\n Authorization Code\r\n { this.onTextChange(event, 'maziOrganizationCode') }}>\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {if(data==true)this.handleValidCode()}} isOpen={this.state.isOpen2} onClose={this.state.closePopUp} close={this.closePopUp}/>\r\n
\r\n )\r\n } else {\r\n jsxRender=(\r\n
\r\n
\r\n
\r\n First Name\r\n { this.onTextChange(event, 'firstName') }}>\r\n
\r\n
\r\n Last Name\r\n { this.onTextChange(event, 'lastName') }}>\r\n
\r\n
\r\n Phone\r\n { this.onTextChange(event, 'phoneNumber') }} mask=\"(999) 999-9999\" maskChar=\" \" />\r\n
\r\n
\r\n Email\r\n { this.onTextChange(event, 'email') }}>\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n return jsxRender\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Spinner from \"../Spinner\";\r\n\r\nexport default class DateSelection extends Component {\r\n\r\n constructor(props) {\r\n super(props); \r\n this.state = {\r\n event: EM.event.get()\r\n };\r\n }\r\n\r\n slotSelected(slot) {\r\n // slot.key, slot.enabled, slot.strdt, 0, 0\r\n this.props.next(slot, this.props.step);\r\n }\r\n render() {\r\n const { disableEvent } = this.props \r\n if ((disableEvent && EM.allLoaded(EM.availableDays)) || EM.allLoaded(EM.event, EM.availableDays)) {\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 {this.props.dates.map((slot,index) => (\r\n
\r\n
{slot.title}
\r\n
\r\n {\r\n (slot.slotsAvailable === false)\r\n ?
Fully Booked!
\r\n :
{\r\n if (slot.slotsAvailable === true)\r\n this.slotSelected(slot)\r\n }} className=\"available py-2 px-3 text-nowrap ms-auto fw-bolder text-uppercase\" >Available
\r\n }\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport Dates from '../util/Dates';\r\n\r\nexport default class CalendarView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n months: [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\", \"November\",\"December\"],\r\n data: this.props.data,\r\n date: new Date()\r\n };\r\n this.Foward = this.Foward.bind(this);\r\n this.Backward = this.Backward.bind(this);\r\n this.GetDay = this.GetDay.bind(this);\r\n this.DayClick = this.DayClick.bind(this);\r\n }\r\n\r\n GetDay(ny, nx) {\r\n let rmvc = this.state.data[nx][ny]; \r\n rmvc.css = \"table-light sortable pt-3 pb-3\";\r\n if(rmvc.enabled)\r\n rmvc.css = \"table-success sortable pt-3 pb-3\";\r\n\r\n return rmvc;\r\n }\r\n\r\n Backward() {\r\n let dt = this.state.date;\r\n dt.setMonth(dt.getMonth() - 1);\r\n this.setState({ date: dt,data: this.props.onCalendarChange(dt) });\r\n \r\n }\r\n\r\n Foward() {\r\n let dt = this.state.date;\r\n dt.setMonth(dt.getMonth() + 1);\r\n this.setState({ date: dt,data: this.props.onCalendarChange(dt) });\r\n }\r\n\r\n DayClick(key, enabled, strdt, Day, Week) {\r\n var date = Dates.fromStr(key.split('-')[0],'LLddyyyy');\r\n this.props.onDayClick(Dates.toJS(date));\r\n }\r\n\r\n GetWeek(Week) {\r\n return \r\n this.DayClick(this.GetDay(0, Week).key, this.GetDay(0, Week).enabled, this.GetDay(0, Week).strdt, 0, Week)} className={this.GetDay(0, Week).css}>{this.GetDay(0, Week).title} {this.GetDay(0, Week).aptCount}\r\n this.DayClick(this.GetDay(1, Week).key, this.GetDay(1, Week).enabled, this.GetDay(1, Week).strdt, 1, Week)} className={this.GetDay(1, Week).css}>{this.GetDay(1, Week).title} {this.GetDay(1, Week).aptCount}\r\n this.DayClick(this.GetDay(2, Week).key, this.GetDay(2, Week).enabled, this.GetDay(2, Week).strdt, 2, Week)} className={this.GetDay(2, Week).css}>{this.GetDay(2, Week).title} {this.GetDay(2, Week).aptCount}\r\n this.DayClick(this.GetDay(3, Week).key, this.GetDay(3, Week).enabled, this.GetDay(3, Week).strdt, 3, Week)} className={this.GetDay(3, Week).css}>{this.GetDay(3, Week).title} {this.GetDay(3, Week).aptCount}\r\n this.DayClick(this.GetDay(4, Week).key, this.GetDay(4, Week).enabled, this.GetDay(4, Week).strdt, 4, Week)} className={this.GetDay(4, Week).css}>{this.GetDay(4, Week).title} {this.GetDay(4, Week).aptCount}\r\n this.DayClick(this.GetDay(5, Week).key, this.GetDay(5, Week).enabled, this.GetDay(5, Week).strdt, 5, Week)} className={this.GetDay(5, Week).css}>{this.GetDay(5, Week).title} {this.GetDay(5, Week).aptCount}\r\n this.DayClick(this.GetDay(6, Week).key, this.GetDay(6, Week).enabled, this.GetDay(6, Week).strdt, 6, Week)} className={this.GetDay(6, Week).css}>{this.GetDay(6, Week).title} {this.GetDay(6, Week).aptCount}\r\n ;\r\n }\r\n\r\n\r\n static getDerivedStateFromProps(props, current_state) {\r\n if (current_state.data !== props.data) {\r\n\r\n return {\r\n data: props.data\r\n }\r\n }\r\n return null\r\n }\r\n\r\n render() { \r\n console.log(this.state);\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
{this.state.months[this.state.date.getMonth()]}
\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.GetWeek(0)}\r\n {this.GetWeek(1)}\r\n {this.GetWeek(2)}\r\n {this.GetWeek(3)}\r\n {this.GetWeek(4)}\r\n {this.GetWeek(5)}\r\n
MonTuesWedThuFriSatSun
\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}","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport InputMask from 'react-input-mask';\r\nimport { Button } from \"reactstrap\";\r\nimport Routes from '../app/Routes';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport default class AppointmentOptions extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.IDhange = this.IDhange.bind(this);\r\n this.TypeChange = this.TypeChange.bind(this);\r\n\r\n this.state =\r\n {\r\n m_bPleaseWait: false,\r\n m_bCanceled: false,\r\n m_bShowConfirm: false,\r\n m_strID: \"\",\r\n m_strType: \"\",\r\n m_strAddress: \"\",\r\n data: this.props.data,\r\n m_strErrorMessage: \"\"\r\n };\r\n }\r\n\r\n IDhange(event) {\r\n this.setState({ m_strID: event.target.value });\r\n }\r\n\r\n TypeChange(event) {\r\n this.setState({ m_strType: event.target.value });\r\n }\r\n\r\n CancelChecking() {\r\n this.setState({ m_bShowConfirm: false });\r\n }\r\n\r\n FirstNameChange = (event) => {\r\n let capt = this.state.data;\r\n capt.firstName = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n LastNameChange = (event) => {\r\n let capt = this.state.data;\r\n capt.lastName = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n PhoneChange = (event) => {\r\n let capt = this.state.data;\r\n capt.phoneNumber = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n BackupPhoneChange = (event) => {\r\n let capt = this.state.data;\r\n capt.backupNumber = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n AddressChange = (event) => {\r\n let capt = this.state.data;\r\n capt.address1 = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n CityChange = (event) => {\r\n let capt = this.state.data;\r\n capt.city = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n StateChange = (event) => {\r\n let capt = this.state.data;\r\n capt.state = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n ZipChange = (event) => {\r\n let capt = this.state.data;\r\n capt.zip = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n EMailChange = (event) => {\r\n let capt = this.state.data;\r\n capt.eMail = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n ShowError() {\r\n if (this.state.m_strErrorMessage != \"\") {\r\n return
\r\n
\r\n
\r\n {this.state.m_strErrorMessage}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n\r\n CheckinView() {\r\n if (this.state.m_bShowConfirm)\r\n return
\r\n
\r\n\r\n {this.ShowError()}\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Phone
\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 patchCheckIn(checkedIn) {\r\n let self = this;\r\n EM.calendar.executePut({ appointmentId: this.state.data.appointmentID, propertyName: \"CheckedIn\", checkedIn: checkedIn,phoneNumber:this.state.data.phoneNumber }, \r\n null, Routes.clientApi.patchAppointment, {})\r\n .then((result) => {\r\n if(result) {\r\n let data = Object.assign({}, self.state.data, { checkedIn: checkedIn });\r\n self.setState({ data: data });\r\n self.props.onCheckInChange(this.state.data,checkedIn);\r\n }\r\n });\r\n }\r\n\r\n RenderRescheduleButton() {\r\n if (this.state.data.checkedIn !== true) {\r\n let url=''\r\n if(this.props.bookingPage) {\r\n url = Routes.compose(Routes.client.rescheduleAppointmentBooking, { userId: this.state.data.userID, companyId: this.state.data.location?.companyID, appointmentId: this.state.data.appointmentID, locationId: this.props.data.location.id});\r\n } else {\r\n url = Routes.compose(Routes.client.rescheduleAppointment, { userId: this.state.data.userID, companyId: this.state.data.location?.companyID, appointmentId: this.state.data.appointmentID });\r\n }\r\n return ()\r\n }\r\n }\r\n\r\n RenderConfirmButton() {\r\n if (!this.state.data.confirmed)\r\n return ();\r\n }\r\n\r\n RenderSitting() {\r\n if (this.state.data.sitting != \"\")\r\n return
SN: {this.state.data.sitting}
;\r\n }\r\n\r\n RenderCancelButton() {\r\n // if(EM.isAdmin() || EM.isSuperAdmin())\r\n return ();\r\n }\r\n\r\n confirm() { \r\n let self = this;\r\n EM.calendar.executePut({ appointmentId: this.state.data.appointmentID, propertyName: \"Confirmed\", confirmed: true }, null, Routes.clientApi.patchAppointment, {})\r\n .then((result) => { \r\n if(result) {\r\n let data = Object.assign({}, self.state.data, { confirmed: true });\r\n self.setState({ data: data });\r\n }\r\n })\r\n }\r\n\r\n cancel() {\r\n let self = this;\r\n EM.calendar.executePut({ appointmentId: this.state.data.appointmentID, propertyName: \"Cancelled\", cancelled: true }, null, Routes.clientApi.patchAppointment, {})\r\n .then((result) => {\r\n if(result) {\r\n let data = Object.assign({}, self.state.data, { canceled: true });\r\n self.setState({ data: data });\r\n }\r\n }); \r\n }\r\n\r\n\r\n render() {\r\n console.log(`canceled:${this.state.data.canceled}`)\r\n if (this.state.data.canceled) {\r\n return (\r\n
\r\n This has been canceled!\r\n
\r\n )\r\n }\r\n\r\n if (this.state.data.checkedIn) {\r\n return (\r\n //
\r\n //
\r\n //
{this.RenderSitting()} \r\n \r\n //
\r\n //
\r\n //
\r\n )\r\n }\r\n else\r\n return (\r\n \r\n {this.RenderRescheduleButton()}\r\n {!this.props.bookingPage ? (\r\n \r\n ):null}\r\n {this.RenderConfirmButton()}\r\n {this.RenderCancelButton()}\r\n
\r\n {this.CheckinView()}\r\n
\r\n
\r\n );\r\n }\r\n}","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Spinner from \"../Spinner\";\r\nimport { Button} from \"reactstrap\";\r\nimport ConfirmMaziCode from './ConfirmMaziCode'\r\nimport Routes from \"../../app/Routes\";\r\nconst initialState= {\r\n loading: false,\r\n isPopOpen:false,\r\n time:false, \r\n reservedTime:false,\r\n blockShow:false,\r\n slotId:false,\r\n selectedSlotBlock:[],\r\n selectedSlotDelete:[]\r\n}\r\nexport default class TimeSelection extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.state = initialState\r\n this.closePopUp = this.closePopUp.bind(this);\r\n this.handleValidCode = this.handleValidCode.bind(this);\r\n this.timeSelected = this.timeSelected.bind(this);\r\n this.pushSlots = this.pushSlots.bind(this);\r\n this.isSelectedSlot = this.isSelectedSlot.bind(this);\r\n this.handleBlockUnblock = this.handleBlockUnblock.bind(this);\r\n this.handleBlockButton = this.handleBlockButton.bind(this);\r\n }\r\n pushSlots(data){\r\n if(data.available)\r\n {\r\n if(!this.state.selectedSlotBlock.includes(data.timeSlot)){\r\n this.setState({\r\n selectedSlotBlock: [...this.state.selectedSlotBlock, data.timeSlot]\r\n })\r\n } else {\r\n const selectedSlotBlock = this.state.selectedSlotBlock.filter((prevItem) => prevItem !== data.timeSlot)\r\n this.setState({\r\n selectedSlotBlock\r\n })\r\n }\r\n } else {\r\n if(!this.state.selectedSlotDelete.includes(data.timeSlotId)){\r\n this.setState({\r\n selectedSlotDelete: [...this.state.selectedSlotDelete, data.timeSlotId]\r\n })\r\n } else {\r\n const selectedSlotDelete = this.state.selectedSlotDelete.filter((prevItem) => prevItem !== data.timeSlotId)\r\n this.setState({\r\n selectedSlotDelete\r\n })\r\n }\r\n }\r\n \r\n }\r\n \r\n \r\n\r\n closePopUp(){\r\n this.setState({isOpen:false})\r\n }\r\n handleValidCode(){\r\n this.setState({blockShow:true})\r\n this.closePopUp()\r\n }\r\n timeSelected(time) {\r\n \r\n this.props.next(time, this.props.step);\r\n this.setState(initialState)\r\n }\r\n \r\n\r\n isSelectedSlot(data){\r\n if(this.state.blockShow===false)return false\r\n const foundInBlockSlot = this.state.selectedSlotBlock.find(el => el === data.timeSlot);\r\n const foundInDeleteSlot = this.state.selectedSlotDelete.find(el => el === data.timeSlotId);\r\n if(foundInBlockSlot || foundInDeleteSlot){\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n async handleBlockUnblock(){ \r\n const self= this\r\n this.setState({loading:true})\r\n const selectedSlotBlock = this.state.selectedSlotBlock\r\n const selectedSlotDelete = this.state.selectedSlotDelete\r\n if(selectedSlotBlock.length){\r\n var timeSlots = []\r\n for(const value of selectedSlotBlock){\r\n timeSlots.push({\r\n \"locationId\": EM.location.get().locationId,\r\n \"timeSlot\": `${this.props.dateSelected.strdt} ${value}`\r\n });\r\n }\r\n await EM.availableSlots.executePost({\r\n timeSlots:timeSlots\r\n },{},Routes.clientApi.blocktimeslotsMultiple,{}).then((result)=>{\r\n self.setState({loading:false})\r\n });\r\n }\r\n if(selectedSlotDelete.length){\r\n await EM.availableSlots.executeDelete({\r\n timeSlotIds:selectedSlotDelete\r\n },{},Routes.clientApi.blocktimeslotsMultiple,{}).then((result)=>{\r\n self.setState({loading:false})\r\n });\r\n }\r\n\r\n this.props.loadSlots(this.props.dateSelected.strdt)\r\n this.setState({\r\n selectedSlotBlock:[],\r\n selectedSlotDelete:[],\r\n blockShow:false\r\n })\r\n }\r\n handleBlockButton(){\r\n console.log(this.state.blockShow)\r\n if(this.state.blockShow===false){\r\n this.setState({isOpen:true})\r\n } else {\r\n this.handleBlockUnblock()\r\n }\r\n \r\n }\r\n\r\n render() {\r\n const { disableEvent = null } = this.props;\r\n if(this.state.loading) \r\n return \r\n if (disableEvent || EM.allLoaded(EM.event)) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {this.props.slots.map((time,index) =>{\r\n if(time.timeSlotId!==undefined){\r\n \r\n // console.log(time.timeSlot)\r\n return (
{ this.pushSlots(time) }:(event) =>{if(time.available === true)this.timeSelected(time.timeSlot)}\r\n }\r\n >\r\n
\r\n
{time.timeSlot}
\r\n
\r\n {this.state.blockShow===true &&
\r\n {\r\n (time.available === false)\r\n ?
Unblock
\r\n :
{\r\n }} className=\"available py-2 px-3 text-nowrap ms-auto fw-bolder text-uppercase\" >Block
\r\n }\r\n
}\r\n {this.state.blockShow===false && time.available===false &&
\r\n {\r\n
Not Available
\r\n }\r\n
}\r\n \r\n
)\r\n } else {\r\n return
{ this.timeSelected(time); }}>\r\n
{time}
\r\n
\r\n }\r\n \r\n })}\r\n {if(data==true)this.handleValidCode()}} isOpen={this.state.isOpen} onClose={this.state.closePopUp} close={this.closePopUp}/>\r\n \r\n {this.props.mazibit &&
\r\n \r\n
}\r\n
\r\n );\r\n \r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React from \"react\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from 'react-select';\r\nimport { Button } from \"reactstrap\";\r\nimport DateSelection from \"../components/BookingWizard/DateSelection\";\r\nimport TimeSelection from \"../components/BookingWizard/TimeSelection\";\r\nimport InputMask from 'react-input-mask';\r\nimport _ from 'underscore';\r\nimport Dates from '../util/Dates';\r\nimport Routes from \"../app/Routes\";\r\n\r\nclass Sales extends React.Component {\r\n stateData () {\r\n if(this.props.calendar){\r\n console.log(this.props)\r\n return {\r\n locations: [],\r\n userFirstName: '',\r\n userLastName: '',\r\n userPhone: '',\r\n userEmail: '',\r\n locationId: this.props.calendar.locationId,\r\n locationAddress: '',\r\n locationobj: null,\r\n dates: [],\r\n selectedDateSlot: {strdt:this.props.calendar.date},\r\n slots: [],\r\n selectedTimeSlot: null,\r\n isPaid: null,\r\n isCreated: false,\r\n paymentObj: null,\r\n\r\n selectedStep: {\r\n name: 'contactInformation',\r\n visible: true,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.contactInformation, visible: false, done: true} },\r\n next: async() => { \r\n await this.loadSlots()\r\n return {...this.state.steps.timeDetails, visible: true}\r\n },\r\n incomplete: () => {}\r\n },\r\n steps: {\r\n locationsDetails: {\r\n name: 'locationsDetails',\r\n visible: false,\r\n data: null,\r\n done: true,\r\n complete: () => { return {...this.state.steps.dateDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n },\r\n contactInformation: {\r\n name: 'contactInformation',\r\n visible: true,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.contactInformation, visible: false, done: true} },\r\n next: async() => { \r\n await this.loadSlots()\r\n return {...this.state.steps.timeDetails, visible: true}\r\n },\r\n incomplete: () => { return {...this.state.steps.contactInformation, visible: false, done: false} },\r\n },\r\n dateDetails: {\r\n name: 'dateDetails',\r\n visible: false,\r\n data: null,\r\n done: true,\r\n complete: () => { return {...this.state.steps.dateDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.contactInformation, visible: true} },\r\n incomplete: () => { return {...this.state.steps.dateDetails, visible: false, done: false} },\r\n },\r\n timeDetails: {\r\n name: 'timeDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.timeDetails, visible: false, done: true}},\r\n next: () => { return {...this.state.steps.paymentDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.contactInformation, visible: true} },\r\n incomplete: () => { return {...this.state.steps.timeDetails, visible: false, done: false}},\r\n },\r\n paymentDetails: {\r\n name: 'paymentDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.paymentDetails, visible: false, done: true} },\r\n prev: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n incomplete: () => { return {...this.state.steps.paymentDetails, visible: false, done: false} },\r\n },\r\n },\r\n }\r\n }\r\n else {\r\n return {\r\n locations: [],\r\n userFirstName: '',\r\n userLastName: '',\r\n userPhone: '',\r\n userEmail: '',\r\n locationId: null,\r\n locationAddress: '',\r\n locationobj: null,\r\n dates: [],\r\n selectedDateSlot: null,\r\n slots: [],\r\n selectedTimeSlot: null,\r\n isPaid: null,\r\n isCreated: false,\r\n paymentObj: null,\r\n\r\n selectedStep: {\r\n name: 'locationsDetails',\r\n visible: true,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.locationsDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.contactInformation, visible: true}},\r\n incomplete: () => {}\r\n },\r\n steps: {\r\n locationsDetails: {\r\n name: 'locationsDetails',\r\n visible: true,\r\n data: null,\r\n done: false,\r\n complete: () => { return{...this.state.steps.locationsDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.contactInformation, visible: true} },\r\n },\r\n contactInformation: {\r\n name: 'contactInformation',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.contactInformation, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.dateDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.locationsDetails, visible: true} },\r\n incomplete: () => { return {...this.state.steps.contactInformation, visible: false, done: false} },\r\n },\r\n dateDetails: {\r\n name: 'dateDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.dateDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.contactInformation, visible: true} },\r\n incomplete: () => { return {...this.state.steps.dateDetails, visible: false, done: false} },\r\n },\r\n timeDetails: {\r\n name: 'timeDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.timeDetails, visible: false, done: true}},\r\n next: () => { return {...this.state.steps.paymentDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.dateDetails, visible: true} },\r\n incomplete: () => { return {...this.state.steps.timeDetails, visible: false, done: false}},\r\n },\r\n paymentDetails: {\r\n name: 'paymentDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.paymentDetails, visible: false, done: true} },\r\n prev: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n incomplete: () => { return {...this.state.steps.paymentDetails, visible: false, done: false} },\r\n },\r\n },\r\n }\r\n }\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n let staticState = this.stateData()\r\n this.state = {\r\n ...staticState\r\n };\r\n }\r\n\r\n reInitialize () {\r\n let staticState = this.stateData()\r\n this.setState({\r\n ...staticState\r\n }, () => {\r\n console.log('STATE ', this.state)\r\n this.getLocations()\r\n })\r\n }\r\n\r\n getLocations () {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n EM.locations.loadEntityByParent({companyId: company.companyId}, true).then(()=>{\r\n this.setState({locations: EM.locations.asOptionList(null, true)})\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n if(!this.props.calendar)\r\n this.getLocations()\r\n }\r\n\r\n loadLocationDates() {\r\n let params = { locationId: this.state.locationId };\r\n EM.availableDays.searchEntity(params, {}, true).then(() => {\r\n this.setState({ dates: EM.availableDays.get() });\r\n });\r\n }\r\n\r\n getSelectedSlot(slot) {\r\n this.setState({selectedDateSlot: slot}, () => {\r\n this.next();\r\n this.loadSlots();\r\n })\r\n }\r\n\r\n loadSlots() {\r\n let date = this.state.selectedDateSlot;\r\n let self = this;\r\n let locationId = this.state.locationId;\r\n let params = { locationId: locationId, date: date.strdt };\r\n let qs = { date: date.strdt };\r\n console.log('date',date)\r\n EM.availableSlots.searchEntity(params, qs, true).then(() => {\r\n self.setState({ slots: EM.availableSlots.get() });\r\n });\r\n }\r\n\r\n next = async() => {\r\n try {\r\n \r\n let complete = this.state.selectedStep.complete()\r\n let next = await this.state.selectedStep.next()\r\n this.setState({\r\n steps : {...this.state.steps, [complete.name]: complete, [next.name]: next },\r\n selectedStep: next\r\n })\r\n } catch(error){\r\n console.log('error in next ', error)\r\n }\r\n }\r\n\r\n previous = () => {\r\n try {\r\n let incomplete = this.state.selectedStep.incomplete()\r\n let prev = this.state.selectedStep.prev()\r\n this.setState({\r\n steps : {...this.state.steps, [incomplete.name]: incomplete, [prev.name]: prev },\r\n selectedStep: prev\r\n })\r\n } catch(error){\r\n console.log('error in previous ', error)\r\n }\r\n }\r\n\r\n emailValidator(value) {\r\n if(value === '') return false;\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (!re.test(value)){\r\n return true;\r\n } \r\n return false\r\n }\r\n\r\n schedule() {\r\n try {\r\n if (!this.validate()) {\r\n alert('Please fill in the required information.')\r\n return;\r\n }\r\n \r\n const { userFirstName, userLastName, userPhone, locationId, userEmail, isPaid } = this.state;\r\n \r\n let user = EM.account.get();\r\n \r\n const { selectedDateSlot, selectedTimeSlot } = this.state \r\n let date = new Date(selectedDateSlot.strdt + ' ' + selectedTimeSlot);\r\n // let date = Dates.fromStr(selectedDateSlot.strdt + ' ' + selectedTimeSlot,`L/d/yyyy t`);\r\n // if(!date) date = Dates.fromStr(selectedDateSlot.strdt + ' ' + selectedTimeSlot,`L/d/yyyy HH:MM`);\r\n // console.log(Dates.fromStr(selectedDateSlot.strdt + ' ' + selectedTimeSlot,`L/d/yyyy HH:MM`));\r\n \r\n let req = {\r\n firstName: userFirstName,\r\n lastName: userLastName,\r\n phoneNumber: userPhone,\r\n backupPhoneNumber: userPhone,\r\n email: userEmail,\r\n notes: \"\",\r\n locationId: locationId,\r\n paid: isPaid,\r\n sales: `${user.firstName} ${user.lastName}`,\r\n salesId: `${user.userId}`,\r\n checkedIn: false,\r\n createdBy: user.userId,\r\n creationSourceId: 1,\r\n // slotDateTime: date.toISO().replace(':00.000Z','')\r\n slotDateTime: date.toLocaleString()\r\n }\r\n \r\n console.log('JSON ', req)\r\n EM.appointments.executePost(req, null, Routes.clientApi.appointmentPresale, {}, false)\r\n .then(() => {\r\n console.log('APPOINTMENT CREATED SUCCESSFULLY !')\r\n this.setState({isCreated: true})\r\n })\r\n } catch(error) {\r\n console.log('ERROR in Creating Appointment ', error)\r\n }\r\n }\r\n\r\n validate () {\r\n const { selectedDateSlot, selectedTimeSlot, userFirstName, userLastName, userPhone, isPaid } = this.state;\r\n return selectedDateSlot && selectedTimeSlot && userFirstName && userLastName && userPhone && isPaid !== null;\r\n }\r\n\r\n userInfoValidate () {\r\n const { userFirstName, userLastName, userPhone, userEmail } = this.state;\r\n if(userEmail && userEmail.length > 0) {\r\n return userFirstName && userLastName && userPhone && !this.emailValidator(userEmail)\r\n }\r\n return userFirstName && userLastName && userPhone\r\n }\r\n\r\n Header = () => {\r\n const { steps } = this.state;\r\n return (\r\n \r\n
    \r\n
  • \r\n Location\r\n
  • \r\n
  • \r\n
  • \r\n Contact Info\r\n
  • \r\n
  • \r\n
  • \r\n Date\r\n
  • \r\n
  • \r\n
  • \r\n Time\r\n
  • \r\n
  • \r\n
  • \r\n Payment\r\n
  • \r\n
\r\n
\r\n )\r\n }\r\n\r\n render() {\r\n const { steps } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n {/* Form Steps */}\r\n
\r\n {this.state.locationAddress && this.state.locationAddress.length > 0 ? (\r\n
\r\n
\r\n \r\n

\r\n \r\n {this.state.locationAddress}\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\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\nexport default Sales;\r\n","export default __webpack_public_path__ + \"static/media/scrollToTop.666e20fe.svg\";","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport AppointmentOptions from './AppointmentOptions';\r\nimport { Button } from 'reactstrap';\r\nimport Routes from '../app/Routes';\r\nimport _ from 'underscore';\r\nimport PageTitle from '../components/PageTitle';\r\nimport Sales from '../pages/Sales'\r\nimport Spinner from './Spinner';\r\nimport scrollToTop from \"../assets/scrollToTop.svg\";\r\nexport default class CalendarDayDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n locationId: this.props.locationId,\r\n data: this.props.data,\r\n date: this.props.date,\r\n m_bPleaseWait: true,\r\n notes: [],\r\n createAppointmentMode:false,\r\n showScrollButton: false,\r\n };\r\n this.Forward = this.Forward.bind(this);\r\n this.Backward = this.Backward.bind(this);\r\n this.notesChange = this.notesChange.bind(this);\r\n this.saveNotes = this.saveNotes.bind(this);\r\n this.checkinChanged = this.checkinChanged.bind(this);\r\n this.createAppointmentToggle = this.createAppointmentToggle.bind(this);\r\n this.reLoad = this.reLoad.bind(this);\r\n this.sales=React.createRef()\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('scroll', this.handleScroll);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.handleScroll);\r\n }\r\n\r\n handleScroll = () => {\r\n const { showScrollButton } = this.state;\r\n if (window.scrollY > 100 && !showScrollButton) {\r\n this.setState({ showScrollButton: true });\r\n } else if (window.scrollY <= 100 && showScrollButton) {\r\n this.setState({ showScrollButton: false });\r\n }\r\n };\r\n\r\n Forward() {\r\n let dt = this.state.date;\r\n dt.setDate(dt.getDate() + 1);\r\n this.props.onDayClick(dt);\r\n }\r\n\r\n reLoad(){\r\n let dt = this.state.date;\r\n this.props.onDayClick(dt);\r\n }\r\n\r\n Backward() {\r\n let dt = this.state.date;\r\n dt.setDate(dt.getDate() - 1);\r\n this.props.onDayClick(dt);\r\n }\r\n\r\n\r\n testButton(phoneNumber) {\r\n return ()\r\n }\r\n\r\n sendApp(phoneNumber) {\r\n EM.calendar.executeGet(null, { phoneNumber: phoneNumber }, Routes.clientApi.sendApp, {});\r\n }\r\n\r\n notesChange(event, appointmentID) {\r\n var notes = _.reject([...this.state.notes], (note) => {\r\n return note.appointmentId === appointmentID;\r\n });\r\n notes.push({ appointmentId: appointmentID, notes: event.target.value });\r\n this.setState({ notes });\r\n }\r\n\r\n saveNotes(appointmentId) {\r\n var notes = _.findWhere(this.state.notes, { appointmentId: appointmentId });\r\n if (notes)\r\n EM.calendar.executePut({ appointmentId: appointmentId, notes: notes.notes }, null, Routes.clientApi.saveNotes, {})\r\n .then((result) => {\r\n // handle change if need be\r\n });\r\n }\r\n\r\n checkinChanged(appointment,value){\r\n // let data = [...this.state.data];\r\n // var index = _.indexOf(data,appointment);\r\n // data[index].checkedIn = value;\r\n // this.setState({data});\r\n }\r\n\r\n static getDerivedStateFromProps(props, current_state) {\r\n if (current_state.data !== props.data) {\r\n return {\r\n data: props.data\r\n }\r\n }\r\n return null\r\n }\r\n\r\n createAppointmentToggle(){\r\n this.setState({createAppointmentMode:!this.state.createAppointmentMode})\r\n if(this.state.createAppointmentMode){\r\n this.reLoad()\r\n }\r\n }\r\n scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n };\r\n\r\n render() {\r\n\r\n if(this.props.loading){\r\n return\r\n }\r\n const createAppointmentMode = this.state.createAppointmentMode\r\n let dateString = this.state.date.toLocaleDateString('en-US', { year: 'numeric', month: '2-digit', day: '2-digit' });\r\n const createAppointmentButton=
\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {this.state.showScrollButton && (\r\n
\r\n \"Scroll\r\n
\r\n )}\r\n
\r\n {!this.props.bookingPage? (\r\n \r\n ):null}\r\n {createAppointmentMode && }\r\n {!createAppointmentMode && this.state.data.map((loc,index) => {\r\n return (\r\n
\r\n
\r\n
\r\n
{loc.displayTime} {loc.deal}
\r\n
\r\n
\r\n
Name : {loc.firstName} {loc.lastName} {loc.recheduleCount}
\r\n
Phone: {loc.phoneNumber}
\r\n
Backup Phone: {loc.backupNumber}
\r\n
Email: {loc.eMail}
\r\n
\r\n
\r\n
Seller: {loc.sales}
\r\n \r\n
\r\n
\r\n
Notes:
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.testButton(loc.phoneNumber)} \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}","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from 'react-select';\r\nimport Routes from '../../app/Routes';\r\nimport PageTitle from '../PageTitle';\r\nimport CalendarView from '../CalendarView';\r\nimport CalendarDayDetails from '../CalendarDayDetails';\r\nimport Dates from '../../util/Dates';\r\n\r\nclass LocationCalendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.locations;\r\n let company = props.company;\r\n this.state = {\r\n loading:false,\r\n parentRecordDetail: { companyId: company.companyId },\r\n company : company,\r\n locationOptions:[],\r\n data:[],\r\n locationId:props.location.locationId,\r\n showCalendar:false,\r\n showDetails:false,\r\n dayDetails:null,\r\n selectedDate:null,\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n this.locationChange = this.locationChange.bind(this);\r\n this.onCalendarChange = this.onCalendarChange.bind(this);\r\n this.onDayClick = this.onDayClick.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n this.setState({companyName:this.props?.company?.name})\r\n this.locationChange(this.state.locationId)\r\n }\r\n\r\n locationChange(locationId,date){\r\n console.log(locationId);\r\n let self =this;\r\n if(locationId && locationId>0)\r\n EM.calendar.executeGet(null,{locationId:locationId,date:(date ? date : new Date()).toISOString()},Routes.clientApi.calendar, {})\r\n .then((result)=>{\r\n self.setState({data:result, locationId,showCalendar:true,showDetails:false});\r\n });\r\n }\r\n\r\n onCalendarChange(date){\r\n if(date) this.locationChange(this.state.locationId,date);\r\n }\r\n\r\n async onDayClick(date){ \r\n if(date)\r\n {\r\n let self =this;\r\n if(self.state.locationId && self.state.locationId>0)\r\n {\r\n this.setState({loading:true})\r\n await EM.calendar.executeGet(null,{locationId:self.state.locationId,date:(date ? Dates.toDateTime(Dates.fromDate(date)) : new Date().toISOString())},Routes.clientApi.calendarday, {})\r\n .then((result)=>{ \r\n self.setState({dayDetails:result,showCalendar:false,showDetails:true,selectedDate:date});\r\n \r\n });\r\n this.setState({loading:false})\r\n }\r\n \r\n }\r\n else\r\n this.setState({showCalendar:false,showDetails:true});\r\n }\r\n\r\n\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n \r\n
\r\n {\r\n self.state.showCalendar ? {self.onDayClick(date);}} onCalendarChange={(date)=>{self.onCalendarChange(date)}} data={this.state.data}> : ''\r\n }\r\n {\r\n self.state.showDetails ? {self.locationChange(self.state.locationId)}} onDayClick={(date)=>{self.onDayClick(date);}} data={this.state.dayDetails} locationId={this.state.locationId} date={this.state.selectedDate} > :''\r\n }\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LocationCalendar;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport Spinner from \"../Spinner\";\r\nimport Routes from '../../app/Routes'\r\nimport ConfirmMaziCode from './ConfirmMaziCode'\r\nimport LocationCalendar from \"./LocationCalendar\";\r\nexport default class EventDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n onlineRegistration: EM.event.get().onlineBooking,\r\n isOpen: false,\r\n popeUpAction: null,\r\n location: EM.location.get(),\r\n showCalendar: this.props.location?.state?.openCalendar ? true : false\r\n };\r\n this.openPopUp = this.openPopUp.bind(this);\r\n this.closePopUp = this.closePopUp.bind(this);\r\n this.handleValidCode = this.handleValidCode.bind(this);\r\n this.confirmAndDownload = this.confirmAndDownload.bind(this);\r\n this.updateOnlineRegistration = this.updateOnlineRegistration.bind(this);\r\n }\r\n // async componentDidMount(){\r\n // this.setState({location:EM.location.get()})\r\n // }\r\n updateOnlineRegistration() {\r\n\r\n const self = this\r\n const onlineRegistration = this.state.onlineRegistration\r\n EM.event.executePut({ eventId: EM.event.get().eventId, onlineBooking: !onlineRegistration }, null, Routes.clientApi.updateEventBooking, {}, true)\r\n .then((result) => {\r\n self.setState({ onlineRegistration: !self.state.onlineRegistration })\r\n });\r\n }\r\n handleValidCode() {\r\n this.setState({ isOpen: false })\r\n if (this.state.popeUpAction === 'suspend') {\r\n this.updateOnlineRegistration()\r\n } else if (this.state.popeUpAction === \"appointment\") {\r\n this.setState({ showCalendar: true })\r\n } else {\r\n this.confirmAndDownload()\r\n }\r\n }\r\n /*handleDownload = (locationId) => {\r\n var url = 'https://api.flashopllc.com/api/appointment/printschedule?LocationId='\r\n \r\n window.open(`${url+locationId}`,)\r\n }*/\r\n\r\n handleDownload = (locationId) => {\r\n if (!locationId) {\r\n console.error('Invalid locationId');\r\n return;\r\n }\r\n\r\n const baseUrl = 'https://api.flashopllc.com/api/appointment/printschedule';\r\n const url = `${baseUrl}?LocationId=${locationId}`;\r\n\r\n window.open(url);\r\n }\r\n confirmAndDownload() {\r\n this.handleDownload(this.state.location.locationId)\r\n this.setState({ isPopOpen: false })\r\n }\r\n openPopUp(popeUpAction) {\r\n if (popeUpAction === \"appointment\") {\r\n if (this.state.showCalendar) {\r\n this.setState({ showCalendar: false })\r\n if (this.props.location.state) {\r\n this.props.history.replace({ ...this.props.history.location, state: undefined });\r\n }\r\n return\r\n }\r\n }\r\n this.setState({ isOpen: true, popeUpAction })\r\n }\r\n closePopUp() {\r\n this.setState({ isOpen: false })\r\n }\r\n render() {\r\n if (EM.allLoaded(EM.event, EM.location)) {\r\n let event = EM.event.get();\r\n let location = EM.location.get()\r\n let company = EM.company.get()\r\n return (\r\n
\r\n {!this.state.onlineRegistration &&

Online booking for this event has been temporarily disabled.

}\r\n
\r\n {event.deal}\r\n
\r\n

{event.description}

\r\n {!this.state.onlineRegistration &&

The online signup is temporarily suspended.

}\r\n
\r\n \r\n
\r\n
\r\n
_________For Official Use Only_________
\r\n
\r\n {(company && location && company.companyConfig.mazibook === true && (location.maziOrganizationCode !== null && location.maziOrganizationCode !== '')) && <>\r\n \r\n \r\n \r\n { if (data == true) this.handleValidCode() }} isOpen={this.state.isOpen} onClose={this.state.closePopUp} close={this.closePopUp} />\r\n {this.state.showCalendar ? (\r\n \r\n ) : null}\r\n }\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","export default __webpack_public_path__ + \"static/media/search.fc43bc7a.svg\";","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Spinner from \"../Spinner\";\r\nimport _ from 'underscore';\r\nimport InputMask from 'react-input-mask';\r\nimport searchIcon from \"../../assets/search.svg\";\r\n\r\nexport default class LocationDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n event: EM.event.get(),\r\n location: this.props.location,\r\n locations: [],\r\n zipCode: ''\r\n };\r\n this.locationSelected = this.locationSelected.bind(this);\r\n }\r\n componentDidMount() {\r\n }\r\n\r\n search() {\r\n let self = this;\r\n let params = {};\r\n let qs = { zip: this.state.zipCode, companyId: this.state.location.companyId };\r\n EM.locations.searchEntity(params, qs, true).then(() => {\r\n self.setState({ locations: EM.locations.get() });\r\n });\r\n }\r\n\r\n locationSelected(location) {\r\n this.props.next(location, this.props.step);\r\n }\r\n\r\n render() {\r\n if (EM.allLoaded(EM.event)) {\r\n return (\r\n
\r\n {/* {this.ShowError()} */}\r\n
\r\n Let's find the closest location for your photos, please\r\n enter your zipcode\r\n
\r\n
\r\n \r\n
\r\n { this.setState({ zipCode: event.target.value }); }} mask=\"99999\" maskChar=\" \" />\r\n this.search()}\r\n className=\"input-group-text bg-transparent my-0 border-0\"\r\n >\r\n \r\n \r\n
\r\n
\r\n {\r\n _.map(this.state.locations, (location) => {\r\n console.log(location);\r\n return (\r\n
\r\n
\r\n
{location.name}
\r\n

\r\n {location.address1}, {location.city}, {location.state}\r\n

\r\n
\r\n \r\n {location.distance ? location.distance.toFixed(2) : ''} miles\r\n \r\n \r\n
\r\n
\r\n {location.fullyBooked === true\r\n ?
FULLY BOOKED
\r\n :
{ if (location.fullyBooked !== true) this.locationSelected(location); }} className=\"ml-auto available py-2 px-3 text-nowrap fw-bolder text-uppercase ms-auto\" id=\"next\">Available
\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 return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport Spinner from \"../Spinner\";\r\n\r\nexport default class PaymentDetails extends Component {\r\n render() {\r\n if (EM.allLoaded(EM.event)) {\r\n return (\r\n
\r\n
\r\n Stripe Payment\r\n
\r\n

Flashop proudly uses Stripe for all if its electronic commerce transactions. Clicking next will take you to the Stripe site to complete your transaction.

\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport logo from \"../assets/logo.svg\";\r\nimport \"../style/Login.css\";\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport CustomerDetails from \"../components/BookingWizard/CustomerDetails\";\r\nimport DateSelection from \"../components/BookingWizard/DateSelection\";\r\nimport EventDetails from \"../components/BookingWizard/EventDetails\";\r\nimport LocationDetails from \"../components/BookingWizard/LocationDetails\";\r\nimport PaymentDetails from \"../components/BookingWizard/PaymentDetails\";\r\nimport TimeSelection from \"../components/BookingWizard/TimeSelection\";\r\nimport Spinner from \"../components/Spinner\";\r\nimport { loadStripe } from \"@stripe/stripe-js\";\r\nimport Routes from '../app/Routes'\r\nclass Booking extends Component {\r\n constructor(props) {\r\n super(props);\r\n let self = this;\r\n self.state = {\r\n isLoading:false,\r\n eventId: self.props.match.params.eventId,\r\n event: null,\r\n location: null,\r\n dates: [],\r\n slots: [],\r\n companyId: null,\r\n steps: {\r\n eventDetails: {\r\n name: \"eventDetails\",\r\n visible: true,\r\n done: true,\r\n next: () => { return self.state.steps.locationsDetails; },\r\n skip: () => { return self.skipLocationStep(); },\r\n stepAfterSkip: () => { \r\n self.loadLocationDates(EM.event.get().locationId);\r\n return self.state.steps.dateSelection; \r\n },\r\n },\r\n locationsDetails: {\r\n name: \"locationsDetails\",\r\n visible: false,\r\n data: null,\r\n done: false,\r\n next: () => {\r\n self.loadLocationDates(self.state.steps.locationsDetails.data.locationId);\r\n return self.state.steps.dateSelection;\r\n },\r\n prev: () => { return self.state.steps.eventDetails; }\r\n },\r\n dateSelection: {\r\n name: \"dateSelection\",\r\n visible: false,\r\n done: false,\r\n next: async() => {\r\n self.loadSlots(self.state.steps.dateSelection.data);\r\n return self.state.steps.timeSelection;\r\n },\r\n prev: () => { return self.state.steps.locationsDetails; }\r\n },\r\n timeSelection: {\r\n name: \"timeSelection\",\r\n visible: false,\r\n done: false,\r\n next: () => { return self.state.steps.customerDetails; },\r\n prev: async() => { \r\n return self.state.steps.dateSelection; }\r\n },\r\n customerDetails: {\r\n name: \"customerDetails\",\r\n visible: false,\r\n done: false,\r\n error:\"\",\r\n next: async () => {\r\n return await self.placeOrderIfRequired(self.state.steps.paymentDetails);\r\n },\r\n prev: () => { return self.state.steps.timeSelection; },\r\n skip: (currentStep,nextStep) => {\r\n if(nextStep && nextStep.name === self.state.steps.customerDetails.name)\r\n return false;\r\n return self.skipPaymentStep(); \r\n },\r\n stepAfterSkip: () => { return self.state.steps.thankYou; },\r\n },\r\n paymentDetails: {\r\n name: \"paymentDetails\",\r\n visible: false,\r\n done: false,\r\n prev: () => { return self.state.steps.customerDetails; },\r\n next: async () => {\r\n return await self.placeOrder(self.state.steps.thankYou);\r\n },\r\n },\r\n thankYou: {\r\n name: \"thankYou\",\r\n visible: false\r\n }\r\n },\r\n };\r\n this.next = this.next.bind(this);\r\n this.hideAll = this.hideAll.bind(this);\r\n this.skipLocationStep = this.skipLocationStep.bind(this);\r\n this.getNextStep = this.getNextStep.bind(this);\r\n this.loadLocationDates = this.loadLocationDates.bind(this);\r\n this.loadSlots = this.loadSlots.bind(this);\r\n this.skipPaymentStep = this.skipPaymentStep.bind(this);\r\n this.placeOrderIfRequired = this.placeOrderIfRequired.bind(this);\r\n this.placeOrder = this.placeOrder.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.getEvent();\r\n }\r\n\r\n loadLocationDates(locationId) {\r\n let self = this;\r\n let params = { locationId: locationId };\r\n EM.availableDays.searchEntity(params, {}, true).then(() => {\r\n self.setState({ dates: EM.availableDays.get() });\r\n });\r\n }\r\n\r\n async loadSlots(date) {\r\n let self = this;\r\n let locationId =self.state.steps.locationsDetails.data ? self.state.steps.locationsDetails.data.locationId : self.state.event.locationId;\r\n let params = { locationId: locationId, date: date.strdt };\r\n let qs = { date: date.strdt,bookByAdmin:false };\r\n if(this.state.company && this.state.location && this.state.company.companyConfig.mazibook===true && (this.state.location.maziOrganizationCode!==null && this.state.location.maziOrganizationCode!=='')){\r\n // console.log(Routes.clientApi.locationSlotsV2)\r\n \r\n EM.availableSlots.executeGet(null,qs,Routes.clientApi.locationSlotsV2,{locationId}).then((result)=>{\r\n self.setState({ slots: EM.availableSlots.get() });\r\n });\r\n } else{\r\n \r\n EM.availableSlots.searchEntity(params, qs, true).then(() => {\r\n self.setState({ slots: EM.availableSlots.get() });\r\n });\r\n }\r\n \r\n }\r\n async getEvent() {\r\n let self = this;\r\n let params = { eventId: this.state.eventId };\r\n EM.event.loadSingleEntity(params).then(() => {\r\n self.setState({ event: EM.event.get() });\r\n self.getLocation();\r\n });\r\n }\r\n\r\n getLocation() {\r\n let self = this;\r\n let event = this.state.event;\r\n let params = { id: event.locationId };\r\n EM.location.loadSingleEntity(params).then(() => {\r\n let location = EM.location.get();\r\n self.setState({ location: location, companyId: location.companyId });\r\n self.getCompany();\r\n });\r\n }\r\n\r\n getCompany() {\r\n let self = this;\r\n let params = { id: self.state.companyId };\r\n EM.company.loadSingleEntity(params).then(() => {\r\n let company = EM.company.get();\r\n self.setState({ company: company });\r\n });\r\n }\r\n\r\n skipLocationStep() {\r\n return !this.state.event.allLocations;\r\n }\r\n\r\n skipPaymentStep() {\r\n return !this.state.event.chargeAmount || (this.state.event.chargeAmount && this.state.event.chargeAmount <= 0);\r\n }\r\n\r\n hideAll() {\r\n let steps = this.state.steps;\r\n _.each(steps, (step) => {\r\n step.visible = false;\r\n });\r\n return steps;\r\n }\r\n\r\n async getNextStep(current) {\r\n let next = await current.next();\r\n if (current.skip && current.skip(current,next) === true) {\r\n next = current.stepAfterSkip();\r\n }\r\n next.visible = true;\r\n return next;\r\n }\r\n\r\n getPrevStep(current) {\r\n let next = current.prev();\r\n if (current.skipPrev && current.skipPrev() === true) {\r\n next = current.stepBeforeSkip();\r\n }\r\n next.visible = true;\r\n return next;\r\n }\r\n\r\n async next(data, current) { \r\n current.data = data;\r\n current.done = true;\r\n this.setState({currentStep:current});\r\n let steps = Object.assign({}, this.state.steps);\r\n steps = this.hideAll();\r\n let next = await this.getNextStep(current);\r\n\r\n steps[next.name] = next;\r\n if (next) next.visible = true;\r\n this.setState({ steps });\r\n }\r\n\r\n async prev(data, current) {\r\n current.data = {};\r\n current.done = false;\r\n let steps = Object.assign({}, this.state.steps);\r\n steps = this.hideAll();\r\n let next = await this.getPrevStep(current);\r\n steps[next.name] = next;\r\n if (next) next.visible = true;\r\n this.setState({ steps });\r\n }\r\n\r\n async placeOrderIfRequired(step) { \r\n let self =this;\r\n const response = await self.placeOrder();\r\n \r\n if(response==false){\r\n \r\n return self.state.steps.customerDetails\r\n }\r\n let skipPayment = this.skipPaymentStep();\r\n\r\n if (skipPayment !== true) return step;\r\n \r\n return this.state.steps.paymentDetails.stepAfterSkip;\r\n \r\n }\r\n async placeOrder(step){\r\n let self =this;\r\n let steps =self.state.steps; \r\n let user = steps.customerDetails.data;\r\n let childrenName= Array.prototype.map.call(steps.customerDetails.data.childrenNames, function(item) { return item.id; }).join(\", \")\r\n let location2=EM.location.get()\r\n let company=EM.company.get()\r\n \r\n if(company && location2 && company.companyConfig.mazibook===true && (location2.maziOrganizationCode!==null && location2.maziOrganizationCode!=='')){\r\n this.setState({isLoading:true})\r\n const externalResponse = await self.createuserExternal(user,childrenName)\r\n this.setState({isLoading:false})\r\n // console.log(externalResponse)\r\n if(externalResponse.error && externalResponse.error===\"The phone field contains an invalid number.\"){\r\n const customerDetails = this.state.steps.customerDetails\r\n customerDetails.error=externalResponse.error\r\n this.setState(prevState => ({\r\n steps: {\r\n ...prevState.steps,\r\n customerDetails: customerDetails\r\n }\r\n }));\r\n return false\r\n }\r\n }\r\n let date = steps.dateSelection.data.strdt;\r\n let time = steps.timeSelection.data;\r\n let location = steps.locationsDetails.data;\r\n //if chargeamount is 0, place order \r\n await EM.eventOrder.create({\r\n eventId : self.state.event.eventId,\r\n firstName : user.firstName,\r\n lastName : user.lastName,\r\n maziAdult2FirstName:user.firstName2,\r\n maziAdult2LastName:user.lastName2,\r\n maziChildrenNames:childrenName,\r\n phone: user.phoneNumber,\r\n email:user.email,\r\n date: `${date} ${time}`,\r\n locationId : location ? location.locationId :self.state.event.locationId\r\n },{}).then((res)=>{\r\n if(self.state.event.chargeAmount>0){ \r\n //redirect to stripe\r\n var prodPaymentMode = process.env.REACT_APP_PAYMENT_MODE ==='prod';\r\n let sessionId = res.data.sessionId;\r\n let key = prodPaymentMode===true ? self.state.company.companyConfig.stripePublishableKey:process.env.REACT_APP_STRIPE_API_KEY_TEST;\r\n loadStripe(key).then(async (stripe)=>{\r\n if (!stripe) {\r\n alert(\"no stripe\");\r\n return;\r\n }\r\n const { error } = await stripe.redirectToCheckout({\r\n sessionId: sessionId\r\n });\r\n console.log(error);\r\n });\r\n \r\n }\r\n \r\n\r\n });\r\n \r\n }\r\n async createuserExternal(user,childrenName){\r\n return await fetch('https://api.mazibook.com/api/sso/user/createUser', {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n first_name:user.firstName,\r\n last_name:user.lastName,\r\n phone:user.phoneNumber.replace(/[^\\d]/g, ''),\r\n gender :\"3\",\r\n organization_code:EM.location.get().maziOrganizationCode, \r\n children_names:childrenName, \r\n adult2_first_name:user.firstName2, \r\n adult2_last_name:user.lastName2 \r\n\r\n }),\r\n headers: {\r\n 'Content-type': 'application/json; charset=UTF-8',\r\n 'Authorization': 'Bearer uziSHArwX4vpUyqxQEOlaBxPRafTLopCwbCMc0vzbNiXXNXkmLUTlgxzcECN9'\r\n }\r\n })\r\n .then(function(response){ \r\n return response.json()})\r\n .then(function(data)\r\n {\r\n \r\n console.log(data)\r\n return data\r\n }).catch(error => console.error('Error:', error)); \r\n }\r\n render() {\r\n if(this.state.isLoading){\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n if (EM.allLoaded(EM.event, EM.location)) {\r\n let steps = this.state.steps;\r\n return (\r\n
\r\n {/* */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*

About Company

\r\n

Booking Copy You can book your date and time simply from our website, Flashop app, or in person at one of our many retail locations we serve. Our promotional special is a digital download of your favorite image for $20 with over 25 images to choose from. Also other simple pricing package specials to choose from.

\r\n

Want us to come to you?

\r\n

Photography session and delivery.

\r\n

Now the fun part. You confirmed your photography session and location to bring your loved ones Dress to impress to be Photographed.

\r\n

We will take over 25+ images. Directly after the photo session your photos will be delivered to your Flashop app. Your Photographer will show you exactly how to select your Favorite image. When unlock it all the watermarks are removed so you can download it to your mobile device share it with friends and family or put it in your favorite editing app.

\r\n

It’s all about the Digital and instant gratification.

\r\n

If you decide you want all of your images unlocked. $149.99 groups under six. When you unlock the digital you also receive an text with all the images In a zip file.

\r\n

Check out or print specials as well With sizes up to 30 x 40. At AM Studios We give you the most convenient way to have professional portraits scheduled, photographed, and delivered.

\r\n

Thank you for your business and we look forward to serving you.

*/}\r\n
\r\n
\r\n
© 2024 Flashop. All rights reserved.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n Event\r\n
  • \r\n
  • \r\n
  • \r\n Location\r\n
  • \r\n
  • \r\n
  • \r\n Select Date\r\n
  • \r\n
  • \r\n
  • \r\n Select Time\r\n
  • \r\n
  • \r\n
  • \r\n Customer Info\r\n
  • \r\n
\r\n {/* Steps Start here.... */}\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 return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Booking;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport EntityTable from \"./EntityTables/EntityTable\";\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nimport { FaShareAlt, FaUnlockAlt, FaEye, FaRegListAlt, FaDownload } from \"react-icons/fa\";\r\nimport PanelModal from './PanelModal';\r\nimport InputMask from 'react-input-mask';\r\nimport Dates from '../util/Dates'\r\nimport _ from 'underscore';\r\nimport Routes from '../app/Routes'\r\n\r\nclass UserSessions extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.userSessions;\r\n this.rootContainer = 'https://flashopstorage.blob.core.windows.net/images/';\r\n this.state = {\r\n parentRecordDetail: { userId: this.props.data.id, companyId: this.props.data.companyId },\r\n sessions : [],\r\n showView: false,\r\n showUnlock: false,\r\n showImages: false,\r\n phoneNumber: '',\r\n price: '',\r\n userImages: [],\r\n selectedSession:null\r\n }\r\n \r\n this.shareSession = this.shareSession.bind(this);\r\n this.unlockSession = this.unlockSession.bind(this);\r\n this.clearAllSessions = this.clearAllSessions.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n let self = this;\r\n self.entity.loadEntityByParent(this.state.parentRecordDetail,true).then(()=>{this.setState({sessions:self.entity.get()})});\r\n }\r\n\r\n handleShowView(session) {\r\n this.setState({ showView: !this.state.showView,selectedSession:session });\r\n }\r\n handleShowUnlock(session) {\r\n this.setState({ showUnlock: !this.state.showUnlock,selectedSession:session });\r\n }\r\n handleViewImage() {\r\n this.setState({ showImages: !this.state.showImages });\r\n }\r\n imageCount() {\r\n return this.state.userImages?.length;\r\n }\r\n shareSession(session) {\r\n var self = this;\r\n var request = {\r\n fromUserId:self.props.user.userId,\r\n toPhone: self.state.phoneNumber,\r\n userSessionId: this.state.selectedSession.userSessionId,\r\n companyId: this.state.selectedSession.companyId\r\n }\r\n EM.userSessions.executePost(request,null,Routes.clientApi.shareSession, {},false).then(()=>{self.setState({showView:false})});\r\n }\r\n unlockSession() {\r\n var self = this;\r\n var request = {\r\n sessionId:self.state.selectedSession.userSessionId,\r\n price:self.state.price\r\n }\r\n EM.userSessions.executePost(request,null,Routes.clientApi.unlockSession, {},false).then(()=>{\r\n let sessions = [...self.state.sessions];\r\n var index = _.indexOf(sessions,self.state.selectedSession);\r\n sessions[index] = Object.assign({},self.state.selectedSession,{boughtDigitalSession:true})\r\n self.setState({showUnlock:false,sessions});\r\n }); \r\n }\r\n\r\n textSession(session){\r\n var self = this;\r\n var request = {\r\n sessionId:session.userSessionId,\r\n userId:self.props.user.userId\r\n }\r\n EM.userSessions.executePost(request,null,Routes.clientApi.textSession, {},false); \r\n }\r\n\r\n downloadSession(data) {\r\n window.location.href = \"https://fcaf.azurewebsites.net/api/session/\" + data.blobId;\r\n }\r\n\r\n clearAllSessions() {\r\n let self =this;\r\n let sessions = _.pluck(_.filter(this.state.sessions,(session)=>{return session.published;}),'userSessionId');\r\n var updateSession = {\r\n published: false,\r\n userSessionIds: sessions\r\n }\r\n this.entity.update(updateSession, updateSession, this.state.parentRecordDetail).then(() => {\r\n self.setState({sessions:[]});\r\n });\r\n }\r\n\r\n clearSession(session) {\r\n let self =this;\r\n let sessionIds = [];\r\n sessionIds.push(session.userSessionId);\r\n var updateSession = {\r\n published: false,\r\n userSessionIds: sessionIds\r\n }\r\n this.entity.update(updateSession, updateSession, this.state.parentRecordDetail).then(() => {\r\n self.entity.loadEntityByParent(this.state.parentRecordDetail,true).then(()=>{this.setState({sessions:self.entity.get()})});\r\n\r\n // let sessions = _.filter([...self.state.sessions],(ses)=>{return ses.userSessionId !== session.userSessionId;}); \r\n // console.log('sessions filtered :>> ', sessions);\r\n // this.setState({sessions});\r\n });\r\n }\r\n\r\n getSessionImages(data) {\r\n EM.userSessionImage.loadEntityByParent({ id: data.userSessionId }).then(() => {\r\n let userImages = EM.userSessionImage.get();\r\n this.setState({ userImages: userImages, showImages: !this.state.showImages });\r\n });\r\n }\r\n\r\n render() {\r\n let self = this;\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity)) {\r\n // data = _.filter([...this.state.sessions],(session)=>{return session.published ===true;});\r\n data = _.filter([...this.entity.get()],(session)=>{return session.published ===true;});\r\n columns = [\r\n {\r\n dataField: \"createdDate\",\r\n text: this.entity.columns(\"createdDate\"),\r\n editable: false,\r\n validators: [Validators.required],\r\n creatable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return Dates.fromISO(cell).toFormat(\"MM/dd/yyyy\")\r\n }\r\n },\r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n editable: false,\r\n validators: [Validators.required, Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"companyId\",\r\n text: this.entity.columns(\"createdBy\"),\r\n editable: false,\r\n validators: [Validators.required],\r\n creatable: false,\r\n formatter:(cell,row)=>{\r\n var company = _.findWhere(self.props.user.userCompanies,{companyId:cell});\r\n return company ? company.companyName : '';\r\n },\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"promoSelected\",\r\n text: this.entity.columns(\"promoSelected\"),\r\n editable: false,\r\n asActive:true,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"boughtDigitalSession\",\r\n text: this.entity.columns(\"boughtDigitalSession\"),\r\n asActive: true,\r\n editable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n }, \r\n {\r\n dataField: \"expiryDate\",\r\n asDateTime: true,\r\n text: this.entity.columns(\"expiryDate\"),\r\n // validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"unlock\",\r\n text: \"\",\r\n creatable: false,\r\n editable: false,\r\n width:300,\r\n formatter: (cell, row) => {\r\n return (
\r\n \r\n \r\n \r\n \r\n { EM.isSuperAdmin() || EM.isAdmin() ?\r\n \r\n :null\r\n }\r\n \r\n
);\r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n \r\n \r\n Share\r\n \r\n
\r\n \r\n \r\n {\r\n this.setState({ phoneNumber: event.target.value })\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 Unlock\r\n \r\n
\r\n \r\n

Are you sure you would like to unlock this session?

\r\n
\r\n \r\n \r\n { this.setState({ price: event.target.value }) }}>\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n Session ({this.imageCount()} Images)\r\n \r\n
\r\n \r\n {_.sortBy(self.state.userImages,'orderNumber').map(image => {\r\n return (\r\n
...
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserSessions;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates';\r\nimport _ from 'underscore';\r\nimport Routes from '../app/Routes'\r\n\r\nclass Appointments extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.appointments;\r\n this.state = {\r\n parentRecordDetail: { userId: this.props.data.id, companyId: this.props.data.companyId },\r\n appointmentsData: [],\r\n collapsed:true,\r\n notes:[]\r\n };\r\n\r\n }\r\n componentDidMount() {\r\n var self = this;\r\n self.entity.loadEntityByParent(this.state.parentRecordDetail,true).then(() => {\r\n self.setState({ appointmentsData: self.entity.get() });\r\n });\r\n }\r\n \r\n confirm(appointment) { \r\n let self = this;\r\n EM.appointments.executePut({ appointmentId: appointment.appointmentId, propertyName: \"Confirmed\", confirmed: true }, null, Routes.clientApi.patchAppointment, {},true)\r\n .then(() => {self.setState({appointmentsData:self.entity.get()});});\r\n}\r\n\r\n\r\n patchCheckIn(checkedIn,appointment) {\r\n let self = this;\r\n EM.appointments.executePut({ appointmentId: appointment.appointmentId, propertyName: \"CheckedIn\", checkedIn: checkedIn }, \r\n null, Routes.clientApi.patchAppointment, {},true)\r\n .then((result) => {\r\n self.setState({appointmentsData:self.entity.get()});\r\n });\r\n }\r\n\r\n cancel(appointment) {\r\n let self = this;\r\n EM.appointments.executePut({ appointmentId: appointment.appointmentId, propertyName: \"Cancelled\", cancelled: true }, null, Routes.clientApi.patchAppointment, {},true)\r\n .then((result) => {\r\n self.setState({appointmentsData:self.entity.get()});\r\n }); \r\n }\r\n\r\n saveNotes(appointmentId){\r\n var notes = _.findWhere(this.state.notes, {appointmentId:appointmentId});\r\n if(notes)\r\n EM.appointments.executePut({appointmentId:appointmentId, notes:notes.notes},null,Routes.clientApi.saveNotes, {},true)\r\n .then((result)=>{\r\n // handle change if need be\r\n });\r\n }\r\n\r\n redirectToReschedule(apt) {\r\n let url = Routes.compose(Routes.client.rescheduleAppointment, { userId: this.state.parentRecordDetail.userId, companyId: this.state.parentRecordDetail.companyId, appointmentId: apt.appointmentId });\r\n this.props.history.push(url);\r\n }\r\n\r\n notesChange(event,appointmentID){\r\n var notes = _.reject([...this.state.notes],(note)=>{\r\n return note.appointmentId === appointmentID;\r\n });\r\n notes.push({appointmentId:appointmentID, notes:event.target.value});\r\n this.setState({notes});\r\n }\r\n\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n
{this.setState({collapsed:!this.state.collapsed})}}>\r\n

Appointments { this.state.collapsed ? : }

\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Appointments;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from \"../util/EntityValidators\";\r\nimport EntityTable from \"./EntityTables/EntityTable\";\r\nimport {FaTrashAlt } from \"react-icons/fa\";\r\nimport Dates from '../util/Dates'\r\n\r\nclass Prepaids extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.prepaid;\r\n this.state = {\r\n parentRecordDetail: { userId: this.props.data.id, companyId: this.props.data.companyId }\r\n }\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.deletePrepaid = this.deletePrepaid.bind(this);\r\n }\r\n deletePrepaid(prepaid){\r\n let self =this;\r\n this.entity.delete([prepaid.prepaidId])\r\n .then(()=>{\r\n let data = self.entity.get();\r\n });\r\n }\r\n render() {\r\n let self = this;\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity)) {\r\n data = this.entity.get();\r\n columns = [\r\n {\r\n dataField: \"createdDate\",\r\n text: this.entity.columns(\"createdDate\"),\r\n asDate: true,\r\n editable:false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (Dates.isoToDateTime(cell, \"YYYY-MM-DD hh:mm A\"));\r\n }\r\n },\r\n {\r\n dataField: \"allDigital\",\r\n text:\"Include Digital\",\r\n editable:true,\r\n asActive:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"price\",\r\n text: this.entity.columns(\"price\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"sheetCount\",\r\n text: this.entity.columns(\"sheetCount\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"imageCount\",\r\n text: this.entity.columns(\"imageCount\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"largePrint1114\",\r\n text: this.entity.columns(\"largePrint1114\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"largePrint1620\",\r\n text: this.entity.columns(\"largePrint1620\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n // {\r\n // dataField: \"largePrint2030\",\r\n // text: this.entity.columns(\"largePrint2030\"),\r\n // editable:true,\r\n // filterOptions: {\r\n // text: true,\r\n // },\r\n // },\r\n {\r\n dataField: \"consumed\",\r\n text: this.entity.columns(\"consumed\"),\r\n asActive: true,\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n }, \r\n {\r\n dataField: \"delete\",\r\n text: this.entity.columns(\"delete\"),\r\n creatable: false,\r\n editable: false,\r\n formatter: (cell, row) => {\r\n if(row.consumed!==true && (EM.isSuperAdmin() ===true ||EM.isAdmin() ===true) )\r\n return ()\r\n else return '';\r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Prepaids;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport EntityTable from \"./EntityTables/EntityTable\";\r\nimport _ from \"underscore\";\r\nimport { ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport PanelModal from '../components/PanelModal';\r\n\r\nclass PrintOrdersDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}; \r\n }\r\n\r\n getTransformOrderLines() {\r\n return _.map(this.props.order.printOrderLineItems, (item) => {\r\n return {\r\n name: item.product?.name,\r\n quantity: item.quantity,\r\n imagepath: item.userSessionImage.thumbnailUrl ? item.userSessionImage.thumbnailUrl : (item.userSessionImage.originalImageUrl ? item.userSessionImage.originalImageUrl : ''),\r\n price: item.product.price\r\n };\r\n });\r\n }\r\n\r\n getColumns() {\r\n return [\r\n {\r\n dataField: \"name\",\r\n text: 'Product name',\r\n editable: false,\r\n },\r\n {\r\n dataField: \"imagepath\",\r\n text: 'Image',\r\n editable: false,\r\n formatter: (cell, row) => {\r\n return ()\r\n }\r\n },\r\n {\r\n dataField: \"quantity\",\r\n text: 'Quantity',\r\n editable: false\r\n },\r\n {\r\n dataField: \"price\",\r\n text: 'Price',\r\n creatable: false,\r\n editable: false,\r\n formatter: (cell, row) => {\r\n return `$${cell ? cell : ''}`\r\n }\r\n }\r\n ];\r\n }\r\n\r\n render() {\r\n let columns = this.getColumns();\r\n let data = this.getTransformOrderLines();;\r\n\r\n return (\r\n
\r\n \r\n Order Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PrintOrdersDetails;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport EntityTable from \"./EntityTables/EntityTable\";\r\nimport Dates from '../util/Dates'\r\nimport PrintOrdersDetails from \"./PrintOrdersDetails\";\r\nimport Routes from '../app/Routes'\r\nclass PrintOrders extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.printOrders;\r\n this.state = {\r\n parentRecordDetail: { userId: this.props.data.id, companyId: this.props.data.companyId },\r\n orderDetailsHidden:true,\r\n selectedOrder:null\r\n }\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail, true);\r\n this.showDetails = this.showDetails.bind(this);\r\n this.handleRequeue = this.handleRequeue.bind(this);\r\n }\r\n\r\n showDetails(order){ \r\n this.setState({orderDetailsHidden:false,selectedOrder:order});\r\n }\r\n\r\n handleRequeue(row){ \r\n var request = {\r\n orderId:row.printOrderId \r\n }\r\n this.entity.executePost(request,null,this.entity.entityTypeDef.requeueUrl, {},false);\r\n }\r\n\r\n\r\n render() {\r\n let self = this;\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity)) {\r\n data = this.entity.get();\r\n columns = [\r\n {\r\n dataField: \"createdDate\",\r\n text: this.entity.columns(\"createdDate\"),\r\n asDate: true,\r\n editable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (Dates.isoToDateTime(cell, \"MM/dd/yyyy\"));\r\n }\r\n },\r\n {\r\n dataField: \"gross\",\r\n text: this.entity.columns(\"gross\"),\r\n editable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (
$ {row.gross.toFixed(2)}
)\r\n }\r\n },\r\n {\r\n dataField: \"package\",\r\n text: this.entity.columns(\"package\"),\r\n editable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (
$ {row.package.toFixed(2)} Studio Package
)\r\n }\r\n },\r\n {\r\n dataField: \"requeue\",\r\n text: this.entity.columns(\"requeue\"),\r\n creatable: false,\r\n editable: false,\r\n hidden: EM.isAdmin() !== true && EM.isSuperAdmin() !== true,\r\n formatter: (cell, row) => {\r\n return (
\r\n \r\n {\r\n EM.isAdmin() === true || EM.isSuperAdmin() === true ?\r\n \r\n : null}\r\n
);\r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n \r\n { this.state.selectedOrder ?\r\n \r\n :null\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PrintOrders;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nimport PanelModal from '../components/PanelModal';\r\nimport UserSessions from \"../components/UserSessions\";\r\nimport Appointments from \"../components/Appointments\";\r\nimport Prepaids from \"../components/Prepaids\";\r\nimport PrintOrders from \"../components/PrintOrders\";\r\nimport Routes from '../app/Routes';\r\nimport Spinner from '../components/Spinner'\r\nclass UserDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.userDetails;\r\n this.state = {\r\n parentRecordDetail: { id: this.props.match.params.userId, companyId: this.props.match.params.companyId },\r\n userData: {},\r\n show: false,\r\n includeDS: false,\r\n sheetCount: 0,\r\n imageCount:0,\r\n largePrint_11_14: 0,\r\n largePrint_16_20: 0,\r\n largePrint_20_30: 0,\r\n price: 0,\r\n data:false\r\n };\r\n \r\n this.redirectTouserScheduler = this.redirectTouserScheduler.bind(this);\r\n this.redirectToReschedule = this.redirectToReschedule.bind(this);\r\n this.sendApp = this.sendApp.bind(this);\r\n this.saveUserDetail = this.saveUserDetail.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n const self=this\r\n this.setState({data:false}) \r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,false).then((data)=>{\r\n if(EM.allLoaded(this.entity)){ \r\n \r\n data = self.entity.get(true);\r\n self.setState({data:data})\r\n console.log(data)\r\n }\r\n })\r\n // this.entity.load();\r\n }\r\n\r\n componentWillUnmount(){\r\n this.setState({data:false})\r\n }\r\n \r\n handModal() {\r\n this.setState({ show: !this.state.show });\r\n }\r\n\r\n createPackage() {\r\n var newRecord = {\r\n allDigital: this.state.includeDS,\r\n sheetCount: this.state.sheetCount,\r\n imageCount: this.state.imageCount,\r\n largePrint1114: this.state.largePrint_11_14,\r\n largePrint1620: this.state.largePrint_16_20,\r\n largePrint2030: this.state.largePrint_20_30,\r\n price: this.state.price,\r\n userId: this.state.parentRecordDetail.id,\r\n companyId: this.state.parentRecordDetail.companyId\r\n };\r\n EM.prepaid.create(newRecord).then(()=>{this.setState({show:false, includeDS: false,\r\n sheetCount: 0,\r\n imageCount:0,\r\n largePrint_11_14: 0,\r\n largePrint_16_20: 0,\r\n largePrint_20_30: 0,\r\n price: 0})});\r\n }\r\n redirectTouserScheduler() {\r\n let url = Routes.compose(Routes.client.userSchdeuler, { userId: this.state.parentRecordDetail.id, companyId: this.state.parentRecordDetail.companyId });\r\n this.props.history.push(url);\r\n }\r\n redirectToReschedule(apt) {\r\n let url = Routes.compose(Routes.client.rescheduleAppointment, { userId: this.state.parentRecordDetail.id, companyId: this.state.parentRecordDetail.companyId, appointmentId: apt.appointmentId });\r\n this.props.history.push(url);\r\n }\r\n\r\n deleteUser(){\r\n var user = this.entity.get();\r\n EM.users.delete([user.userId]).then(()=>{EM.redirectTo(Routes.client.users);});\r\n }\r\n\r\n sendApp(){\r\n let user = this.entity.get(); \r\n var companyId = EM.getDefaultCompany(user).companyId\r\n EM.calendar.executeGet(null,{phoneNumber:user.phoneNumber,companyId},Routes.clientApi.sendApp, {});\r\n }\r\n saveUserDetail(){\r\n var user = this.entity.get();\r\n const data = this.state.data\r\n this.entity.executePut(data,null,Routes.clientApi.updateUser, {},true) \r\n }\r\n onTextChange(event, field) {\r\n let data = Object.assign(this.state.data, {});\r\n \r\n data[field] = event.target.value;\r\n \r\n this.setState({ data });\r\n }\r\n\r\n render() {\r\n let data = [];\r\n // if (!this.state.data) { \r\n // // debugger\r\n // if(EM.allLoaded(this.entity)){ \r\n \r\n // data = this.entity.get(true);\r\n // this.setState({data:data})\r\n // console.log(data)\r\n // }\r\n // // debugger\r\n // }\r\n \r\n if(!this.state.data){ \r\n return \r\n }\r\n if(this.state.data)\r\n return (\r\n
\r\n
\r\n
User Details
\r\n
\r\n
\r\n
\r\n \r\n { this.onTextChange(event, 'firstName') }} placeholder=\"First Name\" className=\"form-control m-0 border border-2 border-primary p-2\" value={this.state.data.firstName}/>\r\n
\r\n
\r\n \r\n { this.onTextChange(event, 'lastName') }} placeholder=\"Last Name\" className=\"form-control m-0 border border-2 border-primary p-2\" value={this.state.data.lastName}/> \r\n
\r\n
\r\n \r\n { this.onTextChange(event, 'emailAddress') }} placeholder=\"Email\" className=\"form-control m-0 border border-2 border-primary p-2\" value={this.state.data.emailAddress}/> \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 Enter the Studio Package\r\n \r\n
\r\n \r\n this.setState({ includeDS: evt.target.checked })} />\r\n \r\n \r\n \r\n \r\n this.setState({ sheetCount: evt.target.value })} />\r\n \r\n \r\n \r\n this.setState({ imageCount: evt.target.value })} />\r\n \r\n \r\n \r\n this.setState({ largePrint_11_14: evt.target.value })} />\r\n \r\n \r\n \r\n this.setState({ largePrint_16_20: evt.target.value })} />\r\n \r\n {/* \r\n \r\n this.setState({ largePrint_20_30: evt.target.value })} />\r\n */}\r\n \r\n \r\n this.setState({ price: evt.target.value })} />\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserDetails;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport Spinner from './Spinner';\r\nimport _ from 'underscore';\r\n\r\nexport default class FetchIndicator extends Component {\r\n render() {\r\n if (this.props.items.length === 0)return null;\r\n return (\r\n
\r\n \r\n {_.uniq(this.props.items).map((item, index) => {\r\n let itemName = item[0] === '#'?item.slice(1):item;\r\n return (\r\n
\r\n {itemName}\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\n\r\nexport default class ErrorIndicator extends Component {\r\n \r\n render() {\r\n if (!this.props.error)return null;\r\n let self = this; \r\n let messages = [];\r\n Object.values(this.props.error).forEach((error) => {\r\n let message = EM.t('error.' + error.errorCode, true);\r\n if (!message){\r\n let bits = error.message.split(': ');\r\n if (bits.length > 1){\r\n message = EM.t('error.' + bits[0], true);\r\n }\r\n }\r\n if (!message){\r\n message = error.message;\r\n }\r\n messages.push(message);\r\n });\r\n\r\n if (messages.length === 0)return null;\r\n \r\n return (\r\n
\r\n
{\r\n EM.hideErrors(Object.keys(self.props.error)[0]);\r\n }}>X
\r\n
{EM.t('util.errors')}:
\r\n
    \r\n {messages.map((msg, index) => {\r\n return (
  • {msg}
  • );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport default class TemporaryStatusMessage extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n message: null,\r\n className: ''\r\n }\r\n }\r\n\r\n setMessage(message, className, timeout){\r\n let self = this;\r\n self.setState({ message, className }, () => {\r\n window.setTimeout(() => {\r\n self.clearMessage();\r\n }, timeout || 5000);\r\n });\r\n }\r\n\r\n clearMessage(){\r\n let self = this;\r\n self.setState({ message: null, className: '' });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
{this.state.message}
\r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport { Button, Form, FormGroup, Input, Label } from \"reactstrap\";\r\nimport Routes from \"../app/Routes\";\r\nimport PageTitle from '../components/PageTitle';\r\nclass CompanyConfig extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.companyConfig;\r\n this.state = {\r\n parentRecordDetail: { id: this.props.match.params.companyId },\r\n config: {},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n EM.company.loadSingleEntity(this.state.parentRecordDetail);\r\n this.entity.loadSingleEntity(this.state.parentRecordDetail).then(() => {\r\n this.setState({ config: this.entity.get() || {} });\r\n });\r\n\r\n this.onCheckChanged = this.onCheckChanged.bind(this);\r\n this.onTextChanged = this.onTextChanged.bind(this);\r\n this.onSave = this.onSave.bind(this);\r\n }\r\n\r\n onCheckChanged(event, field) {\r\n let config = Object.assign(this.state.config);\r\n config[field] = event.target.checked;\r\n this.setState({ config });\r\n }\r\n async componentDidMount(){\r\n \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n \r\n }\r\n onTextChanged(event, field) {\r\n let self = this;\r\n let config = Object.assign(this.state.config);\r\n config[field] = event.target.value;\r\n this.setState({ config }, () => {\r\n console.log(self.state.config);\r\n });\r\n }\r\n\r\n onSave() {\r\n this.entity.update(this.entity.get(), this.state.config);\r\n }\r\n\r\n render() {\r\n let data = {};\r\n let config = {}\r\n if (EM.allLoaded(EM.company, this.entity)) {\r\n data = EM.company.get() || {};\r\n config = this.state.config;\r\n }\r\n const expiryDays = [{\r\n value: 30,\r\n label: \"30 Days\"\r\n },{\r\n value: 60,\r\n label: \"60 Days\"\r\n },{\r\n value: 90,\r\n label: \"90 Days\"\r\n },{\r\n value: 120,\r\n label: \"120 Days\"\r\n },{\r\n value: 150,\r\n label: \"150 Days\"\r\n },{\r\n value: 180,\r\n label: \"180 Days\"\r\n }\r\n ]\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
{ this.onCheckChanged(event, \"stripe\"); }} checked={config.stripe} />\r\n
\r\n
Stripe integration
\r\n\r\n
\r\n \r\n \r\n \r\n {this.state.isSuperAdmin===true && \r\n \r\n { this.onTextChanged(event, \"unitPrice\"); }} value={config.unitPrice ? config.unitPrice : ''} />\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n { this.onCheckChanged(event, \"sessionEnhance\"); }} checked={config.sessionEnhance} />\r\n
\r\n
\r\n Enables Flashop Studio to digitally enhance your uploaded images saving you time. Allows you to focus on the business while delivering beautiful images!\r\n
\r\n
\r\n {/* \r\n
\r\n { this.onCheckChanged(event, \"digitalCopyPromo\"); }} checked={config.digitalCopyPromo} />\r\n \r\n
\r\n
\r\n Enables your users to select one image as a digital promo. This is a proven way to sell as the loss leaders.\r\n
\r\n
*/}\r\n \r\n
\r\n { this.onCheckChanged(event, \"mazibook\"); }} checked={config.mazibook} />\r\n \r\n
\r\n
\r\n Enables MaziBook integration.\r\n
\r\n
\r\n {/* \r\n
\r\n { this.onCheckChanged(event, \"enableInAppPurchases\"); }} checked={config.enableInAppPurchases} />\r\n \r\n
\r\n
\r\n Enables In-App purchasing.\r\n
\r\n
*/}\r\n {/* \r\n
\r\n { this.onCheckChanged(event, \"schoolDays\"); }} checked={config.schoolDays} />\r\n \r\n
\r\n
\r\n Enables School Days Pricing.\r\n
\r\n
*/}\r\n \r\n
\r\n { this.onCheckChanged(event, \"printing\"); }} checked={config.printing} />\r\n \r\n
\r\n
\r\n Enables you to own the printing.\r\n
\r\n
\r\n \r\n \r\n \r\n
{ this.onCheckChanged(event, \"sendGrid\"); }} checked={config.sendGrid} />\r\n
\r\n
SendGrid Twilio integration
\r\n
\r\n \r\n \r\n \r\n {/* twillio */}\r\n \r\n
{ this.onCheckChanged(event, \"twilio\"); }} checked={config.twilio} />\r\n
\r\n
Twilio SMS integration
\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\nexport default CompanyConfig;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport Routes from '../../app/Routes';\r\nimport Dates from '../../util/Dates';\r\nimport Spinner from '../Spinner';\r\n\r\nexport default class SmartImage extends Component{\r\n constructor(props){\r\n super(props); \r\n \r\n \r\n this.state = {\r\n loading: true,\r\n src:\"\"\r\n }; \r\n this.imageLoaded = this.imageLoaded.bind(this);\r\n }\r\n \r\n \r\n\r\n imageLoaded(){\r\n this.setState({loading:false})\r\n }\r\n\r\n render(){\r\n return (\r\n <>\r\n {(this.state.loading) && }\r\n \r\n \r\n );\r\n }\r\n};","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates';\r\nimport _ from \"underscore\";\r\nimport Routes from \"../app/Routes\";\r\nimport PageTitle from '../components/PageTitle';\r\nimport PanelModal from '../components/PanelModal';\r\nimport SmartImage from '../components/Widgets/SmartImage'\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nclass OrderFullfillment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootContainer = 'https://flashopstorage.blob.core.windows.net/images/';\r\n this.entity = EM.orderFulfillment;\r\n this.state = {\r\n showImages:false,\r\n userImages:\"\",\r\n imageName:\"\",\r\n parentRecordDetail: { userId: this.props.match.params.userId, companyId: this.props.match.params.companyId },\r\n orders: [],\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n }\r\n this.handleRequeue = this.handleRequeue.bind(this);\r\n }\r\n handleRequeue(printOrderId){ \r\n var request = {\r\n orderId:printOrderId \r\n }\r\n EM.printOrders.executePost(request,null,EM.printOrders.entityTypeDef.requeueUrl, {},false);\r\n }\r\n componentDidMount() {\r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n let self = this;\r\n \r\n let company = EM.getDefaultCompany();\r\n \r\n var params ={companyId :company ?company.companyId:0 };\r\n self.entity.executeGet(null, null, Routes.clientApi.openOrders, params,true).then((res) => {\r\n this.setState({ orders: self.entity.get() });\r\n });\r\n }\r\n renderAddress(shippingAddress) {\r\n \r\n if(shippingAddress ===null) return \"\";\r\n let address = \"\";\r\n if (!_.isNull(shippingAddress.address1)) {\r\n address = shippingAddress.address1;\r\n }\r\n if (!_.isNull(shippingAddress.address2)) {\r\n address += ` ${shippingAddress.address2}`;\r\n }\r\n if (!_.isNull(shippingAddress.city)) {\r\n address += ` ${shippingAddress.city}`;\r\n }\r\n if (!_.isNull(shippingAddress.state)) {\r\n address += ` ${shippingAddress.state}`;\r\n }\r\n if (!_.isNull(shippingAddress.zip)) {\r\n address += ` ${shippingAddress.zip}`;\r\n }\r\n return address;\r\n }\r\n renderImage(userSessionImage,imageName) {\r\n if(userSessionImage)\r\n return this.openImage(userSessionImage.editImageUrl,imageName)}>Image;\r\n return \"\";\r\n }\r\n fulfilled(order) {\r\n var self = this;\r\n const updatedOrder = JSON.parse(JSON.stringify(order));\r\n updatedOrder.fullfilled = true;\r\n self.entity.update(order, updatedOrder).then((res) => {\r\n let data = self.entity.get();\r\n let printOrders = _.filter([...data], (order) => {\r\n return order.fullfilled === false;\r\n });\r\n self.setState({ orders: printOrders });\r\n });\r\n }\r\n renderOrderLineItems(orderLineItem,index) {\r\n return (\r\n
\r\n
{orderLineItem.product.name}
\r\n
{orderLineItem.quantity}
\r\n
{this.renderImage(orderLineItem.userSessionImage,orderLineItem.product.name)}
\r\n
\r\n )\r\n }\r\n handleViewImage() {\r\n this.setState({ showImages: !this.state.showImages });\r\n }\r\n openImage(img,imageName) {\r\n \r\n this.setState({ userImages: img,imageName, showImages: !this.state.showImages });\r\n \r\n }\r\n formateDate(date) {\r\n if(date) {\r\n return Dates.fromISO(date, \"utc\").toFormat(\"MM/dd/yyyy\")\r\n }\r\n return null\r\n // return Dates.isoToDateTime(date, \"YYYY-MM-DD hh:mm A\");\r\n }\r\n render() {\r\n let self = this;\r\n let data = [];\r\n if (EM.allLoaded(self.entity)) {\r\n data = self.state.orders;\r\n }\r\n return (\r\n
\r\n \r\n {data.map((o,i) => {\r\n return (\r\n
\r\n
\r\n
{self.formateDate(o.createdDate)}
\r\n
{o.printOrderId}
\r\n
$ {o.total.toFixed(2)}
\r\n
{o.shipped?\"Shipped\":''}
\r\n
{self.formateDate(o.shippedDateTime)}
\r\n {\r\n \r\n (o.printQueueStatusId === 4)?\r\n (
):\r\n (o.printQueueStatusId === 1)?
\r\n
Queued
:\r\n (o.printQueueStatusId === 2)?
\r\n
Processing
\r\n
:\r\n (
)\r\n }\r\n
\r\n
\r\n
\r\n
\r\n Name:\r\n
\r\n
\r\n {\r\n !o.user.firstName ? `${o.shippingAddress.shipToFirstName} ${o.shippingAddress.shipToLastName}`:`${o.user.firstName} ${o.user.lastName}`\r\n }\r\n
\r\n
\r\n
\r\n
\r\n Address:\r\n
\r\n
\r\n {self.renderAddress(o.shippingAddress)}\r\n
\r\n
\r\n
\r\n
\r\n Email:\r\n
\r\n
\r\n {o.user.emailAddress}\r\n
\r\n
\r\n Phone:\r\n
\r\n
\r\n {o.user.phoneNumber}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Name
\r\n
Quantity
\r\n
\r\n
\r\n {o.printOrderLineItems.map((oli,index) => { return self.renderOrderLineItems(oli,index) })}\r\n
\r\n
\r\n )\r\n })}\r\n \r\n \r\n {this.state.imageName}\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\nexport default OrderFullfillment;","import React, { Component } from \"react\";\r\nimport Modal from 'react-modal';\r\n\r\nconst wide = { width: '100%' }\r\nconst customStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)'\r\n }\r\n};\r\nclass MessageBox extends Component{\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Confirm

\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.m_strMessage}

\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\nexport default MessageBox;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { FaFileDownload, FaTrashAlt, FaUpload, FaDownload } from \"react-icons/fa\";\r\nimport _ from \"underscore\";\r\nimport MessageBox from '../components/MessageBox';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nimport PanelModal from '../components/PanelModal';\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport FetchIndicator from \"../components/FetchIndicator\";\r\n\r\nclass Presets extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.entity = EM.presets;\r\n this.state = {\r\n presets: [],\r\n showDeleteBox: false,\r\n deleteMessage: \"\",\r\n selectedPreset: {},\r\n showUploadPreset: false,\r\n presetName: \"\",\r\n showUploadImage: false,\r\n file: null,\r\n isLoading:false\r\n };\r\n this.entity.load();\r\n this.handleUploadPreset = this.handleUploadPreset.bind(this);\r\n this.handleUploadImage = this.handleUploadImage.bind(this);\r\n this.handleFileChange = this.handleFileChange.bind(this);\r\n this.uploadFile = this.uploadFile.bind(this);\r\n this.delete = this.delete.bind(this);\r\n this.cancel = this.cancel.bind(this); \r\n }\r\n\r\n componentDidMount() {\r\n let self = this;\r\n self.entity.load().then(() => {\r\n self.setState({ presets: self.entity.get() });\r\n });\r\n }\r\n\r\n rowStyleFormat(rowIdx) {\r\n return { backgroundColor: rowIdx % 2 === 0 ? '#ecf0f1' : '#dcdde1' };\r\n }\r\n\r\n populatePresets(preset, index) {\r\n const file = preset.name.split(\".\")\r\n const fileExtension = file[file.length - 1].toLowerCase();\r\n return (\r\n
\r\n
{preset.name}
\r\n
\r\n {/* {fileExtension!==\"jpeg\" && fileExtension!==\"jpg\" ? ( */}\r\n {fileExtension==\"preset\" ? (\r\n { this.handleUploadImage(preset.name, \"Sample\") }}\r\n title=\"Upload New Sample Image\"\r\n className=\"btn btn-primary buttonWidth100\">\r\n \r\n \r\n ):null}\r\n {preset.name ==\"SampleHSSeniors.jpg\" || preset.name==\"SampleDefault.jpg\"?(\r\n {preset.name}\r\n ):null}\r\n
\r\n
\r\n {fileExtension==\"preset\" ? (\r\n { this.handleUploadImage(preset.name, \"Original\") }}\r\n title=\"Upload New Original Image\"\r\n className=\"btn btn-primary buttonWidth100\">\r\n \r\n \r\n ) : null}\r\n {preset.name ===\"OriginalHSSeniors.jpg\" || preset.name===\"OriginalDefault.jpg\"?\r\n {preset.name}\r\n :null}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n showDeleteEvent(preset) {\r\n let confirmMessage = \"Are you sure you want to delete: \" + preset.name + \"?\";\r\n this.setState({ deleteMessage: confirmMessage, selectedPreset: preset, showDeleteBox: true });\r\n }\r\n handleUploadPreset() {\r\n this.setState({ showUploadPreset: !this.state.showUploadPreset });\r\n }\r\n handleUploadImage(presetName, imgType) {\r\n const imgName = presetName.split(\".\")\r\n const newImgName = `${imgType}${imgName[0]}.jpg`\r\n this.setState({ showUploadImage: !this.state.showUploadImage, presetName:newImgName });\r\n }\r\n delete() {\r\n let self = this;\r\n this.entity.delete(this.state.selectedPreset.name)\r\n .then(() => {\r\n let presets = _.filter([...this.state.presets], (pr) => {\r\n return pr.name !== self.state.selectedPreset.name;\r\n });\r\n this.setState({ presets: presets, showDeleteBox: false });\r\n });\r\n }\r\n cancel() {\r\n this.setState({ showDeleteBox: false });\r\n }\r\n handleFileChange(event) {\r\n this.setState({ file: event.target.files[0] });\r\n }\r\n containsSpecialChars(str) {\r\n const specialChars = /[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n return specialChars.test(str.replace(\".preset\", \"\"));\r\n }\r\n uploadFile() {\r\n let self = this;\r\n if (self.state.file.size > 0) {\r\n var data = new FormData();\r\n const isImage = self.state.file.type === \"image/jpeg\" || self.state.file.type === \"image/jpg\"\r\n if(!isImage) {\r\n if (self.containsSpecialChars(self.state.file.name)) {\r\n alert(\"File has special char in the name\");\r\n return;\r\n }\r\n let preset_exist = _.filter([...self.state.presets], (preset) => {\r\n return preset.name === self.state.file.name;\r\n });\r\n if (preset_exist.length > 0) {\r\n alert(\"File Already exist\");\r\n return;\r\n }\r\n data.append(\"file\", self.state.file);\r\n } else {\r\n // const imageName = self.state.presetName===\"Default.preset\"?\"SampleDefault.jpg\":\"SampleHSSeniors.jpg\"\r\n data.append(\"file\", self.state.file, self.state.presetName);\r\n }\r\n this.setState({isLoading:true})\r\n self.entity.upload(data)\r\n .then((res) => {\r\n if (res.data.status == 200) {\r\n let updatedPresets = [...self.state.presets]\r\n if(isImage) {\r\n const isImgExist = self.state.presets.find(img => img.name === res.data.data.name)\r\n const existingOne = self.state.presets.filter(img => img.name !== res.data.data.name)\r\n if(isImgExist) {\r\n updatedPresets = [...existingOne, isImgExist];\r\n } else {\r\n updatedPresets = [...updatedPresets, res.data.data];\r\n }\r\n } else {\r\n updatedPresets = [...updatedPresets, res.data.data];\r\n }\r\n this.setState({\r\n presets: updatedPresets,\r\n showUploadPreset: false,\r\n showUploadImage:false,\r\n file: null,\r\n isLoading:false\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n self.setState({\r\n presets: this.state.presets,\r\n showUploadPreset: true, file: null,\r\n showUploadImage: true,\r\n isLoading:false\r\n });\r\n }\r\n\r\n }\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n {this.state.isLoading?:null}\r\n
\r\n
\r\n

Presets

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Name
\r\n
Sample Image
\r\n
Original Image
\r\n
\r\n {_.map(self.state.presets, (preset, index) => {\r\n return self.populatePresets(preset, index);\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 Upload\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 Upload\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 Upload\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\nexport default Presets; ","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button, FormGroup, Label } from \"reactstrap\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport addDays from 'date-fns/addDays'\r\nimport Routes from '../app/Routes';\r\nimport _ from 'underscore';\r\nconst ExcelJS = require(\"exceljs\");\r\n\r\nclass LabBilling extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n parentRecordDetail: { companyId: this.props.company.companyId },\r\n endDate: new Date(),\r\n startDate: new Date(),\r\n company: this.props.companys,\r\n orders: [],\r\n products: [],\r\n companyConfig: null,\r\n recordsNotFound: '',\r\n singleUnitProduct: null,\r\n singleUnitSessionProduct: null,\r\n locationId: 0\r\n };\r\n this.startDateChange = this.startDateChange.bind(this);\r\n this.endDateChange = this.endDateChange.bind(this);\r\n this.loadData = this.loadData.bind(this);\r\n this.createHeaderCell = this.createHeaderCell.bind(this);\r\n this.createHeaderRow = this.createHeaderRow.bind(this);\r\n this.initSummaryData();\r\n }\r\n\r\n componentDidMount() {\r\n this.getProducts();\r\n this.getCompanyConfig();\r\n }\r\n\r\n initSummaryData(){\r\n this.summary = {\r\n totalOrders: this.state.orders ? this.state.orders.length :0,\r\n totalSales: 0,\r\n totalLabCost: 0,\r\n startDate: this.state.startDate ? this.state.startDate.toLocaleDateString() : '',\r\n endDate: this.state.endDate ? this.state.endDate.toLocaleDateString() : ''\r\n };\r\n }\r\n\r\n excelCellStyle(){\r\n return {\r\n font: { name: 'Arial', size: 10 },\r\n alignment: { vertical: 'middle', horizontal: 'left' },\r\n border: {\r\n top: { style: 'thin' },\r\n left: { style: 'thin' },\r\n bottom: { style: 'thin' },\r\n right: { style: 'thin' }\r\n }\r\n }\r\n }\r\n\r\n excelHeaderStyle(){\r\n return {\r\n font: { bold: true, color: { argb: 'FFFFFFFF' } },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb: 'FF000000' },\r\n bgColor: { argb: 'FFFFFFFF' }\r\n },\r\n alignment: { vertical: 'middle', horizontal: 'center' },\r\n border: {\r\n top: { style: 'thin' },\r\n left: { style: 'thin' },\r\n bottom: { style: 'thin' },\r\n right: { style: 'thin' }\r\n }\r\n };\r\n }\r\n\r\n getCompanyConfig() {\r\n let self = this;\r\n EM.companyConfig.loadSingleEntity({ id: this.props.company.companyId }).then(() => {\r\n self.setState({ companyConfig: EM.companyConfig.get() || {} });\r\n });\r\n }\r\n\r\n getProducts() {\r\n let self = this;\r\n EM.products.executeGet(null, null, Routes.clientApi.products, { companyId: this.props.company.companyId }, true).then(() => {\r\n let products = EM.products.get();\r\n let singleUnitProduct = products.find((p) => p.productId === 2);\r\n let singleUnitSessionProduct = products.find((p) => p.productId === 1);\r\n self.setState({ products, singleUnitProduct, singleUnitSessionProduct });\r\n });\r\n }\r\n\r\n endDateChange(date) {\r\n var self = this;\r\n self.setState({ endDate: date, maxDate: date });\r\n }\r\n startDateChange(date) {\r\n var self = this;\r\n self.setState({ startDate: date, minDate: date });\r\n }\r\n\r\n loadData() {\r\n var self = this;\r\n var request = {\r\n startDate: self.state.startDate.toISOString().split('T')[0],\r\n endDate: self.state.endDate.toISOString().split('T')[0],\r\n locationId: self.state.locationId\r\n }\r\n EM.completedOrders.executeGet(null, request, Routes.clientApi.completedOrders, { companyId: this.props.company.companyId }, false).then((res) => {\r\n self.summary = Object.assign({}, self.summary, { totalOrders: res.length, startDate: request.startDate, endDate: request.endDate, totalLabCost: 0, totalSales: 0 });\r\n self.setState({ orders: res, recordsNotFound: res && res.length > 0 ? '' : 'No records found.' })\r\n });\r\n }\r\n\r\n export() {\r\n let self = this;\r\n const workbook = new ExcelJS.Workbook();\r\n const sheet = workbook.addWorksheet(\"Sheet 1\");\r\n let rowNumber = 2;\r\n self.state.orders.map((order, index) => {\r\n self.addOrderNumberHeading(sheet, order);\r\n let rows = [];\r\n let totalUnits = 0;\r\n let imageCount = 0;\r\n let imageUnit = 0;\r\n let singleImageProducts = [...order.printOrderLineItems].filter((p) => p.product.productId === 2);\r\n let singleSessionProduct = [...order.printOrderLineItems].filter((p) => p.product.productId === 1);\r\n let hasSheet = _.find(order.printOrderLineItems,(lineItems)=>{\r\n return lineItems.product.unit === 1;\r\n });\r\n\r\n order.printOrderLineItems.map((lineItem) => {\r\n let product = lineItem.product;\r\n if (product && product.productId !== 1 && product.productId !== 2) {\r\n let unit = (product.unit ? product.unit : 0) * lineItem.quantity;\r\n totalUnits += unit; \r\n rows.push([\r\n product.name,\r\n lineItem.quantity,\r\n unit\r\n ]);\r\n }\r\n });\r\n\r\n singleImageProducts.map((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n let unit = product.unit ? product.unit : 0;\r\n if (index+1 > 1 && index+1 <= 20) unit = 0.18;\r\n if (index+1 > 20) unit = 0.04;\r\n\r\n totalUnits += unit;\r\n imageUnit += unit;\r\n imageCount += lineItem.quantity; \r\n }\r\n });\r\n\r\n singleSessionProduct.map((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n for (let i = 0; i < product.userSessionImageCount; i++) {\r\n let unit = (self.state.singleUnitProduct.unit ? self.state.singleUnitProduct.unit : 0);\r\n if (i+1 > 1 && i+1 <= 20) unit = 0.18;\r\n if (i+1 > 20) unit = 0.04;\r\n\r\n totalUnits += unit;\r\n imageUnit += unit;\r\n }\r\n imageCount += product.userSessionImageCount;\r\n }\r\n });\r\n\r\n rows.push([\"Images\", imageCount, imageUnit.toFixed(2)]);\r\n\r\n if(hasSheet)\r\n {\r\n rows.push([\"First Sheet Processing\", \"\", 1]);\r\n totalUnits += 1;\r\n }\r\n \r\n rows.push([\"Total Units\", \"Total Sales\", \"Total lab Cost\"]);\r\n rows.push([`${totalUnits.toFixed(2)}`, `$${order.gross.toFixed(2)}`, `$${(totalUnits * (self.state.companyConfig.unitPrice ? self.state.companyConfig.unitPrice : 2)).toFixed(2)}`]);\r\n // headers\r\n self.createHeaderRow(sheet, rowNumber);\r\n\r\n rows.forEach((row, index) => {\r\n self.createContentRow(sheet, rowNumber + index + 1, row);\r\n });\r\n\r\n rowNumber += rows.length + 3;\r\n sheet.addRow(['', '', '']);\r\n });\r\n\r\n let summary = sheet.addRow(['Summary']); \r\n let summaryHeader = sheet.addRow(['Total Orders', 'Total Sales', 'Total Lab Cost','Start Date','End Date'],self.excelHeaderStyle()); \r\n let summaryContent = sheet.addRow([`${self.summary.totalOrders}`, `$${self.summary.totalSales.toFixed(2)}`,`$${self.summary.totalLabCost.toFixed(2)}`,`${self.summary.startDate}`,`${self.summary.endDate}`]); \r\n \r\n \r\n self.initSummaryStyles(summaryHeader,summaryContent,self);\r\n summary.getCell(1).style = { font: { bold: true } };\r\n sheet.getColumn(1).width = 50;\r\n sheet.getColumn(2).width = 50;\r\n sheet.getColumn(3).width = 50;\r\n\r\n workbook.xlsx.writeBuffer().then(function (data) {\r\n self.triggerDownload(data);\r\n });\r\n }\r\n\r\n initSummaryStyles(header,content,self){\r\n header.getCell(1).style = self.excelHeaderStyle();\r\n header.getCell(2).style = self.excelHeaderStyle();\r\n header.getCell(3).style = self.excelHeaderStyle();\r\n header.getCell(4).style = self.excelHeaderStyle();\r\n header.getCell(5).style = self.excelHeaderStyle();\r\n\r\n content.getCell(1).style = self.excelCellStyle();\r\n content.getCell(2).style = self.excelCellStyle();\r\n content.getCell(3).style = self.excelCellStyle();\r\n content.getCell(4).style = self.excelCellStyle();\r\n content.getCell(5).style = self.excelCellStyle();\r\n }\r\n\r\n triggerDownload(data) {\r\n const arrayBuffer = new Uint8Array(data);\r\n const blob = new Blob([arrayBuffer], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const anchor = document.createElement(\"a\");\r\n anchor.href = url;\r\n anchor.download = \"Report.xlsx\";\r\n anchor.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n addOrderNumberHeading(sheet, order,text) {\r\n var row = sheet.addRow(text ? text:[\"Order \" + order.printOrderId]);\r\n var headCell = row.getCell(1);\r\n headCell.style = { font: { bold: true } };\r\n }\r\n\r\n createHeaderCell(sheet, cellAddress, value) {\r\n var cell = sheet.getCell(cellAddress);\r\n cell.value = value;\r\n cell.style = this.excelHeaderStyle();\r\n }\r\n\r\n createHeaderRow(sheet, rowNumber) {\r\n this.createHeaderCell(sheet, `A${rowNumber}`, 'Products');\r\n this.createHeaderCell(sheet, `B${rowNumber}`, 'Quantity');\r\n this.createHeaderCell(sheet, `C${rowNumber}`, 'Units');\r\n }\r\n\r\n createContentCell(sheet, cellAddress, value, bold) {\r\n var cell = sheet.getCell(cellAddress);\r\n cell.value = value;\r\n cell.style = this.excelCellStyle();\r\n if (bold === true)\r\n cell.style.font.bold = true;\r\n }\r\n\r\n createContentRow(sheet, rowNumber, row) {\r\n let bold = (row[0] === \"Total Units\" || row[0] === \"Total Sales\" || row[0] === \"Total lab Cost\");\r\n this.createContentCell(sheet, `A${rowNumber}`, row[0], bold);\r\n this.createContentCell(sheet, `B${rowNumber}`, row[1], bold);\r\n this.createContentCell(sheet, `C${rowNumber}`, row[2], bold);\r\n }\r\n\r\n locationChange = (event) => {\r\n var self = this;\r\n self.setState({ locationId: event.target.value });\r\n }\r\n\r\n render() {\r\n let self = this;\r\n if (EM.allLoaded(EM.products, EM.companyConfig)) {\r\n this.initSummaryData();\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n (self.state.orders.length === 0) ? (
{this.state.recordsNotFound}
) :\r\n self.state.orders.map((order) => {\r\n let totalUnits = 0;\r\n let imageCount = 0;\r\n let imageUnit = 0;\r\n let singleImageProducts = [...order.printOrderLineItems].filter((p) => p.product.productId === 2);\r\n let singleSessionProduct = [...order.printOrderLineItems].filter((p) => p.product.productId === 1);\r\n let hasSheet = _.find(order.printOrderLineItems,(lineItems)=>{\r\n return lineItems.product.unit === 1;\r\n });\r\n return (\r\n
\r\n
\r\n
Order {order.printOrderId}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n order.printOrderLineItems.map((lineItem) => {\r\n let product = lineItem.product;\r\n if (product && product.productId !== 1 && product.productId !== 2) {\r\n let unit = (product.unit ? product.unit : 0) * lineItem.quantity;\r\n totalUnits += unit; \r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n })\r\n }\r\n \r\n {\r\n singleImageProducts.map((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n let unit = product.unit ? product.unit : 0;\r\n if (index+1 > 1 && index+1 <= 20) unit = 0.18;\r\n if (index+1 > 20) unit = 0.04; \r\n totalUnits += unit;\r\n imageUnit += unit;\r\n imageCount += lineItem.quantity; \r\n }\r\n })\r\n }\r\n {\r\n singleSessionProduct.map((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n for (let i = 0; i < product.userSessionImageCount; i++) {\r\n let unit = (self.state.singleUnitProduct.unit ? self.state.singleUnitProduct.unit : 0);\r\n if (i+1 > 1 && i+1 <= 20) unit = 0.18;\r\n if (i+1 > 20) unit = 0.04;\r\n\r\n totalUnits += unit;\r\n imageUnit += unit;\r\n }\r\n imageCount += product.userSessionImageCount;\r\n }\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n (hasSheet?\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 \r\n \r\n \r\n \r\n \r\n
ProductsQuantityUnits
{product.name}{lineItem.quantity}{unit}
Image{imageCount}{imageUnit.toFixed(2)}
First Sheet Processing1
Total UnitsTotal SalesTotal lab Cost
{(totalUnits + (hasSheet ? 1 : 0)).toFixed(2)}${order.gross.toFixed(2)}\r\n ${((totalUnits+ (hasSheet ? 1 : 0)) * (self.state.companyConfig.unitPrice ? self.state.companyConfig.unitPrice : 1)).toFixed(2)}\r\n \r\n
\r\n
\r\n
)\r\n })\r\n }\r\n {\r\n (self.state.orders.length === 0) ? (
):\r\n (
\r\n
\r\n
Summary
\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
Total OrdersTotal SalesTotal Lab CostStart DateEnd Date
{this.summary.totalOrders}${this.summary.totalSales.toFixed(2)}${this.summary.totalLabCost.toFixed(2)}{this.summary.startDate}{this.summary.endDate}
\r\n
\r\n
)\r\n }\r\n
\r\n )\r\n }\r\n return (
Loading...
);\r\n }\r\n}\r\nexport default LabBilling;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport addDays from 'date-fns/addDays'\r\nimport Routes from '../app/Routes';\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport CSV from '../util/CSV';\r\nimport PageTitle from '../components/PageTitle';\r\nimport { Button, FormGroup, Label } from \"reactstrap\";\r\nimport {Tabs, Tab} from 'react-bootstrap';\r\nimport LabBilling from '../components/LabBilling';\r\nimport Select from 'react-select';\r\n\r\nclass Export extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.export;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n\r\n this.state = {\r\n parentRecordDetail: { companyId: company.companyId },\r\n company:company,\r\n aptEndDate: '',\r\n aptStartDate: '',\r\n endDate: new Date(),\r\n startDate: new Date(),\r\n locations: [],\r\n maxDate: new Date(),\r\n minDate: addDays(new Date(), -10000),\r\n locationIds:[],\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n tabKey:'appointmentsExport'\r\n }\r\n this.startDateChange = this.startDateChange.bind(this);\r\n this.endDateChange = this.endDateChange.bind(this);\r\n this.export = this.export.bind(this);\r\n this.locationChange = this.locationChange.bind(this);\r\n }\r\n componentDidMount() {\r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n var self = this;\r\n EM.locations.loadEntityByParent(this.state.parentRecordDetail).then(() => {\r\n self.setState({ locations: EM.locations.get() });\r\n });\r\n }\r\n formattedDateLong(date) {\r\n let strReturn = ('0' + (date.getMonth() + 1)).slice(-2) + '/' + ('0' + date.getDate()).slice(-2) + '/' + date.getFullYear();\r\n return strReturn;\r\n }\r\n endDateChange(date) {\r\n var self = this;\r\n self.setState({ endDate: date, maxDate: date });\r\n }\r\n startDateChange(date) {\r\n var self = this;\r\n self.setState({ startDate: date, minDate: date });\r\n }\r\n // locationChange = (event) => { \r\n // var self = this;\r\n // self.setState({locationId:event.target.value}); \r\n // }\r\n\r\n export(){\r\n var self = this;\r\n var request = {\r\n locationIds: self.state.locationIds,\r\n startDate: self.state.startDate.toISOString().split('T')[0],\r\n endDate: self.state.endDate.toISOString().split('T')[0]\r\n }\r\n EM.export.executePost(request, null, Routes.clientApi.exportwithEventsList, {}, true).then((res) => {\r\n // this.setState({locationIds:[]})\r\n CSV.save('exportData', CSV.fromString(res));\r\n });\r\n }\r\n\r\n handleSelect = (tabKey) => {\r\n this.setState({ tabKey });\r\n }\r\n\r\n locationChange(values){\r\n let items = values ? values.map(item => { return item.value }) : [];\r\n this.setState({locationIds:items})\r\n }\r\n\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.tabKey === \"appointmentsExport\" && \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 {this.state.tabKey === \"salesLabCostExport\" &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\nexport default Export;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from 'react-select';\r\nimport Routes from '../app/Routes';\r\nimport PageTitle from '../components/PageTitle';\r\nimport CalendarView from '../components/CalendarView';\r\nimport CalendarDayDetails from '../components/CalendarDayDetails';\r\nimport Dates from '../util/Dates';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.locations;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n this.state = {\r\n loading:false,\r\n parentRecordDetail: { companyId: company.companyId },\r\n company : company,\r\n locationOptions:[],\r\n data:[],\r\n locationId:null,\r\n showCalendar:false,\r\n showDetails:false,\r\n dayDetails:null,\r\n selectedDate:null,\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n this.locationChange = this.locationChange.bind(this);\r\n this.onCalendarChange = this.onCalendarChange.bind(this);\r\n this.onDayClick = this.onDayClick.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n this.setState({companyName:EM.getDefaultCompany().companyName})\r\n EM.locations.loadEntityByParent(this.state.parentRecordDetail, true).then(()=>{\r\n this.setState({locationOptions:EM.locations.asOptionList(null, true)});\r\n });\r\n\r\n }\r\n\r\n toIntervals(locationId) {\r\n this.props.history.push(Routes.compose(Routes.client.intervals, { locationId }));\r\n }\r\n\r\n locationChange(locationId,date){\r\n let self =this;\r\n if(locationId && locationId>0)\r\n EM.calendar.executeGet(null,{locationId:locationId,date:(date ? date : new Date()).toISOString()},Routes.clientApi.calendar, {})\r\n .then((result)=>{\r\n self.setState({data:result, locationId,showCalendar:true,showDetails:false});\r\n });\r\n }\r\n\r\n onCalendarChange(date){\r\n if(date) this.locationChange(this.state.locationId,date);\r\n }\r\n\r\n async onDayClick(date){ \r\n if(date)\r\n {\r\n let self =this;\r\n if(self.state.locationId && self.state.locationId>0)\r\n {\r\n this.setState({loading:true})\r\n await EM.calendar.executeGet(null,{locationId:self.state.locationId,date:(date ? Dates.toDateTime(Dates.fromDate(date)) : new Date().toISOString())},Routes.clientApi.calendarday, {})\r\n .then((result)=>{ \r\n self.setState({dayDetails:result,showCalendar:false,showDetails:true,selectedDate:date});\r\n \r\n });\r\n this.setState({loading:false})\r\n }\r\n \r\n }\r\n else\r\n this.setState({showCalendar:false,showDetails:true});\r\n }\r\n\r\n\r\n render() {\r\n let self = this;\r\n if (EM.allLoaded(EM.locations)) {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n { \r\n self.locationChange(selection.value);\r\n }}\r\n />\r\n \r\n {\r\n self.state.showCalendar ? {self.onDayClick(date);}} onCalendarChange={(date)=>{self.onCalendarChange(date)}} data={this.state.data}> : ''\r\n }\r\n {\r\n self.state.showDetails ? {self.locationChange(self.state.locationId)}} onDayClick={(date)=>{self.onDayClick(date);}} data={this.state.dayDetails} locationId={this.state.locationId} date={this.state.selectedDate} > :''\r\n }\r\n \r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n )\r\n \r\n }\r\n}\r\n\r\nexport default Calendar;\r\n","import React, { Component } from 'react';\r\n\r\nexport default class CalendarDay extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n slots: []\r\n };\r\n }\r\n\r\n BuildComponent(slot)\r\n {\r\n return ({slot.slot} ({slot.firstName} {slot.lastName}));\r\n }\r\n\r\n static getDerivedStateFromProps(props, current_state) {\r\n if (current_state.slots !== props.slots) {\r\n\r\n return {\r\n slots: props.slots\r\n }\r\n }\r\n return null\r\n }\r\n\r\n render() { \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {this.state.slots.map(loc => this.BuildComponent(loc))}\r\n
\r\n Date\r\n
\r\n
\r\n ); \r\n }\r\n}","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates'\r\nimport Routes from \"../app/Routes\";\r\nimport CalDay from \"../components/CalendarDay\";\r\n\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedDate: Dates.now(), //m_strSelectedDate\r\n lastSelectDay: 0,\r\n lastSelectWeek: 0,\r\n aptDays: [],\r\n selectedDateView: new Date(),\r\n months: this.getMonths(),\r\n locationId: this.props.aptCalender.locationId,\r\n };\r\n }\r\n getMonths() {\r\n var month = new Array();\r\n month[0] = \"January\";\r\n month[1] = \"February\";\r\n month[2] = \"March\";\r\n month[3] = \"April\";\r\n month[4] = \"May\";\r\n month[5] = \"June\";\r\n month[6] = \"July\";\r\n month[7] = \"August\";\r\n month[8] = \"September\";\r\n month[9] = \"October\";\r\n month[10] = \"November\";\r\n month[11] = \"December\";\r\n return month;\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.state.locationId != this.props.aptCalender.locationId) {\r\n this.updateCalendar();\r\n this.setState({ locationId: this.props.aptCalender.locationId });\r\n }\r\n }\r\n componentDidMount() {\r\n var self = this;\r\n self.updateCalendar();\r\n }\r\n\r\n updateCalendar() {\r\n var self = this;\r\n EM.userScheduler.executeGet(null, { locationId: this.props.aptCalender.locationId, date: self.state.selectedDateView.toLocaleDateString() }, Routes.clientApi.calenderMonth, {}, true).then((res) => {\r\n this.setState({ aptDays: res });\r\n });\r\n }\r\n\r\n dayClick(enabled, strdate, day, week) {\r\n if (!enabled)\r\n alert(\"Not available\");\r\n else {\r\n this.setState({ selectedDate: strdate, lastSelectDay: day, lastSelectWeek: week });\r\n this.props.calendarChange(strdate);\r\n }\r\n }\r\n\r\n getWeek(week) {\r\n return \r\n this.dayClick(this.getDay(0, week).enabled, this.getDay(0, week).strdt, 0, week)} className={this.getDay(0, week).css}>{this.getDay(0, week).title}\r\n this.dayClick(this.getDay(1, week).enabled, this.getDay(1, week).strdt, 1, week)} className={this.getDay(1, week).css}>{this.getDay(1, week).title}\r\n this.dayClick(this.getDay(2, week).enabled, this.getDay(2, week).strdt, 2, week)} className={this.getDay(2, week).css}>{this.getDay(2, week).title}\r\n this.dayClick(this.getDay(3, week).enabled, this.getDay(3, week).strdt, 3, week)} className={this.getDay(3, week).css}>{this.getDay(3, week).title}\r\n this.dayClick(this.getDay(4, week).enabled, this.getDay(4, week).strdt, 4, week)} className={this.getDay(4, week).css}>{this.getDay(4, week).title}\r\n this.dayClick(this.getDay(5, week).enabled, this.getDay(5, week).strdt, 5, week)} className={this.getDay(5, week).css}>{this.getDay(5, week).title}\r\n this.dayClick(this.getDay(6, week).enabled, this.getDay(6, week).strdt, 6, week)} className={this.getDay(6, week).css}>{this.getDay(6, week).title}\r\n ;\r\n }\r\n getDay(day, week) {\r\n let rmvc = new CalDay();\r\n for (let mvd of this.state.aptDays) {\r\n if (mvd.x == day && mvd.y == week) {\r\n mvd.css = \"table-light sortable\";\r\n if (mvd.enabled) {\r\n mvd.css = \"table-success sortable\";\r\n if (day == this.state.lastSelectDay && week == this.state.lastSelectWeek) {\r\n mvd.css = \"table-primary sortable\";\r\n }\r\n }\r\n return mvd;\r\n }\r\n }\r\n return rmvc;\r\n }\r\n navigateCalendar(isForward) {\r\n var self = this;\r\n let date = self.state.selectedDateView;\r\n var newDate = new Date();\r\n if (isForward)\r\n newDate = new Date(date.setMonth(date.getMonth() + 1));\r\n else\r\n newDate = new Date(date.setMonth(date.getMonth() - 1));\r\n this.setState({ selectedDateView: newDate });\r\n self.updateCalendar();\r\n }\r\n render() {\r\n var self = this;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {self.getWeek(0)}\r\n {self.getWeek(1)}\r\n {self.getWeek(2)}\r\n {self.getWeek(3)}\r\n {self.getWeek(4)}\r\n {self.getWeek(5)}\r\n
{self.state.months[self.state.selectedDateView.getMonth()]}
SunMonTuesWedThuFriSat
\r\n
\r\n )\r\n }\r\n}\r\nexport default Calendar;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport Dates from '../util/Dates';\r\n\r\nclass TimeSlot extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n times: [],\r\n selectedTime: this.props.selectedTime,\r\n internalDate: \"\",\r\n appointmentsByDate: []\r\n };\r\n this.getAppointmentsCount = this.getAppointmentsCount.bind(this);\r\n }\r\n componentDidMount() {\r\n this.loadSlots();\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.state.internalDate != this.props.date) {\r\n this.loadSlots();\r\n let appointments = _.groupBy(this.props.appointments, (appointment) => {\r\n return `${appointment.displayDate}`;\r\n });\r\n this.setState({ internalDate: this.props.date, appointmentsByDate: appointments });\r\n }\r\n }\r\n\r\n loadSlots() {\r\n let self = this;\r\n let locationId = this.props.locationId;\r\n if (locationId > 0 && typeof this.props.date === 'string') {\r\n let params = { locationId: locationId, date: this.props.date };\r\n let qs = { date: this.props.date, bookByAdmin: true };\r\n EM.availableSlots.searchEntity(params, qs, true).then(() => {\r\n self.setState({ times: EM.availableSlots.get() });\r\n });\r\n }\r\n }\r\n convertDateString(dateString) {\r\n // Split the date string into its components\r\n let [datePart, timePart, am_pm] = dateString.split(' ');\r\n\r\n // Further split the date part into month, day, and year\r\n let [month, day, year] = datePart.split('/');\r\n\r\n // Remove leading zero from the month\r\n month = parseInt(month, 10).toString();\r\n\r\n // Reassemble the date string\r\n return `${month}/${day}/${year} ${timePart} ${am_pm}`;\r\n }\r\n getAppointmentsCount(slot) {\r\n /**following was old code and had format issue on day part***/ \r\n /**let appointments = this.state.appointmentsByDate[`${Dates.toDateShort(Dates.fromStr(this.props.date))} ${slot}`] || [];*/\r\n let dateToConvert = this.convertDateString(`${this.props.date} ${slot}`)\r\n let appointments = this.state.appointmentsByDate[dateToConvert] || [];\r\n return `(Appointments : ${appointments ? appointments.length : 0})`\r\n }\r\n\r\n render() {\r\n var self = this;\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\nexport default TimeSlot;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport AppointmentCalender from \"../components/Calendar\";\r\nimport TimeSlot from \"../components/TimeSlot\";\r\nimport Routes from '../app/Routes';\r\nimport InputMask from 'react-input-mask';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label, Row, Col } from 'reactstrap';\r\nimport PanelModal from '../components/PanelModal';\r\nimport Dates from '../util/Dates';\r\n\r\nclass UserScheduler extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.userScheduler;\r\n this.state = {\r\n parentRecordDetail: { companyId: this.props.match.params.companyId, userId: this.props.match.params.userId },\r\n showMyComponent: false,\r\n locations: [],\r\n selectedDate: new Date(),\r\n selectedTime: \"\",\r\n locationId: 0,\r\n appointments: [],\r\n showContactInfo: false,\r\n user: {},\r\n updatedUser: {},\r\n timeSlotHidden:true\r\n };\r\n this.locationChange = this.locationChange.bind(this);\r\n this.timeChange = this.timeChange.bind(this);\r\n this.updateUser = this.updateUser.bind(this);\r\n this.redirectToUserDetail = this.redirectToUserDetail.bind(this);\r\n }\r\n componentDidMount() {\r\n var self = this;\r\n EM.locations.loadEntityByParent(self.state.parentRecordDetail).then(() => {\r\n self.setState({ locations: EM.locations.get() });\r\n });\r\n EM.user.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.userId }, true).then((res) => {\r\n this.setState({ user: res });\r\n });\r\n\r\n }\r\n locationChange(event) {\r\n let locId = event.target.value;\r\n if (locId === 0) { this.setState({ showMyComponent: false, locationId: 0, appointments: null }); }\r\n else {\r\n this.setState({ showMyComponent: true, locationId: locId }, () => {\r\n EM.appointments.executeGet(null, { locationId: locId }, Routes.clientApi.appointmentsByLocation, {}, true).then((res) => {\r\n this.setState({ appointments: res, showContactInfo:false,timeSlotHidden:true});\r\n });\r\n });\r\n }\r\n }\r\n calendarChange = (strdt) => {\r\n this.setState({ selectedDate: strdt,timeSlotHidden:false });\r\n }\r\n timeChange(e) {\r\n if (e.target.value.toLowerCase() != \"please select\")\r\n this.setState({ showContactInfo: true, selectedTime: e.target.value });\r\n }\r\n updateUser(event, field) {\r\n let uUser = this.state.user;\r\n uUser[field] = event.target.value;\r\n this.setState({ user: uUser });\r\n }\r\n validate() {\r\n return this.state.selectedDate\r\n && this.state.selectedTime\r\n && this.state.locationId\r\n && this.state.user.firstName\r\n && this.state.user.lastName\r\n && this.state.user.phoneNumber;\r\n }\r\n redirectToUserDetail() {\r\n // this.setState({appointments : null});\r\n let url = Routes.compose(Routes.client.userDetails, { userId: this.state.parentRecordDetail.userId, companyId: this.state.parentRecordDetail.companyId });\r\n this.props.history.push(url);\r\n }\r\n schedule() {\r\n if (!this.validate()) {\r\n alert('Please fill in the required information.')\r\n return;\r\n }\r\n // var date = Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy t`);\r\n // if(!date) date = Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy HH:MM`);\r\n // console.log(Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy HH:MM`));\r\n\r\n let date = new Date(this.state.selectedDate + ' ' + this.state.selectedTime).toLocaleString();\r\n let request = {\r\n // slotDateTime: date.toISO().replace(':00.000Z',''),\r\n slotDateTime: date,\r\n locationId: this.state.locationId,\r\n paid: true,\r\n checkedIn: false,\r\n userId: this.state.parentRecordDetail.userId,\r\n companyId: this.state.parentRecordDetail.companyId,\r\n creationSourceId: 1\r\n };\r\n EM.appointments.executePost(request, null, Routes.clientApi.domainEntity, {}, false)\r\n .then(() => {\r\n this.redirectToUserDetail();\r\n });\r\n }\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 \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default UserScheduler;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport AppointmentCalender from \"../components/Calendar\";\r\nimport TimeSlot from \"../components/TimeSlot\";\r\nimport Routes from \"../app/Routes\";\r\nimport InputMask from 'react-input-mask';\r\nimport { Form, FormGroup, Input, Label, Row, Col } from 'reactstrap';\r\nimport Dates from \"../util/Dates\";\r\n\r\nclass RescheduleAppointment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.rescheduleAppointment;\r\n this.state = {\r\n parentRecordDetail: { companyId: this.props.match.params.companyId, userId: this.props.match.params.userId, appointmentId: this.props.match.params.appointmentId },\r\n selectedTime: \"\",\r\n selectedDate: new Date(),\r\n locationId: 0,\r\n user: {},\r\n showMyComponent: false,\r\n locations: [],\r\n appointments: [],\r\n showContactInfo: false,\r\n appointment: null,\r\n timeSlotHidden:true\r\n };\r\n this.locationChange = this.locationChange.bind(this);\r\n this.timeChange = this.timeChange.bind(this);\r\n this.updateUser = this.updateUser.bind(this);\r\n this.redirectToUserDetail =this.redirectToUserDetail.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n var self = this;\r\n EM.locations.loadEntityByParent(self.state.parentRecordDetail).then(() => {\r\n self.setState({ locations: EM.locations.get() });\r\n });\r\n EM.users.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.userId }, true).then((res) => {\r\n this.setState({ user: res });\r\n });\r\n EM.appointments.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.appointmentId }, true).then((res) => {\r\n this.setState({ appointment: res });\r\n });\r\n }\r\n\r\n locationChange(event) {\r\n let locId = event.target.value;\r\n if (locId == 0) { this.setState({ showMyComponent: false, locationId: 0, appointments: null }); }\r\n else {\r\n this.setState({ showMyComponent: true, locationId: locId }, () => {\r\n EM.appointments.executeGet(null, { locationId: locId }, Routes.clientApi.appointmentsByLocation, {}, true).then((res) => {\r\n this.setState({ appointments: res, showContactInfo:false,timeSlotHidden:true});\r\n });\r\n });\r\n }\r\n }\r\n calendarChange = (strdt) => {\r\n this.setState({ selectedDate: strdt,timeSlotHidden:false });\r\n }\r\n\r\n timeChange(e) {\r\n if (e.target.value.toLowerCase() != \"please select\")\r\n this.setState({ showContactInfo: true, selectedTime: e.target.value });\r\n }\r\n updateUser(event, field) {\r\n let uUser = this.state.user;\r\n uUser[field] = event.target.value;\r\n this.setState({ user: uUser });\r\n }\r\n validate() {\r\n return this.state.selectedDate\r\n && this.state.selectedTime\r\n && this.state.locationId\r\n && this.state.user.firstName\r\n && this.state.user.lastName\r\n && this.state.user.phoneNumber;\r\n }\r\n redirectToUserDetail() {\r\n let url = Routes.compose(Routes.client.userDetails, { userId: this.state.parentRecordDetail.userId, companyId: this.state.parentRecordDetail.companyId });\r\n this.props.history.push(url);\r\n }\r\n reschedule() {\r\n if (!this.validate()) {\r\n alert('Please fill in the required information.')\r\n return;\r\n }\r\n // var date = Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy t`);\r\n let date = new Date(this.state.selectedDate + ' ' + this.state.selectedTime).toLocaleString();\r\n let request = {\r\n // slotDateTime: date.toISO().replace(':00.000Z',''),\r\n slotDateTime: date,\r\n locationId: this.state.locationId,\r\n paid: true,\r\n checkedIn: false,\r\n userId: this.state.parentRecordDetail.userId,\r\n companyId: this.state.parentRecordDetail.companyId,\r\n creationSourceId: 1,\r\n appointmentId: this.state.appointment.appointmentId\r\n };\r\n EM.appointments.executePost(request, null, Routes.clientApi.rescheduleAppointment, {}, false).then(() => {\r\n this.redirectToUserDetail();\r\n });\r\n }\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 \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default RescheduleAppointment;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport AppointmentCalender from \"../components/Calendar\";\r\nimport TimeSlot from \"../components/TimeSlot\";\r\nimport Routes from \"../app/Routes\";\r\nimport InputMask from 'react-input-mask';\r\nimport { Form, FormGroup, Input, Label, Row, Col } from 'reactstrap';\r\nimport Dates from \"../util/Dates\";\r\n\r\nclass RescheduleAppointmentBooking extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.rescheduleAppointment;\r\n this.state = {\r\n parentRecordDetail: { companyId: this.props.match.params.companyId, userId: this.props.match.params.userId, appointmentId: this.props.match.params.appointmentId },\r\n selectedTime: \"\",\r\n selectedDate: new Date(),\r\n locationId:this.props.match.params.locationId,\r\n user: {},\r\n appointments: [],\r\n showContactInfo: false,\r\n appointment: null,\r\n timeSlotHidden:true\r\n };\r\n this.timeChange = this.timeChange.bind(this);\r\n this.updateUser = this.updateUser.bind(this);\r\n this.redirectToBooking =this.redirectToBooking.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n EM.appointments.executeGet(null, { locationId: this.state.locationId }, Routes.clientApi.appointmentsByLocation, {}, true).then((res) => {\r\n this.setState({ appointments: res, showContactInfo:false,timeSlotHidden:true});\r\n });\r\n EM.users.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.userId }, true).then((res) => {\r\n this.setState({ user: res });\r\n });\r\n EM.appointments.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.appointmentId }, true).then((res) => {\r\n this.setState({ appointment: res });\r\n });\r\n }\r\n\r\n calendarChange = (strdt) => {\r\n this.setState({ selectedDate: strdt,timeSlotHidden:false });\r\n }\r\n\r\n timeChange(e) {\r\n if (e.target.value.toLowerCase() != \"please select\")\r\n this.setState({ showContactInfo: true, selectedTime: e.target.value });\r\n }\r\n updateUser(event, field) {\r\n let uUser = this.state.user;\r\n uUser[field] = event.target.value;\r\n this.setState({ user: uUser });\r\n }\r\n validate() {\r\n return this.state.selectedDate\r\n && this.state.selectedTime\r\n && this.state.locationId\r\n && this.state.user.firstName\r\n && this.state.user.lastName\r\n && this.state.user.phoneNumber;\r\n }\r\n redirectToBooking() {\r\n let url = Routes.compose(Routes.client.booking, { eventId: this.state.appointment.eventId});\r\n this.props.history.push({pathname:url, state:{openCalendar: true}});\r\n }\r\n reschedule() {\r\n if (!this.validate()) {\r\n alert('Please fill in the required information.')\r\n return;\r\n }\r\n // var date = Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy t`);\r\n let date = new Date(this.state.selectedDate + ' ' + this.state.selectedTime).toLocaleString();\r\n let request = {\r\n // slotDateTime: date.toISO().replace(':00.000Z',''),\r\n slotDateTime: date,\r\n locationId: this.state.locationId,\r\n paid: true,\r\n checkedIn: false,\r\n userId: this.state.parentRecordDetail.userId,\r\n companyId: this.state.parentRecordDetail.companyId,\r\n creationSourceId: 1,\r\n appointmentId: this.state.appointment.appointmentId\r\n };\r\n EM.appointments.executePost(request, null, Routes.clientApi.rescheduleAppointment, {}, false).then(() => {\r\n this.redirectToBooking();\r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n

{this.state.appointment?this.state.appointment.location.name:''}

\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\nexport default RescheduleAppointmentBooking;","/* global EM */\r\nimport logo from \"../assets/logo.svg\";\r\nimport \"../style/Login.css\";\r\nimport React, { Component } from \"react\";\r\nimport Spinner from \"../components/Spinner\";\r\nimport Routes from \"../app/Routes\";\r\n\r\nclass CompleteOrder extends Component {\r\n constructor(props) {\r\n super(props);\r\n let self = this;\r\n self.state = {\r\n stripeSessionId: self.props.match.params.stripeSessionId,\r\n event:null\r\n };\r\n\r\n \r\n }\r\n\r\n componentDidMount() { \r\n EM.events.executePost({stripeSessionId:this.state.stripeSessionId},null,Routes.clientApi.activateAppointment,{stripeSessionId:this.state.stripeSessionId},true)\r\n .then((result)=>{\r\n let events = EM.events.get();\r\n EM.storage.set(\"message\", events.closeMessage);\r\n // EM.redirectTo(Routes.client.completeOrder,{stripeSessionId:''});\r\n\r\n }); \r\n }\r\n\r\n render() {\r\n \r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*

About Company

\r\n

Booking Copy You can book your date and time simply from our website, Flashop app, or in person at one of our many retail locations we serve. Our promotional special is a digital download of your favorite image for $20 with over 25 images to choose from. Also other simple pricing package specials to choose from.

\r\n

Want us to come to you?

\r\n

Photography session and delivery.

\r\n

Now the fun part. You confirmed your photography session and location to bring your loved ones Dress to impress to be Photographed.

\r\n

We will take over 25+ images. Directly after the photo session your photos will be delivered to your Flashop app. Your Photographer will show you exactly how to select your Favorite image. When unlock it all the watermarks are removed so you can download it to your mobile device share it with friends and family or put it in your favorite editing app.

\r\n

It’s all about the Digital and instant gratification.

\r\n

If you decide you want all of your images unlocked. $149.99 groups under six. When you unlock the digital you also receive an text with all the images In a zip file.

\r\n

Check out or print specials as well With sizes up to 30 x 40. At AM Studios We give you the most convenient way to have professional portraits scheduled, photographed, and delivered.

\r\n

Thank you for your business and we look forward to serving you.

*/}\r\n
\r\n
\r\n
© 2024 Flashop. All rights reserved.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Thank you!\r\n
\r\n

{EM.storage.get(\"message\")}

\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\nexport default CompleteOrder;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport PageTitle from '../components/PageTitle';\r\nclass Downloads extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n
Flashop Studio allows you to send images to your customers.
\r\n
\r\n
\r\n \r\n
Flashop Studio allows you to send images to your customers.
\r\n
\r\n
\r\n )\r\n }\r\n}\r\nexport default Downloads;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from \"../util/EntityValidators\";\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport { Type } from \"react-bootstrap-table2-editor\";\r\nimport {FaTrashAlt } from \"react-icons/fa\";\r\nimport Dates from '../util/Dates'\r\nimport Spinner from '../components/Spinner'\r\nclass EventPackages extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.eventpackage;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n let locationId = this.props.match.params.locationId;\r\n this.state = {\r\n data:false, \r\n parentRecordDetail: { companyId: company.companyId, locationId },\r\n locationId: locationId,\r\n location:{name:''},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n }; \r\n }\r\n getLocation(){ \r\n let location = _.findWhere(EM.eventTypes.get(),{eventTypeId:parseInt(this.props.match.params.locationId)});\r\n if(!location)\r\n {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n EM.eventTypes.loadEntityByParent({companyId:company.companyId}).then(()=>{\r\n let location = _.findWhere(EM.eventTypes.get(),{eventTypeId:parseInt(this.props.match.params.locationId)});\r\n this.setState({location:location});\r\n });\r\n }\r\n else{\r\n this.setState({location});\r\n }\r\n\r\n }\r\n componentDidMount(){ \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n const self = this\r\n this.getLocation()\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,false).then((data)=>{\r\n if(EM.allLoaded(this.entity)){ \r\n \r\n data = self.entity.get(true);\r\n self.setState({data:data})\r\n console.log(data)\r\n }\r\n })\r\n }\r\n\r\n\r\n getTitle(){\r\n return `Studio Packages for ${this.state.location.name}`;\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = []; \r\n \r\n if (this.state.data) {\r\n data = this.entity.get(true);\r\n const self =this\r\n columns = [\r\n {\r\n dataField: \"eventName\",\r\n text: this.entity.columns(\"eventName\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.required],\r\n },\r\n {\r\n dataField: \"createdDate\",\r\n text: this.entity.columns(\"createdDate\"),\r\n creatable: false,\r\n editable:false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (Dates.isoToDateTime(cell, \"YYYY-MM-DD hh:mm A\"));\r\n }\r\n },\r\n {\r\n dataField: \"allDigital\",\r\n text:\"Include Digital\",\r\n editable:true,\r\n asActive:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"price\",\r\n text: this.entity.columns(\"price\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"sheetCount\",\r\n text: this.entity.columns(\"sheetCount\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"imageCount\",\r\n text: this.entity.columns(\"imageCount\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"largePrint1114\",\r\n text: this.entity.columns(\"largePrint1114\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"largePrint1620\",\r\n text: this.entity.columns(\"largePrint1620\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n }\r\n ];\r\n }\r\n if(!this.state.data){ \r\n return \r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EventPackages;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { FormFeedback,Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport PanelModal from '../components/PanelModal';\r\nimport ActiveEditField from '../components/ActiveEditField';\r\n\r\nclass Products extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.entity = EM.products;\r\n this.state = {\r\n pageLoad: true,\r\n showPriceChange: false,\r\n priceValidationMessage: '',\r\n priceInvalid: false,\r\n companyProduct:{\r\n companyId:\"0\",\r\n price:'',\r\n productId:null,\r\n visible:true\r\n }\r\n };\r\n this.CompaniesList = this.CompaniesList.bind(this);\r\n this.onCompanyChanged = this.onCompanyChanged.bind(this);\r\n }\r\n\r\n getProducts(){ \r\n this.entity.executeGet(null, null, Routes.clientApi.products, { companyId: this.state.companyProduct.companyId }, true);\r\n }\r\n async componentDidMount() {\r\n let company = EM.getDefaultCompany();\r\n \r\n if(!EM.isSuperAdmin() && company && company.companyId> 0){ \r\n await this.setState({companyProduct:{...this.state.companyProduct,companyId:company.companyId+\"\"}})\r\n }\r\n this.getProducts();\r\n EM.companies.load(true);\r\n }\r\n\r\n getColumns() {\r\n let superAdmin = EM.isSuperAdmin() ===true;\r\n return [\r\n {\r\n dataField: \"name\",\r\n text: 'Name',\r\n editable: superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"unit\",\r\n text: 'Units',\r\n // hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required,Validators.numberOnly],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"description\",\r\n text: 'Description',\r\n editable:superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"code\",\r\n text: 'Code',\r\n hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"price\",\r\n text: \"Price\",\r\n editable: superAdmin && this.state.companyProduct.companyId === '0',\r\n validators: [Validators.required, Validators.numberOnly],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"productUrl\",\r\n text: 'Product Url',\r\n hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"shipping\",\r\n text: 'Shipping',\r\n editable: superAdmin,\r\n validators: [Validators.required, Validators.numberOnly],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"type\",\r\n text: 'Type',\r\n hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"order\",\r\n text: 'Order',\r\n hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required, Validators.numberOnly],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"visible\",\r\n text: 'Visible in App',\r\n hideInTable:superAdmin===true,\r\n editable:!superAdmin && this.state.companyProduct.companyId === '0',\r\n creatable: this.state.companyProduct.companyId === '0',\r\n asActive: true \r\n },\r\n {\r\n dataField: \"active\",\r\n text: 'Active',\r\n hideInTable:superAdmin !==true,\r\n editable:superAdmin ===true,\r\n creatable: false,\r\n asActive: true \r\n },\r\n {\r\n dataField: \"actions\",\r\n text: \"Actions\",\r\n hidden: this.state.companyProduct.companyId === '0',\r\n classes: this.state.companyProduct.companyId === '0' ? 'hidden':'',\r\n headerClasses : this.state.companyProduct.companyId === '0' ? 'hidden':'',\r\n creatable: false,\r\n formatter: (cell, row) => {\r\n return \r\n }\r\n }\r\n ];\r\n }\r\n\r\n onCompanyChanged(event) {\r\n const self = this;\r\n let companyProduct = Object.assign({}, self.state.companyProduct);\r\n companyProduct.companyId = event.target.value;\r\n self.setState({companyProduct},()=>{\r\n self.getProducts();\r\n });\r\n \r\n }\r\n\r\n CompaniesList() {\r\n return (
\r\n { this.onCompanyChanged(event) }}>\r\n EM.isSuperAdmin()\r\n ? ()\r\n :null\r\n {\r\n _.map(EM.companies.get(), (company, index) => {\r\n return ();\r\n })\r\n }\r\n
);\r\n\r\n }\r\n\r\n showChangeCompanyPrice(row) {\r\n let companyProduct = Object.assign({},this.state.companyProduct,{productId:row.productId,price:row.price,visible:row.visible});\r\n this.setState({ showPriceChange: true,companyProduct});\r\n }\r\n\r\n onCompanyPriceChange(event) {\r\n let companyProduct = Object.assign({},this.state.companyProduct,{price:event.target.value});\r\n this.setState({ companyProduct});\r\n }\r\n\r\n onCompanyVisibleChange(value) {\r\n let companyProduct = Object.assign({},this.state.companyProduct,{visible:value});\r\n this.setState({ companyProduct});\r\n }\r\n\r\n async updateCompanyPrice() {\r\n const self = this;\r\n var notValid = Validators.numberOnly(this.state.companyProduct.price);\r\n if (notValid) {\r\n this.setState({ priceValidationMessage: notValid, priceInvalid: true });\r\n return;\r\n }\r\n\r\n let companyProduct = Object.assign({},self.state.companyProduct);\r\n\r\n EM.companyProducts.executePut(companyProduct,null,Routes.clientApi.companyProduct, null,true).then((data)=>{ \r\n companyProduct = Object.assign({},self.state.companyProduct,{productId:null,price:''});\r\n this.setState({priceInvalid:false,priceValidationMessage:'',companyProduct,showPriceChange:false});\r\n self.getProducts();\r\n });\r\n\r\n this.setState({priceInvalid:false,priceValidationMessage:''});\r\n\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity, EM.companies)) {\r\n data = this.entity.get();\r\n if(EM.isSuperAdmin()!==true)\r\n {\r\n data = _.filter([...data],(item)=>{return item.active === true});\r\n }\r\n columns = this.getColumns();\r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n\r\n \r\n Change Product Price for Company\r\n \r\n
\r\n \r\n \r\n { this.onCompanyPriceChange(evt); }} />\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n { this.onCompanyVisibleChange(evt); }} defaultValue={this.state.companyProduct.visible} />\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Products;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { BrowserRouter, Switch, Route } from \"react-router-dom\";\r\nimport Routes from \"./Routes\";\r\nimport { withRouter, matchPath } from \"react-router\";\r\nimport { connect } from \"react-redux\";\r\nimport Header from \"../components/Header.js\";\r\nimport Home from \"../pages/Home\";\r\nimport NoOrderUsers from \"../pages/NoOrderUsers\";\r\nimport UserNoOrder from \"../pages/UserNoOrder\";\r\nimport CompletedOrders from \"../pages/CompletedOrders\";\r\nimport UserCompletedOrders from \"../pages/UserCompletedOrders\";\r\nimport TotalInCompleteOrders from \"../pages/TotalInCompleteOrders\";\r\nimport UserInCompleteOrders from \"../pages/UserInCompleteOrders\";\r\nimport FutureEvents from \"../pages/FutureEvents\";\r\nimport Companies from \"../pages/Companies\";\r\nimport EventGroups from \"../pages/EventGroups\";\r\nimport Locations from \"../pages/Locations\";\r\nimport Intervals from \"../pages/Intervals\";\r\nimport Compaigns from \"../pages/Compaigns\";\r\nimport Statistics from \"../pages/Statistics\";\r\nimport Events from \"../pages/Events\";\r\nimport Users from '../pages/Users';\r\nimport Booking from '../pages/Booking';\r\nimport UserDetails from \"../pages/UserDetails\";\r\nimport FetchIndicator from \"../components/FetchIndicator\";\r\nimport ErrorIndicator from \"../components/ErrorIndicator\";\r\nimport TemporaryStatusMessage from \"../components/TemporaryStatusMessage\";\r\nimport CompanyConfig from '../pages/CompanyConfig';\r\nimport OrderFullfillment from \"../pages/OrderFullfillment\";\r\nimport Presets from \"../pages/Presets\";\r\nimport Export from \"../pages/Export\";\r\nimport Calendar from \"../pages/Calendar\";\r\nimport UserScheduler from \"../pages/UserScheduler\";\r\nimport RescheduleAppointment from \"../pages/RescheduleAppointment\";\r\nimport RescheduleAppointmentBooking from \"../pages/RescheduleAppointmentBooking\";\r\nimport CompleteOrder from \"../pages/CompleteOrder\";\r\nimport Downloads from '../pages/Downloads';\r\nimport Sales from \"../pages/Sales\";\r\nimport _ from 'underscore';\r\nimport EventPackages from \"../pages/EventPackages\";\r\nimport GroupUsers from \"../pages/GroupUsers\";\r\nimport Products from '../pages/Products';\r\n\r\nconst HeaderComp = withRouter(Header);\r\nconst HomePage = withRouter(Home);\r\nconst FutureEventsPage = withRouter(FutureEvents);\r\nconst NoOrderUsersPage = withRouter(NoOrderUsers);\r\nconst UserNoOrderPage = withRouter(UserNoOrder);\r\nconst CompletedOrdersPage = withRouter(CompletedOrders);\r\nconst UserCompletedOrdersPage = withRouter(UserCompletedOrders);\r\nconst TotalInCompleteOrdersPage = withRouter(TotalInCompleteOrders);\r\nconst UserInCompleteOrdersPage = withRouter(UserInCompleteOrders);\r\nconst CompaniesPage = withRouter(Companies);\r\nconst EventGroupsPage = withRouter(EventGroups);\r\nconst GroupUsersPage = withRouter(GroupUsers);\r\n\r\nconst ProductsPage = withRouter(Products);\r\nconst LocationsPage = withRouter(Locations);\r\nconst EventsPage = withRouter(Events);\r\nconst UsersPage = withRouter(Users);\r\nconst UserDetailsPage = withRouter(UserDetails);\r\n\r\nconst IntervalsPage = withRouter(Intervals);\r\nconst CompaignsPage = withRouter(Compaigns);\r\nconst StatisticsPage = withRouter(Statistics);\r\nconst EventPackagesPage = withRouter(EventPackages);\r\nconst OrderFullfillmentPage = withRouter(OrderFullfillment);\r\nconst PresetsPage = withRouter(Presets);\r\nconst BookingPage = withRouter(Booking);\r\nconst CompanyConfigPage = withRouter(CompanyConfig);\r\nconst ExportPage = withRouter(Export);\r\nconst CalendarPage = withRouter(Calendar);\r\nconst UserSchedulerPage = withRouter(UserScheduler);\r\nconst RescheduleAppointmentPage = withRouter(RescheduleAppointment);\r\nconst RescheduleAppointmentBookingPage = withRouter(RescheduleAppointmentBooking);\r\nconst CompleteOrderPage = withRouter(CompleteOrder);\r\nconst DownloadsPage = withRouter(Downloads);\r\nconst SalesPage = withRouter(Sales);\r\n\r\nconst withAuthorize = roles => Component => props => {\r\n let authorized = false;\r\n _.each(roles, (role) => {\r\n let account = EM.account.get();\r\n let roleDetail = _.findWhere(EM.roles, { name: role });\r\n if (roleDetail && roleDetail.id > 0 && account.roleId === roleDetail.id)\r\n authorized = authorized || true;\r\n });\r\n return authorized ? Component :
You are not authorized to view this page!
;\r\n};\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n allowAnonymous: props.allowAnonymous\r\n };\r\n }\r\n\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 />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n )}\r\n /> :null\r\n\r\n )}\r\n /> :null\r\n )}\r\n /> :null\r\n )}\r\n /> :null\r\n )}\r\n />\r\n }\r\n />\r\n )}\r\n />\r\n }\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n {\r\n return ();\r\n }}\r\n />\r\n )}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n {\r\n return ();\r\n }}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return {\r\n allowAnonymous: ownProps.allowAnonymous,\r\n account: state.account,\r\n activities: state.activities,\r\n complexities: state.complexities,\r\n complexityLookup: state.complexityLookup,\r\n departments: state.departments,\r\n domain: state.domain,\r\n domainState: state.domainState,\r\n error: state.error,\r\n fetching: state.fetching,\r\n organizations: state.organizations,\r\n roles: state.roles,\r\n files: state.files,\r\n notes: state.notes,\r\n notifications: state.notifications,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(App);\r\n","/* global EM */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport _ from \"underscore\";\r\nimport Routes from \"../app/Routes\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider, { Search } from \"react-bootstrap-table2-toolkit\";\r\nimport {Input} from 'reactstrap'\r\nexport default function GroupUsers(props) {\r\n const { SearchBar } = Search;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n let eventGroupId = props.match.params.eventGroupId;\r\n const initialState = {\r\n parentRecordDetail: { companyId: company.companyId, eventGroupId },\r\n eventGroupId: eventGroupId,\r\n location: false,\r\n isSuperAdmin: EM.isSuperAdmin(),\r\n users: [],\r\n eventUsers:[],\r\n selectedUserIds: [],\r\n selectedEventUserIds: [],\r\n filterOptions:[\r\n 'Company',\r\n 'Event',\r\n 'Group'\r\n ],\r\n SelectfilterOptions:'Company'\r\n };\r\n const [state, setState] = useState(initialState);\r\n const entity = EM.groupUsers;\r\n const getTitle = () => {\r\n return `Users ${state.location.name ? \"for \" + state.location.name : \"\"}`;\r\n };\r\n const loadData = async () => {\r\n EM.groupUsers.clear();\r\n await entity.loadEntityByParent(state.parentRecordDetail);\r\n let body = {\r\n companyId:\r\n EM.isSuperAdmin() !== true && company\r\n ? company.companyId\r\n : company.companyId,\r\n userTypeId: !EM.isSuperAdmin() && !EM.isAdmin() ? 1 : null,\r\n };\r\n let commonUserIds\r\n await EM.users\r\n .executePost(body, {}, Routes.clientApi.userSearch, {}, true)\r\n .then((data) => {\r\n let transformedArray = EM.users\r\n .get()\r\n .filter((item) => item.firstName !== null)\r\n\r\n commonUserIds = EM.users\r\n .get()\r\n .map((item) => item.userId) \r\n .filter((userId) =>\r\n entity.get().some((item) => item.userId === userId)\r\n );\r\n \r\n if (commonUserIds) {\r\n transformedArray = transformedArray.map((item) => ({\r\n ...item,\r\n assigned: commonUserIds.includes(item.userId) ? 'a' : 'z',\r\n }));\r\n }\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: commonUserIds,\r\n users: transformedArray,\r\n }));\r\n \r\n \r\n });\r\n await EM.eventGroups\r\n .loadEntityByParent({ companyId: EM.getDefaultCompany().companyId }, true)\r\n .then(async(result) => {\r\n \r\n if (EM.eventGroups.get(true).length === 0) {\r\n props.history.push(Routes.compose(Routes.client.eventGroups));\r\n }\r\n let location = _.findWhere(EM.eventGroups.get(true), {\r\n eventGroupId: Number(eventGroupId),\r\n });\r\n\r\n if(location===undefined){\r\n props.history.push(Routes.compose(Routes.client.eventGroups));\r\n return\r\n } else {\r\n await EM.eventGroups.executeGet(null, null, Routes.clientApi.eventUsers, { locationId: location.locationId }).then(async(result) => {\r\n \r\n let transformedArray = result\r\n .filter((item) => item.firstName !== null)\r\n\r\n const commonEventUserIds = result\r\n .map((item) => item.userId) \r\n .filter((userId) =>\r\n entity.get().some((item) => item.userId === userId)\r\n );\r\n \r\n if (commonEventUserIds) {\r\n transformedArray = transformedArray.map((item) => ({\r\n ...item,\r\n assigned: commonEventUserIds.includes(item.userId) ? 'a' : 'z',\r\n }));\r\n }\r\n // console.log(state.selectedUserIds)\r\n // const newArray = commonUserIds; // Create a copy of the existing array\r\n // console.log(newArray)\r\n // newArray.push(...commonEventUserIds);\r\n // console.log(newArray)\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: commonEventUserIds,\r\n eventUsers: transformedArray,\r\n }));\r\n }) \r\n setState((prevState) => ({\r\n ...prevState,\r\n location: location,\r\n }));\r\n }\r\n });\r\n \r\n };\r\n const assignUsers = () => {\r\n const { selectedUserIds, eventGroupId,selectedEventUserIds,SelectfilterOptions } = state;\r\n\r\n let body = {\r\n userIds: SelectfilterOptions==='Event'?selectedEventUserIds:selectedUserIds,\r\n eventGroupId: eventGroupId,\r\n };\r\n EM.groupUsers\r\n .executePost(body, {}, Routes.clientApi.assignGroupUsers)\r\n .then((data) => {\r\n console.log(data);\r\n console.log(EM.groupUsers.get());\r\n loadData()\r\n });\r\n };\r\n const onSelect = (row, isSelect, rowIndex, e) => {\r\n const {SelectfilterOptions} = state\r\n const selectedUsers = (state.SelectfilterOptions==='Event')?state.selectedEventUserIds:state.selectedUserIds\r\n if (isSelect === true) {\r\n if (!selectedUsers.includes(row.userId)) {\r\n if(SelectfilterOptions==='Event'){\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: [\r\n ...prevState.selectedEventUserIds,\r\n row.userId,\r\n ],\r\n }));\r\n } else {\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: [\r\n ...prevState.selectedUserIds,\r\n row.userId,\r\n ],\r\n }));\r\n }\r\n \r\n }\r\n }\r\n\r\n if (isSelect === false) {\r\n if (selectedUsers.includes(row.userId)) {\r\n if(SelectfilterOptions==='Event'){\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: prevState.selectedEventUserIds.filter(\r\n (item) => item !== row.userId\r\n ),\r\n }));\r\n } else {\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: prevState.selectedUserIds.filter(\r\n (item) => item !== row.userId\r\n ),\r\n }));\r\n }\r\n }\r\n }\r\n }\r\n const onSelectAll= (isSelect, rows, e) => {\r\n if (isSelect === false) {\r\n if(state.SelectfilterOptions==='Event')\r\n {\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: []\r\n }));\r\n } else {\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: []\r\n }));\r\n }\r\n \r\n } else {\r\n let userIds=[]\r\n if(state.SelectfilterOptions==='Event')\r\n {\r\n userIds = state.eventUsers.map((obj) => obj.userId);\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: userIds\r\n }));\r\n }else{\r\n userIds = state.users.map((obj) => obj.userId);\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: userIds\r\n }));\r\n }\r\n \r\n }\r\n // ...\r\n }\r\n useEffect(() => {\r\n loadData();\r\n return () => {\r\n // Cleanup logic\r\n };\r\n }, []);\r\n\r\n let columns = [];\r\n let data = [];\r\n\r\n columns = [\r\n {\r\n dataField: \"assigned\",\r\n text: \"assigned\",\r\n sort:true,\r\n hidden: true\r\n },\r\n {\r\n dataField: \"firstName\",\r\n text: \"First Name\",\r\n editable: false,\r\n },\r\n {\r\n dataField: \"lastName\",\r\n text: \"Last Name\",\r\n editable: false,\r\n },\r\n {\r\n dataField: \"phoneNumber\",\r\n text: \"Phone Number\",\r\n editable: false,\r\n },\r\n {\r\n dataField: \"emailAddress\",\r\n text: \"Email\",\r\n editable: false,\r\n },\r\n {\r\n dataField: \"city\",\r\n text: \"City\",\r\n editable: false,\r\n },\r\n ];\r\n if (state.users.length && state.location) {\r\n if(state.SelectfilterOptions==='Company')\r\n {data = state.users;}\r\n if(state.SelectfilterOptions==='Event')\r\n {data = state.eventUsers;}\r\n if(state.SelectfilterOptions==='Group')\r\n {data = state.users.filter(\r\n (item) => item.assigned === 'a'\r\n );}\r\n }\r\n \r\n return (\r\n
\r\n \r\n {(props) => (\r\n
\r\n
\r\n

{`${getTitle()} ${\r\n state.companyName && state.isSuperAdmin\r\n ? `(${state.companyName})`\r\n : \"\"\r\n }`}

\r\n
\r\n
\r\n
\r\n { setState((prevState) => ({\r\n ...prevState,\r\n SelectfilterOptions: event.target.value,\r\n }))}}> \r\n {state.filterOptions &&\r\n _.map(state.filterOptions, (value, index) => {\r\n return ();\r\n })\r\n }\r\n \r\n
\r\n
\r\n assignUsers()}\r\n >\r\n \r\n Save\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n return EM.t(\"util.table.paginationTotal\", false, [\r\n from,\r\n to,\r\n size,\r\n ]);\r\n },\r\n })}\r\n selectRow={{\r\n // hideSelectAll: true,\r\n mode: \"checkbox\",\r\n bgColor: \"lightgreen\",\r\n selected: state.SelectfilterOptions==='Event'?state.selectedEventUserIds:state.selectedUserIds, // should be a row keys array\r\n onSelect: (row, isSelect, rowIndex, e) => {\r\n onSelect(row, isSelect, rowIndex, e)\r\n },\r\n onSelectAll: (isSelect, rows, e) => {\r\n onSelectAll(isSelect, rows, e)\r\n },\r\n }}\r\n {...props.baseProps}\r\n />\r\n
\r\n )}\r\n \r\n
\r\n );\r\n}\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\n\r\nexport default class ContactSupportButton extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n}\r\n","/* global EM */\r\n/* eslint jsx-a11y/anchor-is-valid: 0 */\r\nimport React, { Component } from 'react';\r\nimport PageTitle from '../components/PageTitle';\r\nimport { connect } from \"react-redux\";\r\nimport ContactSupportButton from './ContactSupportButton';\r\n\r\nclass ErrorBlock extends Component {\r\n render() { \r\n let error = this.props.error || { errorCode: 'general', message: 'Error' }; \r\n const msgKey = 'error.' + (error.errorCode || error.name);\r\n let message = EM.t(msgKey, true);\r\n if (!message)message = error.message;\r\n\r\n let title = EM.t('error.title', true);\r\n if (!title)title = 'Error';\r\n\r\n let isAccountError = error.errorCode?error.errorCode.startsWith('account'):false;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {isAccountError ? \r\n \r\n : null }\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return {\r\n error: state.error\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ErrorBlock);\r\n","/* eslint jsx-a11y/anchor-is-valid: 0 */\r\nimport React, { Component } from 'react';\r\nimport PageTitle from './PageTitle';\r\n\r\nexport default class LoginBlockNaive extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n

Please click the button below, and you will be taken to the login page.

\r\n \r\n

\r\n If you're seeing this screen repeatedly, please verify that you have \"Allowed Popups\" for this site in your browser's settings.\r\n

\r\n

\r\n If you experience issues logging in, this.props.authenticator.logout()}>please click here to log out of existing sessions before proceeding. \r\n If the issue persists, please submit a support ticket. \r\n

\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nexport default class MetaInfo extends Component {\r\n render() {\r\n return (\r\n <>\r\n
\r\n
\r\n ©{new Date().getFullYear()} Intrinsic Clinical Systems\r\n
\r\n
\r\n Privacy Policy\r\n
\r\n
\r\n {process.env.REACT_APP_VERSION}\r\n
\r\n
\r\n {this.props.noTerms ? \r\n null \r\n : \r\n
\r\n
\r\n Use of this system is subject to Terms and Conditions.\r\n
\r\n
\r\n }\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react'\r\nimport Spinner from '../components/Spinner'\r\n\r\nconst Signup = ({loginError, loading, responseMessage,signUpFormValues, setSignUpFormValues,validate}) => {\r\n const handleFormValues = (e) => {\r\n const {name, value} = e.target\r\n setSignUpFormValues((prevState) => {\r\n return {...prevState, [name]: value}\r\n })\r\n }\r\n return (\r\n <>\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.firstName}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.lastName}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.name}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.emailAddress}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.address}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.address2}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.phone}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.city}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.state}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.zip}\r\n />\r\n
\r\n {loading && }\r\n
\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Signup\r\n","export default __webpack_public_path__ + \"static/media/companySignup.bcf81095.svg\";","/* eslint jsx-a11y/anchor-is-valid: 0 */\r\nimport React, { useState } from 'react'\r\nimport { Form, FormGroup, Label, Button, Card,CardBody,CardHeader} from 'reactstrap'\r\nimport { ValidationError } from 'xml2js'\r\n// import logo from '../images/logo.svg';\r\nimport MetaInfo from './MetaInfo'\r\nimport Authenticator from '../app/Authenticator'\r\nimport logo from '../assets/logo.svg'\r\nimport Spinner from '../components/Spinner'\r\nimport Signup from './SignUp'\r\nimport companyIcon from \"../assets/companySignup.svg\";\r\n\r\nexport default function LoginSelector(props) {\r\n let loginModes = props.instance.loginModes\r\n let showEnterprise = loginModes.indexOf('Enterprise') > -1\r\n const authenticator = new Authenticator(props.instance)\r\n const [signUpFormValues, setSignUpFormValues] = useState({\r\n firstName: '',\r\n lastName: '',\r\n name:'',\r\n emailAddress:'',\r\n address:'',\r\n address2:'',\r\n phone:'',\r\n city:'',\r\n state:'',\r\n zip:'',\r\n })\r\n const [currentPage, setCurrentPage] = useState('Login')\r\n const [email, setEmail] = useState('')\r\n const [loading, setloading] = useState(false)\r\n const [password, setPassword] = useState('')\r\n const [loginError, setLoginError] = useState('')\r\n const [responseMessage, setResponseMessage] = useState('')\r\n function validate() {\r\n setLoginError('')\r\n let valid = true\r\n // if(isForgetPassword===false) {\r\n if (currentPage === 'Login') {\r\n valid = email.trim().length > 0 && password.trim().length > 0\r\n if (email.trim().length === 0 || password.trim().length === 0)\r\n setLoginError('Email/Username and Password are required')\r\n } else if (currentPage === 'Forgot Password') {\r\n valid = email.trim().length > 0\r\n if (email.trim().length === 0) setLoginError('Email required')\r\n } else {\r\n Object.keys(signUpFormValues).forEach(key => {\r\n if (signUpFormValues[key].length === 0 && key !== \"address2\") {\r\n valid = false\r\n setLoginError('Please fill out all the fields')\r\n }\r\n })\r\n }\r\n\r\n return valid\r\n }\r\n const resetValidate = () => {\r\n setLoginError('')\r\n setResponseMessage('')\r\n }\r\n const handleSubmit = async () => {\r\n const isValid = validate()\r\n if (isValid === true) {\r\n setloading(true)\r\n // if(isForgetPassword===false) {\r\n if (currentPage === 'Login') {\r\n await authenticator\r\n .login({ email, password })\r\n .then(() => {\r\n window.localStorage.setItem('rm.login_mode', 'Enterprise')\r\n window.location.reload()\r\n })\r\n .catch((error) => {\r\n setLoginError(error.message)\r\n })\r\n setloading(false)\r\n // } else {\r\n } else if (currentPage === 'Forgot Password') {\r\n await authenticator\r\n .forgetPassword({ email })\r\n .then((data) => {\r\n setloading(false)\r\n setResponseMessage(\r\n 'New Password has been sent on your registered phone number.',\r\n )\r\n })\r\n .catch((error) => {\r\n setloading(false)\r\n setLoginError(error.message)\r\n })\r\n } else {\r\n try {\r\n const company = await authenticator.registerCompany(signUpFormValues)\r\n setloading(false)\r\n setResponseMessage(`User has been created successfully for your company ${company.name}. The Password has been sent to your mobile number`)\r\n setCurrentPage(\"Login\")\r\n } catch (error) {\r\n setloading(false)\r\n setLoginError(error.message) \r\n }\r\n // try {\r\n // const company = await authenticator.register(signUpFormValues)\r\n // setloading(false)\r\n // if(company) {\r\n // const fullName = company.name.split(' ')\r\n // const params = {\r\n // companyId:company.companyId,\r\n // firstName: fullName[0],\r\n // lastName: fullName.length > 1 ? fullName[1] : \"\",\r\n // emailAddress: company.emailAddress,\r\n // phoneNumber: company.phone,\r\n // userTypeId: 2,\r\n // roleId: 3,\r\n // }\r\n // await authenticator.createUser(params)\r\n // setResponseMessage(`User has been created successfully for your company ${company.name}. The Password has been sent to your mobile number`)\r\n // setCurrentPage(\"Login\")\r\n // }\r\n // } catch (error) {\r\n // setloading(false)\r\n // setLoginError(error.message)\r\n // }\r\n }\r\n }\r\n }\r\n\r\n // console.log(loginDetails);\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 © 2024 Flashop.\r\n
\r\n All rights reserved.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {currentPage === 'SignUp' ? (\r\n \r\n ) : (\r\n <>\r\n
\r\n \r\n {\r\n setEmail(event.target.value)\r\n validate()\r\n }}\r\n value={email}\r\n />\r\n
\r\n {currentPage === 'Login' && (\r\n
\r\n \r\n {\r\n setPassword(event.target.value)\r\n validate()\r\n }}\r\n value={password}\r\n />\r\n
\r\n )}\r\n {currentPage === 'Login' ? (\r\n
\r\n {\r\n setCurrentPage((prevState) => prevState === 'Login'? 'Forgot Password' : 'Login')\r\n resetValidate()\r\n }}\r\n >\r\n Forgot Password?\r\n \r\n
\r\n ): null}\r\n {loading && }\r\n
\r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n {showEnterprise ? (\r\n {\r\n handleSubmit()\r\n }}\r\n className=\"btn btn-primary pl-4 pr-4 w-100\"\r\n >\r\n {/* {!isForgetPassword ? 'LOGIN' : 'RESET PASSWORD'} */}\r\n {currentPage === 'Forgot Password' ? 'RESET PASSWORD' : currentPage.toUpperCase()}\r\n \r\n ) : null} \r\n
\r\n
Welcome to Flashop Cloud!
\r\n {currentPage === 'Login' ? (\r\n \r\n \r\n
\r\n
\r\n
Create a Company
\r\n

In the next steps, we will create your company & get you started

\r\n
\r\n \"\"/\r\n
\r\n \r\n
\r\n
\r\n ) :

{currentPage === 'Forgot Password'?'Back to ':'Already have an account?'}

\r\n {\r\n setCurrentPage((prevState) => prevState === 'SignUp' ? 'Login' : 'SignUp')\r\n resetValidate()\r\n }}\r\n >\r\n Login\r\n
}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","/* eslint jsx-a11y/anchor-is-valid: 0 */\r\nimport React from 'react';\r\n\r\nexport default function PreLoginError(props){ \r\n return (\r\n
\r\n

Error

\r\n

{props.error.message}

\r\n
\r\n \r\n
\r\n
\r\n );\r\n}","export function register(config) {\r\n if ('serviceWorker' in navigator) {\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/cache-control.js`;\r\n registerValidSW(swUrl);\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker.register(swUrl, { scope: \"./\" }).then(registration => {\r\n registration.onupdatefound = () => {};\r\n }).catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","/* eslint no-extend-native: 0 */\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport thunk from \"redux-thunk\";\r\nimport { createStore, applyMiddleware } from \"redux\";\r\nimport { Provider } from \"react-redux\";\r\nimport Authenticator from \"./app/Authenticator\";\r\nimport API from \"./app/API\";\r\nimport EntityManager from \"./entities/EntityManager\";\r\nimport reducers from \"./entities/reducers\";\r\nimport App from \"./app/App\";\r\nimport Routes from \"./app/Routes\";\r\nimport ErrorBlock from \"./components/ErrorBlock\";\r\nimport LoginBlock from \"./components/LoginBlock\";\r\nimport LoginSelector from \"./components/LoginSelector\";\r\nimport LoggingInNotice from \"./components/LoggingInNotice\";\r\nimport PreLoginError from \"./components/PreLoginError\";\r\nimport Common from \"./util/Common\";\r\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\r\nimport \"react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css\";\r\nimport \"./style/index.scss\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\n\r\n(async function () {\r\n Common.registerGlobal();\r\n serviceWorker.register();\r\n let instance = { key: null, loginModes: [\"Enterprise\"] };\r\n let loginMode = window.localStorage.getItem(\"rm.login_mode\");\r\n let loginRequired = window.location.href.toLocaleLowerCase().indexOf('booking') < 0 && window.location.href.toLocaleLowerCase().indexOf('completeorder') <0 && window.location.href.toLocaleLowerCase().indexOf('rescheduleappointmentbooking') <0; \r\n if(loginRequired ===false){\r\n login(loginMode, instance);\r\n }\r\n else if (!loginMode) {\r\n ReactDOM.render(\r\n {\r\n window.localStorage.setItem(\"rm.login_mode\", mode);\r\n login(mode, instance,credentials);\r\n }}\r\n />,\r\n document.getElementById(\"root\")\r\n );\r\n return;\r\n } else {\r\n login(loginMode, instance);\r\n }\r\n})();\r\n\r\nasync function login(loginMode, instance,credentials) {\r\n try {\r\n console.log(\"Login mode: \" + loginMode);\r\n const authenticator = new Authenticator(instance);\r\n if (authenticator.initialize) {\r\n await authenticator.initialize();\r\n }\r\n\r\n console.log(`Authenticated:${await authenticator.isAuthenticated()}`);\r\n let loginRequired = window.location.href.toLocaleLowerCase().indexOf('booking') < 0 && window.location.href.toLocaleLowerCase().indexOf('completeorder') && window.location.href.toLocaleLowerCase().indexOf('rescheduleappointmentbooking') < 0;\r\n if (loginRequired===false) {}\r\n else if (!(await authenticator.isAuthenticated())) {}\r\n\r\n if (\r\n authenticator.isCallback ||\r\n (window !== window.parent && !window.opener)\r\n ) {\r\n console.log(\"Silent request via iFrame completed.\");\r\n return;\r\n }\r\n\r\n initialize(authenticator, instance, loginMode,(!loginRequired));\r\n } catch (e) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"root\")\r\n );\r\n }\r\n}\r\n\r\nasync function initialize(authenticator, instance, loginMode,allowAnonymous) {\r\n const api = new API(authenticator, instance.key, loginMode);\r\n const store = createStore(\r\n reducers,\r\n applyMiddleware(thunk.withExtraArgument(api))\r\n );\r\n window.EM = new EntityManager(store, authenticator, api);\r\n var success = await window.EM.initialize(allowAnonymous);\r\n\r\n let component = null;\r\n if (success) {\r\n component = ;\r\n let qsObj = Routes.parseQuery();\r\n if (qsObj.code) {\r\n window.history.replaceState({}, document.title, \"/\");\r\n }\r\n } else {\r\n let state = store.getState();\r\n console.log(state.error)\r\n if (state.error) {\r\n if (\r\n state.error.errorCode === \"account:100\" ||\r\n state.error.errorCode === \"account:101\"\r\n ) {\r\n component = ;\r\n } else {\r\n component = ;\r\n }\r\n } else {\r\n component = ;\r\n }\r\n }\r\n\r\n ReactDOM.render(\r\n {component},\r\n document.getElementById(\"root\")\r\n );\r\n}\r\n","/* eslint no-cond-assign: 0 */\r\nimport saver from 'file-saver';\r\nimport _ from 'underscore';\r\n\r\nexport default {\r\n save: (filename, data) => {\r\n let csv_output = '';\r\n _.each(data, function (row) {\r\n let rowOutput = _.map(row, function (cell) {\r\n if (typeof cell !== \"undefined\" && cell != null) {\r\n return cell.toString().replace(/\"/g, '\"\"');\r\n } else {\r\n return '';\r\n }\r\n });\r\n csv_output += '\"' + rowOutput.join('\",\"') + '\"\\n';\r\n });\r\n\r\n saver.saveAs(new Blob([csv_output], { type: \"text/csv\" }), filename + '.csv');\r\n },\r\n\r\n fromString: (strData, strDelimiter) => {\r\n // Check to see if the delimiter is defined. If not,\r\n // then default to comma.\r\n strDelimiter = (strDelimiter || \",\");\r\n\r\n // Create a regular expression to parse the CSV values.\r\n var objPattern = new RegExp(\r\n (\r\n // Delimiters.\r\n \"(\\\\\" + strDelimiter + \"|\\\\r?\\\\n|\\\\r|^)\" +\r\n\r\n // Quoted fields.\r\n \"(?:\\\"([^\\\"]*(?:\\\"\\\"[^\\\"]*)*)\\\"|\" +\r\n\r\n // Standard fields.\r\n \"([^\\\"\\\\\" + strDelimiter + \"\\\\r\\\\n]*))\"\r\n ),\r\n \"gi\"\r\n );\r\n\r\n // Create an array to hold our data. Give the array\r\n // a default empty first row.\r\n var arrData = [[]];\r\n\r\n // Create an array to hold our individual pattern\r\n // matching groups.\r\n var arrMatches = null;\r\n\r\n // Keep looping over the regular expression matches\r\n // until we can no longer find a match.\r\n while (arrMatches = objPattern.exec(strData)) {\r\n\r\n // Get the delimiter that was found.\r\n var strMatchedDelimiter = arrMatches[1];\r\n\r\n // Check to see if the given delimiter has a length\r\n // (is not the start of string) and if it matches\r\n // field delimiter. If id does not, then we know\r\n // that this delimiter is a row delimiter.\r\n if (\r\n strMatchedDelimiter.length &&\r\n strMatchedDelimiter !== strDelimiter\r\n ) {\r\n\r\n // Since we have reached a new row of data,\r\n // add an empty row to our data array.\r\n arrData.push([]);\r\n\r\n }\r\n\r\n var strMatchedValue;\r\n\r\n // Now that we have our delimiter out of the way,\r\n // let's check to see which kind of value we\r\n // captured (quoted or unquoted).\r\n if (arrMatches[2]) {\r\n // We found a quoted value. When we capture\r\n // this value, unescape any double quotes.\r\n strMatchedValue = arrMatches[2].replace(new RegExp(\"\\\"\\\"\", \"g\"), \"\\\"\");\r\n\r\n if (strMatchedValue === 'undefined') {\r\n strMatchedValue = '';\r\n }\r\n } else {\r\n // We found a non-quoted value.\r\n strMatchedValue = arrMatches[3];\r\n }\r\n\r\n // Now that we have our value string, let's add\r\n // it to the data array.\r\n arrData[arrData.length - 1].push(strMatchedValue);\r\n }\r\n\r\n //Remove blank rows\r\n let outputArray = [];\r\n arrData.forEach((row) => {\r\n if (row.join('') === '')return;\r\n outputArray.push(row);\r\n });\r\n \r\n // Return the parsed data.\r\n return (outputArray);\r\n }\r\n}\r\n"],"sourceRoot":""}