{"version":3,"sources":["app/ui/helpers/loading.jsx","app/ui/helpers/message.jsx","_metronic/layout/components/header/Topbar.tsx","_metronic/layout/components/header/HeaderWrapper.tsx","app/ui/sensor/config/SensorArea.jsx","app/ui/sensor/config/display.jsx","_metronic/layout/core/MetronicSplashScreen.tsx","_metronic/helpers/AssetHelpers.ts","_metronic/helpers/RouterHelpers.ts","_metronic/helpers/components/KTSVG.tsx","_metronic/helpers/dataExamples.ts","_metronic/layout/core/DefaultLayoutConfig.ts","_metronic/layout/core/LayoutProvider.tsx","_metronic/layout/core/PageData.tsx","_metronic/partials/content/dropdown/Dropdown2.tsx","app/ui/sensor/config/my_great_place_styles.js","app/ui/sensor/config/Map.jsx","_metronic/partials/content/dropdown/Dropdown1.tsx","_metronic/layout/components/header/page-title/DefaultTitle.tsx","app/ui/sensor/config/DisplayGroup.jsx","_metronic/partials/layout/explore/Toggle.tsx","app/ui/sensor/config/chart/Chartj.jsx","app/ui/dashboard/SensorView.jsx","app/ui/dashboard/MyPlace.jsx","_metronic/assets/ts/_utils/_ElementStyleUtil.ts","_metronic/assets/ts/_utils/_DataUtil.ts","_metronic/assets/ts/_utils/_TypesHelpers.ts","_metronic/assets/ts/_utils/_DOMEventHandlerUtil.ts","_metronic/assets/ts/_utils/ElementAnimateUtil.ts","_metronic/assets/ts/_utils/DomHelpers.ts","_metronic/assets/ts/_utils/EventHandlerUtil.ts","_metronic/partials/widgets/mixed/MixedWidget1.tsx","_metronic/partials/widgets/mixed/MixedWidget7.tsx","_metronic/partials/widgets/mixed/MixedWidget10.tsx","_metronic/partials/widgets/mixed/MixedWidget49.tsx","_metronic/partials/widgets/mixed/MixedWidget20_1.tsx","DataLayer.jsx","app/ui/sensor/config/my_great_place.jsx","app/ui/sensor/config/Test.jsx","_metronic/assets/ts/components/_CookieComponent.ts","_metronic/assets/ts/components/_DrawerComponent.ts","_metronic/assets/ts/components/_FeedbackComponent.ts","_metronic/assets/ts/components/_ImageInputComponent.ts","_metronic/assets/ts/components/_ScrollComponent.ts","_metronic/assets/ts/components/_ScrollTopComponent.ts","_metronic/assets/ts/components/_StepperComponent.ts","_metronic/assets/ts/components/_StickyComponent.ts","_metronic/assets/ts/components/_ToggleComponent.ts","_metronic/assets/ts/components/_PasswordMeterComponent.ts","_metronic/assets/ts/components/_PlaceComponent.ts","_metronic/assets/ts/components/MenuComponent.ts","_metronic/assets/ts/components/SearchComponent.ts","app/ui/helpers/Dictionary.jsx","app/ui/sensor/helpers/calc_markers_visibility.js","app/ui/common/commonResource.jsx","app/modules/auth/components/Registration.tsx","app/modules/auth/components/ForgotPassword.tsx","app/modules/auth/redux/AuthCRUD.ts","app/modules/auth/redux/AuthRedux.ts","app/modules/auth/components/Login.jsx","app/modules/auth/AuthPage.tsx","app/modules/auth/__mocks__/usersTableMock.ts","app/modules/auth/Logout.tsx","app/modules/auth/redux/AuthInit.tsx","setup/redux/RootReducer.ts","setup/redux/Store.ts","reducer.js","_metronic/i18n/Metronici18n.tsx","_metronic/i18n/i18nProvider.tsx","_metronic/layout/components/toolbar/Toolbar1.tsx","_metronic/layout/components/toolbar/Toolbar.tsx","_metronic/layout/components/ScrollTop.tsx","_metronic/layout/MasterInit.tsx","_metronic/layout/MasterLayout.tsx","app/ui/helpers/commonResource.jsx","app/ui/layout/AllLayouts.jsx","app/ui/layout/AllAlerts.jsx","app/ui/dashboard/Dashboard.tsx","app/ui/sensor/config/TagConfig.jsx","app/ui/sensor/config/index.jsx","app/ui/layout/Alert.jsx","app/ui/layout/AllGroups.jsx","app/ui/layout/NewLayout.jsx","app/ui/layout/Design.jsx","app/ui/sensor/config/ObjectViewer.jsx","app/ui/helpers/LoadingSentrum.jsx","app/ui/dashboard/SubSectorManager.jsx","app/ui/dashboard/FacilityManager.jsx","app/ui/dashboard/FactoriesManager.jsx","app/ui/dashboard/BusinessUnitManager.jsx","app/ui/dashboard/BusinessUnitDetailManager.jsx","app/ui/dashboard/BusinessUnitDetailManager2.jsx","app/routing/PrivateRoutes.tsx","app/modules/errors/components/Error500.tsx","app/modules/errors/components/Error404.tsx","app/modules/errors/ErrorsPage.tsx","app/ui/sensor/config/MainDashboard.jsx","app/ui/sensor/config/FactoryDashboard.jsx","app/ui/sensor/config/DetailDashboard.jsx","app/ui/sensor/config/ViewAll.jsx","app/routing/Routes.tsx","app/App.tsx","index.tsx","app/ui/sensor/helpers/marker_styles.js","app/ui/sensor/config/marker_example.jsx","app/ui/sensor/helpers/balloon_pos.js","app/ui/helpers/WindowDimension.jsx","app/ui/common/commonResource2.jsx","_metronic/layout/components/aside/AsideMenuItemWithSub.tsx","_metronic/layout/components/aside/AsideMenuItem.tsx","_metronic/layout/components/aside/AsideMenuMain.jsx","_metronic/layout/components/aside/AsideMenu.tsx","_metronic/layout/components/aside/AsideDefault.tsx","_metronic/layout/components/Footer.tsx","_metronic/partials/layout/header-menus/HeaderUserMenu.tsx","_metronic/partials/chat/ChatInner.tsx","_metronic/partials/modals/create-app/Main.tsx","_metronic/layout/components/Content.tsx","_metronic/layout/core/LayoutSetup.ts"],"names":["Loading","className","style","marginRight","ErrorMessage","props","error","text","status","path","Topbar","config","useLayout","useDataLayerValue","user","clsx","id","fontSize","firstName","header","left","title","HeaderWrapper","pathname","useLocation","classes","attributes","aside","useEffect","MenuComponent","reinitialization","content","window","location","hostname","toLowerCase","join","headerMenu","headerContainer","display","to","alt","src","toAbsoluteUrl","width","DefaultTitle","require","SensorArea","RADIAN","Math","PI","Gradients","item","lines","undefined","length","index","element","push","dataKey","x1","y1","x2","y2","offset","stopColor","stroke","stopOpacity","fillTopOpacity","fillBottomOpacity","Article","LineCode","Line","name","strokeWidth","type","dot","activeDot","r","fillOpacity","fill","stackId","renderCustomizedLabel","cx","cy","midAngle","innerRadius","outerRadius","percent","radius","x","cos","y","sin","textAnchor","dominantBaseline","toFixed","state","SensorList","map","note","defaultPosition","defaultPos","onStart","fontFamily","zIndex","position","href","url","target","displayName","color","captionWidth","float","valueWidth","textAlign","right","marginTop","value","icon","backgroundColor","isNotify","marginLeft","trigger","cursor","modal","close","onClick","borderBottom","dangerouslySetInnerHTML","__html","paddingTop","paddingLeft","padding","cellpadding","cellspacing","height","transform","transformOrigin","role","data","isEnableCartesianGrid","strokeDasharray","dy","xAxis","minTickGap","axisLine","interval","angle","dx","label","yAxis","tickLine","domain","isLegend","layout","legend","verticalAlign","align","margin","top","isTooltip","labelLine","bottom","randomColor","Display","useState","connection","setConnection","reconnectRef","useRef","urlParams","URLSearchParams","search","isloading","setLoading","setItem","setsensorList","sensors","useFabricJSEditor","defaultStrokeColor","selection","selectedObjects","setSelectedObject","editor","onReady","setText","strokeColor","setStrokeColor","fillColor","setFillColor","isload","setisload","match","params","layoutName","imageData","devices","isZoom","globalJs","category","designObject","breadCrumbs","setLayout","Data","DashboardStat","setState","hubService","process","start","then","result","current","onreconnecting","console","log","onclose","e","on","message","String","JSON","parse","key","dataPacket","TimeStamp","round","Date","Packet","replace","newElements","Object","entries","machineNo","lastUpdate","toString","object","packetType","Plant","notification","toastId","autoClose","hideProgressBar","closeOnClick","draggable","progress","transition","Bounce","eval","formula","catch","axios","method","headers","response","setTimeout","tempFeild1","newConnection","HubConnectionBuilder","withUrl","hub","withAutomaticReconnect","build","desginObject","version","objects","ds","lockMovementX","lockMovementY","lockScalingX","lockScalingY","lockRotation","hasControls","hasBorders","canvas","loadFromJSON","bodyCss","overflowX","hideAllNotification","toast","dismissAll","hideNotification","dismiss","getTransactionType","Flip","Slide","Zoom","getType","TYPE","INFO","ERROR","SUCCESS","WARNING","showNotification","isActive","render","update","info","warn","success","Notification","Type","Message","Position","Autoclose","pauseOnHover","backcss","sensorcss","backgroundImage","getFullYear","code","breadcrumbs","overflow","MetronicSplashScreenContext","createContext","LayoutSplashScreen","visible","setCount","useContext","prev","checkIsActive","split","getCurrentUrl","indexOf","KTSVG","svgClassName","defaultMessages","time","template","defaultUserInfos","avatar","email","online","initials","messageFromClient","defaultAlerts","description","defaultLogs","settings_config","main","primaryColor","darkSkinEnabled","loader","scrolltop","fixed","desktop","tabletAndMobile","menuIcon","megaMenu","theme","menu","minimized","minimize","hoverable","toolbar","tabletAndMobileMode","layouts","toolbar1","heightAndTabletMobileMode","toolbar2","toolbar3","toolbar4","toolbar5","footer","pageTitle","direction","responsive","responsiveBreakpoint","responsiveTarget","DefaultLayoutConfig","LayoutContext","getEmptyCssClasses","getEmptyHTMLAttributes","cssVariables","getEmptyCSSVariables","disableSplashScreen","splashScreen","document","getElementById","setProperty","LayoutProvider","children","LayoutSetup","setConfig","setClasses","setAttributes","setCSSVariables","_themeConfig","enableSplashScreen","Array","from","body","classList","forEach","cl","remove","updatePartialConfig","assign","Provider","PageDataContext","setPageTitle","_title","setPageBreadcrumbs","_breadcrumbs","setPageDescription","_description","setPageCode","_code","PageDataProvider","pageDescription","pageBreadcrumbs","pageCode","usePageData","PageTitle","Dropdown2","K_HEIGHT","greatPlaceStyle","border","borderRadius","fontWeight","greatPlaceStyle2","Map","AnyReactComponent","defaultProps","center","lat","lng","zoom","K_MARGIN_TOP","K_MARGIN_RIGHT","K_MARGIN_BOTTOM","K_MARGIN_LEFT","K_HOVER_DISTANCE","loc","setLoc","locax","newState","obj","Lat","Lng","link","allSensors","bootstrapURLKeys","defaultCenter","defaultZoom","marker","Link","Value","Dropdown1","defaultValue","defaultChecked","isSeparator","DisplayGroup","Notifications","Toggle","ChartJS","register","CategoryScale","LinearScale","PointElement","LineElement","Title","Tooltip","Legend","Chartj","chartReference","React","createRef","refersh","sort","find","project","option","plugins","elements","line","tension","min","max","ticks","stepSize","labels","datasets","borderColor","RefreshData","datafield","labelsx","datax","chart","setInterval","ref","SensorView","containerRef","isSubmitting","setSubmitting","token","dispatch","isChartLoading","setChartLoading","loadingMap","setLoadingMap","setdefaultProps","DeviceType","setDeviceType","InitialLoading2","setInitialLoading2","filter","objBrowser","gpsData","PlayCount","setPlayCount","PlayUpToCount","setPlayUpToCount","setdata","gps_data","setgps_data","isPlaying","borderWidth","chartData","setChartData","factories","subSectorName","subSectorCode","sectorName","sectorCode","factroyName","factroyCode","unitName","unitCode","Sensor","Field","Live","Min","Max","Status","Note","Description","NormalRange","WarningRange","CriticalRange","DisableRange","live","setLive","annotation","annotations","line1","yMin","yMax","bezierCurve","lineTension","TablesWidget10","columns","useMemo","Header","accessor","useTable","initialState","pageIndex","pageSize","globalFilter","useGlobalFilter","usePagination","getTableProps","getTableBodyProps","prepareRow","headerGroups","page","canPreviousPage","canNextPage","pageOptions","pageCount","gotoPage","nextPage","previousPage","setPageSize","preGlobalFilteredRows","setGlobalFilter","colSpan","row","i","getRowProps","values","formatCode","priority","facilityName","createdOn","remain","disabled","onChange","Number","countdown","setCountdown","countdown2","setCountdown2","axioDefaultConfig","Authorization","_labels","_data","_gps_data","list","gps","Ignition","Bruno","person","ignition","endDate","waiting","dateConverter","currrent","date","normalRange","warningRange","criticalRange","disableRange","countdownInterval","prevCountdown","clearInterval","unitModels","automationChannel","startDate","timeEnd","newStartDate","newEndDate","ceil","getTime","floor","OnReset","Play","countdownInterval2","scrollTop","scrollHeight","handleWheel","event","clientHeight","deltaY","preventDefault","onClearFilter","onSelect","index2","onStop","onPlay","statusColorClass","class","initialValues","datex","Ftype","onSubmit","handleChange","errors","touched","handleBlur","handleSubmit","onBlur","substring","onWheel","long_text","MyPlace","shouldComponentUpdate","shouldPureComponentUpdate","this","Component","ElementStyleUtil","property","important","attributeName","getPropertyValue","attibuteName","removeProperty","DataUtil","instance","instanceData","store","get","set","newMap","delete","has","val","v","k","getObjectPropertyValueByKey","hasOwnProperty","getUniqueIdWithPrefix","prefix","random","stringSnakeToCamel","str","m","toUpperCase","DOMEventHandlerUtil","selector","eventName","callBack","eventId","targets","querySelectorAll","call","parentElement","addEventListener","funcFromStore","removeEventListener","calee","currentTarget","ElementAnimateUtil","duration","complete","easings","t","b","c","d","change","performance","now","requestAnimationFrame","loop","timestamp","animationName","animateClasses","cssClass","add","one","targetPos","getElementOffset","scrollPos","pageYOffset","documentElement","animate","scrollTo","getCSS","el","styleProp","defaultView","ownerDocument","getComputedStyle","getCSSVariableValue","variableName","hex","trim","getElementActualCss","prop","cache","css","getAttribute","cssText","offsetWidth","offsetHeight","setAttribute","parseFloat","attributeValue","getElementIndex","parentNode","getElementMatches","p","Element","prototype","f","matches","webkitMatchesSelector","tagName","getClientRects","rect","getBoundingClientRect","win","pageXOffset","getElementParents","s","parents","getHighestZindex","bufferNode","buffer","parseInt","isNaN","getScrollTop","scrollingElement","getViewPort","innerWidth","innerHeight","insertAfterElement","referenceNode","insertBefore","nextSibling","isVisibleElement","throttle","timer","func","delay","getElementChild","childNodes","child","nodeType","getElementChildren","slide","dir","speed","callback","calcHeight","getElementActualHeight","calcPaddingTop","calcPaddingBottom","paddingBottom","slideUp","slideDown","getBreakpoint","breakpoint","getAttributeValueByBreakpoint","incomingAttr","jsonStr","matched","toJSON","resultKey","resultBreakpoint","EventHandlerUtil","metas","handlerId","meta","getEventMetasByName","setEventMetasByName","handerId","fired","getEventsMetaByHandlerId","setEventMetaByNameAndHandlerId","handler","setFiredByNameAndHandlerId","addEvent","removeEvent","routeChange","MixedWidget1","factoryName","critical","warning","connected","alert","alldevice","MixedWidget7","chartColor","chartHeight","chartRef","ApexCharts","chartOptions","destroy","baseColor","lightColor","series","plotOptions","radialBar","hollow","size","dataLabels","show","offsetY","formatter","track","background","colors","lineCap","MixedWidget10","extra","Name","MixedWidget49","objList","ncu_fw_ver","FieldName","imei","BAT_VOL","GAS_METER","F_DATETIME","RSSI","TANK_SIZE","pr","colurx","boxSizing","animation","MixedWidget20_1","normal","disable","DataLayerContext","DataLayer","reducer","useReducer","MyGreatPlace","uv","pv","amt","CookieComponent","cookie","RegExp","decodeURIComponent","cookieOptions","options","expires","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","DrawerStore","instanceId","drawerComponentObj","defaultDrawerOptions","overlay","baseClass","overlayClass","DrawerComponent","_element","overlayElement","toggleElement","instanceUid","shown","lastWidth","closeElement","_handlers","togglers","_getOption","closers","_toggle","_hide","_update","hasBaseClass","contains","bodyCanvasAttr","attr","optionName","_show","_deleteOverlay","removeAttribute","_createOverlay","createElement","elementZIndex","overlayZindex","append","overlayClassOption","removeChild","_getDirection","_getWidth","toggle","hide","isShown","goElement","off","drawer","getInstance","hasInstace","elementId","hideAll","getAllInstances","dr","updateAll","handleDismiss","closest","bootstrap","createInstances","initGlobalHandlers","defaultImageInputOptions","defaultImageInputQueires","componentName","instanseQuery","inputQuery","wrapperQuery","cancelQuery","removeQuery","hiddenQuery","ImageInputComponent","_options","_queries","inputElement","wrapperElement","cancelElement","removeElement","hiddenElement","queries","uid","_change","files","reader","FileReader","onload","readAsDataURL","_cancel","_remove","querySelector","handlers","ImageInput","createInsance","defaultScrollOptions","saveState","ScrollComponent","getOption","hasAttribute","getHeightType","getAutoHeight","dependencies","wrappers","len","borderTop","setupHeight","getHeight","heightType","setupState","pos","setupScrollHandler","scrollHandler","cookieId","destroyScrollHandler","resetHeight","heghtType","Function","getElement","scroll","resize","createInstance","defaultScrollTopOptions","ScrollTopComponent","_scroll","_go","go","goTop","defaultStepperOptions","startIndex","animationSpeed","animationNextClass","animationPreviousClass","StepperComponent","steps","btnNext","btnPrev","btnSubmit","totatStepsNumber","passedStepIndex","currentStepIndex","_goTo","refreshUI","initHandlers","stepDirection","_getStepDirection","getStepContent","getLastStepIndex","getTotalStepsNumber","isLastStep","isFirstStep","animateClass","isBetweenStep","goto","goNext","getNextStepIndex","goPrev","getPrevStepIndex","goFirst","goLast","getCurrentStepIndex","getPassedStepIndex","stepper","defaultStickyOptions","reverse","animationClass","StickyComponent","instanceName","eventTriggerState","lastScrollTop","offsetNum","st","enable","dataStickyAttr","attrValueInStr","attrValue","zindex","widthTarget","targetElement","offsetLeft","sticky","defaultToggleOptions","ToggleComponent","attribute","_isEnabled","_disable","_enable","isEnabled","elementTargetAttr","elementToggleAttr","defaultPasswordMeterOptions","minLength","checkUppercase","checkLowercase","checkDigit","checkChar","scoreHighlightClass","defaultPasswordMeterQueires","visibilityQuery","highlightQuery","PasswordMeterComponent","visibilityElement","highlightElement","score","checkSteps","reset","highlight","check","visitbility","visibleIcon","hiddenIcon","focus","test","count","items","slice","total","checkScore","getCheckScore","getScore","checkLength","checkLowerCase","passwordMeter","defaultPlaceOptions","mode","defaultPlaceQueires","attrQuery","PlaceComponent","parentSelector","prepend","place","defaultMenuOptions","dropdown","hoverTimeout","accordion","slideSpeed","expand","triggerElement","_setTriggerElement","_isTriggerElement","_getItemOption","_getItemElement","itemElement","sub","subItem","_getItemParentElement","parentItem","_getItemParentElements","parent","unshift","_getDropdownPopperConfig","placementOption","placement","flipValue","flip","offsetValue","strategy","modifiers","rootBoundary","altBoundary","fallbackPlacements","_getItemChildElement","_getItemChildElements","_getItemSubElement","_getCss","_getItemSubType","_isItemSubShown","_isItemDropdownPermanent","_isItemParentShown","_isItemSubElement","_hasItemSub","_getItemLinkElement","_getItemToggleElement","_showDropdown","hideDropdowns","parentZindex","initDropdownPopper","appendChild","reference","attach","popper","createPopper","_hideDropdown","destroyDropdownPopper","_showAccordion","_hideAccordions","subElement","_hideAccordion","itemsToHide","itemToHide","_reset","removeClass","_destroy","_mouseout","timeout","_mouseover","clearTimeout","_dismiss","itemSubType","_link","_click","click","mouseover","mouseout","getItemTriggerType","getItemSubType","getItemLinkElement","getItemToggleElement","getItemSubElement","getItemParentElements","isItemSubShown","isItemParentShown","getTriggerElement","isItemDropdownPermanent","hideAccordions","elementMenu","menuData","subMenu","skip","updateDropdowns","forceUpdate","menuItem","menuInstance","menuItems","menuObj","stopPropagation","defaultSearchOptions","keypress","enter","showOnFocus","defaultSearchQueires","SearchComponent","contentElement","formElement","spinnerElement","clearElement","submitElement","toolbarElement","resultsElement","suggestionElement","emptyElement","processing","menuObject","_getElement","getResponsiveFormMode","blur","charCode","keyCode","input","clear","responsiveFormMode","isProcessing","getQuery","getMenu","getFormElement","Search","Dictionary","param","getIndex","keys","getItems","K_BEFORE_AFTER_SCALES","l","scale","reduce","sum","ApiKey","RACT_APP_API_KEY","validateStatus","password","changepassword","registrationSchema","Yup","shape","required","when","is","oneOf","Registration","loading","setTempToken","Passwordaccesstoken","showPassword","setShowPassword","togglePasswordVisibility","formik","useFormik","validationSchema","setStatus","noValidate","placeholder","autoComplete","getFieldProps","forgotPasswordSchema","ForgotPassword","hasErrors","setHasErrors","isValid","API_URL","getUserByToken","firstname","saga","actionTypes","initialAuthState","accessToken","persistReducer","storage","whitelist","action","payload","actions","login","logout","requestUser","fulfillUser","setUser","takeLatest","loginSaga","put","registerSaga","userRequested","loginSchema","_token","Login","history","useHistory","isEndNode","facility","AuthPage","root","setBackgroundImage","backgroundImages","randomIndex","component","exact","UsersTableMock","Logout","useDispatch","auth","reload","table","username","refreshToken","roles","pic","fullname","lastname","occupation","companyName","phone","language","timeZone","website","emailSettings","emailNotification","sendCopyToPersonalEmail","activityRelatesEmail","youHaveNewNotifications","youAreSentADirectMessage","someoneAddsYouAsAsAConnection","uponNewOrder","newMembershipApproval","memberRegistration","updatesFromKeenthemes","newsAboutKeenthemesProductsAndFeatureUpdates","tipsOnGettingMoreOutOfKeen","thingsYouMissedSindeYouLastLoggedIntoKeen","newsAboutStartOnPartnerProductsAndOtherServices","tipsOnStartBusinessProducts","communication","sms","address","addressLine","city","postCode","socialNetworks","linkedIn","facebook","twitter","instagram","connect","connector","didRequest","showSplashScreen","setShowSplashScreen","useSelector","shallowEqual","a","rootSaga","rootReducer","combineReducers","all","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","configureStore","devTools","enhancers","reduxBatch","persistor","persistStore","run","serializedState","localStorage","getItem","isLogged","loadState","stringify","I18N_CONFIG_KEY","REACT_APP_I18N_CONFIG_KEY","selectedLang","I18nContext","MetronicI18nProvider","lang","ls","er","getConfig","allMessages","de","en","es","fr","ja","zh","I18nProvider","locale","messages","Toolbar1","toolbarContainer","Toolbar","ScrollTop","isFirstRun","reInitialization","stickyHeader","updateHeaderSticky","MasterInit","MasterLayout","AsideDefault","Content","Footer","validcoderegex","breadCrumb","GlobalFilter","setValue","setError","InitialLoading","setInitialLoading","handleErros","groupCode","pakages","AllLayout","sector","fK_SectorCode","AllAlerts","Dashboard","TagConfig","inputReference","useQuill","quill","quillRef","clipboard","dangerouslyPasteHTML","delta","oldDelta","source","hm","innerHTML","onkeyPress","fontStyle","rows","cols","Index","seX","setY","setItems","inputRef","currEditObject","setcurrEditObject","setFile","uploading","setUploading","isLoading","commentBox","setCommentBox","setFileName","isImageChanged","group","packages","newitem","uuidv4","luminosity","duplicate","copyItem","onSave","layoutTemp","editorData","onKeyPress","which","file","cb","onerror","getBase64","addCircle","addRectangle","addLine","fromx","fromy","tox","toy","atan2","points","pline","fabric","Polyline","opacity","originX","originY","selectable","renderAll","drawArrow","accept","FormData","onUploadProgress","loaded","Image","fromURL","oImg","hidden","for","updateText","addText","deleteSelected","borderStyle","newArr","updatePos","openOp","vl","Alert","setNotification","job","setJobs","setFacility","comment","validationRules","getNotificationType","getSheduleJobs","getfacility","getFormDetails","spread","getFormDetailsResponse","getnotifications","getJobs","fK_Layout","fK_NotificationCode","fK_SheduleJobCode","createdBy","resolvedBy","resolvedOn","closedBy","closedOn","AllGroups","NewLayout","setCode","copy","setCopy","copyMessage","setCopyMessage","copyMessageStatus","setCopyMessageStatus","orginalPacket","setOrginalPacket","clonePacket","setClonePacket","globalCss","onCopied","orginal","handleChange2","handleChangeOrginalPacket","handleChangeClonePacket","checked","Design","ObjectViewer","DisplayName","setDisplayName","Hub","setHub","filterList","setfilterList","pk","includes","HubFilter","Filter","LoadingSentrum","SectorManager","subSectors","IsRefesh","isExpired","newObjectArray","FacilityManager","detail","facilities","itemCount","FactoriesManager","CICL_Critical","CICL_Warning","CICL_Alert","CICL_AllConnect","CICL_Connect","BusinessUnitManager","factoryCode","businessUnits","factory","businessUnitModels","fK_SubSectorCode","fK_Factory","subsector","BusinessUnitDetailManager","units","packet","IsDataReceived","datapacket","Code","BusinessUnitDetailManager2","createBrowserHistory","PrivateRoutes","FactoryDetail","FactoryDetail2","AlertMgt","Factory","Factories","Sector","Error500","Error404","ErrorsPage","DetailDashboard","ViewAll","Routes","App","basename","fallback","Chart","registerables","ReactDOM","textStyle_","K_SCALE_NORMAL","MapMarker","_onShowBallonStateChange","alive","onShowBallonStateChange","_onHoverStateChange","onHoverStateChange","_onMouseEnterContent","$onMouseAllow","_onMouseLeaveContent","_onCloseClick","onCloseClick","$hover","showBallon","hoveredAtTable","markerWidth","markerOffset","markerHolderStyle","origin","getMarkerHolderStyle","markerStyle","sizeOriginX","sizeOriginY","willChange","backgroundSize","backgroundRepeat","WebkitTransition","WebkitTransformOrigin","getMarkerStyle","zIndexStyle","textStyle","markerTextStyle","colorHex","colorHTML","calcMarkerTextStyle","showHint","hoverState","showBallonState","mapWidth","$geoService","getWidth","markerDim","$getDimensions","$dimensionKey","hintBaloonHorizontalPosStyle","K_BALLOON_WIDTH","leftX","rightX","mapOffset","getHintBaloonHorizontalPosStyle","hintBaloonVerticalPosClass","hintBalloonBottomOffsetClass","K_HINT_ARROW_WIDTH","noTransClass","noTransBalloonClass","imageClass","image","styleMarkerMarker","imageStyle","contrast","WebkitTransform","WebkitFilter","calcMarkerMarkerStyle","hintType","withText","onMouseEnter","onMouseLeave","prevProps","getWindowDimensions","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","AsideMenuItemWithSub","fontIcon","hasBullet","AsideMenuItem","active","AsideMenuMain","useIntl","index3","itm1","AsideMenu","asideMenuCSSClasses","scrollRef","asideMenu","footerContainer","HeaderUserMenu","lastName","appName","framework","dbName","dbType","nameOnCard","cardNumber","cardExpiryMonth","cardExpiryYear","cardCvv","contentContainer","LAYOUT_CONFIG_KEY","headerMobile","asideToggle","sidebar","typeOptions","bodyStyles","initLayout","initHeader","initPageTitle","initToolbar","initContent","initAside","initFooter","initAsideMenu","fieldsToUpdate","updatedConfig","initCSSClasses","initCSSVariables","initHTMLAttributes","isLoaded","initConfig","getLayout"],"mappings":"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","file":"static/js/main.58f05987.chunk.js","sourcesContent":["export default function Loading() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Loading...\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import {KTSVG, toAbsoluteUrl} from '../../../_metronic/helpers'\r\n//https://fkhadra.github.io/react-toastify/introduction/\r\n//https://fkhadra.github.io/react-toastify/api/toast\r\n\r\nfunction ErrorMessage(props) {\r\n \r\n if (!props.error.text) {\r\n return <>\r\n }\r\n\r\n /*\r\n if (props.error.status === 'E') {\r\n toast.error(props.error.text)\r\n } else if (props.error.status === 'S') {\r\n console.log('ss')\r\n toast.success(props.error.text)\r\n }*/\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {props.error.status === 'E' ? (\r\n
\r\n \r\n
\r\n
\r\n

Error!

\r\n
{props.error.text}
\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n
\r\n

Record Updated Successfully!

\r\n
{props.error.text}
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ErrorMessage\r\n","import clsx from 'clsx'\r\nimport React, { FC } from 'react'\r\nimport { KTSVG, toAbsoluteUrl } from '../../../helpers'\r\nimport { HeaderNotificationsMenu, HeaderUserMenu, QuickLinks } from '../../../partials'\r\nimport { useLayout } from '../../core'\r\nimport { useDataLayerValue } from '../../../../DataLayer'\r\n\r\nconst toolbarButtonMarginClass = 'ms-1 ms-lg-3',\r\n toolbarButtonHeightClass = 'w-30px h-30px w-md-40px h-md-40px',\r\n toolbarUserAvatarHeightClass = 'symbol-30px symbol-md-40px',\r\n toolbarButtonIconSizeClass = 'svg-icon-1'\r\n\r\nconst Topbar: FC = () => {\r\n const { config } = useLayout()\r\n const [{ user }, dispatch] = useDataLayerValue()\r\n\r\n return (\r\n
\r\n {/* Search\r\n
\r\n \r\n
*/}\r\n {/* Activities\r\n
\r\n \r\n \r\n
\r\n
\r\n */}\r\n {/* Quick links\r\n
\r\n \r\n \r\n
\r\n \r\n */}\r\n\r\n {/* CHAT \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n */}\r\n {/* NOTIFICATIONS \r\n
\r\n \r\n \r\n
\r\n \r\n */}\r\n\r\n {/* begin::User */}\r\n \r\n \r\n {user?.firstName[0] ?? \"T\"}\r\n \r\n \r\n\r\n \r\n\r\n {/* end::User */}\r\n\r\n {/* begin::Aside Toggler */}\r\n {config.header.left === 'menu' && (\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\nexport { Topbar }\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport clsx from 'clsx'\r\nimport React, { useEffect } from 'react'\r\nimport { Link, useLocation } from 'react-router-dom'\r\nimport { MenuComponent } from '../../../assets/ts/components'\r\nimport { KTSVG, toAbsoluteUrl } from '../../../helpers'\r\nimport { useLayout } from '../../core'\r\nimport { Header } from './Header'\r\nimport { DefaultTitle } from './page-title/DefaultTitle'\r\nimport { Topbar } from './Topbar'\r\n\r\nexport function HeaderWrapper() {\r\n const { pathname } = useLocation()\r\n const { config, classes, attributes } = useLayout()\r\n const { header, aside } = config\r\n\r\n useEffect(() => {\r\n MenuComponent.reinitialization()\r\n }, [pathname])\r\n\r\n var content = 'INDUSTRYX'\r\n if (window.location.hostname.toLowerCase() === 'e2eq.lk') {\r\n content = 'E2EQ'\r\n }\r\n if (window.location.hostname.toLowerCase() === 'portal.smartgas.biz') {\r\n content = 'SMARTGAS'\r\n }\r\n\r\n\r\n\r\n return (\r\n \r\n \r\n {/* begin::Aside mobile toggle */}\r\n {aside.display && (\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n {/* end::Aside mobile toggle */}\r\n {/* begin::Logo */}\r\n {!aside.display && (\r\n
\r\n \r\n Logo\r\n \r\n
\r\n )}\r\n {/* end::Logo */}\r\n\r\n\r\n
\r\n {content === 'INDUSTRYX' && (\r\n \r\n )}\r\n\r\n {content === 'E2EQ' && (\r\n\r\n header\r\n )}\r\n {content === 'SMARTGAS' && (\r\n\r\n header\r\n )}\r\n\r\n
\r\n\r\n\r\n {/* begin::Wrapper */}\r\n
\r\n\r\n {header.left === 'menu' && (\r\n
\r\n {/*
*/}\r\n
\r\n )}\r\n\r\n\r\n {header.left === 'page-title' && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n
\r\n \r\n
\r\n
\r\n {/* end::Wrapper */}\r\n \r\n \r\n )\r\n}\r\n","import React, {useState, useEffect, useRef, PureComponent} from 'react'\r\nimport {\r\n PieChart,\r\n Pie,\r\n LineChart,\r\n BarChart,\r\n Bar,\r\n AreaChart,\r\n Label,\r\n Area,\r\n Line,\r\n XAxis,\r\n YAxis,\r\n CartesianGrid,\r\n Tooltip,\r\n Legend,\r\n Cell,\r\n ResponsiveContainer,\r\n} from 'recharts'\r\nimport parse from 'html-react-parser'\r\nimport ChartJ from './chart/Chartj'\r\n\r\nimport './../../../../_metronic/assets/sass/kntdashbaord.css'\r\nimport Draggable from 'react-draggable'\r\nimport Popup from 'reactjs-popup'\r\nimport 'reactjs-popup/dist/index.css'\r\nimport Chart from './chart/Chart'\r\nvar randomColor = require('randomcolor')\r\n\r\nfunction SensorArea(props) {\r\n const RADIAN = Math.PI / 180\r\n const Gradients = (item) => {\r\n var lines = []\r\n if (item.lines !== undefined && item.lines.length > 0) {\r\n for (let index = 0; index < item.lines.length; index++) {\r\n const element = item.lines[index]\r\n lines.push(\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n return lines\r\n }\r\n\r\n const Article = (item, LineCode) => {\r\n var lines = []\r\n if (item.lines !== undefined && item.lines.length > 0) {\r\n for (let index = 0; index < item.lines.length; index++) {\r\n const element = item.lines[index]\r\n switch (element?.Line ?? LineCode) {\r\n case 'Line':\r\n lines.push(\r\n \r\n )\r\n break\r\n case 'Area':\r\n lines.push(\r\n \r\n )\r\n break\r\n case 'Bar':\r\n lines.push(\r\n \r\n )\r\n break\r\n case 'Pie':\r\n lines.push(\r\n \r\n )\r\n break\r\n default:\r\n lines.push(\r\n \r\n )\r\n break\r\n }\r\n }\r\n }\r\n return lines\r\n }\r\n\r\n const htmlDecode = (input) => {\r\n var e = document.createElement('div')\r\n e.innerHTML = input\r\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue\r\n }\r\n\r\n const renderCustomizedLabel = ({cx, cy, midAngle, innerRadius, outerRadius, percent, index}) => {\r\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN)\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN)\r\n\r\n return (\r\n cx ? 'start' : 'end'}\r\n dominantBaseline='central'\r\n >\r\n {`${(percent * 100).toFixed(0)}%`}\r\n \r\n )\r\n }\r\n\r\n /*try {\r\n // console.log(\"CODE\"+props.layout.globalJs)\r\n eval(props.layout.globalJs)\r\n } catch (error) {\r\n // console.log(\"E\"+error);\r\n }*/\r\n\r\n return (\r\n <>\r\n {props.state.SensorList.map((item, index) => {\r\n if (item.note === '


') {\r\n item.note = ''\r\n }\r\n\r\n return (\r\n <>\r\n false}>\r\n
\r\n \r\n {(item.type == 11 || item.type == 12) && item.displayName !== '' && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n )}\r\n\r\n {(item.type == 11 || item.type == 12) && item.displayName === '' && (\r\n
\r\n \r\n \r\n \r\n \r\n {' '}\r\n {item.value}\r\n \r\n {item.note === '' && (\r\n <>\r\n {item.icon === 'dot' && (\r\n \r\n )}\r\n {item.icon !== '' && item.icon !== 'dot' && (\r\n \r\n )}\r\n {item.isNotify === true && (\r\n \r\n {' '}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {item.note !== '' && (\r\n <>\r\n {item.icon === 'dot' && (\r\n \r\n )}\r\n {item.icon !== '' && item.icon !== 'dot' && (\r\n \r\n )}\r\n {item.isNotify === true && (\r\n \r\n {' '}\r\n \r\n )}\r\n \r\n }\r\n position='top left'\r\n modal\r\n >\r\n {(close) => (\r\n
\r\n Documentation\r\n \r\n ×\r\n \r\n
\r\n \r\n {' '}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {item.type == 20 && (\r\n \r\n \r\n \r\n \r\n \r\n {'' + item.displayName}\r\n \r\n \r\n \r\n \r\n {' '}\r\n {'' + item.value}\r\n \r\n \r\n \r\n {item.note === '' && (\r\n <>\r\n {item.icon === 'dot' && (\r\n <>\r\n \r\n {item.isNotify === true && (\r\n \r\n {' '}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {item.icon !== '' && item.icon !== 'dot' && (\r\n <>\r\n \r\n {item.isNotify === true && (\r\n \r\n {' '}\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n {item.note !== '' && (\r\n <>\r\n {item.isNotify === true && (\r\n \r\n {' '}\r\n \r\n )}\r\n {item.icon === 'dot' && (\r\n \r\n )}\r\n {item.icon !== '' && item.icon !== 'dot' && (\r\n \r\n )}\r\n \r\n }\r\n position='top left'\r\n modal\r\n >\r\n {(close) => (\r\n
\r\n Documentation\r\n \r\n ×\r\n \r\n
\r\n \r\n {' '}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {item.type == 19 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {item.type == 10 && (\r\n
\r\n \r\n {' '}\r\n {item.displayName}{' '}\r\n \r\n {item.icon === 'dot' && (\r\n <>\r\n \r\n {item.isNotify === true && (\r\n \r\n {' '}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {item.icon !== '' && item.icon !== 'dot' && (\r\n <>\r\n \r\n {item.isNotify === true && (\r\n \r\n {' '}\r\n \r\n )}\r\n \r\n )}\r\n
\r\n )}\r\n\r\n {item.type == 14 && (\r\n
\r\n \r\n {Gradients(item)}\r\n {item.isEnableCartesianGrid && }\r\n \r\n \r\n \r\n \r\n\r\n {Article(item, 'Area')}\r\n {item.isLegend && (\r\n \r\n )}\r\n {item.isTooltip && }\r\n \r\n
\r\n )}\r\n\r\n {item.type == 13 && (\r\n
\r\n \r\n {item.isEnableCartesianGrid && }\r\n \r\n \r\n \r\n \r\n {item.isLegend && (\r\n \r\n )}\r\n\r\n {item.isTooltip && }\r\n {Article(item, 'Line')}\r\n \r\n
\r\n )}\r\n\r\n {item.type == 26 && (\r\n
\r\n <>\r\n \r\n \r\n
\r\n )}\r\n\r\n {item.type == 17 && (\r\n
\r\n \r\n \r\n {Article(item, 'Pie')}\r\n \r\n {item.isLegend && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n\r\n {item.type == 15 && (\r\n
\r\n \r\n {item.isEnableCartesianGrid && }\r\n \r\n \r\n \r\n \r\n\r\n {item.isLegend && (\r\n \r\n )}\r\n {item.isTooltip && }\r\n {Article(item, 'Bar')}\r\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 SensorArea\r\n//https://codesandbox.io/s/k2ds4?file=/src/App.js:128-4341\r\n","import React, {useState, useEffect, useRef} from 'react'\r\nimport './../../../../_metronic/assets/sass/kntdashbaord.css'\r\nimport {HubConnectionBuilder, JsonHubProtocol} from '@microsoft/signalr'\r\nimport axios from 'axios'\r\nimport {PageLink, PageTitle} from '../../../../_metronic/layout/core'\r\nimport useWindowDimensions from '../../helpers/WindowDimension'\r\nimport Dictionary from '../../helpers/Dictionary'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../../_metronic/helpers'\r\nimport {Dropdown1} from '../../../../_metronic/partials'\r\nimport {AsideDefault} from '../../../../_metronic/layout/components/aside/AsideDefault'\r\nimport {Footer} from '../../../../_metronic/layout/components/Footer'\r\nimport {HeaderWrapper} from '../../../../_metronic/layout/components/header/HeaderWrapper'\r\nimport {PageDataProvider} from '../../../../_metronic/layout/core'\r\nimport {Content} from '../../../../_metronic/layout/components/Content'\r\nimport {\r\n ChartsWidget1,\r\n TablesWidget1,\r\n ListsWidget5,\r\n TablesWidget5,\r\n} from '../../../../_metronic/partials/widgets'\r\nimport {stat} from 'fs'\r\nimport Confetti from 'react-confetti'\r\nimport ImageMapper from 'react-image-mapper'\r\nimport Draggable from 'react-draggable'\r\nimport {v4 as uuidv4} from 'uuid'\r\nimport Popup from 'reactjs-popup'\r\nimport Chart from './chart/Chart'\r\nimport SensorArea from './SensorArea'\r\nimport 'reactjs-popup/dist/index.css'\r\nimport {auto, hide, right} from '@popperjs/core'\r\nimport {ToastContainer, toast, Slide, Zoom, Flip, Bounce} from 'react-toastify'\r\nimport ChartJ from './chart/Chartj'\r\nimport {FabricJSCanvas, useFabricJSEditor} from 'fabricjs-react'\r\nimport {fabric} from 'fabric'\r\nimport Map from './Map'\r\n\r\nimport 'react-toastify/dist/ReactToastify.css'\r\nvar randomColor = require('randomcolor')\r\n\r\nfunction Display(props) {\r\n const [connection, setConnection] = useState(null)\r\n const reconnectRef = useRef(0)\r\n const urlParams = new URLSearchParams(window.location.search)\r\n const [isloading, setLoading] = useState(true)\r\n const [item, setItem] = useState('')\r\n const [SensorList, setsensorList] = useState([])\r\n const sensors = useRef([])\r\n const {selectedObjects, setSelectedObject, editor, onReady} = useFabricJSEditor({\r\n defaultStrokeColor: 'red',\r\n selection: false,\r\n })\r\n const [text, setText] = useState('')\r\n const [strokeColor, setStrokeColor] = useState('')\r\n const [fillColor, setFillColor] = useState('')\r\n const [isload, setisload] = useState(true)\r\n\r\n //editor?.addRectangle({ fill: \"red\", stroke: \"blue\" });\r\n /*selectedObjects[0]?.set({\r\n fill: \"red\",\r\n stroke: \"blue\",\r\n /* //Movement:\r\n lockMovementX : true,\r\n lockMovementY : true,\r\n \r\n //Scaling:\r\n lockScalingX : true,\r\n lockScalingY : true,\r\n \r\n // Rotation:\r\n lockRotation : true,\r\n \r\n // Object's frame/bounidngBox:\r\n hasControls : false,\r\n hasBorders : false,\r\n //left: selectedObjects[0].left + 100,\r\n });\r\n \r\n setTimeout(() => {\r\n if(isload){\r\n const data = JSON.parse(\r\n '{\"version\":\"4.3.1\",\"objects\":[{\"type\":\"circle\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":100,\"top\":100,\"width\":40,\"height\":40,\"fill\":\"rgba(255, 255, 255, 0.0)\",\"stroke\":\"#000000\",\"strokeWidth\":1,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":1,\"scaleY\":1,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"radius\":20,\"startAngle\":0,\"endAngle\":6.283185307179586},{\"type\":\"text\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":253,\"top\":102,\"width\":95.55,\"height\":18.08,\"fill\":\"#000000\",\"stroke\":null,\"strokeWidth\":1,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":2.43,\"scaleY\":2.43,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"text\":\"Some text\",\"fontSize\":16,\"fontWeight\":\"normal\",\"fontFamily\":\"Arial\",\"fontStyle\":\"normal\",\"lineHeight\":1.16,\"underline\":false,\"overline\":false,\"linethrough\":false,\"textAlign\":\"left\",\"textBackgroundColor\":\"\",\"charSpacing\":0,\"minWidth\":20,\"splitByGrapheme\":false,\"styles\":{}},{\"type\":\"rect\",\"lockMovementX\":\"True\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":109,\"top\":212,\"width\":40,\"height\":40,\"fill\":\"rgba(255, 255, 255, 0.0)\",\"stroke\":\"#000000\",\"strokeWidth\":1,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":1,\"scaleY\":1,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"rx\":0,\"ry\":0},{\"type\":\"image\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":499,\"top\":86,\"width\":1200,\"height\":900,\"fill\":\"rgb(0,0,0)\",\"stroke\":null,\"strokeWidth\":0,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":0.2,\"scaleY\":0.2,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"cropX\":0,\"cropY\":0,\"src\":\"https://miro.medium.com/max/1200/1*mk1-6aYaf_Bes1E3Imhc0A.jpeg\",\"crossOrigin\":null,\"filters\":[]},{\"type\":\"polyline\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":483.78,\"top\":339.22,\"width\":50.88,\"height\":50.88,\"fill\":\"white\",\"stroke\":\"black\",\"strokeWidth\":2,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":1,\"scaleY\":1,\"angle\":262.52,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"points\":[{\"x\":100,\"y\":100},{\"x\":99.11611652351681,\"y\":100.88388347648318},{\"x\":145.58058261758407,\"y\":147.34834957055045},{\"x\":142.92893218813452,\"y\":150},{\"x\":150,\"y\":150},{\"x\":150,\"y\":142.92893218813452},{\"x\":147.34834957055045,\"y\":145.58058261758407},{\"x\":100.88388347648318,\"y\":99.11611652351681},{\"x\":100,\"y\":100}]},{\"type\":\"image\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":197,\"top\":132,\"width\":1200,\"height\":900,\"fill\":\"rgb(0,0,0)\",\"stroke\":null,\"strokeWidth\":0,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":0.2,\"scaleY\":0.2,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"cropX\":0,\"cropY\":0,\"src\":\"https://miro.medium.com/max/1200/1*mk1-6aYaf_Bes1E3Imhc0A.jpeg\",\"crossOrigin\":null,\"filters\":[]}]}'\r\n );\r\n editor?.canvas.loadFromJSON(data);\r\n console.log(JSON.stringify(editor?.canvas))\r\n setisload(false);\r\n }\r\n }, 5000);\r\n \r\n */\r\n\r\n const [layout, setLayout] = useState({\r\n id: props.match?.params?.id ?? props.layout, //urlParams.get('id')??props.layout,\r\n layoutName: '',\r\n imageData: null,\r\n devices: [],\r\n isZoom: false,\r\n globalJs: '',\r\n category: '',\r\n designObject: [],\r\n breadCrumbs: [],\r\n })\r\n const [state, setState] = useState({\r\n Data: {},\r\n DashboardStat: 'CONNECTING',\r\n SensorList: [],\r\n })\r\n\r\n const hubService = process.env.REACT_APP_MIDAS_HUB //\"https://signalr.midassit.com\";\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection\r\n .start()\r\n .then((result) => {\r\n setState({\r\n ...state,\r\n DashboardStat: 'CONNECTED',\r\n })\r\n setLoading(false)\r\n reconnectRef.current = 0\r\n //console.log('Connected!');\r\n connection.onreconnecting((error) => {\r\n setState({\r\n ...state,\r\n DashboardStat: 'RECONNECTING',\r\n })\r\n console.log('Connection lost due to error . Reconnecting.')\r\n })\r\n\r\n // Reconnect if hub disconnects\r\n connection.onclose(function (e) {\r\n setState({\r\n ...state,\r\n DashboardStat: 'DISCONNECTED',\r\n })\r\n //console.log('Disconnected');\r\n })\r\n\r\n connection.on('ReceiveMessage', (message) => {\r\n if (typeof message === 'string' || message instanceof String) {\r\n message = JSON.parse(message)\r\n }\r\n //console.log(message)\r\n if (message.key !== 'SensorData') return\r\n\r\n let dataPacket = JSON.parse(message.data)\r\n\r\n if (\r\n dataPacket.TimeStamp === undefined ||\r\n Math.round((new Date() - new Date(dataPacket.TimeStamp)) / 1000) > 10\r\n ) {\r\n return\r\n } else {\r\n if (dataPacket.Packet !== layout.id.replace('ly', '')) {\r\n return\r\n }\r\n\r\n console.log(message.data)\r\n let newElements = {}\r\n Object.entries(dataPacket).map(([key, value]) => {\r\n newElements[key] = value\r\n })\r\n\r\n Object.entries(dataPacket).map(([key, value]) => {\r\n for (let index = 0; index < sensors.current.length; index++) {\r\n const element = sensors.current[index]\r\n\r\n if (element.machineNo === '') continue\r\n\r\n if (element.displayName === '') element.displayName = ' '\r\n\r\n if (element.icon === undefined) element.icon = 'dot'\r\n\r\n if (\r\n element.isNotify === undefined ||\r\n element.isNotify === '' ||\r\n element.isNotify === null\r\n )\r\n element.isNotify = false\r\n\r\n if (!element.lastUpdate) {\r\n element.lastUpdate = new Date()\r\n } else if (Math.round((new Date() - new Date(element.lastUpdate)) / 1000) > 60) {\r\n if (\r\n element.type == 14 ||\r\n element.type == 13 ||\r\n element.type == 17 ||\r\n element.type == 15\r\n ) {\r\n console.log(\r\n '[chart data cleared ' + element.machineNo.toString().toLowerCase() + ']'\r\n )\r\n element.value = []\r\n } else {\r\n element.value = '---'\r\n element.color = 'black'\r\n }\r\n }\r\n\r\n let object = element.object.toString().toLowerCase()\r\n let packetType = dataPacket.Plant + '.' + dataPacket.Packet\r\n if (props?.object !== undefined && props?.object !== '') {\r\n object = props?.object.toString().toLowerCase()\r\n }\r\n console.log(element.machineNo + '==' + key + ' ---' + packetType + '==' + object)\r\n if (\r\n element.machineNo.toString().toLowerCase() === key.toString().toLowerCase() &&\r\n packetType.toString().toLowerCase() === object\r\n ) {\r\n element.lastUpdate = new Date()\r\n element.value = value\r\n element.color = 'black'\r\n element.notification = {\r\n toastId: key.toString().toLowerCase(),\r\n position: 'top-right',\r\n type: 'info',\r\n autoClose: false, // or set time\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n // pauseOnHover: true,\r\n draggable: false,\r\n progress: undefined,\r\n transition: Bounce,\r\n }\r\n console.log(element.machineNo + ' ---------Y-------> ' + value)\r\n try {\r\n // alert(layout.globalJs)\r\n eval(layout.globalJs + ';' + element.formula)\r\n // eval(element.formula)\r\n } catch (error) {\r\n element.value = '---'\r\n element.color = 'black'\r\n // console.log(element.formula)\r\n console.log(error)\r\n }\r\n }\r\n }\r\n })\r\n setState({\r\n ...state,\r\n SensorList: sensors.current,\r\n DashboardStat: 'CONNECTED',\r\n })\r\n }\r\n })\r\n })\r\n .catch((e) => {\r\n console.log('Connection failed: ', e)\r\n })\r\n }\r\n }, [connection])\r\n\r\n useEffect(() => {\r\n axios({\r\n method: 'get',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/sensor-monitor/layout?layout=' + layout.id,\r\n headers: {},\r\n }).then((response) => {\r\n setLayout({\r\n ...layout,\r\n category: response.data?.result?.category ?? 'MAP',\r\n layoutName: response.data.result.layoutName,\r\n imageData: 'data:image/png;base64,' + response.data.result.imageData,\r\n isZoom: response.data.result.isZoom,\r\n globalJs: response.data.result.globalJs,\r\n designObject: response.data.result.designObject,\r\n breadCrumbs: response.data.result.breadCrumbs,\r\n })\r\n // alert(response.data.result.imageData)\r\n\r\n try {\r\n //console.log(response.data.result.globalJs)\r\n eval(response.data.result.globalJs)\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n\r\n setState({\r\n ...state,\r\n SensorList: response.data.result.devices,\r\n })\r\n\r\n sensors.current = response.data.result.devices\r\n\r\n setTimeout(() => {\r\n for (let index = 0; index < sensors.current.length; index++) {\r\n const element = sensors.current[index]\r\n try {\r\n eval(layout.globalJs + ';' + element.tempFeild1)\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n setState({\r\n ...state,\r\n SensorList: sensors.current,\r\n DashboardStat: 'INITIALIZATION',\r\n })\r\n setTimeout(() => {\r\n const newConnection = new HubConnectionBuilder()\r\n .withUrl(hubService + '/' + response.data.result.hub + '/Hub')\r\n .withAutomaticReconnect()\r\n .build()\r\n setConnection(newConnection)\r\n }, 100)\r\n }, 500)\r\n })\r\n }, [])\r\n\r\n if (editor != undefined && isload && layout.designObject.length > 0) {\r\n var desginObject = {\r\n version: '4.3.1',\r\n objects: [],\r\n }\r\n for (let index = 0; index < layout.designObject.length; index++) {\r\n const element = layout.designObject[index]\r\n var ds = JSON.parse(element.tempFeild1)\r\n //Movement:\r\n ds.lockMovementX = true\r\n ds.lockMovementY = true\r\n\r\n //Scaling:\r\n ds.lockScalingX = true\r\n ds.lockScalingY = true\r\n\r\n // Rotation:\r\n ds.lockRotation = true\r\n\r\n // Object's frame/bounidngBox:\r\n ds.hasControls = false\r\n ds.hasBorders = false\r\n desginObject.objects.push(ds)\r\n }\r\n editor?.canvas.loadFromJSON(desginObject)\r\n\r\n setisload(false)\r\n }\r\n\r\n let bodyCss = {\r\n overflowX: 'hidden',\r\n }\r\n\r\n function hideAllNotification() {\r\n toast.dismissAll()\r\n }\r\n\r\n function hideNotification(notification) {\r\n toast.dismiss(notification.toastId)\r\n }\r\n\r\n function getTransactionType(transition) {\r\n switch (transition.toLowerCase()) {\r\n case 'flip':\r\n return Flip\r\n case 'slide':\r\n return Slide\r\n case 'zoom':\r\n return Zoom\r\n\r\n default:\r\n return Bounce\r\n }\r\n }\r\n function getType(type) {\r\n switch (type.toLowerCase()) {\r\n case 'info':\r\n return toast.TYPE.INFO\r\n case 'error':\r\n return toast.TYPE.ERROR\r\n case 'success':\r\n return toast.TYPE.SUCCESS\r\n case 'warning':\r\n return toast.TYPE.WARNING\r\n default:\r\n return toast.TYPE.INFO\r\n }\r\n }\r\n\r\n function showNotification(notification) {\r\n notification.transition = getTransactionType(notification.transition)\r\n if (toast.isActive(notification.toastId)) {\r\n notification.render = notification.message\r\n notification.type = getType(notification.type)\r\n toast.update(notification.toastId, notification)\r\n return\r\n }\r\n\r\n switch (notification.type) {\r\n case 'error':\r\n toast.error(notification.message, notification)\r\n break\r\n case 'info':\r\n toast.info(notification.message, notification)\r\n break\r\n case 'warning':\r\n toast.warn(notification.message, notification)\r\n break\r\n case 'success':\r\n toast.success(notification.message, notification)\r\n break\r\n default:\r\n toast(notification.message)\r\n break\r\n }\r\n }\r\n\r\n function Notification(notification) {\r\n if (toast.isActive(notification.toastId)) {\r\n toast.dismiss(notification.toastId)\r\n }\r\n switch (notification.Type) {\r\n case 'error':\r\n toast.error(notification.Message, {\r\n toastId: notification?.toastId ?? 'default',\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n\r\n case 'info':\r\n toast.info(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification?.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'warning':\r\n toast.warn(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'success':\r\n toast.success(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification?.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n default:\r\n toast('Wow so easy!')\r\n break\r\n }\r\n }\r\n\r\n let backcss = {\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 'auto',\r\n width: '1200px',\r\n }\r\n\r\n let sensorcss = {\r\n position: 'absolute',\r\n width: '1200px',\r\n }\r\n\r\n if (!layout.isZoom) {\r\n backcss = {\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 'auto',\r\n }\r\n\r\n sensorcss = {\r\n position: 'absolute',\r\n }\r\n\r\n bodyCss = {}\r\n }\r\n\r\n if (isloading) {\r\n return (\r\n <>\r\n \r\n {/* begin::Content */}\r\n
\r\n {/* begin::Logo */}\r\n

industryX Automation

\r\n\r\n {/* end::Logo */}\r\n {/* begin::Wrapper */}\r\n
\r\n
\r\n \r\n <>\r\n {' '}\r\n {state.DashboardStat}{' '}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {/* end::Wrapper */}\r\n
\r\n {/* end::Content */}\r\n {/* begin::Footer */}\r\n \r\n {/* end::Footer */}\r\n \r\n \r\n )\r\n }\r\n\r\n if (layout.category === 'MAP') {\r\n return (\r\n <>\r\n \r\n {layout.layoutName}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {layout.layoutName}\r\n \r\n \r\n \r\n\r\n {/* */}\r\n \r\n
\r\n {/* \r\n {state.DashboardStat === 'DISABLED' && (\r\n \r\n {state.DashboardStat}\r\n \r\n )}\r\n {state.DashboardStat === 'ACTIVE' && (\r\n \r\n {state.DashboardStat}\r\n \r\n )}\r\n {state.DashboardStat === 'CONNECTED' && (\r\n \r\n {state.DashboardStat}\r\n \r\n )}\r\n {state.DashboardStat === 'CONNECTING' && (\r\n \r\n {state.DashboardStat}\r\n \r\n )}\r\n\r\n */}\r\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 Display\r\n//https://codesandbox.io/s/k2ds4?file=/src/App.js:128-4341\r\n","import React, {\r\n FC,\r\n createContext,\r\n useContext,\r\n useState,\r\n useEffect,\r\n SetStateAction,\r\n Dispatch,\r\n} from 'react'\r\n\r\nconst MetronicSplashScreenContext = createContext> | undefined>(\r\n undefined\r\n)\r\n\r\nconst MetronicSplashScreenProvider: FC = ({children}) => {\r\n const [count, setCount] = useState(0)\r\n let visible = count > 0\r\n\r\n useEffect(() => {\r\n const splashScreen = document.getElementById('splash-screen')\r\n\r\n // Show SplashScreen\r\n if (splashScreen && visible) {\r\n splashScreen.classList.remove('hidden')\r\n\r\n return () => {\r\n splashScreen.classList.add('hidden')\r\n }\r\n }\r\n\r\n // Hide SplashScreen\r\n let timeout: number\r\n if (splashScreen && !visible) {\r\n timeout = window.setTimeout(() => {\r\n splashScreen.classList.add('hidden')\r\n }, 3000)\r\n }\r\n\r\n return () => {\r\n clearTimeout(timeout)\r\n }\r\n }, [visible])\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nconst LayoutSplashScreen: FC<{visible?: boolean}> = ({visible = true}) => {\r\n // Everything are ready - remove splashscreen\r\n const setCount = useContext(MetronicSplashScreenContext)\r\n\r\n useEffect(() => {\r\n if (!visible) {\r\n return\r\n }\r\n\r\n if (setCount) {\r\n setCount((prev) => {\r\n return prev + 1\r\n })\r\n }\r\n\r\n return () => {\r\n if (setCount) {\r\n setCount((prev) => {\r\n return prev - 1\r\n })\r\n }\r\n }\r\n }, [setCount, visible])\r\n\r\n return null\r\n}\r\n\r\nexport {MetronicSplashScreenProvider, LayoutSplashScreen}\r\n","export const toAbsoluteUrl = (pathname: string) => process.env.PUBLIC_URL + pathname\r\n","export function getCurrentUrl(pathname: string) {\r\n return pathname.split(/[?#]/)[0]\r\n}\r\n\r\nexport function checkIsActive(pathname: string, url: string) {\r\n const current = getCurrentUrl(pathname)\r\n if (!current || !url) {\r\n return false\r\n }\r\n\r\n if (current === url) {\r\n return true\r\n }\r\n\r\n if (current.indexOf(url) > -1) {\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n","import React from 'react'\r\nimport SVG from 'react-inlinesvg'\r\nimport {toAbsoluteUrl} from '../AssetHelpers'\r\ntype Props = {\r\n className?: string\r\n path: string\r\n svgClassName?: string\r\n}\r\n\r\nconst KTSVG: React.FC = ({className = '', path, svgClassName = 'mh-50px'}) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport {KTSVG}\r\n","export interface MessageModel {\r\n user: number\r\n type: 'in' | 'out'\r\n text: string\r\n time: string\r\n template?: boolean\r\n}\r\n\r\nconst defaultMessages: Array = [\r\n {\r\n user: 4,\r\n type: 'in',\r\n text: 'How likely are you to recommend our company to your friends and family ?',\r\n time: '2 mins',\r\n },\r\n {\r\n user: 2,\r\n type: 'out',\r\n text: 'Hey there, we’re just writing to let you know that you’ve been subscribed to a repository on GitHub.',\r\n time: '5 mins',\r\n },\r\n {\r\n user: 4,\r\n type: 'in',\r\n text: 'Ok, Understood!',\r\n time: '1 Hour',\r\n },\r\n {\r\n user: 2,\r\n type: 'out',\r\n text: 'You’ll receive notifications for all issues, pull requests!',\r\n time: '2 Hours',\r\n },\r\n {\r\n user: 4,\r\n type: 'in',\r\n text: 'You can unwatch this repository immediately by clicking here: Keenthemes.com',\r\n time: '3 Hours',\r\n },\r\n {\r\n user: 2,\r\n type: 'out',\r\n text: 'Most purchased Business courses during this sale!',\r\n time: '4 Hours',\r\n },\r\n {\r\n user: 4,\r\n type: 'in',\r\n text: 'Company BBQ to celebrate the last quater achievements and goals. Food and drinks provided',\r\n time: '5 Hours',\r\n },\r\n {\r\n template: true,\r\n user: 2,\r\n type: 'out',\r\n text: '',\r\n time: 'Just now',\r\n },\r\n {\r\n template: true,\r\n user: 4,\r\n type: 'in',\r\n text: 'Right before vacation season we have the next Big Deal for you.',\r\n time: 'Just now',\r\n },\r\n]\r\n\r\nexport interface UserInfoModel {\r\n initials?: {label: string; state: 'warning' | 'danger' | 'primary' | 'success' | 'info'}\r\n name: string\r\n avatar?: string\r\n email: string\r\n position: string\r\n online: boolean\r\n}\r\n\r\nconst defaultUserInfos: Array = [\r\n {\r\n name: 'Emma Smith',\r\n avatar: 'avatars/150-1.jpg',\r\n email: 'e.smith@kpmg.com.au',\r\n position: 'Art Director',\r\n online: false,\r\n },\r\n {\r\n name: 'Melody Macy',\r\n initials: {label: 'M', state: 'danger'},\r\n email: 'melody@altbox.com',\r\n position: 'Marketing Analytic',\r\n online: true,\r\n },\r\n {\r\n name: 'Max Smith',\r\n avatar: 'avatars/150-2.jpg',\r\n email: 'max@kt.com',\r\n position: 'Software Enginer',\r\n online: false,\r\n },\r\n {\r\n name: 'Sean Bean',\r\n avatar: 'avatars/150-4.jpg',\r\n email: 'sean@dellito.com',\r\n position: 'Web Developer',\r\n online: false,\r\n },\r\n {\r\n name: 'Brian Cox',\r\n avatar: 'avatars/150-15.jpg',\r\n email: 'brian@exchange.com',\r\n position: 'UI/UX Designer',\r\n online: false,\r\n },\r\n {\r\n name: 'Mikaela Collins',\r\n initials: {label: 'M', state: 'warning'},\r\n email: 'mikaela@pexcom.com',\r\n position: 'Head Of Marketing',\r\n online: true,\r\n },\r\n {\r\n name: 'Francis Mitcham',\r\n avatar: 'avatars/150-8.jpg',\r\n email: 'f.mitcham@kpmg.com.au',\r\n position: 'Software Arcitect',\r\n online: false,\r\n },\r\n\r\n {\r\n name: 'Olivia Wild',\r\n initials: {label: 'O', state: 'danger'},\r\n email: 'olivia@corpmail.com',\r\n position: 'System Admin',\r\n online: true,\r\n },\r\n {\r\n name: 'Neil Owen',\r\n initials: {label: 'N', state: 'primary'},\r\n email: 'owen.neil@gmail.com',\r\n position: 'Account Manager',\r\n online: true,\r\n },\r\n {\r\n name: 'Dan Wilson',\r\n avatar: 'avatars/150-6.jpg',\r\n email: 'dam@consilting.com',\r\n position: 'Web Desinger',\r\n online: false,\r\n },\r\n {\r\n name: 'Emma Bold',\r\n initials: {label: 'E', state: 'danger'},\r\n email: 'emma@intenso.com',\r\n position: 'Corporate Finance',\r\n online: true,\r\n },\r\n {\r\n name: 'Ana Crown',\r\n avatar: 'avatars/150-7.jpg',\r\n email: 'ana.cf@limtel.com',\r\n position: 'Customer Relationship',\r\n online: false,\r\n },\r\n {\r\n name: 'Robert Doe',\r\n initials: {label: 'A', state: 'info'},\r\n email: 'robert@benko.com',\r\n position: 'Marketing Executive',\r\n online: true,\r\n },\r\n {\r\n name: 'John Miller',\r\n avatar: 'avatars/150-17.jpg',\r\n email: 'miller@mapple.com',\r\n position: 'Project Manager',\r\n online: false,\r\n },\r\n {\r\n name: 'Lucy Kunic',\r\n initials: {label: 'L', state: 'success'},\r\n email: 'lucy.m@fentech.com',\r\n position: 'SEO Master',\r\n online: true,\r\n },\r\n {\r\n name: 'Ethan Wilder',\r\n avatar: 'avatars/150-10.jpg',\r\n email: 'ethan@loop.com.au',\r\n position: 'Accountant',\r\n online: true,\r\n },\r\n]\r\n\r\nconst messageFromClient: MessageModel = {\r\n user: 4,\r\n type: 'in',\r\n text: 'Thank you for your awesome support!',\r\n time: 'Just now',\r\n}\r\n\r\nexport interface AlertModel {\r\n title: string\r\n description: string\r\n time: string\r\n icon: string\r\n state: 'primary' | 'danger' | 'warning' | 'success' | 'info'\r\n}\r\n\r\nconst defaultAlerts: Array = [\r\n {\r\n title: 'Project Alice',\r\n description: 'Phase 1 development',\r\n time: '1 hr',\r\n icon: 'icons/duotune/technology/teh008.svg',\r\n state: 'primary',\r\n },\r\n {\r\n title: 'HR Confidential',\r\n description: 'Confidential staff documents',\r\n time: '2 hrs',\r\n icon: 'icons/duotune/general/gen044.svg',\r\n state: 'danger',\r\n },\r\n {\r\n title: 'Company HR',\r\n description: 'Corporeate staff profiles',\r\n time: '5 hrs',\r\n icon: 'icons/duotune/finance/fin006.svg',\r\n state: 'warning',\r\n },\r\n {\r\n title: 'Project Redux',\r\n description: 'New frontend admin theme',\r\n time: '2 days',\r\n icon: 'icons/duotune/files/fil023.svg',\r\n state: 'success',\r\n },\r\n {\r\n title: 'Project Breafing',\r\n description: 'Product launch status update',\r\n time: '21 Jan',\r\n icon: 'icons/duotune/maps/map001.svg',\r\n state: 'primary',\r\n },\r\n {\r\n title: 'Banner Assets',\r\n description: 'Collection of banner images',\r\n time: '21 Jan',\r\n icon: 'icons/duotune/general/gen006.svg',\r\n state: 'info',\r\n },\r\n {\r\n title: 'Icon Assets',\r\n description: 'Collection of SVG icons',\r\n time: '20 March',\r\n icon: 'icons/duotune/art/art002.svg',\r\n state: 'warning',\r\n },\r\n]\r\nexport interface LogModel {\r\n code: string\r\n state: 'success' | 'danger' | 'warning'\r\n message: string\r\n time: string\r\n}\r\n\r\nconst defaultLogs: Array = [\r\n {code: '200 OK', state: 'success', message: 'New order', time: 'Just now'},\r\n {code: '500 ERR', state: 'danger', message: 'New customer', time: '2 hrs'},\r\n {code: '200 OK', state: 'success', message: 'Payment process', time: '5 hrs'},\r\n {code: '300 WRN', state: 'warning', message: 'Search query', time: '2 days'},\r\n {code: '200 OK', state: 'success', message: 'API connection', time: '1 week'},\r\n {code: '200 OK', state: 'success', message: 'Database restore', time: 'Mar 5'},\r\n {code: '300 WRN', state: 'warning', message: 'System update', time: 'May 15'},\r\n {code: '300 WRN', state: 'warning', message: 'Server OS update', time: 'Apr 3'},\r\n {code: '300 WRN', state: 'warning', message: 'API rollback', time: 'Jun 30'},\r\n {code: '500 ERR', state: 'danger', message: 'Refund process', time: 'Jul 10'},\r\n {code: '500 ERR', state: 'danger', message: 'Withdrawal process', time: 'Sep 10'},\r\n {code: '500 ERR', state: 'danger', message: 'Mail tasks', time: 'Dec 10'},\r\n]\r\n\r\nexport {defaultMessages, defaultUserInfos, defaultAlerts, defaultLogs, messageFromClient}\r\n","import {ILayout} from './LayoutModels'\r\n\r\nvar settings_config : ILayout = {\r\n main: {\r\n type: 'default',\r\n primaryColor: '#009EF7',\r\n darkSkinEnabled: true,\r\n },\r\n loader: {\r\n display: true,\r\n type: 'default', // Set default|spinner-message|spinner-logo to hide or show page loader\r\n },\r\n scrolltop: {\r\n display: true,\r\n },\r\n header: {\r\n display: true, // Set true|false to show or hide Header\r\n width: 'fluid', // Set fixed|fluid to change width type\r\n left: 'menu',\r\n fixed: {\r\n desktop: true, // Set true|false to set fixed Header for desktop mode\r\n tabletAndMobile: true, // Set true|false to set fixed Header for tablet and mobile modes\r\n },\r\n menuIcon: 'svg',\r\n },\r\n megaMenu: {\r\n display: true, // Set true|false to show or hide Mega Menu\r\n },\r\n aside: {\r\n display: true,\r\n theme: 'dark',\r\n menu: 'main',\r\n fixed: true,\r\n minimized: true,\r\n minimize: true,\r\n hoverable: true,\r\n menuIcon: 'svg',\r\n },\r\n content: {\r\n width: 'fixed', // Set fixed|fluid to change width\r\n layout: 'default',\r\n },\r\n toolbar: {\r\n display: true, // Display toolbar\r\n width: 'fluid', // Set fixed|fluid to change width type,\r\n fixed: {\r\n desktop: true,\r\n tabletAndMobileMode: true,\r\n },\r\n layout: 'toolbar1',\r\n layouts: {\r\n toolbar1: {\r\n height: '55px',\r\n heightAndTabletMobileMode: '55px',\r\n },\r\n toolbar2: {\r\n height: '75px',\r\n heightAndTabletMobileMode: '65px',\r\n },\r\n toolbar3: {\r\n height: '55px',\r\n heightAndTabletMobileMode: '55px',\r\n },\r\n toolbar4: {\r\n height: '65px',\r\n heightAndTabletMobileMode: '65px',\r\n },\r\n toolbar5: {\r\n height: '75px',\r\n heightAndTabletMobileMode: '65px',\r\n },\r\n },\r\n },\r\n footer: {\r\n width: 'fluid', // Set fixed|fluid to change width type\r\n },\r\n pageTitle: {\r\n display: true,\r\n breadCrumbs: true,\r\n description: false,\r\n layout: 'default',\r\n direction: 'row',\r\n responsive: true,\r\n responsiveBreakpoint: 'lg',\r\n responsiveTarget: '#kt_toolbar_container',\r\n },\r\n}\r\n\r\n\r\n\r\nif (window.location.hostname.toLowerCase() === 'e2eq.lk') {\r\n\r\n}\r\nif (window.location.hostname.toLowerCase() === 'portal.smartgas.biz') {\r\n settings_config.aside = {\r\n display: true,\r\n theme: 'light',\r\n menu: 'main',\r\n fixed: true,\r\n minimized: false,\r\n minimize: true,\r\n hoverable: true,\r\n menuIcon: 'svg',\r\n}\r\n}\r\n\r\n\r\nexport const DefaultLayoutConfig : ILayout = settings_config\r\n \r\n\r\n// export const DefaultLayoutConfig: ILayout = {\r\n// main: {\r\n// type: 'default',\r\n// primaryColor: '#009EF7',\r\n// darkSkinEnabled: true,\r\n// },\r\n// loader: {\r\n// display: true,\r\n// type: 'default', // Set default|spinner-message|spinner-logo to hide or show page loader\r\n// },\r\n// scrolltop: {\r\n// display: true,\r\n// },\r\n// header: {\r\n// display: true, // Set true|false to show or hide Header\r\n// width: 'fluid', // Set fixed|fluid to change width type\r\n// left: 'menu',\r\n// fixed: {\r\n// desktop: true, // Set true|false to set fixed Header for desktop mode\r\n// tabletAndMobile: true, // Set true|false to set fixed Header for tablet and mobile modes\r\n// },\r\n// menuIcon: 'svg',\r\n// },\r\n// megaMenu: {\r\n// display: true, // Set true|false to show or hide Mega Menu\r\n// },\r\n// aside: {\r\n// display: true,\r\n// theme: 'dark',\r\n// menu: 'main',\r\n// fixed: true,\r\n// minimized: true,\r\n// minimize: true,\r\n// hoverable: true,\r\n// menuIcon: 'svg',\r\n// },\r\n// content: {\r\n// width: 'fixed', // Set fixed|fluid to change width\r\n// layout: 'default',\r\n// },\r\n// toolbar: {\r\n// display: true, // Display toolbar\r\n// width: 'fluid', // Set fixed|fluid to change width type,\r\n// fixed: {\r\n// desktop: true,\r\n// tabletAndMobileMode: true,\r\n// },\r\n// layout: 'toolbar1',\r\n// layouts: {\r\n// toolbar1: {\r\n// height: '55px',\r\n// heightAndTabletMobileMode: '55px',\r\n// },\r\n// toolbar2: {\r\n// height: '75px',\r\n// heightAndTabletMobileMode: '65px',\r\n// },\r\n// toolbar3: {\r\n// height: '55px',\r\n// heightAndTabletMobileMode: '55px',\r\n// },\r\n// toolbar4: {\r\n// height: '65px',\r\n// heightAndTabletMobileMode: '65px',\r\n// },\r\n// toolbar5: {\r\n// height: '75px',\r\n// heightAndTabletMobileMode: '65px',\r\n// },\r\n// },\r\n// },\r\n// footer: {\r\n// width: 'fluid', // Set fixed|fluid to change width type\r\n// },\r\n// pageTitle: {\r\n// display: true,\r\n// breadCrumbs: true,\r\n// description: false,\r\n// layout: 'default',\r\n// direction: 'row',\r\n// responsive: true,\r\n// responsiveBreakpoint: 'lg',\r\n// responsiveTarget: '#kt_toolbar_container',\r\n// },\r\n// }\r\n","import React, {createContext, useContext, useState, useEffect} from 'react'\r\nimport {DefaultLayoutConfig} from './DefaultLayoutConfig'\r\nimport {\r\n getEmptyCssClasses,\r\n getEmptyCSSVariables,\r\n getEmptyHTMLAttributes,\r\n LayoutSetup,\r\n} from './LayoutSetup'\r\nimport {\r\n ILayout,\r\n ILayoutCSSVariables,\r\n ILayoutCSSClasses,\r\n ILayoutHTMLAttributes,\r\n} from './LayoutModels'\r\n\r\nexport interface LayoutContextModel {\r\n config: ILayout\r\n classes: ILayoutCSSClasses\r\n attributes: ILayoutHTMLAttributes\r\n cssVariables: ILayoutCSSVariables\r\n setLayout: (config: LayoutSetup) => void\r\n}\r\n\r\nconst LayoutContext = createContext({\r\n config: DefaultLayoutConfig,\r\n classes: getEmptyCssClasses(),\r\n attributes: getEmptyHTMLAttributes(),\r\n cssVariables: getEmptyCSSVariables(),\r\n setLayout: (config: LayoutSetup) => {},\r\n})\r\n\r\nconst enableSplashScreen = () => {\r\n const splashScreen = document.getElementById('splash-screen')\r\n if (splashScreen) {\r\n splashScreen.style.setProperty('display', 'flex')\r\n }\r\n}\r\n\r\nconst disableSplashScreen = () => {\r\n const splashScreen = document.getElementById('splash-screen')\r\n if (splashScreen) {\r\n splashScreen.style.setProperty('display', 'none')\r\n }\r\n}\r\n\r\nconst LayoutProvider: React.FC = ({children}) => {\r\n const [config, setConfig] = useState(LayoutSetup.config)\r\n const [classes, setClasses] = useState(LayoutSetup.classes)\r\n const [attributes, setAttributes] = useState(LayoutSetup.attributes)\r\n const [cssVariables, setCSSVariables] = useState(LayoutSetup.cssVariables)\r\n const setLayout = (_themeConfig: Partial) => {\r\n enableSplashScreen()\r\n const bodyClasses = Array.from(document.body.classList)\r\n bodyClasses.forEach((cl) => document.body.classList.remove(cl))\r\n LayoutSetup.updatePartialConfig(_themeConfig)\r\n setConfig(Object.assign({}, LayoutSetup.config))\r\n setClasses(LayoutSetup.classes)\r\n setAttributes(LayoutSetup.attributes)\r\n setCSSVariables(LayoutSetup.cssVariables)\r\n setTimeout(() => {\r\n disableSplashScreen()\r\n }, 500)\r\n }\r\n const value: LayoutContextModel = {\r\n config,\r\n classes,\r\n attributes,\r\n cssVariables,\r\n setLayout,\r\n }\r\n\r\n useEffect(() => {\r\n disableSplashScreen()\r\n }, [])\r\n\r\n return {children}\r\n}\r\n\r\nexport {LayoutContext, LayoutProvider}\r\n\r\nexport function useLayout() {\r\n return useContext(LayoutContext)\r\n}\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { FC, createContext, useContext, useEffect, useState } from 'react'\r\n\r\nexport interface PageLink {\r\n title: string\r\n path: string\r\n isActive: boolean\r\n isSeparator?: boolean\r\n}\r\n\r\nexport interface PageDataContextModel {\r\n pageTitle?: string\r\n setPageTitle: (_title: string) => void\r\n pageDescription?: string\r\n setPageDescription: (_description: string) => void\r\n pageBreadcrumbs?: Array\r\n setPageBreadcrumbs: (_breadcrumbs: Array) => void\r\n pageCode?: string\r\n setPageCode: (_code: string) => void\r\n}\r\n\r\nconst PageDataContext = createContext({\r\n setPageTitle: (_title: string) => { },\r\n setPageBreadcrumbs: (_breadcrumbs: Array) => { },\r\n setPageDescription: (_description: string) => { },\r\n setPageCode: (_code: string) => { },\r\n})\r\n\r\nconst PageDataProvider: React.FC = ({ children }) => {\r\n const [pageTitle, setPageTitle] = useState('')\r\n const [pageDescription, setPageDescription] = useState('')\r\n const [pageBreadcrumbs, setPageBreadcrumbs] = useState>([])\r\n const [pageCode, setPageCode] = useState('')\r\n const value: PageDataContextModel = {\r\n pageTitle,\r\n setPageTitle,\r\n pageDescription,\r\n setPageDescription,\r\n pageBreadcrumbs,\r\n setPageBreadcrumbs,\r\n pageCode,\r\n setPageCode,\r\n }\r\n return {children}\r\n}\r\n\r\nfunction usePageData() {\r\n return useContext(PageDataContext)\r\n}\r\n\r\ntype Props = {\r\n description?: string\r\n breadcrumbs?: Array\r\n code?: string\r\n}\r\n\r\nconst PageTitle: FC = ({ children, description, breadcrumbs, code = '' }) => {\r\n const { setPageTitle, setPageDescription, setPageBreadcrumbs, setPageCode } = usePageData()\r\n useEffect(() => {\r\n if (children) {\r\n setPageTitle(children.toString())\r\n }\r\n return () => {\r\n setPageTitle('')\r\n }\r\n }, [children])\r\n\r\n useEffect(() => {\r\n if (description) {\r\n setPageDescription(description)\r\n }\r\n return () => {\r\n setPageDescription('')\r\n }\r\n }, [description])\r\n\r\n useEffect(() => {\r\n if (code) {\r\n setPageCode(code)\r\n }\r\n return () => {\r\n setPageCode('')\r\n }\r\n }, [code])\r\n\r\n\r\n useEffect(() => {\r\n if (breadcrumbs) {\r\n setPageBreadcrumbs(breadcrumbs)\r\n }\r\n return () => {\r\n setPageBreadcrumbs([])\r\n }\r\n }, [breadcrumbs])\r\n\r\n return <>\r\n}\r\n\r\nconst PageDescription: React.FC = ({ children }) => {\r\n const { setPageDescription } = usePageData()\r\n useEffect(() => {\r\n if (children) {\r\n setPageDescription(children.toString())\r\n }\r\n return () => {\r\n setPageDescription('')\r\n }\r\n }, [children])\r\n return <>\r\n}\r\n\r\nexport { PageDescription, PageTitle, PageDataProvider, usePageData }\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {FC} from 'react'\r\n\r\nconst Dropdown2: FC = () => {\r\n return (\r\n \r\n
\r\n
Quick Actions
\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n New Group\r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\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 {Dropdown2}\r\n","const K_WIDTH = 40\r\nconst K_HEIGHT = 40\r\n\r\nconst greatPlaceStyle = {\r\n // initially any map object has left top corner at lat lng coordinates\r\n // it's on you to set object origin to 0,0 coordinates\r\n position: 'absolute',\r\n width: K_WIDTH,\r\n height: K_HEIGHT,\r\n left: -K_WIDTH / 2,\r\n top: -K_HEIGHT / 2,\r\n border: '5px solid #f44336',\r\n borderRadius: K_HEIGHT,\r\n backgroundColor: 'white',\r\n textAlign: 'center',\r\n color: '#3f51b5',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n padding: 4,\r\n}\r\n\r\nconst greatPlaceStyle2 = {\r\n // initially any map object has left top corner at lat lng coordinates\r\n // it's on you to set object origin to 0,0 coordinates\r\n position: 'absolute',\r\n width: 60,\r\n height: K_HEIGHT,\r\n left: -60 / 2,\r\n top: -K_HEIGHT / 2,\r\n border: '5px solid #f44336',\r\n borderRadius: K_HEIGHT,\r\n backgroundColor: 'white',\r\n textAlign: 'center',\r\n color: '#3f51b5',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n padding: 4,\r\n}\r\n\r\nexport {greatPlaceStyle, greatPlaceStyle2}\r\n","import React, {useState, useEffect, useRef} from 'react'\r\nimport './../../../../_metronic/assets/sass/kntdashbaord.css'\r\nimport {HubConnectionBuilder, JsonHubProtocol} from '@microsoft/signalr'\r\nimport axios from 'axios'\r\n// import useWindowDimensions from '../../helpers/WindowDimension'\r\n// import Dictionary from '../../helpers/Dictionary'\r\n// import {KTSVG, toAbsoluteUrl} from '../../../../_metronic/helpers'\r\n// import {Dropdown1} from '../../../../_metronic/partials'\r\n// import {AsideDefault} from '../../../../_metronic/layout/components/aside/AsideDefault'\r\n// import {Footer} from '../../../../_metronic/layout/components/Footer'\r\n// import {HeaderWrapper} from '../../../../_metronic/layout/components/header/HeaderWrapper'\r\nimport {PageDataProvider} from '../../../../_metronic/layout/core'\r\n// import {Content} from '../../../../_metronic/layout/components/Content'\r\n// import {\r\n// ChartsWidget1,\r\n// TablesWidget1,\r\n// ListsWidget5,\r\n// TablesWidget5,\r\n// } from '../../../../_metronic/partials/widgets'\r\n// import {stat} from 'fs'\r\n// import Confetti from 'react-confetti'\r\n// import ImageMapper from 'react-image-mapper'\r\n// import Draggable from 'react-draggable'\r\n// import {v4 as uuidv4} from 'uuid'\r\n// import Popup from 'reactjs-popup'\r\n// import SensorArea from './SensorArea'\r\nimport 'reactjs-popup/dist/index.css'\r\n// import {auto, hide, right} from '@popperjs/core'\r\nimport {ToastContainer, toast, Slide, Zoom, Flip, Bounce} from 'react-toastify'\r\nimport GoogleMapReact from 'google-map-react'\r\nimport MyGreatPlace from './my_great_place.jsx'\r\n\r\nimport shouldPureComponentUpdate from 'react-pure-render/function'\r\n\r\nimport MarkerExample, {K_SCALE_NORMAL} from './marker_example.jsx'\r\n\r\nimport {getScale, getRealFromTo} from '../helpers/calc_markers_visibility.js'\r\nimport markerDescriptions from '../constants/marker_descriptions.js'\r\nimport {customDistanceToMouse} from '../helpers/custom_distance.js'\r\n\r\nimport {FabricJSCanvas, useFabricJSEditor} from 'fabricjs-react'\r\nimport {fabric} from 'fabric'\r\n\r\nimport 'react-toastify/dist/ReactToastify.css'\r\nimport {List} from 'immutable'\r\nvar randomColor = require('randomcolor')\r\n\r\nfunction Map(props) {\r\n const [connection, setConnection] = useState(null)\r\n const reconnectRef = useRef(0)\r\n const urlParams = new URLSearchParams(window.location.search)\r\n const [isloading, setLoading] = useState(true)\r\n const [item, setItem] = useState('')\r\n const [SensorList, setsensorList] = useState([])\r\n const sensors = useRef([])\r\n\r\n const {selectedObjects, setSelectedObject, editor, onReady} = useFabricJSEditor({\r\n defaultStrokeColor: 'red',\r\n selection: false,\r\n })\r\n const [text, setText] = useState('')\r\n const [strokeColor, setStrokeColor] = useState('')\r\n const [fillColor, setFillColor] = useState('')\r\n const [isload, setisload] = useState(true)\r\n\r\n const AnyReactComponent = ({text}) =>
{text}
\r\n const defaultProps = {\r\n center: {\r\n lat: 6.911979146490742,\r\n lng: 79.92597226721936,\r\n },\r\n zoom: 8,\r\n }\r\n\r\n const K_MARGIN_TOP = 30\r\n const K_MARGIN_RIGHT = 30\r\n const K_MARGIN_BOTTOM = 30\r\n const K_MARGIN_LEFT = 30\r\n\r\n const K_HOVER_DISTANCE = 30\r\n /*\r\n const initialStatex = [\r\n {\r\n name: 'KF',\r\n lat: 6.911979146490742,\r\n lng: 79.92597226721936,\r\n value: '',\r\n isNotify: false,\r\n link: '',\r\n type: '',\r\n },\r\n {\r\n name: 'EH',\r\n lat: 6.7064889452596015,\r\n lng: 79.94520235609559,\r\n value: '',\r\n isNotify: false,\r\n link: '',\r\n type: '',\r\n },\r\n ]*/\r\n\r\n //const initialStatex = []\r\n const [loc, setLoc] = useState([])\r\n const locax = useRef(loc)\r\n\r\n //editor?.addRectangle({ fill: \"red\", stroke: \"blue\" });\r\n /*selectedObjects[0]?.set({\r\n fill: \"red\",\r\n stroke: \"blue\",\r\n /* //Movement:\r\n lockMovementX : true,\r\n lockMovementY : true,\r\n \r\n //Scaling:\r\n lockScalingX : true,\r\n lockScalingY : true,\r\n \r\n // Rotation:\r\n lockRotation : true,\r\n \r\n // Object's frame/bounidngBox:\r\n hasControls : false,\r\n hasBorders : false,\r\n //left: selectedObjects[0].left + 100,\r\n });\r\n \r\n setTimeout(() => {\r\n if(isload){\r\n const data = JSON.parse(\r\n '{\"version\":\"4.3.1\",\"objects\":[{\"type\":\"circle\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":100,\"top\":100,\"width\":40,\"height\":40,\"fill\":\"rgba(255, 255, 255, 0.0)\",\"stroke\":\"#000000\",\"strokeWidth\":1,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":1,\"scaleY\":1,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"radius\":20,\"startAngle\":0,\"endAngle\":6.283185307179586},{\"type\":\"text\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":253,\"top\":102,\"width\":95.55,\"height\":18.08,\"fill\":\"#000000\",\"stroke\":null,\"strokeWidth\":1,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":2.43,\"scaleY\":2.43,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"text\":\"Some text\",\"fontSize\":16,\"fontWeight\":\"normal\",\"fontFamily\":\"Arial\",\"fontStyle\":\"normal\",\"lineHeight\":1.16,\"underline\":false,\"overline\":false,\"linethrough\":false,\"textAlign\":\"left\",\"textBackgroundColor\":\"\",\"charSpacing\":0,\"minWidth\":20,\"splitByGrapheme\":false,\"styles\":{}},{\"type\":\"rect\",\"lockMovementX\":\"True\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":109,\"top\":212,\"width\":40,\"height\":40,\"fill\":\"rgba(255, 255, 255, 0.0)\",\"stroke\":\"#000000\",\"strokeWidth\":1,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":1,\"scaleY\":1,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"rx\":0,\"ry\":0},{\"type\":\"image\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":499,\"top\":86,\"width\":1200,\"height\":900,\"fill\":\"rgb(0,0,0)\",\"stroke\":null,\"strokeWidth\":0,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":0.2,\"scaleY\":0.2,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"cropX\":0,\"cropY\":0,\"src\":\"https://miro.medium.com/max/1200/1*mk1-6aYaf_Bes1E3Imhc0A.jpeg\",\"crossOrigin\":null,\"filters\":[]},{\"type\":\"polyline\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":483.78,\"top\":339.22,\"width\":50.88,\"height\":50.88,\"fill\":\"white\",\"stroke\":\"black\",\"strokeWidth\":2,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":1,\"scaleY\":1,\"angle\":262.52,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"points\":[{\"x\":100,\"y\":100},{\"x\":99.11611652351681,\"y\":100.88388347648318},{\"x\":145.58058261758407,\"y\":147.34834957055045},{\"x\":142.92893218813452,\"y\":150},{\"x\":150,\"y\":150},{\"x\":150,\"y\":142.92893218813452},{\"x\":147.34834957055045,\"y\":145.58058261758407},{\"x\":100.88388347648318,\"y\":99.11611652351681},{\"x\":100,\"y\":100}]},{\"type\":\"image\",\"version\":\"4.3.1\",\"originX\":\"left\",\"originY\":\"top\",\"left\":197,\"top\":132,\"width\":1200,\"height\":900,\"fill\":\"rgb(0,0,0)\",\"stroke\":null,\"strokeWidth\":0,\"strokeDashArray\":null,\"strokeLineCap\":\"butt\",\"strokeDashOffset\":0,\"strokeLineJoin\":\"miter\",\"strokeUniform\":false,\"strokeMiterLimit\":4,\"scaleX\":0.2,\"scaleY\":0.2,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"shadow\":null,\"visible\":true,\"backgroundColor\":\"\",\"fillRule\":\"nonzero\",\"paintFirst\":\"fill\",\"globalCompositeOperation\":\"source-over\",\"skewX\":0,\"skewY\":0,\"cropX\":0,\"cropY\":0,\"src\":\"https://miro.medium.com/max/1200/1*mk1-6aYaf_Bes1E3Imhc0A.jpeg\",\"crossOrigin\":null,\"filters\":[]}]}'\r\n );\r\n editor?.canvas.loadFromJSON(data);\r\n console.log(JSON.stringify(editor?.canvas))\r\n setisload(false);\r\n }\r\n }, 5000);\r\n \r\n */\r\n\r\n const [layout, setLayout] = useState({\r\n id: props.layout, //urlParams.get('id')??props.layout,\r\n layoutName: '',\r\n imageData: null,\r\n devices: [],\r\n isZoom: false,\r\n globalJs: '',\r\n designObject: [],\r\n })\r\n const [state, setState] = useState({\r\n Data: {},\r\n DashboardStat: 'CONNECTING',\r\n SensorList: [],\r\n loc: [],\r\n })\r\n\r\n const hubService = process.env.REACT_APP_MIDAS_HUB //\"https://signalr.midassit.com\";\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection\r\n .start()\r\n .then((result) => {\r\n setState({\r\n ...state,\r\n DashboardStat: 'CONNECTED',\r\n })\r\n setLoading(false)\r\n reconnectRef.current = 0\r\n //console.log('Connected!');\r\n connection.onreconnecting((error) => {\r\n setState({\r\n ...state,\r\n DashboardStat: 'RECONNECTING',\r\n })\r\n console.log('Connection lost due to error . Reconnecting.')\r\n })\r\n\r\n // Reconnect if hub disconnects\r\n connection.onclose(function (e) {\r\n setState({\r\n ...state,\r\n DashboardStat: 'DISCONNECTED',\r\n })\r\n //console.log('Disconnected');\r\n })\r\n\r\n connection.on('ReceiveMessage', (message) => {\r\n //console.log(message)\r\n\r\n if (typeof message === 'string' || message instanceof String) {\r\n message = JSON.parse(message)\r\n }\r\n\r\n if (message.key !== 'SensorData') return\r\n\r\n let dataPacket = JSON.parse(message.data)\r\n\r\n /* */ if (\r\n dataPacket.TimeStamp === undefined ||\r\n Math.round((new Date() - new Date(dataPacket.TimeStamp)) / 1000) > 10\r\n ) {\r\n return\r\n } else {\r\n /*if (dataPacket.IsNotify) {\r\n toast.error(dataPacket.Message, {\r\n position: 'top-right',\r\n autoClose: 5000,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n }*/\r\n\r\n if (dataPacket.Packet === layout.id.replace('ly', '')) {\r\n console.log(dataPacket)\r\n\r\n //console.log(JSON.stringify(loc))\r\n //console.log(testx)\r\n //console.log(dataPacket.Name)\r\n const newState = locax.current.map((obj) => {\r\n // 👇️ if id equals 2, update country property.\r\n\r\n if (\r\n dataPacket[obj.name] === undefined ||\r\n dataPacket[obj.name + '_gps'] === undefined\r\n )\r\n return obj\r\n\r\n // console.log(obj.name)\r\n // console.log(dataPacket[obj.name] + ' ' + dataPacket[obj.name + '_gps'])\r\n\r\n //console.log('XX' + dataPacket.Name)\r\n return {\r\n ...obj,\r\n value: dataPacket[obj.name],\r\n lat: dataPacket[obj.name + '_gps'].Lat, //6.7064889452596015, //,\r\n lng: dataPacket[obj.name + '_gps'].Lng, //79.94520235609559, //dataPacket[obj.name + '_gps'].Lat,\r\n isNotify: false,\r\n link: '/facility-detail-item/' + obj.code,\r\n type: 'Car',\r\n }\r\n\r\n // 👇️ otherwise return the object as is\r\n // return obj\r\n })\r\n\r\n locax.current = newState\r\n setLoc(newState)\r\n\r\n /* data.push({\r\n value: '17',\r\n lat: 6.7064889452596015,\r\n lng: 79.94520235609559,\r\n isNotify: false,\r\n link: '',\r\n type: 'Car',\r\n //}\r\n })*/\r\n //locax.current = newState\r\n //setLoc(newState)\r\n }\r\n\r\n //\r\n //console.log(dataPacket)\r\n //console.log(dataPacket.SensorValue)\r\n //let newElements = {}\r\n // Object.entries(dataPacket).map(([key, value]) => {\r\n // newElements[key] = value\r\n // })\r\n\r\n setState({\r\n ...state,\r\n SensorList: sensors.current,\r\n DashboardStat: 'CONNECTED',\r\n //loc: newState,\r\n })\r\n //console.log(JSON.stringify(state.loc))\r\n }\r\n })\r\n })\r\n .catch((e) => {\r\n console.log('Connection failed: ', e)\r\n })\r\n }\r\n }, [connection])\r\n\r\n useEffect(() => {\r\n axios({\r\n method: 'get',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/sensor-monitor/layout?layout=' + layout.id,\r\n headers: {},\r\n }).then((response) => {\r\n setLayout({\r\n ...layout,\r\n layoutName: response.data.result.layoutName,\r\n imageData: 'data:image/png;base64,' + response.data.result.imageData,\r\n isZoom: response.data.result.isZoom,\r\n globalJs: response.data.result.globalJs,\r\n designObject: response.data.result.designObject,\r\n })\r\n\r\n var allSensors = []\r\n for (let index = 0; index < response.data.result.devices.length; index++) {\r\n const element = response.data.result.devices[index]\r\n allSensors.push({\r\n code: element.id,\r\n name: element.machineNo,\r\n value: '',\r\n lat: '',\r\n lng: '',\r\n isNotify: false,\r\n link: '',\r\n type: 'Car',\r\n //}\r\n })\r\n }\r\n //console.log('sssssssssssssssss' + JSON.stringify(allSensors))\r\n locax.current = allSensors\r\n\r\n setState({\r\n ...state,\r\n SensorList: response.data.result.devices,\r\n })\r\n\r\n sensors.current = response.data.result.devices\r\n\r\n setTimeout(() => {\r\n for (let index = 0; index < sensors.current.length; index++) {\r\n const element = sensors.current[index]\r\n try {\r\n eval(layout.globalJs + ';' + element.tempFeild1)\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n setState({\r\n ...state,\r\n SensorList: sensors.current,\r\n DashboardStat: 'INITIALIZATION',\r\n })\r\n setTimeout(() => {\r\n const newConnection = new HubConnectionBuilder()\r\n .withUrl(hubService + '/' + response.data.result.hub + '/Hub')\r\n .withAutomaticReconnect()\r\n .build()\r\n setConnection(newConnection)\r\n }, 100)\r\n }, 500)\r\n })\r\n }, [])\r\n\r\n if (editor != undefined && isload && layout.designObject.length > 0) {\r\n var desginObject = {\r\n version: '4.3.1',\r\n objects: [],\r\n }\r\n for (let index = 0; index < layout.designObject.length; index++) {\r\n const element = layout.designObject[index]\r\n var ds = JSON.parse(element.tempFeild1)\r\n //Movement:\r\n ds.lockMovementX = true\r\n ds.lockMovementY = true\r\n\r\n //Scaling:\r\n ds.lockScalingX = true\r\n ds.lockScalingY = true\r\n\r\n // Rotation:\r\n ds.lockRotation = true\r\n\r\n // Object's frame/bounidngBox:\r\n ds.hasControls = false\r\n ds.hasBorders = false\r\n desginObject.objects.push(ds)\r\n }\r\n editor?.canvas.loadFromJSON(desginObject)\r\n\r\n setisload(false)\r\n }\r\n\r\n let bodyCss = {\r\n overflowX: 'hidden',\r\n }\r\n\r\n function hideAllNotification() {\r\n toast.dismissAll()\r\n }\r\n\r\n function hideNotification(notification) {\r\n toast.dismiss(notification.toastId)\r\n }\r\n\r\n function getTransactionType(transition) {\r\n switch (transition.toLowerCase()) {\r\n case 'flip':\r\n return Flip\r\n case 'slide':\r\n return Slide\r\n case 'zoom':\r\n return Zoom\r\n\r\n default:\r\n return Bounce\r\n }\r\n }\r\n function getType(type) {\r\n switch (type.toLowerCase()) {\r\n case 'info':\r\n return toast.TYPE.INFO\r\n case 'error':\r\n return toast.TYPE.ERROR\r\n case 'success':\r\n return toast.TYPE.SUCCESS\r\n case 'warning':\r\n return toast.TYPE.WARNING\r\n default:\r\n return toast.TYPE.INFO\r\n }\r\n }\r\n\r\n function showNotification(notification) {\r\n notification.transition = getTransactionType(notification.transition)\r\n if (toast.isActive(notification.toastId)) {\r\n notification.render = notification.message\r\n notification.type = getType(notification.type)\r\n toast.update(notification.toastId, notification)\r\n return\r\n }\r\n\r\n switch (notification.type) {\r\n case 'error':\r\n toast.error(notification.message, notification)\r\n break\r\n case 'info':\r\n toast.info(notification.message, notification)\r\n break\r\n case 'warning':\r\n toast.warn(notification.message, notification)\r\n break\r\n case 'success':\r\n toast.success(notification.message, notification)\r\n break\r\n default:\r\n toast(notification.message)\r\n break\r\n }\r\n }\r\n\r\n function Notification(notification) {\r\n if (toast.isActive(notification.toastId)) {\r\n toast.dismiss(notification.toastId)\r\n }\r\n switch (notification.Type) {\r\n case 'error':\r\n toast.error(notification.Message, {\r\n toastId: notification?.toastId ?? 'default',\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n\r\n case 'info':\r\n toast.info(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification?.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'warning':\r\n toast.warn(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'success':\r\n toast.success(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification?.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n default:\r\n toast('Wow so easy!')\r\n break\r\n }\r\n }\r\n\r\n let backcss = {\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 'auto',\r\n width: '1200px',\r\n }\r\n\r\n let sensorcss = {\r\n position: 'absolute',\r\n width: '1200px',\r\n }\r\n\r\n if (!layout.isZoom) {\r\n backcss = {\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 'auto',\r\n }\r\n\r\n sensorcss = {\r\n position: 'absolute',\r\n }\r\n\r\n bodyCss = {}\r\n }\r\n {\r\n /*\r\n if (isloading) {\r\n return (\r\n <>\r\n \r\n \r\n
\r\n

Elysium Automation

\r\n
\r\n
\r\n \r\n <>\r\n \r\n \r\n
\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 {layout.layoutName}
\r\n Elysium IOT\r\n \r\n {state.DashboardStat === 'DISABLED' && (\r\n \r\n {state.DashboardStat}\r\n \r\n )}\r\n {state.DashboardStat === 'ACTIVE' && (\r\n \r\n {state.DashboardStat}\r\n \r\n )}\r\n {state.DashboardStat === 'CONNECTED' && (\r\n \r\n {state.DashboardStat}\r\n \r\n )}\r\n {state.DashboardStat === 'CONNECTING' && (\r\n \r\n {state.DashboardStat}\r\n \r\n )}\r\n

/*}\r\n {/*
\r\n {new Date().getFullYear()} ©\r\n \r\n overleap | Elysium\r\n \r\n
*/}\r\n
\r\n \r\n {loc.map(\r\n (marker, index) =>\r\n marker.lat != '' && (\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 Map\r\n//https://codesandbox.io/s/k2ds4?file=/src/App.js:128-4341\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from 'react'\r\n\r\nexport function Dropdown1() {\r\n return (\r\n
\r\n
\r\n
Filter Options
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n Reset\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import clsx from 'clsx'\r\nimport React, { FC } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport { useLayout } from '../../../core/LayoutProvider'\r\nimport { usePageData } from '../../../core/PageData'\r\n\r\nconst DefaultTitle: FC = () => {\r\n const { pageTitle, pageDescription, pageBreadcrumbs } = usePageData()\r\n const { config, attributes, classes } = useLayout()\r\n return (\r\n \r\n\r\n {/* begin::Title */}\r\n {pageTitle && (\r\n

\r\n {pageTitle}\r\n {pageDescription && config.pageTitle && config.pageTitle.description && (\r\n <>\r\n \r\n {pageDescription}\r\n \r\n )}\r\n

\r\n )}\r\n {/* end::Title */}\r\n\r\n {pageBreadcrumbs &&\r\n pageBreadcrumbs.length > 0 &&\r\n config.pageTitle &&\r\n config.pageTitle.breadCrumbs && (\r\n <>\r\n {config.pageTitle.direction === 'row' && (\r\n \r\n )}\r\n
    \r\n {Array.from(pageBreadcrumbs).map((item, index) => (\r\n \r\n {!item.isSeparator ? (\r\n \r\n {item.title}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ))}\r\n
  • {pageTitle}
  • \r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport { DefaultTitle }\r\n","import React, {useState, useEffect, useRef} from 'react'\r\nimport './../../../../_metronic/assets/sass/kntdashbaord.css'\r\nimport {HubConnectionBuilder, JsonHubProtocol} from '@microsoft/signalr'\r\nimport axios from 'axios'\r\nimport useWindowDimensions from '../../helpers/WindowDimension'\r\nimport Dictionary from '../../helpers/Dictionary'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../../_metronic/helpers'\r\nimport {Dropdown1} from '../../../../_metronic/partials'\r\nimport {AsideDefault} from '../../../../_metronic/layout/components/aside/AsideDefault'\r\nimport {Footer} from '../../../../_metronic/layout/components/Footer'\r\nimport {HeaderWrapper} from '../../../../_metronic/layout/components/header/HeaderWrapper'\r\nimport {PageDataProvider} from '../../../../_metronic/layout/core'\r\nimport {Content} from '../../../../_metronic/layout/components/Content'\r\nimport {\r\n ChartsWidget1,\r\n TablesWidget1,\r\n ListsWidget5,\r\n TablesWidget5,\r\n} from '../../../../_metronic/partials/widgets'\r\nimport {stat} from 'fs'\r\nimport Confetti from 'react-confetti'\r\nimport ImageMapper from 'react-image-mapper'\r\nimport Draggable from 'react-draggable'\r\nimport {v4 as uuidv4} from 'uuid'\r\nimport Popup from 'reactjs-popup'\r\nimport 'reactjs-popup/dist/index.css'\r\nimport SensorArea from './SensorArea'\r\nimport {auto, hide, right} from '@popperjs/core'\r\nimport {ToastContainer, toast, Slide, Zoom, Flip, Bounce} from 'react-toastify'\r\n\r\nimport {FabricJSCanvas, useFabricJSEditor} from 'fabricjs-react'\r\nimport {fabric} from 'fabric'\r\n\r\nimport 'react-toastify/dist/ReactToastify.css'\r\nvar randomColor = require('randomcolor')\r\n\r\nfunction DisplayGroup(props) {\r\n const [connection, setConnection] = useState(null)\r\n const reconnectRef = useRef(0)\r\n const urlParams = new URLSearchParams(window.location.search)\r\n const {selectedObjects, setSelectedObject, editor, onReady} = useFabricJSEditor({\r\n defaultStrokeColor: 'red',\r\n })\r\n const [isloading, setLoading] = useState(true)\r\n const [item, setItem] = useState('')\r\n const [SensorList, setsensorList] = useState([])\r\n const sensors = useRef([])\r\n const [text, setText] = useState('')\r\n const [strokeColor, setStrokeColor] = useState('')\r\n const [fillColor, setFillColor] = useState('')\r\n const [isload, setisload] = useState(true)\r\n\r\n const [layout, setLayout] = useState({\r\n id: props.match?.params?.id ?? props.layout, //urlParams.get('id')??props.layout,\r\n layoutName: '',\r\n imageData: null,\r\n devices: [],\r\n isZoom: false,\r\n globalJs: '',\r\n hub: '',\r\n designObject: [],\r\n })\r\n const [state, setState] = useState({\r\n Data: {},\r\n DashboardStat: 'CONNECTING',\r\n SensorList: [],\r\n })\r\n\r\n const hubService = process.env.REACT_APP_MIDAS_HUB // \"https://signalr.midassit.com\";\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection\r\n .start()\r\n .then((result) => {\r\n setState({\r\n ...state,\r\n DashboardStat: 'CONNECTED',\r\n })\r\n setLoading(false)\r\n reconnectRef.current = 0\r\n //// console.log('Connected!');\r\n connection.onreconnecting((error) => {\r\n setState({\r\n ...state,\r\n DashboardStat: 'RECONNECTING',\r\n })\r\n // // console.log('Connection lost due to error . Reconnecting.')\r\n })\r\n\r\n // Reconnect if hub disconnects\r\n connection.onclose(function (e) {\r\n setState({\r\n ...state,\r\n DashboardStat: 'DISCONNECTED',\r\n })\r\n //// console.log('Disconnected');\r\n })\r\n\r\n connection.on('ReceiveMessage', (message) => {\r\n if (typeof message === 'string' || message instanceof String) {\r\n message = JSON.parse(message)\r\n }\r\n\r\n // if (message.key !== \"SensorData\")\r\n // return;\r\n\r\n let dataPacket = JSON.parse(message.data)\r\n\r\n if (\r\n dataPacket.TimeStamp === undefined ||\r\n Math.round((new Date() - new Date(dataPacket.TimeStamp)) / 1000) > 10\r\n ) {\r\n return\r\n } else {\r\n if (dataPacket?.Notifications !== undefined && dataPacket?.Notifications.length > 0) {\r\n toast.dismiss()\r\n for (let index = 0; index < dataPacket?.Notifications.length; index++) {\r\n const notification = dataPacket?.Notifications[index]\r\n switch (notification.Type) {\r\n case 'error':\r\n toast.error(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n\r\n case 'info':\r\n toast.info(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'warning':\r\n toast.warn(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'success':\r\n toast.success(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n default:\r\n toast('Wow so easy!')\r\n break\r\n }\r\n }\r\n }\r\n\r\n let newElements = {}\r\n Object.entries(dataPacket).map(([key, value]) => {\r\n newElements[key] = value\r\n })\r\n\r\n Object.entries(dataPacket).map(([key, value]) => {\r\n for (let index = 0; index < sensors.current.length; index++) {\r\n const element = sensors.current[index]\r\n if (element.machineNo === '') continue\r\n\r\n if (element.icon === undefined) element.icon = 'dot'\r\n\r\n if (\r\n element.isNotify === undefined ||\r\n element.isNotify === '' ||\r\n element.isNotify === null\r\n )\r\n element.isNotify = false\r\n\r\n if (!element.lastUpdate) {\r\n element.lastUpdate = new Date()\r\n } else if (Math.round((new Date() - new Date(element.lastUpdate)) / 1000) > 60) {\r\n //element.value = \"---\";\r\n //element.color = 'black';\r\n if (\r\n element.type == 14 ||\r\n element.type == 13 ||\r\n element.type == 17 ||\r\n element.type == 15\r\n ) {\r\n //// console.log(\"[chart data cleared \"+element.machineNo.toString().toLowerCase()+\"]\");\r\n element.value = []\r\n } else {\r\n element.value = '---'\r\n element.color = 'black'\r\n }\r\n }\r\n\r\n let object = element.object.toString().toLowerCase()\r\n if (props?.object !== undefined && props?.object !== '') {\r\n object = props?.object.toString().toLowerCase()\r\n }\r\n\r\n //console.log(\"\"+message.packetType.toString().toLowerCase()+\" === \"+object)\r\n\r\n if (\r\n element.machineNo.toString().toLowerCase() === key.toString().toLowerCase() &&\r\n message.packetType.toString().toLowerCase() === object\r\n ) {\r\n console.log(message)\r\n // console.log(\"[DB PACKET \"+element.machineNo.toString().toLowerCase()+\"]\"+JSON.stringify(value));\r\n element.lastUpdate = new Date()\r\n element.value = value\r\n element.color = 'black'\r\n element.notification = {\r\n toastId: key.toString().toLowerCase(),\r\n position: 'top-right',\r\n type: 'info',\r\n autoClose: false, // or set time\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n // pauseOnHover: true,\r\n draggable: false,\r\n progress: undefined,\r\n transition: Bounce,\r\n }\r\n try {\r\n // alert(layout.globalJs)\r\n eval(layout.globalJs + ';' + element.formula)\r\n // eval(element.formula)\r\n } catch (error) {\r\n element.value = '---'\r\n element.color = 'black'\r\n // // console.log(element.formula)\r\n // console.log(error);\r\n }\r\n }\r\n }\r\n })\r\n setState({\r\n ...state,\r\n SensorList: sensors.current,\r\n DashboardStat: 'CONNECTED',\r\n })\r\n }\r\n })\r\n })\r\n .catch((e) => {\r\n // console.log('Connection failed: ', e);\r\n })\r\n }\r\n }, [connection])\r\n\r\n useEffect(() => {\r\n axios({\r\n method: 'get',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/sensor-monitor/layout?layout=' + layout.id,\r\n headers: {},\r\n }).then((response) => {\r\n setLayout({\r\n ...layout,\r\n layoutName: response.data.result.layoutName,\r\n imageData: 'data:image/png;base64,' + response.data.result.imageData,\r\n isZoom: response.data.result.isZoom,\r\n globalJs: response.data.result.globalJs,\r\n hub: response.data.result.hub,\r\n designObject: response.data.result.designObject,\r\n })\r\n\r\n /* try {\r\n //// console.log(response.data.result.globalJs)\r\n eval(response.data.result.globalJs)\r\n } catch (error) {\r\n // console.log(error);\r\n }*/\r\n\r\n setState({\r\n ...state,\r\n SensorList: response.data.result.devices,\r\n })\r\n\r\n sensors.current = response.data.result.devices\r\n\r\n setTimeout(() => {\r\n for (let index = 0; index < sensors.current.length; index++) {\r\n const element = sensors.current[index]\r\n try {\r\n eval(layout.globalJs + ';' + element.tempFeild1)\r\n } catch (error) {\r\n // console.log(error);\r\n }\r\n }\r\n setState({\r\n ...state,\r\n SensorList: sensors.current,\r\n DashboardStat: 'INITIALIZATION',\r\n })\r\n setTimeout(() => {\r\n const newConnection = new HubConnectionBuilder()\r\n .withUrl(hubService + '/' + response.data.result.hub + '/Hub') //\r\n .withAutomaticReconnect()\r\n .build()\r\n setConnection(newConnection)\r\n }, 100)\r\n }, 500)\r\n })\r\n }, [])\r\n\r\n if (editor != undefined && isload && layout.designObject.length > 0) {\r\n var desginObject = {\r\n version: '4.3.1',\r\n objects: [],\r\n }\r\n for (let index = 0; index < layout.designObject.length; index++) {\r\n const element = layout.designObject[index]\r\n var ds = JSON.parse(element.tempFeild1)\r\n //Movement:\r\n ds.lockMovementX = true\r\n ds.lockMovementY = true\r\n\r\n //Scaling:\r\n ds.lockScalingX = true\r\n ds.lockScalingY = true\r\n\r\n // Rotation:\r\n ds.lockRotation = true\r\n\r\n // Object's frame/bounidngBox:\r\n ds.hasControls = false\r\n ds.hasBorders = false\r\n desginObject.objects.push(ds)\r\n }\r\n editor?.canvas.loadFromJSON(desginObject)\r\n setisload(false)\r\n }\r\n\r\n let bodyCss = {\r\n overflowX: 'hidden',\r\n }\r\n\r\n function hideAllNotification() {\r\n toast.dismissAll()\r\n }\r\n\r\n function hideNotification(notification) {\r\n toast.dismiss(notification.toastId)\r\n }\r\n\r\n function getTransactionType(transition) {\r\n switch (transition.toLowerCase()) {\r\n case 'flip':\r\n return Flip\r\n case 'slide':\r\n return Slide\r\n case 'zoom':\r\n return Zoom\r\n\r\n default:\r\n return Bounce\r\n }\r\n }\r\n function getType(type) {\r\n switch (type.toLowerCase()) {\r\n case 'info':\r\n return toast.TYPE.INFO\r\n case 'error':\r\n return toast.TYPE.ERROR\r\n case 'success':\r\n return toast.TYPE.SUCCESS\r\n case 'warning':\r\n return toast.TYPE.WARNING\r\n default:\r\n return toast.TYPE.INFO\r\n }\r\n }\r\n\r\n function showNotification(notification) {\r\n notification.transition = getTransactionType(notification.transition)\r\n if (toast.isActive(notification.toastId)) {\r\n notification.render = notification.message\r\n notification.type = getType(notification.type)\r\n toast.update(notification.toastId, notification)\r\n return\r\n }\r\n\r\n switch (notification.type) {\r\n case 'error':\r\n toast.error(notification.message, notification)\r\n break\r\n case 'info':\r\n toast.info(notification.message, notification)\r\n break\r\n case 'warning':\r\n toast.warn(notification.message, notification)\r\n break\r\n case 'success':\r\n toast.success(notification.message, notification)\r\n break\r\n default:\r\n toast(notification.message)\r\n break\r\n }\r\n }\r\n\r\n function Notification(notification) {\r\n if (toast.isActive(notification.toastId)) {\r\n toast.dismiss(notification.toastId)\r\n }\r\n switch (notification.Type) {\r\n case 'error':\r\n toast.error(notification.Message, {\r\n toastId: notification?.toastId ?? 'default',\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n\r\n case 'info':\r\n toast.info(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification?.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'warning':\r\n toast.warn(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'success':\r\n toast.success(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification?.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n default:\r\n toast('Wow so easy!')\r\n break\r\n }\r\n }\r\n\r\n let backcss = {\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 'auto',\r\n width: '1200px',\r\n }\r\n\r\n let sensorcss = {\r\n position: 'absolute',\r\n width: '1200px',\r\n }\r\n\r\n if (!layout.isZoom) {\r\n backcss = {\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 'auto',\r\n }\r\n\r\n sensorcss = {\r\n position: 'absolute',\r\n }\r\n\r\n bodyCss = {}\r\n }\r\n if (isloading) {\r\n return (\r\n <>\r\n
\r\n {/* begin::Content */}\r\n
\r\n
\r\n
\r\n \r\n <>\r\n {' '}\r\n {state.DashboardStat}{' '}\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\nexport default DisplayGroup\r\n//https://codesandbox.io/s/k2ds4?file=/src/App.js:128-4341\r\n","import React, {FC} from 'react'\r\n\r\nconst Toggle: FC = () => (\r\n \r\n Explore\r\n \r\n)\r\n\r\nexport {Toggle}\r\n","import React, {useState, useEffect, useRef, PureComponent, useMemo} from 'react'\r\nimport {\r\n Chart as ChartJS,\r\n CategoryScale,\r\n LinearScale,\r\n PointElement,\r\n LineElement,\r\n Title,\r\n Tooltip,\r\n Legend,\r\n} from 'chart.js'\r\nimport {Line} from 'react-chartjs-2'\r\nimport parse from 'html-react-parser'\r\nimport axios from 'axios'\r\nimport {stat} from 'fs'\r\n\r\nChartJS.register(CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip, Legend)\r\n\r\nfunction Chartj(props) {\r\n // console.log(JSON.stringify(props?.item?.datasets))\r\n const labels = []\r\n const chartReference = React.createRef()\r\n const [state, setState] = useState({\r\n config: props?.item?.config ?? {\r\n label: props?.item?.config?.label ?? 'TimeStamp',\r\n data: props?.item?.config?.data ?? 'C_value',\r\n url: props?.item?.config?.url ?? '/api/sensor/getall',\r\n refersh: props?.item?.config?.refersh ?? 5000,\r\n sort: props?.item?.config?.sort ?? 'TimeStamp: -1',\r\n find: props?.item?.config?.find ?? 'TimeStamp : today',\r\n project: props?.item?.config?.project ?? 'TimeStamp: 1, C_value: 1',\r\n },\r\n name: 'React',\r\n option: props?.item?.option ?? {\r\n responsive: props?.item?.responsive ?? true,\r\n plugins: props?.item?.plugins ?? {\r\n legend: {\r\n position: 'top',\r\n },\r\n title: props?.item?.title ?? {\r\n display: true,\r\n text: 'chart name',\r\n },\r\n elements: {line: {tension: 0.4}},\r\n },\r\n y: props?.item?.y ?? {\r\n min: props?.item?.y?.min ?? -30,\r\n max: props?.item?.y?.max ?? 10,\r\n ticks: props?.item?.y?.ticks ?? {\r\n min: 0,\r\n max: 150,\r\n stepSize: 20,\r\n },\r\n },\r\n x: props?.item?.y ?? {},\r\n },\r\n data: props?.item?.data ?? {\r\n labels,\r\n datasets: props?.item?.datasets ?? [\r\n {\r\n label: '',\r\n data: [],\r\n tension: 0.4,\r\n borderColor: 'rgb(255, 99, 132)',\r\n backgroundColor: 'rgba(255, 99, 132, 0.5)',\r\n },\r\n ],\r\n },\r\n })\r\n\r\n useEffect(() => {\r\n RefreshData()\r\n setInterval(() => {\r\n RefreshData()\r\n }, state.config?.refersh)\r\n }, [])\r\n\r\n function RefreshData() {\r\n var datafield = {}\r\n datafield['sort'] = state.config.sort\r\n datafield['find'] = state.config.find\r\n datafield['project'] = state.config.project\r\n axios({\r\n method: 'post',\r\n url: process.env.REACT_APP_BACKEND_API + state.config.url,\r\n headers: {},\r\n data: datafield,\r\n }).then((response) => {\r\n if (response.data.status == 'S') {\r\n const labelsx = []\r\n const datax = []\r\n for (let index = 0; index < response.data.result.length; index++) {\r\n const element = response.data.result[index]\r\n labelsx.push(element[state.config.label])\r\n datax.push(element[state.config.data])\r\n }\r\n const chart = chartReference.current\r\n chart.data.labels = labelsx\r\n state.data.datasets[0].data = datax\r\n chart.data.datasets[0] = state.data.datasets[0]\r\n chart.update('none')\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n <>\r\n {state.option.plugins.title.text}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Chartj\r\n//https://codesandbox.io/s/k2ds4?file=/src/App.js:128-4341\r\n","import React, {useState, useEffect, useRef} from 'react'\r\nimport './../../../_metronic/assets/sass/kntdashbaord.css'\r\nimport {HubConnectionBuilder, JsonHubProtocol} from '@microsoft/signalr'\r\nimport {PageLink, PageTitle} from '../../../_metronic/layout/core'\r\nimport axios from 'axios'\r\nimport {Formik, Form, Field} from 'formik'\r\nimport 'reactjs-popup/dist/index.css'\r\nimport {ToastContainer, toast, Slide, Zoom, Flip, Bounce} from 'react-toastify'\r\nimport {FabricJSCanvas, useFabricJSEditor} from 'fabricjs-react'\r\nimport GoogleMapReact from 'google-map-react'\r\nimport MyGreatPlace from './MyPlace.jsx'\r\nimport Drive from './Drive.jsx'\r\nimport {Line} from 'react-chartjs-2'\r\nimport {\r\n Chart as ChartJS,\r\n CategoryScale,\r\n LinearScale,\r\n PointElement,\r\n LineElement,\r\n Title,\r\n Tooltip,\r\n Legend,\r\n Filler,\r\n} from 'chart.js'\r\nimport {axioDefaultConfig} from '../common/commonResource2'\r\nimport {useDataLayerValue} from '../../../DataLayer'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../_metronic/helpers'\r\nimport {useTable, useFilters, useGlobalFilter, usePagination, useAsyncDebounce} from 'react-table'\r\nimport ErrorMessage from '../helpers/message'\r\nimport Loading from '../helpers/loading'\r\nimport {func, number} from 'prop-types'\r\nimport {auto, right} from '@popperjs/core'\r\n\r\nChartJS.register(CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip, Legend)\r\n\r\nfunction SensorView(props) {\r\n const containerRef = useRef(null) // Create a ref for the scroll container\r\n const [isSubmitting, setSubmitting] = useState(false)\r\n const [{token}, dispatch] = useDataLayerValue()\r\n const labels = []\r\n const chartReference = React.createRef()\r\n const breadCrumbs = useRef([])\r\n const hubService = process.env.REACT_APP_MIDAS_HUB\r\n const [connection, setConnection] = useState(null)\r\n const reconnectRef = useRef(0)\r\n const urlParams = new URLSearchParams(window.location.search)\r\n const [isloading, setLoading] = useState(true)\r\n const [isChartLoading, setChartLoading] = useState(true)\r\n const [loadingMap, setLoadingMap] = useState(false)\r\n const [defaultProps, setdefaultProps] = useState({\r\n center: {\r\n lat: 6.911979146490742,\r\n lng: 79.92597226721936,\r\n },\r\n zoom: 10,\r\n })\r\n const [SensorList, setsensorList] = useState([])\r\n const sensors = useRef([])\r\n const [DeviceType, setDeviceType] = useState('24h')\r\n const [InitialLoading2, setInitialLoading2] = useState(true)\r\n const filter = useRef('0')\r\n const objBrowser = useRef(null)\r\n const gpsData = useRef([])\r\n const [PlayCount, setPlayCount] = useState(0)\r\n const [PlayUpToCount, setPlayUpToCount] = useState(-1)\r\n //const PlayCount = useRef(0)\r\n const [data, setdata] = useState([])\r\n //const gps_data = useRef([])\r\n const [gps_data, setgps_data] = useState([])\r\n const isPlaying = useRef(false) //setIsPlaying] = useState(false)\r\n const [chartData, setChartData] = useState({\r\n labels: [],\r\n datasets: [\r\n {\r\n label: '',\r\n data: [],\r\n backgroundColor: 'rgba(75,192,192,0.4)',\r\n borderColor: 'rgba(75,192,192,1)',\r\n borderWidth: 1,\r\n },\r\n ],\r\n })\r\n\r\n const {selectedObjects, setSelectedObject, editor, onReady} = useFabricJSEditor({\r\n defaultStrokeColor: 'red',\r\n selection: false,\r\n })\r\n\r\n const [layout, setLayout] = useState({\r\n id: 'dashboard',\r\n layoutName: '',\r\n imageData: null,\r\n devices: [],\r\n isZoom: false,\r\n globalJs: '',\r\n designObject: [],\r\n factories: [],\r\n subSectorName: '',\r\n subSectorCode: '',\r\n sectorName: '',\r\n sectorCode: '',\r\n factroyName: '',\r\n factroyCode: '',\r\n unitName: '',\r\n unitCode: '',\r\n Sensor: [],\r\n Packet: '',\r\n Field: '',\r\n data: [],\r\n //gpsdata: [],\r\n })\r\n\r\n const [live, setLive] = useState({\r\n Live: '',\r\n Min: '',\r\n Max: '',\r\n Status: '',\r\n Note: '',\r\n Description: '',\r\n NormalRange: '',\r\n WarningRange: '',\r\n CriticalRange: '',\r\n DisableRange: '',\r\n })\r\n\r\n const [state, setState] = useState({\r\n Data: {},\r\n DashboardStat: 'CONNECTING',\r\n SensorList: [],\r\n name: '',\r\n\r\n option: {\r\n responsive: true,\r\n plugins: {\r\n annotation: {\r\n annotations: {\r\n line1: {\r\n type: 'line',\r\n yMin: 60,\r\n yMax: 60,\r\n borderColor: 'rgb(255, 99, 132)',\r\n borderWidth: 2,\r\n },\r\n },\r\n },\r\n legend: {\r\n position: 'top',\r\n },\r\n title: {\r\n display: true,\r\n text: 'Line Chart',\r\n },\r\n bezierCurve: false,\r\n elements: {\r\n line: {\r\n tension: 0,\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n labels,\r\n datasets: [\r\n {\r\n label: '',\r\n data: [],\r\n lineTension: 0,\r\n borderColor: 'rgb(255, 99, 132)',\r\n backgroundColor: 'rgba(255, 99, 132, 0.5)',\r\n },\r\n ],\r\n },\r\n })\r\n\r\n function TablesWidget10() {\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: ' ',\r\n columns: [\r\n {\r\n accessor: 'code',\r\n },\r\n {\r\n accessor: 'formatCode',\r\n },\r\n {\r\n accessor: 'description',\r\n },\r\n {\r\n accessor: 'createdOn',\r\n },\r\n {\r\n accessor: 'status',\r\n },\r\n {\r\n accessor: 'priority',\r\n },\r\n {\r\n accessor: 'fK_SectorCode',\r\n },\r\n {\r\n accessor: 'facilityName',\r\n },\r\n {\r\n accessor: 'remain',\r\n },\r\n ],\r\n },\r\n ],\r\n []\r\n )\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageOptions,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n setPageSize,\r\n state: {pageIndex, pageSize, globalFilter},\r\n preGlobalFilteredRows,\r\n setGlobalFilter,\r\n } = useTable(\r\n {\r\n columns,\r\n data,\r\n initialState: {pageIndex: 0, pageSize: 20, globalFilter: ''},\r\n },\r\n useGlobalFilter,\r\n usePagination\r\n )\r\n const [error, setError] = useState({status: 'E', text: ''})\r\n\r\n const [{user, token}, dispatch] = useDataLayerValue()\r\n\r\n if (InitialLoading2) return \r\n\r\n return (\r\n
\r\n {/* begin::Header */}\r\n
\r\n

\r\n Last 24h Alerts\r\n Alert Management\r\n

\r\n \r\n \r\n
\r\n
\r\n
\r\n {/* end::Header */}\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Table container */}\r\n
\r\n {/* begin::Table */}\r\n \r\n \r\n Ticket\r\n Description\r\n \r\n \r\n {page.length === 0 && (\r\n \r\n \r\n No Data Found!\r\n \r\n \r\n )}\r\n {page.map((row, i) => {\r\n prepareRow(row)\r\n return (\r\n \r\n {/* {row.cells.map((cell) => {\r\n return {cell.render('Cell')}\r\n })}*/}\r\n \r\n {\r\n \r\n {row.values.formatCode}\r\n \r\n }\r\n \r\n \r\n {row.values.description}{' '}\r\n \r\n {row.values.priority}\r\n \r\n {\r\n \r\n {row.values.facilityName}\r\n \r\n }\r\n
\r\n {row.values.createdOn}\r\n {row.values.status == 'Opened' && (\r\n \r\n {' '}\r\n OPENED ({row.values.remain})\r\n \r\n )}\r\n {row.values.status == 'Resolved' && (\r\n \r\n {' '}\r\n RESOLVED\r\n \r\n )}\r\n {row.values.status == 'Closed' && (\r\n \r\n {' '}\r\n CLOSED\r\n \r\n )}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n {/* \r\n Pagination can be built however you'd like. \r\n This is just a very basic UI implementation:\r\n */}\r\n \r\n
\r\n {/* end::Table container */}\r\n
\r\n {/* begin::Body */}\r\n \r\n )\r\n }\r\n const [countdown, setCountdown] = useState(60)\r\n const [countdown2, setCountdown2] = useState(0)\r\n // useEffect(() => {\r\n // if (connection) {\r\n // connection\r\n // .start()\r\n // .then((result) => {\r\n // setState({\r\n // ...state,\r\n // DashboardStat: 'CONNECTED',\r\n // })\r\n // setLoading(false)\r\n // reconnectRef.current = 0\r\n // connection.onreconnecting((error) => {\r\n // setState({\r\n // ...state,\r\n // DashboardStat: 'RECONNECTING',\r\n // })\r\n // console.log('Connection lost due to error . Reconnecting.')\r\n // })\r\n\r\n // // Reconnect if hub disconnects\r\n // connection.onclose(function (e) {\r\n // setState({\r\n // ...state,\r\n // DashboardStat: 'DISCONNECTED',\r\n // })\r\n // //console.log('Disconnected');\r\n // })\r\n\r\n // connection.on('ReceiveMessage', (message) => {\r\n // if (typeof message === 'string' || message instanceof String) {\r\n // message = JSON.parse(message)\r\n // }\r\n // if (message.key !== 'SensorData') return\r\n\r\n // let dataPacket = JSON.parse(message.data)\r\n // if (\r\n // dataPacket.TimeStamp === undefined ||\r\n // Math.round((new Date() - new Date(dataPacket.TimeStamp)) / 1000) > 10\r\n // ) {\r\n // return\r\n // }\r\n\r\n // console.log(message)\r\n // let newElements = {}\r\n // Object.entries(dataPacket).map(([key, value]) => {\r\n // newElements[key] = value\r\n // })\r\n\r\n // Object.entries(dataPacket).map(([key, value]) => {\r\n // for (let index = 0; index < sensors.current.length; index++) {\r\n // const element = sensors.current[index]\r\n // if (element.machineNo === '') continue\r\n\r\n // if (element.displayName === '') element.displayName = ' '\r\n\r\n // if (element.icon === undefined) element.icon = 'dot'\r\n\r\n // if (\r\n // element.isNotify === undefined ||\r\n // element.isNotify === '' ||\r\n // element.isNotify === null\r\n // )\r\n // element.isNotify = false\r\n\r\n // if (!element.lastUpdate) {\r\n // element.lastUpdate = new Date()\r\n // } else if (Math.round((new Date() - new Date(element.lastUpdate)) / 1000) > 60) {\r\n // // console.log('[DB PACKET ' + element.machineNo.toString().toLowerCase() + ']')\r\n // if (\r\n // element.type == 14 ||\r\n // element.type == 13 ||\r\n // element.type == 17 ||\r\n // element.type == 15\r\n // ) {\r\n // //console.log(\"[chart data cleared \"+element.machineNo.toString().toLowerCase()+\"]\");\r\n // element.value = []\r\n // } else {\r\n // element.value = '---'\r\n // element.color = 'black'\r\n // }\r\n // }\r\n\r\n // let object = element.object.toString().toLowerCase()\r\n // let packetType = dataPacket.Plant + '.' + dataPacket.Packet\r\n\r\n // if (\r\n // element.object.toString().toLowerCase() === key.toString().toLowerCase() &&\r\n // packetType.toString().toLowerCase() === element.pakages\r\n // ) {\r\n // element.lastUpdate = new Date()\r\n // element.value = value\r\n // element.color = 'black'\r\n // element.notification = {\r\n // toastId: key.toString().toLowerCase(),\r\n // position: 'top-right',\r\n // type: 'info',\r\n // autoClose: false, // or set time\r\n // hideProgressBar: false,\r\n // closeOnClick: true,\r\n // // pauseOnHover: true,\r\n // draggable: false,\r\n // progress: undefined,\r\n // transition: Bounce,\r\n // }\r\n // try {\r\n // // alert(layout.globalJs)\r\n // eval(layout.globalJs + ';' + element.formula)\r\n // // eval(element.formula)\r\n // } catch (error) {\r\n // element.value = '---'\r\n // element.color = 'black'\r\n // // console.log(element.formula)\r\n // console.log(error)\r\n // }\r\n // }\r\n // }\r\n // })\r\n // setState({\r\n // ...state,\r\n // SensorList: sensors.current,\r\n // DashboardStat: 'CONNECTED',\r\n // })\r\n // })\r\n // })\r\n // .catch((e) => {})\r\n // }\r\n // }, [connection])\r\n\r\n useEffect(() => {\r\n const countdownInterval = setInterval(() => {\r\n // Decrease the countdown value every second\r\n setCountdown((prevCountdown) => (prevCountdown - 1 < 0 ? 0 : prevCountdown - 1))\r\n }, 1000)\r\n\r\n // Cleanup function to clear the interval when the component unmounts\r\n return () => clearInterval(countdownInterval)\r\n }, []) // Empty dependency array ensures the effect runs only once\r\n\r\n useEffect(() => {\r\n axios({\r\n method: 'get',\r\n url:\r\n process.env.REACT_APP_BACKEND_API +\r\n '/api/sensors/' +\r\n (props.match?.params?.code ?? 'dream'),\r\n headers: {...axioDefaultConfig.headers, Authorization: 'Bearer ' + token},\r\n }).then((response) => {\r\n // alert(response.data.result.unitModels[0].object)\r\n if (response.data.status == 'S') {\r\n setLayout({\r\n ...layout,\r\n //subSectorName: response.data.result.subSectors[0].name,\r\n //subSectorCode: response.data.result.subSectors[0].code,\r\n //sectorName: response.data.result.name,\r\n //sectorCode: response.data.result.code,\r\n //factroyName: response.data.result.subSectors[0].factories[0].name,\r\n //factroyCode: response.data.result.subSectors[0].factories[0].code,\r\n //unitName: response.data.result.businessUnitModels[0].name,\r\n //unitCode: response.data.result.businessUnitModels[0].code,\r\n Sensor: response.data.result.unitModels[0],\r\n breadCrumbs: response.data.result.breadCrumbs,\r\n })\r\n objBrowser.current = response.data.result.unitModels[0]\r\n // setBreadCrum(response)\r\n\r\n RefreshData(response.data.result.unitModels[0])\r\n setInterval(() => {\r\n RefreshData(response.data.result.unitModels[0])\r\n }, 60000)\r\n\r\n setState({\r\n ...state,\r\n SensorList: response.data.result.unitModels,\r\n })\r\n sensors.current = response.data.result.unitModels\r\n setTimeout(() => {\r\n for (let index = 0; index < sensors.current.length; index++) {\r\n const element = sensors.current[index]\r\n try {\r\n eval(layout.globalJs + ';' + element.tempFeild1)\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n setState({\r\n ...state,\r\n SensorList: sensors.current,\r\n DashboardStat: 'INITIALIZATION',\r\n })\r\n\r\n setTimeout(() => {\r\n const newConnection = new HubConnectionBuilder()\r\n .withUrl(\r\n process.env.REACT_APP_MIDAS_HUB +\r\n '/' +\r\n response.data.result.automationChannel +\r\n '/Hub'\r\n )\r\n .withAutomaticReconnect()\r\n .build()\r\n setConnection(newConnection)\r\n }, 100)\r\n }, 500)\r\n }\r\n })\r\n }, [])\r\n\r\n // function RefreshData2() {\r\n // //alert('asdasd')\r\n // setChartLoading(true)\r\n // const chart = chartReference.current\r\n // setTimeout(() => {\r\n // setChartLoading(false)\r\n\r\n // chart.data.datasets[0] = [\r\n // {\r\n // label: '',\r\n // data: [],\r\n // lineTension: 0,\r\n // borderColor: 'rgb(53, 162, 235)',\r\n // backgroundColor: 'rgba(53, 162, 235, 0.5)',\r\n // },\r\n // ][0]\r\n // chart.update('none')\r\n // }, 10)\r\n // }\r\n\r\n function RefreshData(obj) {\r\n if (filter.current === '1') return\r\n //alert(filter.current)\r\n if (obj?.name == undefined) return\r\n const chart = chartReference.current\r\n const sector = ''\r\n axios({\r\n ...axioDefaultConfig,\r\n method: 'get',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/get-alerts-tag?tag=' + obj.code,\r\n headers: {...axioDefaultConfig.headers, Authorization: 'Bearer ' + token},\r\n })\r\n .then(function (response) {\r\n setInitialLoading2(false)\r\n setdata(response?.data?.data)\r\n })\r\n .catch(function (error) {})\r\n\r\n var datafield = {}\r\n datafield['sensorCode'] = obj.code\r\n datafield['sort'] = 'TimeStamp: 1'\r\n datafield['find'] = 't_' + obj.object + ' : {$exists:true}, TimeStamp : ' + DeviceType\r\n datafield['project'] =\r\n 'TimeStamp: 1, ' +\r\n 't_' +\r\n obj.object +\r\n ' : 1, t_' +\r\n obj.object +\r\n '_gps : 1, t_' +\r\n obj.object +\r\n '_Ignition : 1 '\r\n axios({\r\n method: 'post',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/sensor/getall',\r\n headers: {},\r\n data: datafield,\r\n }).then((response) => {\r\n if (response.data.status == 'S') {\r\n setChartLoading(false)\r\n gpsData.current = response.data\r\n // setLayout({\r\n // ...layout,\r\n // gpsdata: response.data,\r\n // })\r\n const _labels = []\r\n const _data = []\r\n const _gps_data = []\r\n for (let index = 0; index < response.data.result.list.length; index++) {\r\n const element = response.data.result.list[index]\r\n _labels.push(element['TimeStamp'])\r\n _data.push(element['t_' + obj.object])\r\n // console.log(element['t_' + obj.object + '_gps'])\r\n\r\n var gps = element['t_' + objBrowser.current.object + '_gps']\r\n var Ignition = element['t_' + objBrowser.current.object + '_Ignition'] ?? 'NA'\r\n if (gps?.Lat ?? 0 != 0) {\r\n const Bruno = _gps_data.find(\r\n (person) =>\r\n person.lat === gps?.Lat && person.lng === gps?.Lng && person.ignition === Ignition\r\n )\r\n if (Bruno === undefined) {\r\n _gps_data.push({\r\n lat: gps?.Lat,\r\n lng: gps?.Lng,\r\n value: element['t_' + objBrowser.current.object],\r\n text: element['TimeStamp'],\r\n endDate: element['TimeStamp'],\r\n waiting: 0,\r\n ignition: Ignition,\r\n })\r\n } else {\r\n Bruno.ignition = Ignition\r\n Bruno.waiting = dateConverter(Bruno.endDate, element['TimeStamp'])\r\n Bruno.text = `${element['TimeStamp']} /n waiting ${dateConverter(\r\n Bruno.endDate,\r\n element['TimeStamp']\r\n )}`\r\n }\r\n }\r\n // var gps = element['t_' + obj.object + '_gps']\r\n // if (gps?.Lat ?? 0 != 0) {\r\n // _gps_data.push({\r\n // lat: gps?.Lat,\r\n // lng: gps?.Lng,\r\n // value: element['t_' + obj.object],\r\n // text: element['TimeStamp'],\r\n // })\r\n // }\r\n }\r\n setCountdown(60)\r\n setLive({\r\n Live: response.data.result.currrent,\r\n Min: response.data.result.min,\r\n Max: response.data.result.max,\r\n Date: response.data.result.date,\r\n Status: response.data.result.status,\r\n Note: response.data.result.note,\r\n Description: response.data.result.description,\r\n NormalRange: response.data.result.normalRange,\r\n WarningRange: response.data.result.warningRange,\r\n CriticalRange: response.data.result.criticalRange,\r\n DisableRange: response.data.result.disableRange,\r\n Lat: response.data.result?.Lat ?? '-',\r\n Lng: response.data.result?.Lng ?? '-',\r\n ignition: response.data.result?.ignition ?? '-',\r\n })\r\n setgps_data(_gps_data)\r\n // gps_data.current = _gps_data\r\n setChartData({\r\n labels: _labels,\r\n datasets: [\r\n {\r\n label: '',\r\n data: _data,\r\n lineTension: 0,\r\n backgroundColor: 'rgba(75,192,192,0.4)',\r\n borderColor: 'rgba(75,192,192,1)',\r\n borderWidth: 1,\r\n },\r\n ],\r\n })\r\n setLoading(false)\r\n }\r\n })\r\n }\r\n\r\n function hideAllNotification() {\r\n toast.dismissAll()\r\n }\r\n\r\n function hideNotification(notification) {\r\n toast.dismiss(notification.toastId)\r\n }\r\n\r\n function getTransactionType(transition) {\r\n switch (transition.toLowerCase()) {\r\n case 'flip':\r\n return Flip\r\n case 'slide':\r\n return Slide\r\n case 'zoom':\r\n return Zoom\r\n\r\n default:\r\n return Bounce\r\n }\r\n }\r\n function getType(type) {\r\n switch (type.toLowerCase()) {\r\n case 'info':\r\n return toast.TYPE.INFO\r\n case 'error':\r\n return toast.TYPE.ERROR\r\n case 'success':\r\n return toast.TYPE.SUCCESS\r\n case 'warning':\r\n return toast.TYPE.WARNING\r\n default:\r\n return toast.TYPE.INFO\r\n }\r\n }\r\n\r\n function showNotification(notification) {\r\n notification.transition = getTransactionType(notification.transition)\r\n if (toast.isActive(notification.toastId)) {\r\n notification.render = notification.message\r\n notification.type = getType(notification.type)\r\n toast.update(notification.toastId, notification)\r\n return\r\n }\r\n\r\n switch (notification.type) {\r\n case 'error':\r\n toast.error(notification.message, notification)\r\n break\r\n case 'info':\r\n toast.info(notification.message, notification)\r\n break\r\n case 'warning':\r\n toast.warn(notification.message, notification)\r\n break\r\n case 'success':\r\n toast.success(notification.message, notification)\r\n break\r\n default:\r\n toast(notification.message)\r\n break\r\n }\r\n }\r\n\r\n function Notification(notification) {\r\n if (toast.isActive(notification.toastId)) {\r\n toast.dismiss(notification.toastId)\r\n }\r\n switch (notification.Type) {\r\n case 'error':\r\n toast.error(notification.Message, {\r\n toastId: notification?.toastId ?? 'default',\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n\r\n case 'info':\r\n toast.info(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification?.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'warning':\r\n toast.warn(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n case 'success':\r\n toast.success(notification.Message, {\r\n position: notification?.Position ?? 'top-right',\r\n autoClose: notification?.Autoclose ?? 5000,\r\n toastId: notification?.toastId ?? 'default',\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n })\r\n break\r\n default:\r\n toast('Wow so easy!')\r\n break\r\n }\r\n }\r\n\r\n const dateConverter = (startDate, timeEnd) => {\r\n const newStartDate = new Date(startDate)\r\n const newEndDate = new Date(timeEnd)\r\n const one_day = 1000 * 60\r\n let result\r\n result = Math.ceil((newEndDate.getTime() - newStartDate.getTime()) / one_day)\r\n console.log('date Converter result', result)\r\n if (result < 0) {\r\n return '0'\r\n }\r\n\r\n return `${Math.floor(result / 60)}h ${result % 60}min`\r\n }\r\n\r\n function OnReset() {\r\n const _gps_data = []\r\n for (let index = 0; index < gpsData.current.result.list.length; index++) {\r\n const element = gpsData.current.result.list[index]\r\n if (element == null) continue\r\n\r\n var gps = element['t_' + objBrowser.current.object + '_gps']\r\n var Ignition = element['t_' + objBrowser.current.object + '_Ignition'] ?? 'NA'\r\n if (gps?.Lat ?? 0 != 0) {\r\n const Bruno = _gps_data.find(\r\n (person) =>\r\n person.lat === gps?.Lat && person.lng === gps?.Lng && person.ignition === Ignition\r\n )\r\n if (Bruno === undefined) {\r\n _gps_data.push({\r\n lat: gps?.Lat,\r\n lng: gps?.Lng,\r\n value: element['t_' + objBrowser.current.object],\r\n text: element['TimeStamp'],\r\n endDate: element['TimeStamp'],\r\n waiting: 0,\r\n ignition: Ignition,\r\n })\r\n } else {\r\n Bruno.ignition = Ignition\r\n Bruno.waiting = dateConverter(Bruno.endDate, element['TimeStamp'])\r\n Bruno.text = `${element['TimeStamp']} /n waiting ${dateConverter(\r\n Bruno.endDate,\r\n element['TimeStamp']\r\n )}`\r\n }\r\n }\r\n }\r\n setgps_data(_gps_data)\r\n isPlaying.current = false\r\n filter.current = '0'\r\n setPlayUpToCount(-1)\r\n setPlayCount(0)\r\n setdefaultProps({\r\n ...defaultProps,\r\n zoom: 10,\r\n })\r\n }\r\n\r\n function Play() {\r\n const countdownInterval2 = setInterval(() => {\r\n //gps_data.current = _gps_data\r\n setPlayCount((prevCountdown) => {\r\n const _gps_data = []\r\n for (\r\n let index = 0;\r\n index <\r\n (gpsData.current.result.list.length > prevCountdown\r\n ? prevCountdown\r\n : gpsData.current.result.list.length);\r\n index++\r\n ) {\r\n const element = gpsData.current.result.list[index]\r\n if (element == null) continue\r\n\r\n var gps = element['t_' + objBrowser.current.object + '_gps']\r\n var Ignition = element['t_' + objBrowser.current.object + '_Ignition'] ?? 'NA'\r\n if (gps?.Lat ?? 0 != 0) {\r\n const Bruno = _gps_data.find(\r\n (person) =>\r\n person.lat === gps?.Lat && person.lng === gps?.Lng && person.ignition === Ignition\r\n )\r\n if (Bruno === undefined) {\r\n _gps_data.push({\r\n lat: gps?.Lat,\r\n lng: gps?.Lng,\r\n value: element['t_' + objBrowser.current.object],\r\n text: element['TimeStamp'],\r\n endDate: element['TimeStamp'],\r\n waiting: 0,\r\n ignition: Ignition,\r\n })\r\n } else {\r\n Bruno.ignition = Ignition\r\n Bruno.waiting = dateConverter(Bruno.endDate, element['TimeStamp'])\r\n Bruno.text = `${element['TimeStamp']} /n waiting ${dateConverter(\r\n Bruno.endDate,\r\n element['TimeStamp']\r\n )}`\r\n }\r\n }\r\n }\r\n // alert(prevCountdown)\r\n // alert(gpsData.current.result.list.length)\r\n // alert(_gps_data.length)\r\n setgps_data(_gps_data)\r\n\r\n if (gpsData.current.result.list.length < prevCountdown || !isPlaying.current) {\r\n OnReset()\r\n\r\n clearInterval(countdownInterval2)\r\n }\r\n return prevCountdown + 1\r\n })\r\n }, 500)\r\n }\r\n\r\n // useEffect(() => {\r\n // setdefaultProps({\r\n // center: {\r\n // lat: gps_data[PlayUpToCount].lat,\r\n // lng: gps_data[PlayUpToCount].lng,\r\n // },\r\n // zoom: 10,\r\n // })\r\n // }, [PlayUpToCount])\r\n\r\n useEffect(() => {\r\n if (containerRef.current) {\r\n containerRef.current.scrollTop = containerRef.current.scrollHeight\r\n }\r\n }, [gps_data])\r\n // Prevent user from scrolling up (if needed)\r\n const handleWheel = (event) => {\r\n if (containerRef.current) {\r\n const {scrollTop, scrollHeight, clientHeight} = containerRef.current\r\n // Prevent scrolling up\r\n if (scrollTop === 0 && event.deltaY < 0) {\r\n event.preventDefault() // Prevent scrolling up\r\n }\r\n }\r\n }\r\n\r\n function onClearFilter() {\r\n filter.current = '0'\r\n setPlayUpToCount(-1)\r\n setPlayCount(0)\r\n RefreshData(objBrowser.current)\r\n }\r\n\r\n function onSelect(index2) {\r\n setdefaultProps({\r\n center: {\r\n lat: Number(gps_data[index2].lat),\r\n lng: Number(gps_data[index2].lng),\r\n },\r\n zoom: 15,\r\n })\r\n filter.current = '1'\r\n setPlayUpToCount(index2)\r\n }\r\n\r\n function onStop() {\r\n isPlaying.current = false\r\n // setIsPlaying(false)\r\n }\r\n\r\n function onPlay() {\r\n setgps_data([])\r\n isPlaying.current = true\r\n // setIsPlaying(true)\r\n setPlayUpToCount(-1)\r\n setPlayCount(0)\r\n filter.current = '1'\r\n setdefaultProps({\r\n ...defaultProps,\r\n zoom: 15,\r\n })\r\n setTimeout(() => {\r\n Play()\r\n }, 200)\r\n }\r\n // function timeonchange(e) {\r\n // setDeviceType(e.target.value)\r\n // setChartLoading(true)\r\n // setTimeout(() => {\r\n // RefreshData(layout.Sensor)\r\n // }, 100)\r\n // }\r\n\r\n var statusColorClass = 'btn btn-sm btn-light-dark'\r\n if (live.Status == 'NORMAL') {\r\n statusColorClass = 'btn btn-sm btn-light-success'\r\n } else if (live.Status == 'WARNING') {\r\n statusColorClass = 'btn btn-sm btn-light-warning'\r\n } else if (live.Status == 'CRITICAL') {\r\n statusColorClass = 'btn btn-sm btn-light-danger'\r\n }\r\n\r\n return (\r\n <>\r\n {layout?.Sensor?.name} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Data Visualized (24h){' '}\r\n
\r\n \r\n {layout?.Sensor?.description}\r\n {filter.current == '0' && (\r\n <>\r\n \r\n   Last Update at {live?.Date} \r\n \r\n \r\n )}\r\n {filter.current == '1' && (\r\n <>\r\n   Filtered Apply\r\n \r\n    Clear Filers\r\n \r\n \r\n )}\r\n \r\n

\r\n
\r\n\r\n
\r\n {countdown <= 10 && filter.current == '0' && (\r\n <>\r\n Auto refresh in {countdown} seconds\r\n \r\n )}\r\n {countdown > 10 && filter.current == '0' && (\r\n <>\r\n

Auto refresh in {countdown} seconds

{' '}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n {live.Live}°C\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n filter.current = '1'\r\n // alert('HI EX' + values.datex)\r\n var datafield = {}\r\n datafield['sensorCode'] = layout.Sensor.code\r\n datafield['sort'] = 'TimeStamp: 1'\r\n datafield['date'] = values.datex\r\n datafield['Ftype'] = values.Ftype\r\n datafield['find'] = 't_' + layout.Sensor.object + ' : {$exists:true}, TimeStamp : DT'\r\n datafield['project'] =\r\n 'TimeStamp: 1, ' +\r\n 't_' +\r\n layout.Sensor.object +\r\n ' : 1, t_' +\r\n layout.Sensor.object +\r\n '_gps : 1, t_' +\r\n layout.Sensor.object +\r\n '_Ignition : 1 '\r\n axios({\r\n method: 'post',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/sensor/getall',\r\n headers: {},\r\n data: datafield,\r\n }).then((response) => {\r\n const _labels = []\r\n const _data = []\r\n const _gps_data = []\r\n if (response.data.status == 'S') {\r\n setChartLoading(false)\r\n gpsData.current = response.data\r\n // setLayout({\r\n // ...layout,\r\n // gpsdata: response.data,\r\n // })\r\n\r\n for (let index = 0; index < response.data.result.list.length; index++) {\r\n const element = response.data.result.list[index]\r\n _labels.push(element['TimeStamp'])\r\n _data.push(element['t_' + layout.Sensor.object])\r\n // console.log(element['t_' + obj.object + '_gps'])\r\n\r\n var gps = element['t_' + objBrowser.current.object + '_gps']\r\n var Ignition = element['t_' + objBrowser.current.object + '_Ignition'] ?? 'NA'\r\n if (gps?.Lat ?? 0 != 0) {\r\n const Bruno = _gps_data.find(\r\n (person) =>\r\n person.lat === gps?.Lat &&\r\n person.lng === gps?.Lng &&\r\n person.ignition === Ignition\r\n )\r\n if (Bruno === undefined) {\r\n _gps_data.push({\r\n lat: gps?.Lat,\r\n lng: gps?.Lng,\r\n value: element['t_' + objBrowser.current.object],\r\n text: element['TimeStamp'],\r\n endDate: element['TimeStamp'],\r\n waiting: 0,\r\n ignition: Ignition,\r\n })\r\n } else {\r\n Bruno.ignition = Ignition\r\n Bruno.waiting = dateConverter(Bruno.endDate, element['TimeStamp'])\r\n Bruno.text = `${element['TimeStamp']} /n waiting ${dateConverter(\r\n Bruno.endDate,\r\n element['TimeStamp']\r\n )}`\r\n }\r\n }\r\n // var gps = element['t_' + obj.object + '_gps']\r\n // if (gps?.Lat ?? 0 != 0) {\r\n // _gps_data.push({\r\n // lat: gps?.Lat,\r\n // lng: gps?.Lng,\r\n // value: element['t_' + obj.object],\r\n // text: element['TimeStamp'],\r\n // })\r\n // }\r\n }\r\n\r\n setLive({\r\n Live: response.data.result.currrent,\r\n Min: response.data.result.min,\r\n Max: response.data.result.max,\r\n Date: response.data.result.date,\r\n Status: response.data.result.status,\r\n Note: response.data.result.note,\r\n Description: response.data.result.description,\r\n NormalRange: response.data.result.normalRange,\r\n WarningRange: response.data.result.warningRange,\r\n CriticalRange: response.data.result.criticalRange,\r\n DisableRange: response.data.result.disableRange,\r\n Lat: response.data.result?.Lat ?? '-',\r\n Lng: response.data.result?.Lng ?? '-',\r\n ignition: response.data.result?.ignition ?? '-',\r\n })\r\n setgps_data(_gps_data)\r\n setChartData({\r\n labels: _labels,\r\n datasets: [\r\n {\r\n label: '',\r\n data: _data,\r\n lineTension: 0,\r\n backgroundColor: 'rgba(75,192,192,0.4)',\r\n borderColor: 'rgba(75,192,192,1)',\r\n borderWidth: 1,\r\n },\r\n ],\r\n })\r\n setLoading(false)\r\n } else {\r\n setgps_data([])\r\n setChartData({\r\n labels: _labels,\r\n datasets: [\r\n {\r\n label: '',\r\n data: _data,\r\n lineTension: 0,\r\n backgroundColor: 'rgba(75,192,192,0.4)',\r\n borderColor: 'rgba(75,192,192,1)',\r\n borderWidth: 1,\r\n },\r\n ],\r\n })\r\n setLoading(false)\r\n }\r\n // const _labels = []\r\n // const _data = []\r\n // if (response.data.status == 'S') {\r\n // setChartLoading(false)\r\n\r\n // for (let index = 0; index < response.data.result.list.length; index++) {\r\n // const element = response.data.result.list[index]\r\n // _labels.push(element['TimeStamp'])\r\n // _data.push(element['t_' + layout.Sensor.object])\r\n // }\r\n\r\n // setChartData({\r\n // labels: _labels,\r\n // datasets: [\r\n // {\r\n // label: '',\r\n // data: _data,\r\n // lineTension: 0,\r\n // backgroundColor: 'rgba(75,192,192,0.4)',\r\n // borderColor: 'rgba(75,192,192,1)',\r\n // borderWidth: 1,\r\n // },\r\n // ],\r\n // })\r\n // setLoading(false)\r\n // } else {\r\n // setChartData({\r\n // labels: _labels,\r\n // datasets: [\r\n // {\r\n // label: '',\r\n // data: _data,\r\n // lineTension: 0,\r\n // backgroundColor: 'rgba(75,192,192,0.4)',\r\n // borderColor: 'rgba(75,192,192,1)',\r\n // borderWidth: 1,\r\n // },\r\n // ],\r\n // })\r\n // setLoading(false)\r\n // }\r\n })\r\n //()\r\n }}\r\n >\r\n {({values, errors, touched, handleChange, handleBlur, handleSubmit}) => (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {!isSubmitting && (\r\n \r\n Filter   \r\n \r\n )}\r\n {isSubmitting && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isChartLoading && <>Loading}\r\n \r\n {/* */}\r\n
\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 Visualized (24h)\r\n \r\n {layout?.Sensor?.description} |\r\n \r\n Last Update at {live?.Date} \r\n \r\n \r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n */}\r\n
\r\n
\r\n
\r\n {' '}\r\n \r\n \r\n
\r\n
\r\n

Critical Level

\r\n
{live?.CriticalRange} Range
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {' '}\r\n \r\n \r\n
\r\n
\r\n

Warning Level

\r\n
{live?.WarningRange} Range
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {' '}\r\n \r\n \r\n
\r\n
\r\n

Normal Level

\r\n
{live?.NormalRange} Range
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n

Disable Level

\r\n
\r\n {live?.DisableRange.substring(0, 15) + '...'} Range\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {gps_data.length > 0 && (\r\n <>\r\n
\r\n {/* begin::Header */}\r\n
\r\n

\r\n Map View \r\n {/* {PlayCount} */}\r\n \r\n

\r\n\r\n \r\n
\r\n {!isPlaying.current && (\r\n <>\r\n {' '}\r\n \r\n \r\n )}\r\n {isPlaying.current && (\r\n <>\r\n {' '}\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {gps_data.map((marker, index) => (\r\n <>\r\n {PlayUpToCount == index && (\r\n <>\r\n onSelect(index)}\r\n className={\r\n 'col-lg-12 notice d-flex rounded border border-dashed mb-1 bg-light-danger border-danger border-dark'\r\n }\r\n >\r\n
\r\n  \r\n {marker.endDate}\r\n
\r\n
\r\n W Time {marker.waiting} | IG :{' '}\r\n {marker.ignition == 1 ? (\r\n

ON

\r\n ) : marker.ignition == 0 ? (\r\n

OFF

\r\n ) : (\r\n '-'\r\n )}{' '}\r\n | {marker.value} °C\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {PlayUpToCount != index && (\r\n <>\r\n onSelect(index)}\r\n className={\r\n 'col-lg-12 notice d-flex rounded border border-dashed mb-1 border-dark'\r\n }\r\n >\r\n
\r\n {/* {gps_data?.length - 1 === index && (\r\n <>\r\n \r\n \r\n )} */}\r\n  \r\n {marker.endDate}\r\n
\r\n W Time {marker.waiting} | IG :{' '}\r\n {marker.ignition == 1 ? (\r\n

ON

\r\n ) : marker.ignition == 0 ? (\r\n

OFF

\r\n ) : (\r\n '-'\r\n )}{' '}\r\n | {marker.value} °C\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n ))}\r\n \r\n
\r\n {PlayUpToCount > 0 && (\r\n <>\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n )}\r\n {PlayUpToCount == -1 && (\r\n <>\r\n
\r\n \r\n {gps_data.map((marker, index) => (\r\n \r\n ))}\r\n {/*\r\n { lat :6.9123483,\r\n lng:80.0322383,\r\n }\r\n key={index}\r\n lat={marker.lat}\r\n lng={marker.lng}\r\n text={''}\r\n isNotify={''} \r\n Link={''}\r\n Type={''}\r\n 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 {/* begin::Body */}\r\n \r\n \r\n )}\r\n {/* {gps_data.length > 0 && (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Critical Level

\r\n
{gps_data[gps_data.length - 1].text}
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

Warning Level

\r\n
{live?.WarningRange} Range
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

Normal Level

\r\n
{live?.NormalRange} Range
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n

Disable Level

\r\n
{live?.DisableRange} Range
\r\n
\r\n
\r\n \r\n \r\n \r\n )} */}\r\n {/* {JSON.stringify(gps_data)} */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Minimum Temprature\r\n Based On Last 24hours\r\n

\r\n \r\n
\r\n \r\n {live.Min}°C\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n Maximum Temprature\r\n Based On Last 24hours\r\n

\r\n \r\n
\r\n \r\n {live.Max}°C\r\n
\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 {layout?.Sensor?.name} \r\n <>\r\n <>\r\n
\r\n
\r\n
\r\n

\r\n Data Visualized \r\n \r\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 SensorView\r\n","import React, {Component} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport shouldPureComponentUpdate from 'react-pure-render/function'\r\nimport Popup from 'reactjs-popup'\r\nimport 'reactjs-popup/dist/index.css'\r\nimport {greatPlaceStyle2} from '../sensor/config/my_great_place_styles.js'\r\n\r\nexport default class MyPlace extends Component {\r\n static propTypes = {\r\n text: PropTypes.string,\r\n long_text: PropTypes.string,\r\n isNotify: PropTypes.bool,\r\n Link: PropTypes.string,\r\n }\r\n\r\n static defaultProps = {}\r\n\r\n shouldComponentUpdate = shouldPureComponentUpdate\r\n\r\n render() {\r\n if (this.props.Type == 'Car') {\r\n return (\r\n <>\r\n \r\n alert('')}\r\n width={'70px'}\r\n src='https://cdn4.iconfinder.com/data/icons/VISTA/accounting/png/256/truck.png'\r\n />\r\n \r\n }\r\n position='right center'\r\n >\r\n
\r\n temp : {this.props.Value}°C
\r\n \r\n View More Details\r\n \r\n
\r\n \r\n \r\n )\r\n } else {\r\n if (!this.props.isNotify) {\r\n return (\r\n <>\r\n \r\n {this.props.text}\r\n {/* */}\r\n {/* {this.props.isNotify && (\r\n \r\n {' '}\r\n \r\n )}{' '} */}\r\n \r\n }\r\n position='right center'\r\n >\r\n
\r\n {this.props.long_text}\r\n {/* \r\n View More Details\r\n */}\r\n
\r\n \r\n \r\n )\r\n } else {\r\n return (\r\n <>\r\n \r\n {this.props.text}\r\n \r\n \r\n }\r\n position='right center'\r\n >\r\n
\r\n {this.props.long_text}\r\n {/* \r\n View More Details\r\n */}\r\n
\r\n \r\n \r\n )\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst PopupExample = () => (\r\n Trigger} position='right center'>\r\n
Popup content here !!
\r\n
\r\n)\r\n","export class ElementStyleUtil {\r\n public static set(element: HTMLElement, property: string, value?: any, important?: boolean) {\r\n if (important) {\r\n element.style.setProperty(property, value, 'important')\r\n } else {\r\n element.style.setProperty(property, value)\r\n }\r\n }\r\n\r\n public static get(element: HTMLElement, attributeName: string) {\r\n return element.style.getPropertyValue(attributeName)\r\n }\r\n\r\n public static remove(element: HTMLElement, attibuteName: string) {\r\n element.style.removeProperty(attibuteName)\r\n }\r\n}\r\n","export class DataUtil {\r\n static store: Map> = new Map()\r\n\r\n public static set(instance: HTMLElement | undefined, key: string, data: any): void {\r\n if (!instance) {\r\n return\r\n }\r\n\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n const newMap = new Map().set(key, data)\r\n DataUtil.store.set(instance, newMap)\r\n return\r\n }\r\n\r\n instanceData.set(key, data)\r\n }\r\n\r\n public static get(instance: HTMLElement, key: string): any | undefined {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n return\r\n }\r\n\r\n return instanceData.get(key)\r\n }\r\n\r\n public static remove(instance: HTMLElement, key: string): void {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n return\r\n }\r\n\r\n instanceData.delete(key)\r\n }\r\n\r\n public static has(instance: HTMLElement, key: string): boolean {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (instanceData) {\r\n return instanceData.has(key)\r\n }\r\n\r\n return false\r\n }\r\n\r\n public static getAllInstancesByKey(key: string) {\r\n const result: any[] = []\r\n DataUtil.store.forEach((val) => {\r\n val.forEach((v, k) => {\r\n if (k === key) {\r\n result.push(v)\r\n }\r\n })\r\n })\r\n return result\r\n }\r\n}\r\n","function getObjectPropertyValueByKey(obj: any, key: string): any | undefined {\r\n const map = new Map(Object.entries(obj))\r\n if (obj.hasOwnProperty(key) && map) {\r\n return map.get(key)\r\n }\r\n}\r\n\r\n/**\r\n * Generates unique ID for give prefix.\r\n * @param {string} prefix Prefix for generated ID\r\n * @returns {boolean}\r\n */\r\nfunction getUniqueIdWithPrefix(prefix: string | undefined): string {\r\n const result = Math.floor(Math.random() * new Date().getTime()).toString()\r\n if (!prefix) {\r\n return result\r\n }\r\n\r\n return `${prefix}${result}`\r\n}\r\n\r\n/* eslint-disable no-useless-escape */\r\nfunction stringSnakeToCamel(str: string): string {\r\n return str.replace(/(\\-\\w)/g, function (m) {\r\n return m[1].toUpperCase()\r\n })\r\n}\r\n\r\nfunction toJSON(value: string | JSON): JSON | undefined {\r\n if (typeof value !== 'string') {\r\n return value\r\n }\r\n\r\n if (!value) {\r\n return undefined\r\n }\r\n\r\n // (\"'\" => \"\\\"\");\r\n const result = value\r\n .toString()\r\n .split('')\r\n .map((el) => (el !== \"'\" ? el : '\"'))\r\n .join('')\r\n var jsonStr = result.replace(/(\\w+:)|(\\w+ :)/g, function (matched) {\r\n return '\"' + matched.substring(0, matched.length - 1) + '\":'\r\n })\r\n try {\r\n return JSON.parse(jsonStr)\r\n } catch {\r\n return undefined\r\n }\r\n}\r\n\r\nexport {getObjectPropertyValueByKey, getUniqueIdWithPrefix, stringSnakeToCamel, toJSON}\r\n","import {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport class DOMEventHandlerUtil {\r\n public static store = new Map()\r\n\r\n public static on(\r\n element: HTMLElement,\r\n selector: string,\r\n eventName: string,\r\n callBack: any\r\n ): string {\r\n const eventId = getUniqueIdWithPrefix('DOMEvent')\r\n DOMEventHandlerUtil.store.set(eventId, (e: Event) => {\r\n const targets = element.querySelectorAll(selector)\r\n let target: HTMLElement | null = e.target as HTMLElement\r\n while (target && target !== element) {\r\n for (let i = 0; i < targets.length; i++) {\r\n if (target === targets[i]) {\r\n callBack.call(target, e)\r\n }\r\n }\r\n\r\n if (target.parentElement) {\r\n target = target.parentElement\r\n } else {\r\n target = null\r\n }\r\n }\r\n })\r\n element.addEventListener(eventName, DOMEventHandlerUtil.store.get(eventId))\r\n return eventId\r\n }\r\n\r\n public static off(element: HTMLElement, eventName: string, eventId: string): void {\r\n const funcFromStore = DOMEventHandlerUtil.store.get(eventId)\r\n if (!funcFromStore) {\r\n return\r\n }\r\n\r\n element.removeEventListener(eventName, funcFromStore)\r\n DOMEventHandlerUtil.store.delete(eventId)\r\n }\r\n\r\n public static one(element: HTMLElement, eventName: string, callBack: Function): void {\r\n element.addEventListener(eventName, function calee(e) {\r\n // remove event\r\n if (e.target && e.target.removeEventListener) {\r\n e.target.removeEventListener(e.type, calee)\r\n }\r\n\r\n if (element && e && e.currentTarget) {\r\n // if (element && element.removeEventListener && e && e.currentTarget) {\r\n e.currentTarget.removeEventListener(e.type, calee)\r\n }\r\n\r\n // call hander\r\n return callBack(e)\r\n })\r\n }\r\n}\r\n","import {DOMEventHandlerUtil} from './_DOMEventHandlerUtil'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {getElementOffset} from './DomHelpers'\r\n\r\nexport class ElementAnimateUtil {\r\n public static animate(\r\n from: number,\r\n to: number,\r\n duration: number,\r\n update: Function,\r\n complete?: Function\r\n ) {\r\n /**\r\n * TinyAnimate.easings\r\n * Adapted from jQuery Easing\r\n */\r\n const easings = {\r\n linear: function (t: number, b: number, c: number, d: number) {\r\n return (c * t) / d + b\r\n },\r\n }\r\n\r\n // Create mock done() function if necessary\r\n if (!complete) {\r\n complete = function () {}\r\n }\r\n\r\n // Animation loop\r\n // let canceled = false;\r\n const change = to - from\r\n\r\n function loop(timestamp: number) {\r\n var time = (timestamp || +new Date()) - start\r\n\r\n if (time >= 0) {\r\n update(easings.linear(time, from, change, duration))\r\n }\r\n if (time >= 0 && time >= duration) {\r\n update(to)\r\n if (complete) {\r\n complete()\r\n }\r\n } else {\r\n window.requestAnimationFrame(loop)\r\n }\r\n }\r\n\r\n update(from)\r\n\r\n // Start animation loop\r\n const start =\r\n window.performance && window.performance.now ? window.performance.now() : +new Date()\r\n\r\n window.requestAnimationFrame(loop)\r\n }\r\n\r\n public static animateClass(\r\n element: HTMLElement,\r\n animationName: string,\r\n callBack?: Function\r\n ): void {\r\n const animateClasses = animationName.split(' ')\r\n animateClasses.forEach((cssClass) => element.classList.add(cssClass))\r\n DOMEventHandlerUtil.one(element, 'animationend', function () {\r\n animateClasses.forEach((cssClass) => element.classList.remove(cssClass))\r\n })\r\n\r\n if (callBack) {\r\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n }\r\n }\r\n\r\n public static transitionEnd(element: HTMLElement, callBack: Function) {\r\n DOMEventHandlerUtil.one(element, 'transitionend', callBack)\r\n }\r\n\r\n public static animationEnd(element: HTMLElement, callBack: Function) {\r\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n }\r\n\r\n public static animationDelay(element: HTMLElement, value: string) {\r\n ElementStyleUtil.set(element, 'animation-delay', value)\r\n }\r\n\r\n public static animationDuration(element: HTMLElement, value: string) {\r\n ElementStyleUtil.set(element, 'animation-duration', value)\r\n }\r\n\r\n public static scrollTo(element: HTMLElement | null, offset: number, duration: number = 500) {\r\n let targetPos = element ? getElementOffset(element).top : 0\r\n let scrollPos =\r\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\r\n\r\n if (offset) {\r\n scrollPos += offset\r\n targetPos = targetPos - offset\r\n }\r\n\r\n const from = scrollPos\r\n const to = targetPos\r\n\r\n ElementAnimateUtil.animate(from, to, duration, function (value: number) {\r\n document.documentElement.scrollTop = value\r\n // document.body.parentNode.scrollTop = value;\r\n document.body.scrollTop = value\r\n }) //, easing, done\r\n }\r\n public static scrollTop(offset: number, duration: number) {\r\n ElementAnimateUtil.scrollTo(null, offset, duration)\r\n }\r\n}\r\n","import {OffsetModel} from './models/OffsetModel'\r\nimport {ViewPortModel} from './models/ViewPortModel'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {DataUtil} from './_DataUtil'\r\nimport {ElementAnimateUtil} from './ElementAnimateUtil'\r\nimport {getObjectPropertyValueByKey, toJSON} from './_TypesHelpers'\r\n\r\nfunction getCSS(el: HTMLElement, styleProp: string) {\r\n const defaultView = (el.ownerDocument || document).defaultView\r\n\r\n if (!defaultView) {\r\n return ''\r\n }\r\n\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n}\r\n\r\nfunction getCSSVariableValue(variableName: string) {\r\n let hex = getComputedStyle(document.documentElement).getPropertyValue(variableName)\r\n if (hex && hex.length > 0) {\r\n hex = hex.trim()\r\n }\r\n\r\n return hex\r\n}\r\n\r\nfunction getElementActualCss(el: HTMLElement, prop: any, cache: boolean) {\r\n let css = ''\r\n\r\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n let value\r\n\r\n // the element is hidden so:\r\n // making the el block so we can meassure its height but still be hidden\r\n css = el.style.cssText\r\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;'\r\n\r\n if (prop === 'width') {\r\n value = el.offsetWidth\r\n } else if (prop === 'height') {\r\n value = el.offsetHeight\r\n }\r\n\r\n el.style.cssText = css\r\n\r\n // store it in cache\r\n if (value !== undefined) {\r\n el.setAttribute('kt-hidden-' + prop, value.toString())\r\n return parseFloat(value.toString())\r\n }\r\n return 0\r\n } else {\r\n // store it in cache\r\n const attributeValue = el.getAttribute('kt-hidden-' + prop)\r\n if (attributeValue || attributeValue === '0') {\r\n return parseFloat(attributeValue)\r\n }\r\n }\r\n}\r\n\r\nfunction getElementActualHeight(el: HTMLElement) {\r\n return getElementActualCss(el, 'height', false)\r\n}\r\n\r\nfunction getElementActualWidth(el: HTMLElement, cache?: boolean) {\r\n return getElementActualCss(el, 'width', false)\r\n}\r\n\r\nfunction getElementIndex(element: HTMLElement) {\r\n if (element.parentNode) {\r\n const c = element.parentNode.children\r\n for (let i = 0; i < c.length; i++) {\r\n if (c[i] === element) return i\r\n }\r\n }\r\n return -1\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\r\nfunction getElementMatches(element: HTMLElement, selector: string) {\r\n const p = Element.prototype\r\n const f = p.matches || p.webkitMatchesSelector\r\n\r\n if (element && element.tagName) {\r\n return f.call(element, selector)\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nfunction getElementOffset(el: HTMLElement): OffsetModel {\r\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n // Support: IE <=11 only\r\n // Running getBoundingClientRect on a\r\n // disconnected node in IE throws an error\r\n if (!el.getClientRects().length) {\r\n return {top: 0, left: 0}\r\n }\r\n\r\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n const rect = el.getBoundingClientRect()\r\n const win = el.ownerDocument.defaultView\r\n if (win) {\r\n return {\r\n top: rect.top + win.pageYOffset,\r\n left: rect.left + win.pageXOffset,\r\n }\r\n }\r\n\r\n return rect\r\n}\r\n\r\nfunction getElementParents(element: Element, selector: string) {\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches = function (s) {\r\n const matches = (document || this.ownerDocument).querySelectorAll(s)\r\n let i = matches.length\r\n while (--i >= 0 && matches.item(i) !== this) {}\r\n return i > -1\r\n }\r\n }\r\n\r\n // Set up a parent array\r\n const parents = []\r\n\r\n let el: Element | null = element\r\n\r\n // Push each parent element to the array\r\n for (; el && el !== document.body; el = el.parentElement) {\r\n if (selector) {\r\n if (el.matches(selector)) {\r\n parents.push(el)\r\n }\r\n continue\r\n }\r\n parents.push(el)\r\n }\r\n\r\n // Return our parent array\r\n return parents\r\n}\r\n\r\nfunction getHighestZindex(el: HTMLElement) {\r\n let bufferNode: Node | null = el as Node\r\n let buffer = el\r\n while (bufferNode && bufferNode !== document) {\r\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n // This makes behavior of this function consistent across browsers\r\n // WebKit always returns auto if the element is positioned\r\n const position = buffer.style.getPropertyValue('position')\r\n if (position === 'absolute' || position === 'relative' || position === 'fixed') {\r\n // IE returns 0 when zIndex is not specified\r\n // other browsers return a string\r\n // we ignore the case of nested elements with an explicit value of 0\r\n //
\r\n const value = parseInt(buffer.style.getPropertyValue('z-index'))\r\n if (!isNaN(value) && value !== 0) {\r\n return value\r\n }\r\n }\r\n\r\n bufferNode = bufferNode.parentNode\r\n buffer = bufferNode as HTMLElement\r\n }\r\n return null\r\n}\r\n\r\nfunction getScrollTop(): number {\r\n return (document.scrollingElement || document.documentElement).scrollTop\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth\r\nfunction getViewPort(): ViewPortModel {\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }\r\n}\r\n\r\nfunction insertAfterElement(el: HTMLElement, referenceNode: HTMLElement) {\r\n return referenceNode.parentNode?.insertBefore(el, referenceNode.nextSibling)\r\n}\r\n\r\nfunction isElementHasClasses(element: HTMLElement, classesStr: string): boolean {\r\n const classes = classesStr.split(' ')\r\n for (let i = 0; i < classes.length; i++) {\r\n if (!element.classList.contains(classes[i])) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction isVisibleElement(element: HTMLElement): boolean {\r\n return !(element.offsetWidth === 0 && element.offsetHeight === 0)\r\n}\r\n\r\n// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\r\nfunction throttle(timer: number | undefined, func: Function, delay?: number) {\r\n // If setTimeout is already scheduled, no need to do anything\r\n if (timer) {\r\n return\r\n }\r\n\r\n // Schedule a setTimeout after delay seconds\r\n timer = window.setTimeout(function () {\r\n func()\r\n\r\n // Once setTimeout function execution is finished, timerId = undefined so that in
\r\n // the next scroll event function execution can be scheduled by the setTimeout\r\n timer = undefined\r\n }, delay)\r\n}\r\n\r\nfunction getElementChildren(element: HTMLElement, selector: string): Array | null {\r\n if (!element || !element.childNodes) {\r\n return null\r\n }\r\n\r\n const result: Array = []\r\n for (let i = 0; i < element.childNodes.length; i++) {\r\n const child = element.childNodes[i]\r\n // child.nodeType == 1 => Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference\r\n if (child.nodeType === 1 && getElementMatches(child as HTMLElement, selector)) {\r\n result.push(child as HTMLElement)\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\nfunction getElementChild(element: HTMLElement, selector: string): HTMLElement | null {\r\n const children = getElementChildren(element, selector)\r\n return children ? children[0] : null\r\n}\r\n\r\nfunction isMobileDevice(): boolean {\r\n let test = getViewPort().width < +getBreakpoint('lg') ? true : false\r\n\r\n if (test === false) {\r\n // For use within normal web clients\r\n test = navigator.userAgent.match(/iPad/i) != null\r\n }\r\n\r\n return test\r\n}\r\n\r\nfunction slide(el: HTMLElement, dir: string, speed: number, callback: any) {\r\n if (\r\n !el ||\r\n (dir === 'up' && isVisibleElement(el) === false) ||\r\n (dir === 'down' && isVisibleElement(el) === true)\r\n ) {\r\n return\r\n }\r\n\r\n speed = speed ? speed : 600\r\n let calcHeight = getElementActualHeight(el)\r\n let calcPaddingTop: number = 0\r\n let calcPaddingBottom: number = 0\r\n\r\n if (ElementStyleUtil.get(el, 'padding-top') && DataUtil.get(el, 'slide-padding-top') !== true) {\r\n DataUtil.set(el, 'slide-padding-top', ElementStyleUtil.get(el, 'padding-top'))\r\n }\r\n\r\n if (\r\n ElementStyleUtil.get(el, 'padding-bottom') &&\r\n DataUtil.has(el, 'slide-padding-bottom') !== true\r\n ) {\r\n DataUtil.set(el, 'slide-padding-bottom', ElementStyleUtil.get(el, 'padding-bottom'))\r\n }\r\n\r\n if (DataUtil.has(el, 'slide-padding-top')) {\r\n calcPaddingTop = parseInt(DataUtil.get(el, 'slide-padding-top'))\r\n }\r\n\r\n if (DataUtil.has(el, 'slide-padding-bottom')) {\r\n calcPaddingBottom = parseInt(DataUtil.get(el, 'slide-padding-bottom'))\r\n }\r\n\r\n if (dir === 'up') {\r\n // up\r\n el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n if (calcPaddingTop) {\r\n ElementAnimateUtil.animate(0, calcPaddingTop, speed, function (value: number) {\r\n el.style.paddingTop = calcPaddingTop - value + 'px'\r\n })\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n ElementAnimateUtil.animate(0, calcPaddingBottom, speed, function (value: number) {\r\n el.style.paddingBottom = calcPaddingBottom - value + 'px'\r\n })\r\n }\r\n\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcHeight || 0,\r\n speed,\r\n function (value: number) {\r\n el.style.height = (calcHeight || 0) - value + 'px'\r\n },\r\n function () {\r\n el.style.height = ''\r\n el.style.display = 'none'\r\n\r\n if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n )\r\n } else if (dir === 'down') {\r\n // down\r\n el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n if (calcPaddingTop) {\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcPaddingTop,\r\n speed,\r\n function (value: number) {\r\n //\r\n el.style.paddingTop = value + 'px'\r\n },\r\n function () {\r\n el.style.paddingTop = ''\r\n }\r\n )\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcPaddingBottom,\r\n speed,\r\n function (value: number) {\r\n el.style.paddingBottom = value + 'px'\r\n },\r\n function () {\r\n el.style.paddingBottom = ''\r\n }\r\n )\r\n }\r\n\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcHeight || 0,\r\n speed,\r\n function (value: number) {\r\n el.style.height = value + 'px'\r\n },\r\n function () {\r\n el.style.height = ''\r\n el.style.display = ''\r\n el.style.overflow = ''\r\n\r\n if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n )\r\n }\r\n}\r\n\r\nfunction slideUp(el: HTMLElement, speed: number, callback: any) {\r\n slide(el, 'up', speed, callback)\r\n}\r\n\r\nfunction slideDown(el: HTMLElement, speed: number, callback: any) {\r\n slide(el, 'down', speed, callback)\r\n}\r\n\r\nfunction getBreakpoint(breakpoint: string) {\r\n let value: number | string = getCSSVariableValue('--bs-' + breakpoint)\r\n if (value) {\r\n value = parseInt(value.trim())\r\n }\r\n\r\n return value\r\n}\r\n\r\nfunction getAttributeValueByBreakpoint(incomingAttr: string): string | JSON {\r\n let value = toJSON(incomingAttr)\r\n if (typeof value !== 'object') {\r\n return incomingAttr\r\n }\r\n\r\n const width = getViewPort().width\r\n let resultKey\r\n let resultBreakpoint = -1\r\n let breakpoint\r\n\r\n for (let key in value) {\r\n if (key === 'default') {\r\n breakpoint = 0\r\n } else {\r\n breakpoint = getBreakpoint(key) ? +getBreakpoint(key) : parseInt(key)\r\n }\r\n\r\n if (breakpoint <= width && breakpoint > resultBreakpoint) {\r\n resultKey = key\r\n resultBreakpoint = breakpoint\r\n }\r\n }\r\n\r\n return resultKey ? getObjectPropertyValueByKey(value, resultKey) : value\r\n}\r\n\r\nfunction colorLighten(color: string, amount: number) {\r\n const addLight = (_color: string, _amount: number) => {\r\n const cc = parseInt(_color, 16) + _amount\r\n const cNum = cc > 255 ? 255 : cc\r\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n return c\r\n }\r\n\r\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n amount = parseInt(((255 * amount) / 100).toString())\r\n return (color = `#${addLight(color.substring(0, 2), amount)}${addLight(\r\n color.substring(2, 4),\r\n amount\r\n )}${addLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nfunction colorDarken(color: string, amount: number) {\r\n const subtractLight = (_color: string, _amount: number) => {\r\n const cc = parseInt(color, 16) - amount\r\n const cNum = cc < 0 ? 0 : cc\r\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n return c\r\n }\r\n\r\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n amount = parseInt(((255 * amount) / 100).toString())\r\n\r\n return (color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(\r\n color.substring(2, 4),\r\n amount\r\n )}${subtractLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nexport {\r\n getBreakpoint,\r\n getCSS,\r\n getCSSVariableValue,\r\n getElementActualCss,\r\n getElementActualHeight,\r\n getElementActualWidth,\r\n getElementIndex,\r\n getElementMatches,\r\n getElementOffset,\r\n getElementParents,\r\n getHighestZindex,\r\n getScrollTop,\r\n getViewPort,\r\n insertAfterElement,\r\n isElementHasClasses,\r\n isVisibleElement,\r\n throttle,\r\n getElementChildren,\r\n getElementChild,\r\n isMobileDevice,\r\n slide,\r\n slideUp,\r\n slideDown,\r\n getAttributeValueByBreakpoint,\r\n colorLighten,\r\n colorDarken,\r\n}\r\n","import {DataUtil} from './_DataUtil'\r\nimport {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport interface EventMeta {\r\n name: string\r\n callback: Function\r\n one: boolean\r\n fired: boolean\r\n}\r\n\r\nexport class EventHandlerUtil {\r\n static store: Map> = new Map()\r\n\r\n private static setEventMetasByName(name: string, metas: Map): void {\r\n EventHandlerUtil.store.set(name, metas)\r\n }\r\n\r\n private static getEventMetasByName(name: string): Map | undefined {\r\n return EventHandlerUtil.store.get(name)\r\n }\r\n\r\n private static setEventMetaByNameAndHandlerId(\r\n name: string,\r\n handlerId: string,\r\n meta: EventMeta\r\n ): void {\r\n let metas = EventHandlerUtil.getEventMetasByName(name)\r\n if (!metas) {\r\n metas = new Map()\r\n }\r\n\r\n metas.set(handlerId, meta)\r\n EventHandlerUtil.setEventMetasByName(name, metas)\r\n }\r\n\r\n private static getEventsMetaByHandlerId(name: string, handlerId: string): EventMeta | undefined {\r\n const metas = EventHandlerUtil.store.get(name)\r\n if (!metas) {\r\n return\r\n }\r\n\r\n return metas.get(handlerId)\r\n }\r\n\r\n private static setFiredByNameAndHandlerId(name: string, handerId: string, fired: boolean): void {\r\n const meta = EventHandlerUtil.getEventsMetaByHandlerId(name, handerId)\r\n if (!meta) {\r\n return\r\n }\r\n\r\n meta.fired = fired\r\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handerId, meta)\r\n }\r\n\r\n private static addEvent(\r\n element: HTMLElement,\r\n name: string,\r\n callback: Function,\r\n one: boolean = false\r\n ) {\r\n const handlerId = getUniqueIdWithPrefix('event')\r\n DataUtil.set(element, name, handlerId)\r\n const meta: EventMeta = {\r\n name: name,\r\n callback: callback,\r\n one: one,\r\n fired: false,\r\n }\r\n\r\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handlerId, meta)\r\n }\r\n\r\n private static removeEvent(element: HTMLElement, name: string) {\r\n const handlerId = DataUtil.get(element, name)\r\n if (!handlerId) {\r\n return\r\n }\r\n\r\n const metas = EventHandlerUtil.getEventMetasByName(name)\r\n if (!metas) {\r\n return\r\n }\r\n\r\n metas.delete(handlerId)\r\n EventHandlerUtil.setEventMetasByName(name, metas)\r\n }\r\n\r\n public static trigger(element: HTMLElement, name: string, e?: Event) {\r\n if (DataUtil.has(element, name)) {\r\n const handlerId = DataUtil.get(element, name)\r\n if (!handlerId) {\r\n return undefined\r\n }\r\n\r\n const handler = EventHandlerUtil.getEventsMetaByHandlerId(name, handlerId)\r\n if (handler) {\r\n if (handler.name === name) {\r\n if (handler.one === true) {\r\n if (handler.fired === false) {\r\n EventHandlerUtil.setFiredByNameAndHandlerId(name, handlerId, true)\r\n return handler.callback.call(this, e)\r\n }\r\n } else {\r\n return handler.callback.call(this, e)\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static on = function (element: HTMLElement, name: string, callBack: Function): void {\r\n EventHandlerUtil.addEvent(element, name, callBack, false)\r\n }\r\n\r\n public static one(element: HTMLElement, name: string, callBack: Function): void {\r\n EventHandlerUtil.addEvent(element, name, callBack, true)\r\n }\r\n\r\n public static off(element: HTMLElement, name: string): void {\r\n EventHandlerUtil.removeEvent(element, name)\r\n }\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from 'react'\r\nimport { Dropdown1 } from '../../content/dropdown/Dropdown1'\r\nimport { KTSVG } from '../../../helpers'\r\n\r\ntype Props = {\r\n className: string\r\n color: string\r\n factoryName: string\r\n critical: string\r\n warning: string\r\n connected: number\r\n alldevice: number\r\n alert: string\r\n link: string\r\n}\r\n\r\n\r\n\r\nconst routeChange = (link: any) => {\r\n window.location.href = link;\r\n // alert('asa' + link)\r\n}\r\n\r\nconst MixedWidget1: React.FC = ({ className, color, factoryName, critical, warning, connected, alert, alldevice, link }) => {\r\n\r\n let val = '';\r\n color = 'success'\r\n\r\n if (alldevice === 0 || alldevice == undefined) {\r\n color = 'dark'\r\n val = '0%'\r\n } else {\r\n val = Math.round((connected / alldevice) * 100) + \"%\";\r\n }\r\n\r\n if (parseFloat(critical ?? 0) > 0) {\r\n color = 'danger'\r\n }\r\n\r\n if (connected === 0) {\r\n color = 'dark'\r\n }\r\n\r\n\r\n return (\r\n
routeChange(link)}>\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Header */}\r\n
\r\n {/* begin::Heading */}\r\n
\r\n

{factoryName}

\r\n
\r\n\r\n {!(val == '0%' || alldevice == undefined) && (<>\r\n \r\n \r\n )}\r\n\r\n {/*\r\n \r\n \r\n \r\n begin::Menu */}\r\n {/* end::Menu */}\r\n
\r\n
\r\n {/* end::Heading */}\r\n {/* begin::Balance */}\r\n
\r\n Crtical \r\n \r\n {critical}\r\n \r\n
\r\n {/* end::Balance */}\r\n
\r\n {/* end::Header */}\r\n {/* begin::Items */}\r\n \r\n\r\n {/* begin::Item */}\r\n
\r\n
\r\n {/* begin::Title */}\r\n
\r\n \r\n Warrnings\r\n \r\n
\r\n \r\n
\r\n
\r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{warning}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* end::Item */}\r\n {/* begin::Item */}\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n \r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{val}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n \r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{alldevice}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n\r\n\r\n {/* end::Item */}\r\n {/* begin::Item */}\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n
\r\n \r\n Alerts\r\n \r\n
Past 24 hours
\r\n
\r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{alert}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* end::Item */}\r\n
\r\n {/* end::Items */}\r\n\r\n
\r\n\r\n {/* end::Body */}\r\n \r\n )\r\n\r\n return (\r\n
routeChange(link)} style={{ cursor: 'pointer' }}>\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Header */}\r\n
\r\n {/* begin::Heading */}\r\n
\r\n

{factoryName}

\r\n
\r\n {!(val == '0%' || alldevice == undefined) && (<>\r\n \r\n \r\n )}\r\n\r\n {/*\r\n \r\n \r\n \r\n begin::Menu */}\r\n {/* end::Menu */}\r\n
\r\n
\r\n {/* end::Heading */}\r\n {/* begin::Balance */}\r\n
\r\n Crtical\r\n\r\n \r\n {critical}\r\n \r\n
\r\n {/* end::Balance */}\r\n
\r\n {/* end::Header */}\r\n {/* begin::Items */}\r\n \r\n {/* begin::Item */}\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n
\r\n \r\n Total\r\n \r\n
\r\n
\r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{alldevice}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* end::Item */}\r\n {/* begin::Item */}\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n
\r\n \r\n Warrnings\r\n \r\n
\r\n \r\n
\r\n
\r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{warning}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* end::Item */}\r\n {/* begin::Item */}\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n \r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{val}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* end::Item */}\r\n {/* begin::Item */}\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n
\r\n \r\n Alerts\r\n \r\n
Past 24 hours
\r\n
\r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{alert}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* end::Item */}\r\n
\r\n {/* end::Items */}\r\n
\r\n {/* end::Body */}\r\n \r\n )\r\n}\r\n\r\nexport { MixedWidget1 }\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect, useRef } from 'react'\r\nimport ApexCharts, { ApexOptions } from 'apexcharts'\r\nimport { KTSVG } from '../../../helpers'\r\nimport { getCSSVariableValue } from '../../../assets/ts/_utils'\r\nimport { Dropdown1 } from '../../content/dropdown/Dropdown1'\r\n\r\ntype Props = {\r\n className: string\r\n chartColor: string\r\n chartHeight: string\r\n}\r\n\r\nconst MixedWidget7: React.FC = ({ className, chartColor, chartHeight }) => {\r\n const chartRef = useRef(null)\r\n\r\n useEffect(() => {\r\n if (!chartRef.current) {\r\n return\r\n }\r\n\r\n const chart = new ApexCharts(chartRef.current, chartOptions(chartColor, chartHeight))\r\n if (chart) {\r\n chart.render()\r\n }\r\n\r\n return () => {\r\n if (chart) {\r\n chart.destroy()\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [chartRef])\r\n\r\n return (\r\n
\r\n {/* begin::Beader */}\r\n
\r\n

\r\n Action Needed\r\n Check and Verified following Attempts\r\n

\r\n\r\n
\r\n {/* begin::Menu */}\r\n \r\n \r\n \r\n \r\n {/* end::Menu */}\r\n
\r\n
\r\n {/* end::Header */}\r\n\r\n {/* begin::Body */}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

\r\n Notes:  make sure\r\n to verify all alerts\r\n
\r\n & warnings\r\n

\r\n\r\n \r\n Take Action\r\n \r\n
\r\n
\r\n {/* end::Body */}\r\n
\r\n )\r\n}\r\n\r\nconst chartOptions = (chartColor: string, chartHeight: string): ApexOptions => {\r\n const baseColor = getCSSVariableValue('--bs-' + chartColor)\r\n const lightColor = getCSSVariableValue('--bs-light-' + chartColor)\r\n const labelColor = getCSSVariableValue('--bs-gray-700')\r\n\r\n return {\r\n series: [74],\r\n chart: {\r\n fontFamily: 'inherit',\r\n height: chartHeight,\r\n type: 'radialBar',\r\n },\r\n plotOptions: {\r\n radialBar: {\r\n hollow: {\r\n margin: 0,\r\n size: '65%',\r\n },\r\n dataLabels: {\r\n name: {\r\n show: false,\r\n fontWeight: '700',\r\n },\r\n value: {\r\n color: labelColor,\r\n fontSize: '30px',\r\n fontWeight: '700',\r\n offsetY: 12,\r\n show: true,\r\n formatter: function (val) {\r\n return val + '%'\r\n },\r\n },\r\n },\r\n track: {\r\n background: lightColor,\r\n strokeWidth: '100%',\r\n },\r\n },\r\n },\r\n colors: [baseColor],\r\n stroke: {\r\n lineCap: 'round',\r\n },\r\n labels: ['Progress'],\r\n }\r\n}\r\n\r\nexport { MixedWidget7 }\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect, useRef } from 'react'\r\nimport ApexCharts, { ApexOptions } from 'apexcharts'\r\nimport { getCSSVariableValue } from '../../../assets/ts/_utils'\r\nimport { link } from 'fs'\r\nimport { config } from 'process'\r\n\r\ntype Props = {\r\n className: string\r\n chartColor: string\r\n chartHeight: string\r\n name: string\r\n min: string\r\n max: string\r\n val: number\r\n Link: string\r\n extra: string,\r\n type: string,\r\n\r\n}\r\n\r\nconst routeChange = (link: any) => {\r\n window.location.href = link;\r\n // alert('asa' + link)\r\n}\r\n\r\nconst MixedWidget10: React.FC = ({ className, chartColor, chartHeight, name, min, max, val, Link, extra, type }) => {\r\n\r\n const chartRef = useRef(null)\r\n let obj = JSON.parse(extra)\r\n\r\n var color = ''\r\n if (type === \"OFFLINE\") {\r\n color = 'dark'\r\n return (\r\n
routeChange(Link)} style={{ cursor: 'pointer' }}>\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Stats */}\r\n
\r\n
\r\n
\r\n \r\n {obj?.Description}\r\n \r\n
{obj?.Name}
\r\n
{obj?.Note}
\r\n
\r\n
---
\r\n
\r\n
\r\n {/* end::Stats */}\r\n\r\n\r\n
\r\n {/* end::Body */}\r\n
\r\n )\r\n }\r\n\r\n\r\n\r\n return (\r\n
routeChange(Link)} style={{ cursor: 'pointer' }}>\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Stats */}\r\n
\r\n
\r\n
\r\n \r\n {obj?.Description}\r\n \r\n
{obj?.Name}
\r\n
{obj?.Note}
\r\n
\r\n
{val}°C
\r\n
\r\n <>\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {/* end::Stats */}\r\n\r\n\r\n
\r\n {/* end::Body */}\r\n
\r\n )\r\n}\r\n\r\n\r\nexport { MixedWidget10 }\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect, useRef } from 'react'\r\nimport ApexCharts, { ApexOptions } from 'apexcharts'\r\nimport { getCSSVariableValue } from '../../../assets/ts/_utils'\r\nimport { link } from 'fs'\r\nimport { config } from 'process'\r\nimport { KTSVG, toAbsoluteUrl } from '../../../../_metronic/helpers'\r\n\r\ntype Props = {\r\n className: string\r\n chartColor: string\r\n chartHeight: string\r\n name: string\r\n min: string\r\n max: string\r\n val: number\r\n Link: string\r\n type: string,\r\n data: string\r\n}\r\n\r\nconst routeChange = (link: any) => {\r\n window.location.href = link;\r\n // alert('asa' + link)\r\n}\r\n\r\nconst MixedWidget49: React.FC = ({ className, chartColor, chartHeight, name, min, max, val, Link, type, data }) => {\r\n\r\n\r\n\r\n const chartRef = useRef(null)\r\n\r\n var color = ''\r\n // if (type === \"OFFLINE\") {\r\n // color = 'dark'\r\n // return (\r\n //
routeChange(Link)} style={{ cursor: 'pointer' }}>\r\n // {/* begin::Body */}\r\n //
\r\n // {/* begin::Stats */}\r\n //
\r\n //
\r\n //
\r\n // \r\n // ssssss\r\n // \r\n //
fffff
\r\n //
ereeee
\r\n //
\r\n //
---
\r\n //
\r\n //
\r\n // {/* end::Stats */}\r\n\r\n\r\n //
\r\n // {/* end::Body */}\r\n //
\r\n // )\r\n // }\r\n //console.log(data)\r\n var objList = JSON.parse(data);\r\n\r\n\r\n ////var obj = objList.filter((item: any) => item.FieldName == \"MCU_TEMP\")[0]\r\n var ncu_fw_ver = objList.filter((item: any) => item.FieldName == \"NCU_FW_VER\")[0]\r\n var imei = objList.filter((item: any) => item.FieldName == \"IMEI\")[0]\r\n var BAT_VOL = objList.filter((item: any) => item.FieldName == \"BAT_VOL\")[0]\r\n ////var DATETIME = objList.filter((item: any) => item.FieldName == \"DATETIME\")[0]\r\n var GAS_METER = objList.filter((item: any) => item.FieldName == \"GAS_METER\")[0]\r\n\r\n //var pr = ((GAS_METER.Value / 400.0) * 100); //\r\n var F_DATETIME = objList.filter((item: any) => item.FieldName == \"F_DATETIME\")[0]\r\n //var CSQ = objList.filter((item: any) => item.FieldName == \"CSQ\")[0]\r\n var RSSI = objList.filter((item: any) => item.FieldName == \"RSSI\")[0] ?? \"\"\r\n\r\n var TANK_SIZE = objList.filter((item: any) => item.FieldName == \"TANK_SIZE\")[0]\r\n var GAS_PERCENT = objList.filter((item: any) => item.FieldName == \"GAS_PERCENT\")[0] ?? 0\r\n var pr = GAS_PERCENT.Value ?? 0\r\n var colurx = '#900C3F';\r\n if (pr > 70) {\r\n colurx = '#09932c';\r\n }\r\n else if (pr > 45) {\r\n colurx = '#FFC300'\r\n }\r\n else {\r\n colurx = '#900C3F';\r\n }\r\n\r\n return (\r\n
routeChange(Link)} style={{ cursor: 'pointer' }}>\r\n\r\n\r\n\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Stats */}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Footer\r\n
\r\n
\r\n
\r\n\r\n \r\n {imei?.Value ?? \"--\"} {/*JSON.stringify(objList)} */}\r\n \r\n
Tank Level: {GAS_METER?.Value} cm | Size: {TANK_SIZE?.Value ?? \"--- lb\"}
\r\n\r\n
\r\n
\r\n
{pr}%
\r\n
\r\n\r\n\r\n
\r\n <>\r\n \r\n \r\n \r\n
\r\n
\r\n <>\r\n
{F_DATETIME?.Value}
\r\n V {ncu_fw_ver?.Value ?? \"--\"} Battery {BAT_VOL?.Value} {RSSI?.Value}\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n {/* end::Stats */}\r\n\r\n\r\n
\r\n {/* end::Body */}\r\n
\r\n )\r\n}\r\n\r\n\r\nexport { MixedWidget49 }\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from 'react'\r\nimport { Dropdown1 } from '../../content/dropdown/Dropdown1'\r\nimport { KTSVG } from '../../../helpers'\r\n\r\n\r\n\r\ntype Props = {\r\n className: string\r\n color: string\r\n factoryName: string\r\n critical: string\r\n warning: string\r\n connected: number\r\n alldevice: number\r\n alert: string\r\n link: string,\r\n key: string,\r\n timestamp: string\r\n code: string,\r\n user: any\r\n}\r\n\r\n\r\nconst routeChange = (link: any) => {\r\n window.location.href = link;\r\n}\r\n\r\nconst MixedWidget20_1: React.FC = ({ className, color, factoryName, critical, warning, connected, alert, alldevice, link, key, timestamp, code, user }) => {\r\n let val = '';\r\n color = 'success'\r\n\r\n if (alldevice === 0 || alldevice == undefined) {\r\n color = 'dark'\r\n val = '0%'\r\n } else {\r\n val = Math.round((connected / alldevice) * 100) + \"%\";\r\n }\r\n\r\n if (parseFloat(critical ?? 0) > 0) {\r\n color = 'danger'\r\n }\r\n if (connected === 0) {\r\n color = 'dark'\r\n }\r\n\r\n var normal = (connected ?? 0) - parseInt(critical ?? 0) - parseInt(warning ?? 0);\r\n var disable = (alldevice ?? 0) - (connected ?? 0);\r\n return (\r\n
\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Header */}\r\n
routeChange(link)} >\r\n {/* begin::Heading */}\r\n
\r\n

{factoryName}

\r\n
\r\n\r\n {!(val == '0%' || alldevice == undefined) && (<>\r\n \r\n \r\n )}\r\n\r\n {/*\r\n \r\n \r\n \r\n begin::Menu */}\r\n {/* end::Menu */}\r\n
\r\n
\r\n {/* end::Heading */}\r\n {/* begin::Balance */}\r\n
\r\n Critical \r\n \r\n {critical}\r\n \r\n
\r\n {/* end::Balance */}\r\n
\r\n {/* end::Header */}\r\n {/* begin::Items */}\r\n \r\n\r\n {/* begin::Item */}\r\n
\r\n
\r\n {/* begin::Title */}\r\n
\r\n \r\n Warnings\r\n \r\n
\r\n Normal {normal}\r\n
\r\n
\r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{warning}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* end::Item */}\r\n {/* begin::Item */}\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n
\r\n \r\n Connections\r\n \r\n
\r\n Disable {disable}\r\n
\r\n
\r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{val}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n
\r\n
\r\n {/* begin::Title */}\r\n \r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
{alldevice}
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* end::Item */}\r\n {/* begin::Item */}\r\n
\r\n\r\n
\r\n {/* begin::Title */}\r\n
\r\n \r\n Alerts\r\n \r\n
Past 24 hours
\r\n
\r\n {/* end::Title */}\r\n {/* begin::Label */}\r\n
\r\n
\r\n {alert}\r\n\r\n
\r\n \r\n
\r\n {/* end::Label */}\r\n
\r\n {/* end::Description */}\r\n
\r\n {/* begin::Title */}\r\n
\r\n
{timestamp}
{(user == 'Administrator' || user == 'Content_Admin') && edit facility info}\r\n
\r\n {/* end::Description */}\r\n\r\n {/* end::Item */}\r\n
\r\n {/* end::Items */}\r\n\r\n
\r\n\r\n {/* end::Body */}\r\n \r\n )\r\n}\r\n\r\n\r\nexport { MixedWidget20_1 }\r\n","import React, {createContext, useContext, useReducer} from 'react'\r\n\r\nexport const DataLayerContext = createContext()\r\n\r\nexport const DataLayer = ({initialState, reducer, children}) => (\r\n \r\n {children}\r\n \r\n)\r\n\r\nexport const useDataLayerValue = () => useContext(DataLayerContext)\r\n","import React, {Component} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport shouldPureComponentUpdate from 'react-pure-render/function'\r\nimport Popup from 'reactjs-popup'\r\nimport 'reactjs-popup/dist/index.css'\r\nimport {greatPlaceStyle} from './my_great_place_styles.js'\r\n\r\nexport default class MyGreatPlace extends Component {\r\n static propTypes = {\r\n text: PropTypes.string,\r\n isNotify: PropTypes.bool,\r\n Link: PropTypes.string,\r\n }\r\n\r\n static defaultProps = {}\r\n\r\n shouldComponentUpdate = shouldPureComponentUpdate\r\n\r\n render() {\r\n if (this.props.Type == 'Car') {\r\n return (\r\n <>\r\n \r\n alert('')}\r\n width={'50px'}\r\n src='https://cdn4.iconfinder.com/data/icons/VISTA/accounting/png/256/truck.png'\r\n />\r\n \r\n }\r\n position='right center'\r\n >\r\n
\r\n temp : {this.props.Value}°C
\r\n \r\n View More Details\r\n \r\n
\r\n \r\n \r\n )\r\n } else {\r\n if (!this.props.isNotify) {\r\n return (\r\n <>\r\n {this.props.text}}\r\n position='right center'\r\n >\r\n \r\n \r\n \r\n )\r\n } else {\r\n return (\r\n <>\r\n \r\n {this.props.text}{' '}\r\n alert('')}\r\n width={'50px'}\r\n src='https://media.tenor.com/3mZe43RbInsAAAAi/alert-blink.gif'\r\n />\r\n \r\n }\r\n position='right center'\r\n >\r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst PopupExample = () => (\r\n Trigger} position='right center'>\r\n
Popup content here !!
\r\n
\r\n)\r\n","import React, { useState, useEffect, useRef,PureComponent } from \"react\";\r\nimport './../../../../_metronic/assets/sass/kntdashbaord.css'\r\nimport { HubConnectionBuilder, JsonHubProtocol } from '@microsoft/signalr'\r\nimport axios from 'axios'\r\nimport useWindowDimensions from '../../helpers/WindowDimension'\r\nimport Dictionary from '../../helpers/Dictionary'\r\nimport { KTSVG, toAbsoluteUrl } from '../../../../_metronic/helpers'\r\nimport { Dropdown1 } from '../../../../_metronic/partials'\r\nimport { AsideDefault } from '../../../../_metronic/layout/components/aside/AsideDefault'\r\nimport { Footer } from '../../../../_metronic/layout/components/Footer'\r\nimport { HeaderWrapper } from '../../../../_metronic/layout/components/header/HeaderWrapper'\r\nimport { PageDataProvider } from '../../../../_metronic/layout/core'\r\nimport { Content } from '../../../../_metronic/layout/components/Content'\r\nimport { ChartsWidget1, TablesWidget1, ListsWidget5, TablesWidget5, } from '../../../../_metronic/partials/widgets'\r\nimport { stat } from 'fs'\r\nimport Confetti from 'react-confetti'\r\nimport ImageMapper from \"react-image-mapper\";\r\nimport Draggable from \"react-draggable\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport Popup from 'reactjs-popup';\r\nimport SensorArea from './SensorArea'\r\nimport 'reactjs-popup/dist/index.css'\r\nimport { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';\r\n\r\nimport { auto, hide, right } from \"@popperjs/core\";\r\n\r\nvar randomColor = require(\"randomcolor\");\r\n\r\n\r\n\r\nfunction Display(props) {\r\n\r\n \r\n const [connection, setConnection] = useState(null)\r\n const reconnectRef = useRef(0);\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const [isloading, setLoading] = useState(true);\r\n const [item, setItem] = useState(\"\");\r\n const [SensorList, setsensorList] = useState([]);\r\n const sensors = useRef([]);\r\n \r\n \r\n const [layout, setLayout] = useState(\r\n {\r\n id: props.match?.params?.id ?? props.layout, //urlParams.get('id')??props.layout,\r\n layoutName: \"\",\r\n imageData: null,\r\n devices: [],\r\n isZoom: false\r\n });\r\n const [state, setState] = useState({\r\n Data: {},\r\n DashboardStat: 'CONNECTING',\r\n SensorList: []\r\n })\r\n \r\n const hubService = process.env.REACT_APP_MIDAS_HUB ;//\"https://signalr.midassit.com\";\r\n \r\n useEffect(() => {\r\n if (connection) {\r\n connection\r\n .start()\r\n .then((result) => {\r\n setState({\r\n ...state,\r\n DashboardStat: 'CONNECTED',\r\n })\r\n setLoading(false)\r\n reconnectRef.current = 0;\r\n console.log('Connected!');\r\n connection.onreconnecting((error) => {\r\n setState({\r\n ...state,\r\n DashboardStat: 'RECONNECTING',\r\n })\r\n console.log('Connection lost due to error . Reconnecting.')\r\n })\r\n \r\n // Reconnect if hub disconnects\r\n connection.onclose(function (e) {\r\n setState({\r\n ...state,\r\n DashboardStat: 'DISCONNECTED',\r\n })\r\n console.log('Disconnected');\r\n })\r\n \r\n connection.on('ReceiveMessage', (message) => {\r\n \r\n if (typeof message === 'string' || message instanceof String)\r\n {\r\n message = JSON.parse(message);\r\n }\r\n \r\n if (message.key !== \"SensorData\")\r\n return;\r\n \r\n let dataPacket = JSON.parse(message.data)\r\n //console.log(\"[DB PACKET]\"+JSON.stringify(dataPacket));\r\n if (dataPacket.TimeStamp === undefined || Math.round((new Date() - new Date(dataPacket.TimeStamp)) / 1000) > 10) {\r\n return\r\n } else {\r\n \r\n let newElements = {};\r\n Object.entries(dataPacket).map(([key, value]) => {\r\n newElements[key] = value;\r\n });\r\n \r\n Object.entries(dataPacket).map(([key, value]) => {\r\n for (let index = 0; index < sensors.current.length; index++) {\r\n const element = sensors.current[index];\r\n if (element.machineNo === '')\r\n continue;\r\n \r\n if (element.icon === undefined)\r\n element.icon = 'dot';\r\n \r\n if (element.isNotify === undefined || element.isNotify === '' || element.isNotify === null)\r\n element.isNotify = false;\r\n \r\n if (!element.lastUpdate) {\r\n element.lastUpdate = new Date();\r\n }\r\n else if (Math.round((new Date() - new Date(element.lastUpdate)) / 1000) > 60) {\r\n element.value = \"---\";\r\n element.color = 'black';\r\n }\r\n \r\n let object = element.object.toString().toLowerCase();\r\n if (props?.object !== undefined && props?.object !== '') {\r\n object = props?.object.toString().toLowerCase();\r\n }\r\n \r\n \r\n if (element.machineNo.toString().toLowerCase() === key.toString().toLowerCase() && message.packetType.toString().toLowerCase() === object) {\r\n element.lastUpdate = new Date();\r\n element.value = value;\r\n element.color = 'black';\r\n try {\r\n eval(element.formula)\r\n } catch (error) {\r\n element.value = '---'\r\n element.color = 'black';\r\n console.log(element.formula)\r\n console.log(error);\r\n }\r\n }\r\n }\r\n });\r\n setState({\r\n ...state,\r\n SensorList: sensors.current,\r\n DashboardStat: 'CONNECTED',\r\n });\r\n }\r\n })\r\n })\r\n .catch((e) => {\r\n console.log('Connection failed: ', e);\r\n })\r\n }\r\n }, [connection])\r\n \r\n useEffect(() => {\r\n axios({\r\n method: 'get',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/sensor-monitor/layout?layout=' + layout.id,\r\n headers: {},\r\n }).then((response) => {\r\n \r\n setLayout({\r\n ...layout,\r\n layoutName: response.data.result.layoutName,\r\n imageData: \"data:image/png;base64,\" + response.data.result.imageData,\r\n isZoom: response.data.result.isZoom\r\n })\r\n \r\n setState({\r\n ...state,\r\n SensorList: response.data.result.devices\r\n })\r\n \r\n setTimeout(() => {\r\n const newConnection = new HubConnectionBuilder()\r\n .withUrl(hubService + '/Automation/Hub')\r\n .withAutomaticReconnect()\r\n .build();\r\n setConnection(newConnection);\r\n \r\n }, 100);\r\n sensors.current = response.data.result.devices\r\n })\r\n \r\n }, []);\r\n \r\n let bodyCss = {\r\n overflowX: \"hidden\" \r\n }\r\n \r\n let backcss = {\r\n top: 0, left: 0, right: 0,\r\n bottom: 0, margin: \"auto\", width: \"1200px\"\r\n }\r\n \r\n let sensorcss = {\r\n position: \"absolute\", width: \"1200px\"\r\n }\r\n \r\n if (!layout.isZoom) {\r\n backcss = {\r\n top: 0, left: 0, right: 0,\r\n bottom: 0, margin: \"auto\"\r\n }\r\n \r\n sensorcss = {\r\n position: \"absolute\"\r\n }\r\n \r\n bodyCss = {\r\n \r\n }\r\n }\r\n\r\n const data = [\r\n {\r\n name: 'Page A',\r\n uv: 4000,\r\n pv: 2400,\r\n amt: 2400,\r\n },\r\n {\r\n name: 'Page B',\r\n uv: 3000,\r\n pv: 1398,\r\n amt: 2210,\r\n },\r\n {\r\n name: 'Page C',\r\n uv: 2000,\r\n pv: 9800,\r\n amt: 2290,\r\n },\r\n {\r\n name: 'Page D',\r\n uv: 2780,\r\n pv: 3908,\r\n amt: 2000,\r\n },\r\n {\r\n name: 'Page E',\r\n uv: 1890,\r\n pv: 4800,\r\n amt: 2181,\r\n },\r\n {\r\n name: 'Page F',\r\n uv: 2390,\r\n pv: 3800,\r\n amt: 2500,\r\n },\r\n {\r\n name: 'Page G',\r\n uv: 3490,\r\n pv: 4300,\r\n amt: 2100,\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\nexport default Display;\r\n//https://codesandbox.io/s/k2ds4?file=/src/App.js:128-4341\r\n","/* eslint-disable no-useless-escape */\r\n// DOCS: https://javascript.info/cookie\r\nexport class CookieComponent {\r\n /**\r\n * Returns the cookie with the given name, or undefined if not found\r\n *\r\n * @param {string} name - cookie name\r\n * @returns string | null\r\n */\r\n public static get(name: string): string | undefined {\r\n let matches = document.cookie.match(\r\n new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)')\r\n )\r\n return matches ? decodeURIComponent(matches[1]) : undefined\r\n }\r\n\r\n /**\r\n * Please note that a cookie value is encoded,\r\n * so getCookie uses a built-in decodeURIComponent function to decode it.\r\n *\r\n * @param {string} name - cookie name\r\n * @param {string | number | boolean} value - cookie value\r\n * @param {any} cookieOptions - cookie options\r\n * @returns void\r\n */\r\n public static set(name: string, value: string | number | boolean, cookieOptions: any): void {\r\n const options = {\r\n path: '/',\r\n // add other defaults here if necessary\r\n ...cookieOptions,\r\n }\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString()\r\n }\r\n\r\n let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\r\n\r\n for (let optionKey in options) {\r\n updatedCookie += '; ' + optionKey\r\n let optionValue = options[optionKey]\r\n if (optionValue !== true) {\r\n updatedCookie += '=' + optionValue\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie\r\n }\r\n\r\n /**\r\n * To delete a cookie, we can call it with a negative expiration date\r\n *\r\n * @param {string} name\r\n */\r\n public static delete(name: string): void {\r\n CookieComponent.set(name, '', {\r\n 'max-age': -1,\r\n })\r\n }\r\n}\r\n","import {\r\n EventHandlerUtil,\r\n getUniqueIdWithPrefix,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getAttributeValueByBreakpoint,\r\n throttle,\r\n getCSS,\r\n DOMEventHandlerUtil,\r\n ElementStyleUtil,\r\n} from '../_utils'\r\n\r\nexport class DrawerStore {\r\n static store: Map = new Map()\r\n\r\n public static set(instanceId: string, drawerComponentObj: DrawerComponent): void {\r\n if (DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n DrawerStore.store.set(instanceId, drawerComponentObj)\r\n }\r\n\r\n public static get(instanceId: string): DrawerComponent | undefined {\r\n if (!DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n return DrawerStore.store.get(instanceId)\r\n }\r\n\r\n public static remove(instanceId: string): void {\r\n if (!DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n DrawerStore.store.delete(instanceId)\r\n }\r\n\r\n public static has(instanceId: string): boolean {\r\n return DrawerStore.store.has(instanceId)\r\n }\r\n\r\n public static getAllInstances() {\r\n return DrawerStore.store\r\n }\r\n}\r\n\r\nexport interface DrawerOptions {\r\n overlay: boolean\r\n baseClass: string\r\n overlayClass: string\r\n direction: string\r\n}\r\n\r\nconst defaultDrawerOptions: DrawerOptions = {\r\n overlay: true,\r\n baseClass: 'drawer',\r\n overlayClass: 'drawer-overlay',\r\n direction: 'end',\r\n}\r\n\r\nclass DrawerComponent {\r\n element: HTMLElement\r\n overlayElement: HTMLElement | null = null\r\n toggleElement: HTMLElement | null = null\r\n options: DrawerOptions\r\n instanceUid: string\r\n name: string = ''\r\n shown: boolean = false\r\n lastWidth: number = 0\r\n closeElement: HTMLElement | null = null\r\n\r\n constructor(_element: HTMLElement, options: DrawerOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultDrawerOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('drawer')\r\n this.overlayElement = null\r\n this.name = this.element.getAttribute('data-kt-drawer-name') || ''\r\n this.shown = false\r\n this.toggleElement = null\r\n // Event Handlers\r\n this._handlers()\r\n // Update Instance\r\n this._update()\r\n // Bind Instance\r\n DrawerStore.set(this.element.id, this)\r\n }\r\n\r\n private _handlers = () => {\r\n const togglers = this._getOption('toggle') as string\r\n const closers = this._getOption('close') as string\r\n\r\n if (togglers !== null && togglers.length > 0) {\r\n DOMEventHandlerUtil.on(document.body, togglers, 'click', (e: Event) => {\r\n e.preventDefault()\r\n this.toggleElement = document.getElementById(togglers)\r\n this._toggle()\r\n })\r\n }\r\n\r\n if (closers !== null && closers.length > 0) {\r\n DOMEventHandlerUtil.on(document.body, closers, 'click', (e: Event) => {\r\n e.preventDefault()\r\n this.closeElement = document.getElementById(closers)\r\n\r\n this._hide()\r\n })\r\n }\r\n }\r\n\r\n private _update = () => {\r\n const width = String(this._getOption('width'))\r\n const direction = String(this._getOption('direction'))\r\n\r\n // Reset state\r\n const hasBaseClass = this.element.classList.contains(`${this.options.baseClass}-on`)\r\n const bodyCanvasAttr = String(document.body.getAttribute(`data-kt-drawer-${this.name}-`))\r\n\r\n if (hasBaseClass === true && bodyCanvasAttr === 'on') {\r\n this.shown = true\r\n } else {\r\n this.shown = false\r\n }\r\n\r\n // Activate/deactivate\r\n if (this._getOption('activate') === true) {\r\n this.element.classList.add(this.options.baseClass)\r\n this.element.classList.add(`${this.options.baseClass}-${direction}`)\r\n ElementStyleUtil.set(this.element, 'width', width, true)\r\n\r\n this.lastWidth = parseInt(width)\r\n } else {\r\n ElementStyleUtil.set(this.element, 'width', '')\r\n this.element.classList.remove(this.options.baseClass)\r\n this.element.classList.remove(`${this.options.baseClass}-${direction}`)\r\n this._hide()\r\n }\r\n }\r\n\r\n private _getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`data-kt-drawer-${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n return true\r\n } else {\r\n if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n private _toggle = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.toggle') === false) {\r\n return\r\n }\r\n\r\n if (this.shown) {\r\n this._hide()\r\n } else {\r\n this._show()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.toggled')\r\n }\r\n\r\n private _hide = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.hide') === false) {\r\n return\r\n }\r\n\r\n this.shown = false\r\n this._deleteOverlay()\r\n document.body.removeAttribute(`data-kt-drawer-${this.name}`)\r\n document.body.removeAttribute(`data-kt-drawer`)\r\n this.element.classList.remove(`${this.options.baseClass}-on`)\r\n if (this.toggleElement != null) {\r\n this.toggleElement.classList.remove('active')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.after.hidden')\r\n }\r\n\r\n private _show = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.show') === false) {\r\n return\r\n }\r\n\r\n this.shown = true\r\n this._createOverlay()\r\n document.body.setAttribute(`data-kt-drawer-${this.name}`, 'on')\r\n document.body.setAttribute('data-kt-drawer', 'on')\r\n this.element.classList.add(`${this.options.baseClass}-on`)\r\n if (this.toggleElement !== null) {\r\n this.toggleElement.classList.add('active')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.shown')\r\n }\r\n\r\n private _createOverlay = () => {\r\n if (this._getOption('overlay') === true) {\r\n this.overlayElement = document.createElement('DIV')\r\n const elementZIndex = getCSS(this.element, 'z-index')\r\n if (elementZIndex) {\r\n const overlayZindex = parseInt(elementZIndex) - 1\r\n ElementStyleUtil.set(this.overlayElement, 'z-index', overlayZindex) // update\r\n }\r\n document.body.append(this.overlayElement)\r\n const overlayClassOption = this._getOption('overlay-class')\r\n if (overlayClassOption) {\r\n this.overlayElement.classList.add(overlayClassOption.toString())\r\n }\r\n this.overlayElement.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n this._hide()\r\n })\r\n }\r\n }\r\n\r\n private _deleteOverlay = () => {\r\n if (this.overlayElement !== null && this.overlayElement.parentNode) {\r\n this.overlayElement.parentNode.removeChild(this.overlayElement)\r\n }\r\n }\r\n\r\n private _getDirection = () => {\r\n return String(this._getOption('direction')) === 'left' ? 'left' : 'right'\r\n }\r\n\r\n private _getWidth = () => {\r\n let width = this._getOption('width')\r\n if (width && width === 'auto') {\r\n width = getCSS(this.element, 'width')\r\n }\r\n\r\n return width\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public toggle = () => {\r\n this._toggle()\r\n }\r\n\r\n public show = () => {\r\n this._show()\r\n }\r\n\r\n public hide = () => {\r\n this._hide()\r\n }\r\n\r\n public isShown = () => {\r\n return this.shown\r\n }\r\n\r\n public update = () => {\r\n this._update()\r\n }\r\n\r\n public goElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace = (elementId: string): boolean => {\r\n return DrawerStore.has(elementId)\r\n }\r\n\r\n public static getInstance = (elementId: string) => {\r\n return DrawerStore.get(elementId)\r\n }\r\n\r\n public static hideAll = () => {\r\n const oldInstances = DrawerStore.getAllInstances()\r\n oldInstances.forEach((dr) => {\r\n dr.hide()\r\n })\r\n }\r\n\r\n public static updateAll = () => {\r\n const oldInstances = DrawerStore.getAllInstances()\r\n oldInstances.forEach((dr) => {\r\n dr.update()\r\n })\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string): void {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let drawer = DrawerComponent.getInstance(item.id)\r\n if (!drawer) {\r\n drawer = new DrawerComponent(item, defaultDrawerOptions)\r\n }\r\n drawer.element = item\r\n drawer.hide()\r\n })\r\n }\r\n\r\n // Dismiss instances\r\n public static handleDismiss = () => {\r\n // External drawer toggle handler\r\n DOMEventHandlerUtil.on(document.body, '[data-kt-drawer-dismiss=\"true\"]', 'click', () => {\r\n /* @ts-ignore */\r\n const element = this.closest('[data-kt-drawer=\"true\"]')\r\n if (element) {\r\n const drawer = DrawerComponent.getInstance(element)\r\n if (drawer && drawer.isShown()) {\r\n drawer.hide()\r\n }\r\n }\r\n })\r\n }\r\n\r\n // Global Initialization\r\n public static initGlobalHandlers(): void {\r\n // Window Resize Handling\r\n window.addEventListener('resize', function () {\r\n let timer: number | undefined\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.body.querySelectorAll('[data-kt-drawer=\"true\"]')\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n const instance = DrawerComponent.getInstance(item.id)\r\n if (instance) {\r\n instance.element = item\r\n instance.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n public static bootstrap = () => {\r\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n DrawerComponent.initGlobalHandlers()\r\n DrawerComponent.handleDismiss()\r\n }\r\n\r\n public static reinitialization = () => {\r\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n DrawerComponent.hideAll()\r\n DrawerComponent.updateAll()\r\n DrawerComponent.handleDismiss()\r\n }\r\n}\r\n\r\nexport {DrawerComponent, defaultDrawerOptions}\r\n","import {\r\n DataUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n getUniqueIdWithPrefix,\r\n getAttributeValueByBreakpoint,\r\n} from '../_utils/index'\r\n\r\nexport interface FeedbackOptions {\r\n width?: number\r\n placement?: string\r\n content?: string\r\n type?: string\r\n}\r\n\r\nconst defaultFeedbackOptions: FeedbackOptions = {\r\n width: 100,\r\n placement: 'top-center',\r\n content: '',\r\n type: 'popup',\r\n}\r\n\r\nclass FeedbackComponent {\r\n element: HTMLElement\r\n options: FeedbackOptions\r\n instanceUid: string\r\n shown: boolean\r\n\r\n constructor(_element: HTMLElement, options: FeedbackOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultFeedbackOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('feedback')\r\n this.shown = false\r\n\r\n // Event handlers\r\n this._handlers() // will add in the show popup\r\n DataUtil.set(this.element, 'feedback', this)\r\n }\r\n\r\n private _handlers = () => {\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._go()\r\n })\r\n }\r\n\r\n private _go = () => {}\r\n\r\n private showPopup = () => {\r\n this.element = document.createElement('DIV')\r\n\r\n this.element.classList.add('feedback feedback-popup')\r\n this.element.innerHTML = this.options.content || ''\r\n\r\n if (this.options.placement === 'top-center') {\r\n this.setPopupTopCenterPosition()\r\n }\r\n\r\n document.body.appendChild(this.element)\r\n this.element.classList.add('feedback-shown')\r\n this.shown = true\r\n }\r\n\r\n private setPopupTopCenterPosition = () => {\r\n const width = getAttributeValueByBreakpoint(this.options.width?.toString() || '0')\r\n const height = ElementStyleUtil.get(this.element, 'height')\r\n this.element.classList.add('feedback-top-center')\r\n ElementStyleUtil.set(this.element, 'width', width)\r\n ElementStyleUtil.set(this.element, 'left', '50%')\r\n ElementStyleUtil.set(this.element, 'top', '-' + height)\r\n }\r\n\r\n private hidePopup = () => {\r\n this.element.remove()\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public show = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.feedback.show') === false) {\r\n return\r\n }\r\n\r\n if (this.options.type === 'popup') {\r\n this.showPopup()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.feedback.shown')\r\n\r\n return this\r\n }\r\n\r\n public hide = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.feedback.hide') === false) {\r\n return\r\n }\r\n\r\n if (this.options.type === 'popup') {\r\n this.hidePopup()\r\n }\r\n\r\n this.shown = false\r\n EventHandlerUtil.trigger(this.element, 'kt.feedback.hidden')\r\n return this\r\n }\r\n\r\n public isShown = () => {\r\n return this.isShown\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-Feedback]') {\r\n throw new Error('not implemented')\r\n }\r\n}\r\n\r\nexport {FeedbackComponent, defaultFeedbackOptions}\r\n","import {EventHandlerUtil, DataUtil, getUniqueIdWithPrefix, getCSS} from '../_utils/index'\r\n\r\nexport interface IImageInputOptions {}\r\n\r\nexport interface IImageInputQueries {\r\n componentName: string\r\n instanseQuery: string\r\n inputQuery: string\r\n wrapperQuery: string\r\n cancelQuery: string\r\n removeQuery: string\r\n hiddenQuery: string\r\n}\r\n\r\nconst defaultImageInputOptions = {}\r\n\r\nconst defaultImageInputQueires: IImageInputQueries = {\r\n componentName: 'image-input',\r\n instanseQuery: '[data-kt-image-input]',\r\n inputQuery: 'input[type=\"file\"]',\r\n wrapperQuery: '.image-input-wrapper',\r\n cancelQuery: '[data-kt-image-input-action=\"cancel\"]',\r\n removeQuery: '[data-kt-image-input-action=\"remove\"]',\r\n hiddenQuery: 'input[type=\"hidden\"]',\r\n}\r\n\r\nclass ImageInputComponent {\r\n element: HTMLElement\r\n inputElement: HTMLInputElement | null\r\n wrapperElement: HTMLElement | null\r\n cancelElement: HTMLElement | null\r\n removeElement: HTMLElement | null\r\n hiddenElement: HTMLInputElement | null\r\n src: string = ''\r\n options: IImageInputOptions\r\n queries: IImageInputQueries\r\n uid: string\r\n value: string = ''\r\n\r\n constructor(_element: HTMLElement, _options: IImageInputOptions, _queries: IImageInputQueries) {\r\n // Variables\r\n this.options = Object.assign(defaultImageInputOptions, _options)\r\n this.queries = _queries\r\n this.uid = getUniqueIdWithPrefix(this.queries.componentName)\r\n\r\n // Elements\r\n this.element = _element\r\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n this.wrapperElement = this.element.querySelector(this.queries.wrapperQuery)\r\n this.cancelElement = this.element.querySelector(this.queries.cancelQuery)\r\n this.removeElement = this.element.querySelector(this.queries.removeQuery)\r\n this.hiddenElement = this.element.querySelector(this.queries.hiddenQuery)\r\n if (this.wrapperElement) {\r\n this.src = getCSS(this.wrapperElement, 'backgroundImage')\r\n }\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private handlers(): void {\r\n this.element.addEventListener('change', this._change)\r\n if (this.cancelElement) {\r\n this.cancelElement.addEventListener('click', this._cancel)\r\n }\r\n\r\n if (this.removeElement) {\r\n this.removeElement.addEventListener('click', this._cancel)\r\n }\r\n }\r\n\r\n // Event Handlers\r\n private _change = (e: Event) => {\r\n e.preventDefault()\r\n\r\n if (this.inputElement !== null && this.inputElement.files && this.inputElement.files[0]) {\r\n // Fire change event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.change', e) === false) {\r\n return\r\n }\r\n\r\n const reader = new FileReader()\r\n\r\n reader.onload = (e: ProgressEvent) => {\r\n if (this.wrapperElement && e.target) {\r\n this.wrapperElement.style.setProperty('background-image', `url('${e.target.result}')`)\r\n }\r\n }\r\n\r\n reader.readAsDataURL(this.inputElement.files[0])\r\n this.element.classList.add('image-input-changed')\r\n this.element.classList.remove('image-input-empty')\r\n\r\n // Fire removed event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.changed', e)\r\n }\r\n }\r\n\r\n private _cancel = (e: Event) => {\r\n e.preventDefault()\r\n\r\n // Fire cancel event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.cancel', e) === false) {\r\n return\r\n }\r\n\r\n this.element.classList.remove('image-input-changed')\r\n this.element.classList.remove('image-input-empty')\r\n this.element.style.setProperty('background-image', this.src)\r\n if (this.inputElement) {\r\n this.inputElement.value = ''\r\n }\r\n\r\n if (this.hiddenElement !== null) {\r\n this.hiddenElement.value = '0'\r\n }\r\n\r\n // Fire canceled event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.canceled', e)\r\n }\r\n\r\n private _remove = (e: Event) => {\r\n e.preventDefault()\r\n\r\n // Fire remove event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.remove', e) === false) {\r\n return\r\n }\r\n\r\n this.element.classList.remove('image-input-changed')\r\n this.element.classList.add('image-input-empty')\r\n if (this.wrapperElement) {\r\n this.wrapperElement.style.setProperty('background-image', 'none')\r\n }\r\n\r\n if (this.inputElement) {\r\n this.inputElement.value = ''\r\n }\r\n\r\n if (this.hiddenElement !== null) {\r\n this.hiddenElement.value = '1'\r\n }\r\n\r\n // Fire removed event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.removed', e)\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public getInputElement(): HTMLInputElement | null {\r\n return this.inputElement\r\n }\r\n\r\n public getElement(): HTMLElement {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultImageInputQueires.componentName\r\n ) => {\r\n const ImageInput = DataUtil.get(el, componentName)\r\n if (ImageInput) {\r\n return ImageInput\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultImageInputQueires.instanseQuery,\r\n options: IImageInputOptions = defaultImageInputOptions,\r\n queries: IImageInputQueries = defaultImageInputQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let ImageInput = ImageInputComponent.getInstance(item)\r\n if (!ImageInput) {\r\n ImageInput = new ImageInputComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultImageInputQueires.instanseQuery,\r\n options: IImageInputOptions = defaultImageInputOptions,\r\n queries: IImageInputQueries = defaultImageInputQueires\r\n ): ImageInputComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let ImageInput = ImageInputComponent.getInstance(item)\r\n if (!ImageInput) {\r\n ImageInput = new ImageInputComponent(item, options, queries)\r\n }\r\n return ImageInput\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n ImageInputComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n ImageInputComponent.createInstances(selector)\r\n }\r\n}\r\nexport {ImageInputComponent, defaultImageInputOptions, defaultImageInputQueires}\r\n","import {\r\n DataUtil,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getAttributeValueByBreakpoint,\r\n getViewPort,\r\n isVisibleElement,\r\n throttle,\r\n getCSS,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ScrollOptions {\r\n saveState?: boolean\r\n}\r\n\r\nconst defaultScrollOptions: ScrollOptions = {\r\n saveState: true,\r\n}\r\n\r\nclass ScrollComponent {\r\n element: HTMLElement\r\n options: ScrollOptions\r\n id: string\r\n\r\n constructor(_element: HTMLElement, options: ScrollOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultScrollOptions, options)\r\n this.id = this.element.getAttribute('id') || ''\r\n this.update()\r\n // this.element.setAttribute('data-kt-scrolltop', 'true')\r\n DataUtil.set(this.element, 'scroll', this)\r\n }\r\n\r\n private getOption = (name: string) => {\r\n if (this.element.hasAttribute('data-kt-scroll-' + name) === true) {\r\n const attr = this.element.getAttribute('data-kt-scroll-' + name) || ''\r\n let value: string | JSON | boolean = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n value = true\r\n } else if (value !== null && String(value) === 'false') {\r\n value = false\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n private getHeightType = () => {\r\n if (this.getOption('height')) {\r\n return 'height'\r\n }\r\n if (this.getOption('min-height')) {\r\n return 'min-height'\r\n }\r\n if (this.getOption('max-height')) {\r\n return 'max-height'\r\n }\r\n }\r\n\r\n private getAutoHeight = () => {\r\n let height: number | string = getViewPort().height\r\n const dependencies = this.getOption('dependencies')\r\n const wrappers = this.getOption('wrappers')\r\n const offset = this.getOption('offset')\r\n\r\n // Height dependencies\r\n if (dependencies !== null) {\r\n const elements = document.querySelectorAll(dependencies as string)\r\n if (elements && elements.length > 0) {\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i] as HTMLElement\r\n if (isVisibleElement(element) === false) {\r\n continue\r\n }\r\n\r\n height = height - parseInt(getCSS(element, 'height'))\r\n height = height - parseInt(getCSS(element, 'margin-top'))\r\n height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n\r\n const borderTop = getCSS(element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Wrappers\r\n if (wrappers !== null) {\r\n var elements = document.querySelectorAll(wrappers as string)\r\n if (elements && elements.length > 0) {\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i] as HTMLElement\r\n\r\n if (!isVisibleElement(element)) {\r\n continue\r\n }\r\n\r\n height = height - parseInt(getCSS(element, 'margin-top'))\r\n height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n height = height - parseInt(getCSS(element, 'padding-top'))\r\n height = height - parseInt(getCSS(element, 'padding-bottom'))\r\n\r\n const borderTop = getCSS(element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Custom offset\r\n if (offset !== null) {\r\n height = height - parseInt(offset as string)\r\n }\r\n\r\n height = height - parseInt(getCSS(this.element, 'margin-top'))\r\n height = height - parseInt(getCSS(this.element, 'margin-bottom'))\r\n\r\n const borderTop = getCSS(this.element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(this.element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n\r\n height = String(height) + 'px'\r\n\r\n return height\r\n }\r\n\r\n private setupHeight = () => {\r\n let height = this.getHeight()\r\n let heightType = this.getHeightType() as string\r\n\r\n // Set height\r\n if (height !== null && height.length > 0) {\r\n ElementStyleUtil.set(this.element, heightType, height)\r\n } else {\r\n ElementStyleUtil.set(this.element, heightType, '')\r\n }\r\n }\r\n\r\n private setupState = () => {\r\n if (this.getOption('save-state') === true && this.id) {\r\n const cookie = CookieComponent.get(this.id + 'st')\r\n if (cookie) {\r\n var pos = parseInt(cookie)\r\n\r\n if (pos > 0) {\r\n this.element.scrollTop = pos\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setupScrollHandler = () => {\r\n if (this.getOption('save-state') === true && this.id) {\r\n this.element.addEventListener('scroll', this.scrollHandler)\r\n } else {\r\n this.element.removeEventListener('scroll', this.scrollHandler)\r\n }\r\n }\r\n\r\n private scrollHandler = () => {\r\n const cookieId = this.id + 'st'\r\n CookieComponent.set(cookieId, this.element.scrollTop, {})\r\n }\r\n\r\n private destroyScrollHandler = () => {\r\n this.element.removeEventListener('scroll', this.scrollHandler)\r\n }\r\n\r\n private resetHeight = () => {\r\n const heghtType = this.getHeightType()\r\n if (heghtType) {\r\n ElementStyleUtil.set(this.element, heghtType, '')\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public update = () => {\r\n // Activate/deactivate\r\n if (\r\n this.getOption('activate') === true ||\r\n !this.element.hasAttribute('data-kt-scroll-activate')\r\n ) {\r\n this.setupHeight()\r\n this.setupScrollHandler()\r\n this.setupState()\r\n } else {\r\n this.resetHeight()\r\n this.destroyScrollHandler()\r\n }\r\n }\r\n\r\n public getHeight = () => {\r\n const heightType = this.getHeightType()\r\n const height = this.getOption(heightType || '')\r\n if (height instanceof Function) {\r\n return height.call(height)\r\n } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') {\r\n return this.getAutoHeight()\r\n } else {\r\n return height\r\n }\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n return DataUtil.has(element, 'scroll')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n if (element !== null && ScrollComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'scroll')\r\n }\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element: Element) => {\r\n const item = element as HTMLElement\r\n let scroll = ScrollComponent.getInstance(item)\r\n if (!scroll) {\r\n scroll = new ScrollComponent(item, defaultScrollOptions)\r\n }\r\n })\r\n }\r\n\r\n public static destroyAll(attr: string = '[data-kt-scroll=\"true\"]') {}\r\n\r\n public static bootstrap(attr: string = '[data-kt-scroll=\"true\"]') {\r\n ScrollComponent.createInstances(attr)\r\n ScrollComponent.resize()\r\n }\r\n\r\n public static createInstance = (\r\n element: HTMLElement,\r\n options: ScrollOptions = defaultScrollOptions\r\n ): ScrollComponent | undefined => {\r\n let scroll = ScrollComponent.getInstance(element)\r\n if (!scroll) {\r\n scroll = new ScrollComponent(element, options)\r\n }\r\n return scroll\r\n }\r\n\r\n public static reinitialization(attr: string = '[data-kt-scroll=\"true\"]') {\r\n ScrollComponent.createInstances(attr)\r\n }\r\n\r\n public static resize() {\r\n // Window Resize Handling\r\n window.addEventListener('resize', function () {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.body.querySelectorAll('[data-kt-scroll=\"true\"]')\r\n elements.forEach((element: Element) => {\r\n const instance = ScrollComponent.getInstance(element as HTMLElement)\r\n if (instance) {\r\n instance.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport {ScrollComponent, defaultScrollOptions}\r\n","import {\r\n getScrollTop,\r\n getAttributeValueByBreakpoint,\r\n throttle,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getUniqueIdWithPrefix,\r\n DataUtil,\r\n ElementAnimateUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface IScrollTopOptions {\r\n offset: number\r\n speed: number\r\n}\r\n\r\nconst defaultScrollTopOptions: IScrollTopOptions = {\r\n offset: 200,\r\n speed: 600,\r\n}\r\n\r\nclass ScrollTopComponent {\r\n element: HTMLElement\r\n options: IScrollTopOptions\r\n instanceUid: string\r\n\r\n constructor(_element: HTMLElement, options: IScrollTopOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultScrollTopOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('scrolltop')\r\n\r\n // Event Handlers\r\n this._handlers()\r\n\r\n // Bind Instance\r\n DataUtil.set(this.element, 'scrolltop', this)\r\n }\r\n\r\n private _handlers = () => {\r\n let timer: number\r\n window.addEventListener('scroll', () => {\r\n throttle(timer, () => {\r\n this._scroll()\r\n })\r\n })\r\n\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._go()\r\n })\r\n }\r\n\r\n private _scroll = () => {\r\n const offset = parseInt(this._getOption('offset') as string)\r\n const pos = getScrollTop() // current vertical position\r\n if (pos > offset) {\r\n if (!document.body.hasAttribute('data-kt-scrolltop')) {\r\n document.body.setAttribute('data-kt-scrolltop', 'on')\r\n }\r\n } else {\r\n if (document.body.hasAttribute('data-kt-scrolltop')) {\r\n document.body.removeAttribute('data-kt-scrolltop')\r\n }\r\n }\r\n }\r\n\r\n private _go = () => {\r\n const speed = parseInt(this._getOption('speed') as string)\r\n ElementAnimateUtil.scrollTop(0, speed)\r\n }\r\n\r\n private _getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`data-kt-scrolltop-${name}`)\r\n if (attr) {\r\n const value = getAttributeValueByBreakpoint(attr)\r\n return value !== null && String(value) === 'true'\r\n }\r\n\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n }\r\n\r\n return null\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n\r\n // Plugin API\r\n public go = () => {\r\n return this._go()\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (el: HTMLElement) => {\r\n const scrollTop = DataUtil.get(el, 'scrolltop')\r\n if (scrollTop) {\r\n return scrollTop\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (selector: string) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let scrollTop = ScrollTopComponent.getInstance(item)\r\n if (!scrollTop) {\r\n scrollTop = new ScrollTopComponent(item, defaultScrollTopOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: IScrollTopOptions = defaultScrollTopOptions\r\n ): ScrollTopComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let scrollTop = ScrollTopComponent.getInstance(item)\r\n if (!scrollTop) {\r\n scrollTop = new ScrollTopComponent(item, options)\r\n }\r\n return scrollTop\r\n }\r\n\r\n public static bootstrap = () => {\r\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\r\n }\r\n\r\n public static reinitialization = () => {\r\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\r\n }\r\n\r\n public static goTop = () => {\r\n ElementAnimateUtil.scrollTop(0, defaultScrollTopOptions.speed)\r\n }\r\n}\r\nexport {ScrollTopComponent, defaultScrollTopOptions}\r\n","import {\r\n getElementIndex,\r\n getUniqueIdWithPrefix,\r\n ElementAnimateUtil,\r\n EventHandlerUtil,\r\n DataUtil,\r\n DOMEventHandlerUtil,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface IStepperOptions {\r\n startIndex: number\r\n animation: boolean\r\n animationSpeed: string\r\n animationNextClass: string\r\n animationPreviousClass: string\r\n}\r\n\r\nconst defaultStepperOptions: IStepperOptions = {\r\n startIndex: 1,\r\n animation: false,\r\n animationSpeed: '0.3s',\r\n animationNextClass: 'animate__animated animate__slideInRight animate__fast',\r\n animationPreviousClass: 'animate__animated animate__slideInLeft animate__fast',\r\n}\r\n\r\nclass StepperComponent {\r\n element: HTMLElement\r\n options: IStepperOptions\r\n instanceUid: string\r\n steps: NodeListOf\r\n btnNext: HTMLElement | null\r\n btnPrev: HTMLElement | null\r\n btnSubmit: HTMLElement | null\r\n totatStepsNumber: number = 0\r\n passedStepIndex: number = 0\r\n currentStepIndex: number = 1\r\n\r\n constructor(_element: HTMLElement, options: IStepperOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultStepperOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('stepper')\r\n\r\n // Elements\r\n this.steps = this.element.querySelectorAll('[data-kt-stepper-element=\"nav\"]')\r\n this.btnNext = this.element.querySelector('[data-kt-stepper-action=\"next\"]')\r\n this.btnPrev = this.element.querySelector('[data-kt-stepper-action=\"previous\"]')\r\n this.btnSubmit = this.element.querySelector('[data-kt-stepper-action=\"submit\"]')\r\n\r\n // Variables\r\n this.totatStepsNumber = this.steps?.length | 0\r\n this.passedStepIndex = 0\r\n this.currentStepIndex = 1\r\n\r\n // Set Current Step\r\n if (this.options.startIndex > 1) {\r\n this._goTo(this.options.startIndex)\r\n }\r\n\r\n // Event Handlers\r\n this.initHandlers()\r\n\r\n // Bind Instance\r\n DataUtil.set(this.element, 'stepper', this)\r\n }\r\n\r\n private _goTo = (index: number) => {\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.change')\r\n // Skip if this step is already shown\r\n if (index === this.currentStepIndex || index > this.totatStepsNumber || index < 0) {\r\n return\r\n }\r\n\r\n // Validate step number\r\n index = parseInt(index.toString())\r\n // Set current step\r\n this.passedStepIndex = this.currentStepIndex\r\n this.currentStepIndex = index\r\n\r\n // Refresh elements\r\n this.refreshUI()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.changed')\r\n }\r\n\r\n private initHandlers = () => {\r\n this.btnNext?.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.next', e)\r\n })\r\n\r\n this.btnPrev?.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.previous', e)\r\n })\r\n\r\n DOMEventHandlerUtil.on(this.element, '[data-kt-stepper-action=\"step\"]', 'click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n if (this.steps && this.steps.length > 0) {\r\n for (let i = 0; i < this.steps.length; i++) {\r\n if ((this.steps[i] as HTMLElement) === this.element) {\r\n let index = i + 1\r\n\r\n const stepDirection = this._getStepDirection(index)\r\n EventHandlerUtil.trigger(this.element, `stepper.${stepDirection}`, e)\r\n return\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n private _getStepDirection = (index: number) => {\r\n return index > this.currentStepIndex ? 'next' : 'previous'\r\n }\r\n\r\n private getStepContent = (index: number) => {\r\n const content = this.element.querySelectorAll('[data-kt-stepper-element=\"content\"]')\r\n if (!content) {\r\n return false\r\n }\r\n\r\n if (content[index - 1]) {\r\n return content[index - 1]\r\n }\r\n\r\n return false\r\n }\r\n\r\n private getLastStepIndex = () => {\r\n return this.totatStepsNumber\r\n }\r\n\r\n private getTotalStepsNumber = () => {\r\n return this.totatStepsNumber\r\n }\r\n\r\n private refreshUI = () => {\r\n let state = ''\r\n\r\n if (this.isLastStep()) {\r\n state = 'last'\r\n } else if (this.isFirstStep()) {\r\n state = 'first'\r\n } else {\r\n state = 'between'\r\n }\r\n\r\n // Set state class\r\n this.element.classList.remove('last')\r\n this.element.classList.remove('first')\r\n this.element.classList.remove('between')\r\n\r\n this.element.classList.add(state)\r\n\r\n // Step Items\r\n const elements = this.element.querySelectorAll(\r\n '[data-kt-stepper-element=\"nav\"], [data-kt-stepper-element=\"content\"], [data-kt-stepper-element=\"info\"]'\r\n )\r\n\r\n if (!elements || elements.length <= 0) {\r\n return\r\n }\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n var element = elements[i] as HTMLElement\r\n var index = getElementIndex(element) + 1\r\n\r\n element.classList.remove('current')\r\n element.classList.remove('completed')\r\n element.classList.remove('pending')\r\n\r\n if (index === this.currentStepIndex) {\r\n element.classList.add('current')\r\n\r\n if (\r\n this.options.animation !== false &&\r\n element.getAttribute('data-kt-stepper-element') === 'content'\r\n ) {\r\n ElementStyleUtil.set(element, 'animationDuration', this.options.animationSpeed)\r\n\r\n const animation =\r\n this._getStepDirection(this.passedStepIndex) === 'previous'\r\n ? this.options.animationPreviousClass\r\n : this.options.animationNextClass\r\n ElementAnimateUtil.animateClass(element, animation)\r\n }\r\n } else {\r\n if (index < this.currentStepIndex) {\r\n element.classList.add('completed')\r\n } else {\r\n element.classList.add('pending')\r\n }\r\n }\r\n }\r\n }\r\n\r\n private isLastStep = () => {\r\n return this.currentStepIndex === this.totatStepsNumber\r\n }\r\n\r\n private isFirstStep = () => {\r\n return this.currentStepIndex === 1\r\n }\r\n\r\n private isBetweenStep = () => {\r\n return this.isLastStep() === false && this.isFirstStep() === false\r\n }\r\n\r\n // ///////////////////////\r\n // // ** Public API ** //\r\n // ///////////////////////\r\n\r\n // // Plugin API\r\n public goto = (index: number) => {\r\n return this._goTo(index)\r\n }\r\n\r\n public goNext = () => {\r\n return this.goto(this.getNextStepIndex())\r\n }\r\n\r\n public goPrev = () => {\r\n return this.goto(this.getPrevStepIndex())\r\n }\r\n\r\n public goFirst = () => {\r\n return this.goto(1)\r\n }\r\n\r\n public goLast = () => {\r\n return this.goto(this.getLastStepIndex())\r\n }\r\n\r\n public getCurrentStepIndex = () => {\r\n return this.currentStepIndex\r\n }\r\n\r\n public getNextStepIndex = () => {\r\n if (this.totatStepsNumber >= this.currentStepIndex + 1) {\r\n return this.currentStepIndex + 1\r\n } else {\r\n return this.totatStepsNumber\r\n }\r\n }\r\n\r\n public getPassedStepIndex = () => {\r\n return this.passedStepIndex\r\n }\r\n\r\n public getPrevStepIndex = () => {\r\n if (this.currentStepIndex - 1 > 1) {\r\n return this.currentStepIndex - 1\r\n } else {\r\n return 1\r\n }\r\n }\r\n\r\n public getElement = (index: number) => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public destroy = () => {\r\n console.log('destroy stepper')\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement): boolean {\r\n return DataUtil.has(element, 'stepper')\r\n }\r\n\r\n public static getInstance(element: HTMLElement): StepperComponent | null {\r\n if (element !== null && StepperComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'stepper')\r\n }\r\n return null\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string): void {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let stepper = StepperComponent.getInstance(item)\r\n if (!stepper) {\r\n stepper = new StepperComponent(item, defaultStepperOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n element: HTMLElement,\r\n options: IStepperOptions = defaultStepperOptions\r\n ): StepperComponent | null => {\r\n if (!element) {\r\n return null\r\n }\r\n let stepper = StepperComponent.getInstance(element)\r\n if (!stepper) {\r\n stepper = new StepperComponent(element, options)\r\n }\r\n return stepper\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-kt-stepper]') {\r\n StepperComponent.createInstances(attr)\r\n }\r\n}\r\n\r\nexport {StepperComponent, defaultStepperOptions}\r\n","import {\r\n getElementOffset,\r\n getScrollTop,\r\n getAttributeValueByBreakpoint,\r\n getUniqueIdWithPrefix,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getCSS,\r\n DataUtil,\r\n ElementAnimateUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface StickyOptions {\r\n offset: number\r\n reverse: boolean\r\n animation: boolean\r\n animationSpeed: string\r\n animationClass: string\r\n}\r\n\r\nconst defaultStickyOptions: StickyOptions = {\r\n offset: 200,\r\n reverse: false,\r\n animation: true,\r\n animationSpeed: '0.3s',\r\n animationClass: 'animation-slide-in-down',\r\n}\r\n\r\nclass StickyComponent {\r\n element: HTMLElement\r\n options: StickyOptions\r\n instanceUid: string\r\n instanceName: string | null = ''\r\n attributeName: string\r\n eventTriggerState: boolean\r\n lastScrollTop: number\r\n\r\n constructor(_element: HTMLElement, options: StickyOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultStickyOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('sticky')\r\n this.instanceName = this.element.getAttribute('data-kt-sticky-name')\r\n this.attributeName = 'data-kt-sticky-' + this.instanceName\r\n this.eventTriggerState = true\r\n this.lastScrollTop = 0\r\n\r\n // Event Handlers\r\n window.addEventListener('scroll', this.scroll)\r\n\r\n // Initial Launch\r\n this.scroll()\r\n\r\n DataUtil.set(this.element, 'sticky', this)\r\n }\r\n\r\n private scroll = () => {\r\n let offset = this.getOption('offset')\r\n let reverse = this.getOption('reverse')\r\n\r\n // Exit if false\r\n if (offset === false) {\r\n return\r\n }\r\n\r\n let offsetNum = 0\r\n if (typeof offset === 'string') {\r\n offsetNum = parseInt(offset)\r\n }\r\n\r\n const st = getScrollTop()\r\n\r\n // Reverse scroll mode\r\n if (reverse === true) {\r\n // Release on reverse scroll mode\r\n if (st > offsetNum && this.lastScrollTop < st) {\r\n if (document.body.hasAttribute(this.attributeName) === false) {\r\n this.enable()\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n\r\n if (this.eventTriggerState === true) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n\r\n this.eventTriggerState = false\r\n }\r\n } else {\r\n // Back scroll mode\r\n if (document.body.hasAttribute(this.attributeName)) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n }\r\n\r\n if (this.eventTriggerState === false) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n\r\n this.eventTriggerState = true\r\n }\r\n }\r\n\r\n this.lastScrollTop = st\r\n return\r\n }\r\n\r\n // Classic scroll mode\r\n if (st > offsetNum) {\r\n if (document.body.hasAttribute(this.attributeName) === false) {\r\n this.enable()\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n\r\n if (this.eventTriggerState === true) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n this.eventTriggerState = false\r\n }\r\n } else {\r\n // back scroll mode\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n }\r\n\r\n if (this.eventTriggerState === false) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n this.eventTriggerState = true\r\n }\r\n }\r\n }\r\n\r\n private getOption = (name: string) => {\r\n const dataStickyAttr = 'data-kt-sticky-' + name\r\n if (this.element.hasAttribute(dataStickyAttr) === true) {\r\n const attrValueInStr = this.element.getAttribute(dataStickyAttr)\r\n const attrValue = getAttributeValueByBreakpoint(attrValueInStr || '')\r\n if (attrValue !== null && String(attrValue) === 'true') {\r\n return true\r\n } else if (attrValue !== null && String(attrValue) === 'false') {\r\n return false\r\n }\r\n\r\n return attrValue\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n }\r\n }\r\n }\r\n\r\n private disable = () => {\r\n ElementStyleUtil.remove(this.element, 'top')\r\n ElementStyleUtil.remove(this.element, 'width')\r\n ElementStyleUtil.remove(this.element, 'left')\r\n ElementStyleUtil.remove(this.element, 'right')\r\n ElementStyleUtil.remove(this.element, 'z-index')\r\n ElementStyleUtil.remove(this.element, 'position')\r\n }\r\n\r\n private enable = (update: boolean = false) => {\r\n const top = this.getOption('top')\r\n const left = this.getOption('left')\r\n // const right = this.getOption(\"right\");\r\n let width = this.getOption('width')\r\n const zindex = this.getOption('zindex')\r\n\r\n if (update !== true && this.getOption('animation') === true) {\r\n ElementStyleUtil.set(this.element, 'animationDuration', this.getOption('animationSpeed'))\r\n ElementAnimateUtil.animateClass(this.element, 'animation ' + this.getOption('animationClass'))\r\n }\r\n\r\n if (zindex !== null) {\r\n ElementStyleUtil.set(this.element, 'z-index', zindex)\r\n ElementStyleUtil.set(this.element, 'position', 'fixed')\r\n }\r\n\r\n if (top !== null) {\r\n ElementStyleUtil.set(this.element, 'top', top)\r\n }\r\n\r\n if (width !== null && width !== undefined) {\r\n const widthTarget = getObjectPropertyValueByKey(width, 'target')\r\n if (widthTarget) {\r\n const targetElement = document.querySelector(widthTarget)\r\n if (targetElement) {\r\n width = getCSS(targetElement, 'width')\r\n }\r\n }\r\n ElementStyleUtil.set(this.element, 'width', width)\r\n }\r\n\r\n if (left !== null) {\r\n if (String(left).toLowerCase() === 'auto') {\r\n var offsetLeft = getElementOffset(this.element).left\r\n\r\n if (offsetLeft > 0) {\r\n ElementStyleUtil.set(this.element, 'left', String(offsetLeft) + 'px')\r\n }\r\n }\r\n }\r\n }\r\n\r\n public update = () => {\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n this.enable(true)\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n }\r\n\r\n // Event API\r\n public on = (name: string, callBack: Function) => {\r\n return EventHandlerUtil.on(this.element, name, callBack)\r\n }\r\n\r\n public one = (name: string, callback: Function) => {\r\n return EventHandlerUtil.one(this.element, name, callback)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string) => {\r\n return EventHandlerUtil.trigger(this.element, name)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n return DataUtil.has(element, 'sticky')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n if (element !== null && StickyComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'sticky')\r\n }\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let sticky = StickyComponent.getInstance(item)\r\n if (!sticky) {\r\n sticky = new StickyComponent(item, defaultStickyOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: StickyOptions = defaultStickyOptions\r\n ): StickyComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let sticky = StickyComponent.getInstance(item)\r\n if (!sticky) {\r\n sticky = new StickyComponent(item, options)\r\n }\r\n return sticky\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-kt-sticky=\"true\"]') {\r\n StickyComponent.createInstances(attr)\r\n }\r\n\r\n public static reInitialization(attr: string = '[data-kt-sticky=\"true\"]') {\r\n StickyComponent.createInstances(attr)\r\n }\r\n}\r\n\r\nexport {StickyComponent, defaultStickyOptions}\r\n","import {DataUtil, getUniqueIdWithPrefix, EventHandlerUtil} from '../_utils/index'\r\n// Helpers\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ToggleOptions {\r\n saveState: boolean\r\n targetState?: string\r\n toggleState?: string\r\n targetToggleMode?: string\r\n}\r\n\r\nconst defaultToggleOptions: ToggleOptions = {\r\n saveState: false,\r\n}\r\n\r\nclass ToggleComponent {\r\n element: HTMLElement\r\n instanceUid: string\r\n options: ToggleOptions\r\n state: string = ''\r\n target: HTMLElement | null = null\r\n attribute: string = ''\r\n\r\n constructor(_element: HTMLElement, options: ToggleOptions) {\r\n this.options = Object.assign(defaultToggleOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('toggle')\r\n this.element = _element\r\n\r\n const elementTargetAttr = this.element.getAttribute('data-kt-toggle-target')\r\n if (elementTargetAttr) {\r\n this.target = document.querySelector(elementTargetAttr)\r\n }\r\n const elementToggleAttr = this.element.getAttribute('data-kt-toggle-state')\r\n this.state = elementToggleAttr || ''\r\n this.attribute = 'data-kt-' + this.element.getAttribute('data-kt-toggle-name')\r\n\r\n // Event Handlers\r\n this._handlers()\r\n\r\n // Update Instance\r\n // Bind Instance\r\n DataUtil.set(this.element, 'toggle', this)\r\n }\r\n\r\n private _handlers = () => {\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._toggle()\r\n })\r\n }\r\n\r\n // Event handlers\r\n private _toggle = () => {\r\n // Trigger \"after.toggle\" event\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.change')\r\n\r\n if (this._isEnabled()) {\r\n this._disable()\r\n } else {\r\n this._enable()\r\n }\r\n\r\n // Trigger \"before.toggle\" event\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.changed')\r\n return this\r\n }\r\n\r\n private _enable = () => {\r\n if (this._isEnabled()) {\r\n return\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enable')\r\n this.target?.setAttribute(this.attribute, 'on')\r\n if (this.state.length > 0) {\r\n this.element.classList.add(this.state)\r\n }\r\n\r\n if (this.options.saveState) {\r\n CookieComponent.set(this.attribute, 'on', {})\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enabled')\r\n return this\r\n }\r\n\r\n private _disable = () => {\r\n if (!this._isEnabled()) {\r\n return false\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disable')\r\n this.target?.removeAttribute(this.attribute)\r\n\r\n if (this.state.length > 0) {\r\n this.element.classList.remove(this.state)\r\n }\r\n\r\n if (this.options.saveState) {\r\n CookieComponent.delete(this.attribute)\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disabled')\r\n return this\r\n }\r\n\r\n private _isEnabled = () => {\r\n if (!this.target) {\r\n return false\r\n }\r\n\r\n return String(this.target.getAttribute(this.attribute)).toLowerCase() === 'on'\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n\r\n // Plugin API\r\n // Plugin API\r\n public toggle = () => {\r\n return this._toggle()\r\n }\r\n\r\n public enable = () => {\r\n return this._enable()\r\n }\r\n\r\n public disable = () => {\r\n return this._disable()\r\n }\r\n\r\n public isEnabled = () => {\r\n return this._isEnabled()\r\n }\r\n\r\n public goElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event?: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (el: HTMLElement) => {\r\n const toggleElement = DataUtil.get(el, 'toggle')\r\n if (toggleElement) {\r\n return toggleElement\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (selector: string) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let toggleElement = ToggleComponent.getInstance(item)\r\n if (!toggleElement) {\r\n toggleElement = new ToggleComponent(item, defaultToggleOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: ToggleOptions = defaultToggleOptions\r\n ): ToggleComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let toggle = ToggleComponent.getInstance(item)\r\n if (!toggle) {\r\n toggle = new ToggleComponent(item, options)\r\n }\r\n return toggle\r\n }\r\n\r\n public static reinitialization = () => {\r\n ToggleComponent.createInstances('[data-kt-toggle]')\r\n }\r\n\r\n public static bootstrap = () => {\r\n ToggleComponent.createInstances('[data-kt-toggle]')\r\n }\r\n}\r\n\r\nexport {ToggleComponent, defaultToggleOptions}\r\n","/* eslint-disable array-callback-return */\r\n/* eslint-disable no-useless-escape */\r\nimport {DataUtil} from '../_utils/index'\r\n\r\nexport interface IPasswordMeterOptions {\r\n minLength: number\r\n checkUppercase: boolean\r\n checkLowercase: boolean\r\n checkDigit: boolean\r\n checkChar: boolean\r\n scoreHighlightClass: string\r\n}\r\n\r\nexport interface IPasswordMeterQueries {\r\n componentName: string\r\n instanseQuery: string\r\n inputQuery: string\r\n visibilityQuery: string\r\n highlightQuery: string\r\n}\r\n\r\nconst defaultPasswordMeterOptions = {\r\n minLength: 8,\r\n checkUppercase: true,\r\n checkLowercase: true,\r\n checkDigit: true,\r\n checkChar: true,\r\n scoreHighlightClass: 'active',\r\n}\r\n\r\nconst defaultPasswordMeterQueires: IPasswordMeterQueries = {\r\n componentName: 'password-meter',\r\n instanseQuery: '[data-kt-password-meter]',\r\n inputQuery: 'input[type]',\r\n visibilityQuery: '[data-kt-password-meter-control=\"visibility\"]',\r\n highlightQuery: '[data-kt-password-meter-control=\"highlight\"]',\r\n}\r\n\r\nclass PasswordMeterComponent {\r\n element: HTMLElement\r\n inputElement: HTMLInputElement | null\r\n visibilityElement: HTMLElement | null\r\n highlightElement: HTMLElement | null\r\n options: IPasswordMeterOptions\r\n queries: IPasswordMeterQueries\r\n score: number\r\n checkSteps: number\r\n\r\n constructor(\r\n _element: HTMLElement,\r\n _options: IPasswordMeterOptions,\r\n _queries: IPasswordMeterQueries\r\n ) {\r\n this.element = _element\r\n this.options = Object.assign(defaultPasswordMeterOptions, _options)\r\n this.queries = _queries\r\n this.score = 0\r\n this.checkSteps = 5\r\n\r\n // Elements\r\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n this.visibilityElement = this.element.querySelector(this.queries.visibilityQuery)\r\n this.highlightElement = this.element.querySelector(this.queries.highlightQuery)\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private handlers(): void {\r\n if (this.inputElement) {\r\n this.inputElement.addEventListener('input', () => {\r\n this.check()\r\n })\r\n }\r\n\r\n if (this.visibilityElement) {\r\n this.visibilityElement.addEventListener('click', () => {\r\n this.visitbility()\r\n })\r\n }\r\n }\r\n\r\n private visitbility() {\r\n if (this.visibilityElement && this.inputElement) {\r\n const visibleIcon = this.visibilityElement.querySelector(\r\n 'i:not(.d-none), .svg-icon:not(.d-none)'\r\n )\r\n\r\n const hiddenIcon = this.visibilityElement.querySelector('i.d-none, .svg-icon.d-none')\r\n\r\n const typeAttr = this.inputElement.getAttribute('type') || ''\r\n\r\n if (typeAttr === 'password') {\r\n this.inputElement.setAttribute('type', 'text')\r\n } else {\r\n this.inputElement.setAttribute('type', 'password')\r\n }\r\n\r\n visibleIcon?.classList.add('d-none')\r\n hiddenIcon?.classList.remove('d-none')\r\n\r\n this.inputElement.focus()\r\n }\r\n }\r\n\r\n private checkScore(): number {\r\n return 0\r\n }\r\n\r\n private checkLength(): boolean {\r\n if (this.inputElement) {\r\n return this.inputElement.value.length >= this.options.minLength // 20 score\r\n }\r\n\r\n return false\r\n }\r\n\r\n private checkLowerCase(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[a-z]/.test(val) // 20 score\r\n }\r\n\r\n private checkUppercase(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[A-Z]/.test(val) // 20 score\r\n }\r\n\r\n private checkDigit(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[0-9]/.test(val) // 20 score\r\n }\r\n\r\n private checkChar(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g.test(val) // 20 score\r\n }\r\n\r\n private getCheckScore(): number {\r\n let count = 1\r\n if (this.options.checkUppercase) {\r\n count++\r\n }\r\n\r\n if (this.options.checkLowercase) {\r\n count++\r\n }\r\n\r\n if (this.options.checkDigit) {\r\n count++\r\n }\r\n\r\n if (this.options.checkChar) {\r\n count++\r\n }\r\n\r\n this.checkSteps = count\r\n return 100 / this.checkSteps\r\n }\r\n\r\n private highlight() {\r\n const items = this.highlightElement\r\n ? [].slice.call(this.highlightElement.querySelectorAll('div'))\r\n : []\r\n const total = items.length\r\n let index = 0\r\n const checkScore = this.getCheckScore()\r\n const score = this.getScore()\r\n\r\n items.map((item: HTMLElement) => {\r\n index++\r\n if (checkScore * index * (this.checkSteps / total) <= score) {\r\n item.classList.add('active')\r\n } else {\r\n item.classList.remove('active')\r\n }\r\n })\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public reset = () => {\r\n this.score = 0\r\n this.highlight()\r\n }\r\n\r\n public getScore() {\r\n return this.score\r\n }\r\n\r\n public check() {\r\n let score = 0\r\n const checkScore = this.checkScore()\r\n if (this.checkLength()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkUppercase && this.checkLowerCase()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkLowercase && this.checkUppercase()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkDigit && this.checkDigit()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkChar && this.checkChar()) {\r\n score = score + checkScore\r\n }\r\n\r\n this.score = score\r\n this.highlight()\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultPasswordMeterQueires.componentName\r\n ) => {\r\n const passwordMeter = DataUtil.get(el, componentName)\r\n if (passwordMeter) {\r\n return passwordMeter\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n if (!passwordMeter) {\r\n passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n ): PasswordMeterComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n if (!passwordMeter) {\r\n passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n }\r\n return passwordMeter\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultPasswordMeterQueires.instanseQuery) => {\r\n PasswordMeterComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery\r\n ) => {\r\n PasswordMeterComponent.createInstances(selector)\r\n }\r\n}\r\nexport {PasswordMeterComponent, defaultPasswordMeterOptions, defaultPasswordMeterQueires}\r\n","import {\r\n DataUtil,\r\n getAttributeValueByBreakpoint,\r\n stringSnakeToCamel,\r\n getObjectPropertyValueByKey,\r\n EventHandlerUtil,\r\n throttle,\r\n} from '../_utils/index'\r\n\r\nexport interface IPlaceOptions {\r\n mode: string\r\n}\r\n\r\nexport interface IPlaceQueries {\r\n componentName: string\r\n instanseQuery: string\r\n attrQuery: string\r\n}\r\n\r\nconst defaultPlaceOptions: IPlaceOptions = {\r\n mode: 'append',\r\n}\r\n\r\nconst defaultPlaceQueires: IPlaceQueries = {\r\n componentName: 'place',\r\n instanseQuery: '[data-kt-place=\"true\"]',\r\n attrQuery: 'data-kt-place-',\r\n}\r\n\r\nclass PlaceComponent {\r\n element: HTMLElement\r\n options: IPlaceOptions\r\n queries: IPlaceQueries\r\n\r\n constructor(_element: HTMLElement, _options: IPlaceOptions, _queries: IPlaceQueries) {\r\n this.element = _element\r\n this.options = Object.assign(defaultPlaceOptions, _options)\r\n this.queries = _queries\r\n\r\n // Initial update\r\n this.update()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private getOption(name: string) {\r\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n if (attr != null && String(value) === 'true') {\r\n return true\r\n } else if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public update = () => {\r\n const parentSelector = this.getOption('parent')?.toString()\r\n const mode = this.getOption('mode')\r\n const parentElement = parentSelector ? document.querySelector(parentSelector) : null\r\n\r\n if (parentElement && this.element.parentNode !== parentElement) {\r\n if (mode === 'prepend') {\r\n parentElement.prepend(this.element)\r\n } else if (mode === 'append') {\r\n parentElement.append(this.element)\r\n }\r\n }\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultPlaceQueires.componentName\r\n ): PlaceComponent | null => {\r\n const place = DataUtil.get(el, componentName)\r\n if (place) {\r\n return place as PlaceComponent\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultPlaceQueires.instanseQuery,\r\n options: IPlaceOptions = defaultPlaceOptions,\r\n queries: IPlaceQueries = defaultPlaceQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let place = PlaceComponent.getInstance(item)\r\n if (!place) {\r\n place = new PlaceComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultPlaceQueires.instanseQuery,\r\n options: IPlaceOptions = defaultPlaceOptions,\r\n queries: IPlaceQueries = defaultPlaceQueires\r\n ): PlaceComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let place = PlaceComponent.getInstance(item)\r\n if (!place) {\r\n place = new PlaceComponent(item, options, queries)\r\n }\r\n return place\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultPlaceQueires.instanseQuery) => {\r\n PlaceComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultPlaceQueires.instanseQuery) => {\r\n PlaceComponent.createInstances(selector)\r\n }\r\n}\r\n\r\n// Window resize handler\r\nwindow.addEventListener('resize', function () {\r\n let timer\r\n\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Offcanvas instances on window resize\r\n const elements = document.querySelectorAll(defaultPlaceQueires.instanseQuery)\r\n elements.forEach((el) => {\r\n const place = PlaceComponent.getInstance(el as HTMLElement)\r\n if (place) {\r\n place.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n})\r\n\r\nexport {PlaceComponent, defaultPlaceOptions, defaultPlaceQueires}\r\n","import {createPopper, VirtualElement} from '@popperjs/core'\r\nimport {\r\n getElementChild,\r\n getElementParents,\r\n getAttributeValueByBreakpoint,\r\n getUniqueIdWithPrefix,\r\n DataUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n insertAfterElement,\r\n slideUp,\r\n slideDown,\r\n DOMEventHandlerUtil,\r\n throttle,\r\n getHighestZindex,\r\n} from '../_utils/index'\r\n\r\nexport interface MenuOptions {\r\n dropdown: {\r\n hoverTimeout: number\r\n zindex: number\r\n }\r\n accordion: {\r\n slideSpeed: number\r\n expand: boolean\r\n }\r\n}\r\n\r\nconst defaultMenuOptions: MenuOptions = {\r\n dropdown: {\r\n hoverTimeout: 200,\r\n zindex: 105,\r\n },\r\n accordion: {\r\n slideSpeed: 250,\r\n expand: false,\r\n },\r\n}\r\n\r\ntype PopperPlacement =\r\n | 'right'\r\n | 'auto'\r\n | 'auto-start'\r\n | 'auto-end'\r\n | 'top'\r\n | 'bottom'\r\n | 'left'\r\n | 'top-start'\r\n | 'top-end'\r\n | 'bottom-start'\r\n | 'bottom-end'\r\n | 'right-start'\r\n | 'right-end'\r\n | 'left-start'\r\n | 'left-end'\r\n | undefined\r\n\r\nclass MenuComponent {\r\n element: HTMLElement\r\n options: MenuOptions\r\n instanceUid: string\r\n triggerElement: HTMLElement | null = null\r\n\r\n constructor(_element: HTMLElement, options: MenuOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultMenuOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('menu')\r\n // this.element.setAttribute('data-kt-menu', 'true')\r\n this._setTriggerElement()\r\n this._update()\r\n DataUtil.set(this.element, 'menu', this)\r\n return this\r\n }\r\n\r\n // Set external trigger element\r\n private _setTriggerElement = () => {\r\n const target = document.querySelector(\r\n `[data-kt-menu-target=\"#${this.element.getAttribute('id')}\"`\r\n )\r\n\r\n if (target) {\r\n this.triggerElement = target as HTMLElement\r\n } else if (this.element.closest('[data-kt-menu-trigger]')) {\r\n this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement\r\n } else if (\r\n this.element.parentNode &&\r\n getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]')\r\n ) {\r\n const child = getElementChild(\r\n this.element.parentNode as HTMLElement,\r\n '[data-kt-menu-trigger]'\r\n )\r\n if (child) {\r\n this.triggerElement = child\r\n }\r\n }\r\n\r\n if (this.triggerElement) {\r\n DataUtil.set(this.triggerElement, 'menu', this)\r\n }\r\n }\r\n\r\n // Test if menu has external trigger element\r\n private _isTriggerElement = (item: HTMLElement) => {\r\n return this.triggerElement === item\r\n }\r\n\r\n // Get item option(through html attributes)\r\n private _getItemOption = (item: HTMLElement, name: string) => {\r\n let value = null\r\n if (item && item.hasAttribute('data-kt-menu-' + name)) {\r\n const attr = item.getAttribute('data-kt-menu-' + name) || ''\r\n value = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n value = true\r\n } else if (value !== null && String(value) === 'false') {\r\n value = false\r\n }\r\n }\r\n return value\r\n }\r\n\r\n // Get item element\r\n private _getItemElement = (_element: HTMLElement) => {\r\n // Element is the external trigger element\r\n if (this._isTriggerElement(_element)) {\r\n return _element\r\n }\r\n\r\n // Element has item toggler attribute\r\n if (_element.hasAttribute('data-kt-menu-trigger')) {\r\n return _element\r\n }\r\n\r\n // Element has item DOM reference in it's data storage\r\n const itemElement = DataUtil.get(_element, 'item')\r\n if (itemElement) {\r\n return itemElement\r\n }\r\n\r\n // Item is parent of element\r\n const item = _element.closest('.menu-item[data-kt-menu-trigger]')\r\n if (item) {\r\n return item\r\n }\r\n\r\n // Element's parent has item DOM reference in it's data storage\r\n const sub = _element.closest('.menu-sub')\r\n if (sub) {\r\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n if (subItem) {\r\n return subItem\r\n }\r\n }\r\n }\r\n\r\n // Get item parent element\r\n private _getItemParentElement = (item: HTMLElement) => {\r\n const sub = item.closest('.menu-sub')\r\n if (!sub) {\r\n return null\r\n }\r\n\r\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n if (subItem) {\r\n return subItem\r\n }\r\n\r\n const parentItem = sub.closest('.menu-item[data-kt-menu-trigger]')\r\n if (sub && parentItem) {\r\n return parentItem\r\n }\r\n\r\n return null\r\n }\r\n\r\n // Get item parent elements\r\n private _getItemParentElements = (item: HTMLElement) => {\r\n const parents = []\r\n let parent\r\n let i = 0\r\n let buffer = item\r\n\r\n do {\r\n parent = this._getItemParentElement(buffer)\r\n if (parent) {\r\n parents.push(parent)\r\n buffer = parent\r\n }\r\n\r\n i++\r\n } while (parent !== null && i < 20)\r\n\r\n if (this.triggerElement) {\r\n parents.unshift(this.triggerElement)\r\n }\r\n\r\n return parents\r\n }\r\n\r\n // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)\r\n private _getDropdownPopperConfig = (item: HTMLElement) => {\r\n // Placement\r\n const placementOption = this._getItemOption(item, 'placement')\r\n let placement: PopperPlacement = 'right'\r\n if (placementOption) {\r\n placement = placementOption as PopperPlacement\r\n }\r\n\r\n // Flip\r\n const flipValue = this._getItemOption(item, 'flip')\r\n const flip = flipValue ? flipValue.toString().split(',') : []\r\n\r\n // Offset\r\n const offsetValue = this._getItemOption(item, 'offset')\r\n const offset = offsetValue ? offsetValue.toString().split(',') : []\r\n\r\n // Strategy\r\n const strategy: 'absolute' | 'fixed' | undefined =\r\n this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed'\r\n\r\n return {\r\n placement: placement,\r\n strategy: strategy,\r\n modifiers: [\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: offset,\r\n },\r\n },\r\n {\r\n name: 'preventOverflow',\r\n options: {\r\n //altBoundary: true,\r\n //altAxis: true,\r\n rootBoundary: 'clippingParents',\r\n },\r\n },\r\n {\r\n name: 'flip',\r\n options: {\r\n altBoundary: true,\r\n fallbackPlacements: flip,\r\n },\r\n },\r\n ],\r\n }\r\n }\r\n\r\n // Get item child element\r\n private _getItemChildElement = (item: HTMLElement) => {\r\n let selector = item\r\n\r\n const subItem = DataUtil.get(item, 'sub')\r\n if (subItem) {\r\n selector = subItem\r\n }\r\n\r\n if (selector) {\r\n //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');\r\n const element = selector.querySelector('.menu-item[data-kt-menu-trigger]')\r\n if (element) {\r\n return element\r\n }\r\n }\r\n return null\r\n }\r\n\r\n // Get item child elements\r\n private _getItemChildElements = (item: HTMLElement) => {\r\n const children = []\r\n let child\r\n let i = 0\r\n let buffer = item\r\n do {\r\n child = this._getItemChildElement(buffer)\r\n if (child) {\r\n children.push(child)\r\n buffer = child as HTMLElement\r\n }\r\n\r\n i++\r\n } while (child !== null && i < 20)\r\n\r\n return children\r\n }\r\n\r\n // Get item sub element\r\n private _getItemSubElement = (item: HTMLElement) => {\r\n if (!item) {\r\n return null\r\n }\r\n\r\n if (this._isTriggerElement(item)) {\r\n return this.element\r\n }\r\n\r\n if (item.classList.contains('menu-sub')) {\r\n return item\r\n } else if (DataUtil.has(item, 'sub')) {\r\n return DataUtil.get(item, 'sub')\r\n } else {\r\n return getElementChild(item, '.menu-sub')\r\n }\r\n }\r\n\r\n private _getCss = (el: HTMLElement, styleProp: string) => {\r\n const defaultView = (el.ownerDocument || document).defaultView\r\n if (!defaultView) {\r\n return ''\r\n }\r\n\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n }\r\n\r\n // Get item sub type\r\n private _getItemSubType = (element: HTMLElement) => {\r\n const sub = this._getItemSubElement(element)\r\n if (sub && parseInt(this._getCss(sub, 'z-index')) > 0) {\r\n return 'dropdown'\r\n } else {\r\n return 'accordion'\r\n }\r\n }\r\n\r\n // Test if item's sub is shown\r\n private _isItemSubShown = (item: HTMLElement) => {\r\n let sub = this._getItemSubElement(item)\r\n if (sub) {\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n return sub.classList.contains('show') && sub.hasAttribute('data-popper-placement')\r\n } else {\r\n return item.classList.contains('show')\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n // Test if item dropdown is permanent\r\n private _isItemDropdownPermanent = (item: HTMLElement) => {\r\n return this._getItemOption(item, 'permanent') === true\r\n }\r\n\r\n // Test if item's parent is shown\r\n private _isItemParentShown = (item: HTMLElement) => {\r\n return getElementParents(item, '.menu-item.show').length > 0\r\n }\r\n\r\n // Test of it is item sub element\r\n private _isItemSubElement = (item: HTMLElement) => {\r\n return item.classList.contains('menu-sub')\r\n }\r\n\r\n // Test if item has sub\r\n private _hasItemSub = (item: HTMLElement) => {\r\n return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger')\r\n }\r\n\r\n // Get link element\r\n private _getItemLinkElement = (item: HTMLElement) => {\r\n return getElementChild(item, '.menu-link')\r\n }\r\n\r\n // Get toggle element\r\n private _getItemToggleElement = (item: HTMLElement) => {\r\n if (this.triggerElement) {\r\n return this.triggerElement\r\n }\r\n\r\n return this._getItemLinkElement(item)\r\n }\r\n\r\n // Show item dropdown\r\n private _showDropdown = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {\r\n return\r\n }\r\n\r\n // Hide all currently shown dropdowns except current one\r\n MenuComponent.hideDropdowns(item)\r\n\r\n // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);\r\n const sub = this._getItemSubElement(item)\r\n const width = this._getItemOption(item, 'width')\r\n const height = this._getItemOption(item, 'height')\r\n\r\n let zindex = this.options.dropdown.zindex\r\n const parentZindex = getHighestZindex(item) // update\r\n // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update\r\n if (parentZindex !== null && parentZindex >= zindex) {\r\n zindex = parentZindex + 1\r\n }\r\n\r\n if (zindex) {\r\n ElementStyleUtil.set(sub, 'z-index', zindex)\r\n }\r\n\r\n if (width) {\r\n ElementStyleUtil.set(sub, 'width', width)\r\n }\r\n\r\n if (height) {\r\n ElementStyleUtil.set(sub, 'height', height)\r\n }\r\n\r\n this.initDropdownPopper(item, sub)\r\n\r\n item.classList.add('show')\r\n item.classList.add('menu-dropdown')\r\n sub.classList.add('show')\r\n\r\n // Append the sub the the root of the menu\r\n if (this._getItemOption(item, 'overflow') === true) {\r\n document.body.appendChild(sub)\r\n DataUtil.set(item, 'sub', sub)\r\n DataUtil.set(sub, 'item', item)\r\n DataUtil.set(sub, 'menu', this)\r\n } else {\r\n DataUtil.set(sub, 'item', item)\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown')\r\n }\r\n\r\n // Init dropdown popper(new)\r\n private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => {\r\n // Setup popper instance\r\n let reference\r\n const attach = this._getItemOption(item, 'attach') as string\r\n\r\n if (attach) {\r\n if (attach === 'parent') {\r\n reference = item.parentNode\r\n } else {\r\n reference = document.querySelector(attach)\r\n }\r\n } else {\r\n reference = item\r\n }\r\n\r\n if (reference) {\r\n const popper = createPopper(\r\n reference as Element | VirtualElement,\r\n sub,\r\n this._getDropdownPopperConfig(item)\r\n )\r\n DataUtil.set(item, 'popper', popper)\r\n }\r\n }\r\n\r\n // Hide item dropdown\r\n private _hideDropdown = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n ElementStyleUtil.set(sub, 'z-index', '')\r\n ElementStyleUtil.set(sub, 'width', '')\r\n ElementStyleUtil.set(sub, 'height', '')\r\n item.classList.remove('show')\r\n item.classList.remove('menu-dropdown')\r\n sub.classList.remove('show')\r\n\r\n // Append the sub back to it's parent\r\n if (this._getItemOption(item, 'overflow') === true) {\r\n if (item.classList.contains('menu-item')) {\r\n item.appendChild(sub)\r\n } else {\r\n insertAfterElement(this.element, item)\r\n }\r\n\r\n DataUtil.remove(item, 'sub')\r\n DataUtil.remove(sub, 'item')\r\n DataUtil.remove(sub, 'menu')\r\n }\r\n\r\n if (DataUtil.has(item, 'popper') === true) {\r\n DataUtil.get(item, 'popper').destroy()\r\n DataUtil.remove(item, 'popper')\r\n }\r\n\r\n // Destroy popper(new)\r\n this.destroyDropdownPopper(item)\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n }\r\n\r\n // Destroy dropdown popper(new)\r\n private destroyDropdownPopper = (item: HTMLElement) => {\r\n if (DataUtil.has(item, 'popper') === true) {\r\n DataUtil.get(item, 'popper').destroy()\r\n DataUtil.remove(item, 'popper')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n }\r\n\r\n private _showAccordion = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {\r\n return\r\n }\r\n\r\n if (this.options.accordion.expand === false) {\r\n this._hideAccordions(item)\r\n }\r\n\r\n if (DataUtil.has(item, 'popper') === true) {\r\n this._hideDropdown(item)\r\n }\r\n\r\n item.classList.add('hover') // updateWW\r\n item.classList.add('showing')\r\n\r\n const subElement = this._getItemSubElement(item)\r\n if (subElement) {\r\n const sub = subElement as HTMLElement\r\n slideDown(sub, this.options.accordion.slideSpeed, () => {\r\n item.classList.remove('showing')\r\n item.classList.add('show')\r\n sub.classList.add('show')\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown')\r\n })\r\n }\r\n }\r\n\r\n private _hideAccordion = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n item.classList.add('hiding')\r\n\r\n if (sub) {\r\n slideUp(sub, this.options.accordion.slideSpeed, () => {\r\n item.classList.remove('hiding')\r\n item.classList.remove('show')\r\n sub.classList.remove('show')\r\n item.classList.remove('hover') // update\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden')\r\n })\r\n }\r\n }\r\n\r\n // Hide all shown accordions of item\r\n private _hideAccordions = (item: HTMLElement) => {\r\n const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]')\r\n if (itemsToHide && itemsToHide.length > 0) {\r\n for (var i = 0, len = itemsToHide.length; i < len; i++) {\r\n const itemToHide = itemsToHide[i] as HTMLElement\r\n\r\n if (\r\n this._getItemSubType(itemToHide) === 'accordion' &&\r\n itemToHide !== item &&\r\n item.contains(itemToHide) === false &&\r\n itemToHide.contains(item) === false\r\n ) {\r\n this._hideAccordion(itemToHide)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Event Handlers\r\n // Reset item state classes if item sub type changed\r\n private _reset = (item: HTMLElement) => {\r\n if (this._hasItemSub(item) === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n\r\n // Reset sub state if sub type is changed during the window resize\r\n if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {\r\n // updated\r\n item.classList.remove('hover')\r\n item.classList.remove('show')\r\n item.classList.remove('show')\r\n if (sub && sub.removeClass) {\r\n sub.removeClass(sub, 'show')\r\n }\r\n } // updated\r\n }\r\n\r\n // TODO: not done\r\n private _destroy = () => {}\r\n\r\n // Update all item state classes if item sub type changed\r\n private _update = () => {\r\n const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]')\r\n items.forEach((el) => this._reset(el as HTMLElement))\r\n }\r\n\r\n // Hide item sub\r\n private _hide = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === false) {\r\n return\r\n }\r\n\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n this._hideDropdown(item)\r\n } else if (this._getItemSubType(item) === 'accordion') {\r\n this._hideAccordion(item)\r\n }\r\n }\r\n\r\n // Show item sub\r\n private _show = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === true) {\r\n return\r\n }\r\n\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n this._showDropdown(item) // // show current dropdown\r\n } else if (this._getItemSubType(item) === 'accordion') {\r\n this._showAccordion(item)\r\n }\r\n\r\n // Remember last submenu type\r\n\r\n DataUtil.set(item, 'type', this._getItemSubType(item)) // updated\r\n }\r\n\r\n // Toggle item sub\r\n private _toggle = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === true) {\r\n this._hide(item)\r\n } else {\r\n this._show(item)\r\n }\r\n }\r\n\r\n // Mouseout handle\r\n private _mouseout = (element: HTMLElement, e: MouseEvent) => {\r\n const item = this._getItemElement(element)\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n return\r\n }\r\n\r\n const timeout = setTimeout(() => {\r\n if (DataUtil.get(item, 'hover') === '1') {\r\n this._hide(item)\r\n }\r\n }, this.options.dropdown.hoverTimeout)\r\n\r\n DataUtil.set(item, 'hover', '1')\r\n DataUtil.set(item, 'timeout', timeout)\r\n }\r\n\r\n // Mouseover handle\r\n private _mouseover = (element: HTMLElement, e: MouseEvent) => {\r\n const item = this._getItemElement(element)\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n return\r\n }\r\n\r\n if (DataUtil.get(item, 'hover') === '1') {\r\n clearTimeout(DataUtil.get(item, 'timeout'))\r\n DataUtil.remove(item, 'hover')\r\n DataUtil.remove(item, 'timeout')\r\n }\r\n\r\n this._show(item)\r\n }\r\n\r\n // Dismiss handler\r\n private _dismiss = (element: HTMLElement, e: Event) => {\r\n const item = this._getItemElement(element)\r\n const items = this._getItemChildElements(item)\r\n //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\r\n const itemSubType = this._getItemSubType(item)\r\n if (item !== null && itemSubType === 'dropdown') {\r\n this._hide(item) // hide items dropdown\r\n\r\n // Hide all child elements as well\r\n if (items.length > 0) {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\r\n if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') {\r\n this._hide(items[i] as HTMLElement)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Link handler\r\n private _link = (element: HTMLElement, e: Event) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {\r\n return\r\n }\r\n\r\n // Dismiss all shown dropdowns\r\n MenuComponent.hideDropdowns(undefined)\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked')\r\n }\r\n\r\n private _click = (element: HTMLElement, e: Event) => {\r\n e.preventDefault()\r\n const item = this._getItemElement(element)\r\n if (this._getItemOption(item, 'trigger') !== 'click') {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'toggle') === false) {\r\n this._show(item)\r\n } else {\r\n this._toggle(item)\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public click = (element: HTMLElement, e: Event) => {\r\n return this._click(element, e)\r\n }\r\n\r\n public link = (element: HTMLElement, e: Event) => {\r\n return this._link(element, e)\r\n }\r\n\r\n public dismiss = (element: HTMLElement, e: Event) => {\r\n return this._dismiss(element, e)\r\n }\r\n\r\n public mouseover = (element: HTMLElement, e: Event) => {\r\n return this._mouseover(element, e as MouseEvent)\r\n }\r\n\r\n public mouseout = (element: HTMLElement, e: Event) => {\r\n return this._mouseout(element, e as MouseEvent)\r\n }\r\n\r\n // General Methods\r\n public getItemTriggerType = (item: HTMLElement) => {\r\n return this._getItemOption(item, 'trigger')\r\n }\r\n\r\n public getItemSubType = (element: HTMLElement) => {\r\n return this._getItemSubType(element)\r\n }\r\n\r\n public show = (item: HTMLElement) => {\r\n return this._show(item)\r\n }\r\n\r\n public hide = (item: HTMLElement) => {\r\n return this._hide(item)\r\n }\r\n\r\n public reset = (item: HTMLElement) => {\r\n return this._reset(item)\r\n }\r\n\r\n public update = () => {\r\n return this._update()\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n public getItemLinkElement = (item: HTMLElement) => {\r\n return this._getItemLinkElement(item)\r\n }\r\n\r\n public getItemToggleElement = (item: HTMLElement) => {\r\n return this._getItemToggleElement(item)\r\n }\r\n\r\n public getItemSubElement = (item: HTMLElement) => {\r\n return this._getItemSubElement(item)\r\n }\r\n\r\n public getItemParentElements = (item: HTMLElement) => {\r\n return this._getItemParentElements(item)\r\n }\r\n\r\n public isItemSubShown = (item: HTMLElement) => {\r\n return this._isItemSubShown(item)\r\n }\r\n\r\n public isItemParentShown = (item: HTMLElement) => {\r\n return this._isItemParentShown(item)\r\n }\r\n\r\n public getTriggerElement = () => {\r\n return this.triggerElement\r\n }\r\n\r\n public isItemDropdownPermanent = (item: HTMLElement) => {\r\n return this._isItemDropdownPermanent(item)\r\n }\r\n\r\n // Accordion Mode Methods\r\n public hideAccordions = (item: HTMLElement) => {\r\n return this._hideAccordions(item)\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: any) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: any) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n // public static methods\r\n // Get KTMenu instance by element\r\n public static getInstance = (element: HTMLElement) => {\r\n // Element has menu DOM reference in it's DATA storage\r\n const elementMenu = DataUtil.get(element, 'menu')\r\n if (elementMenu) {\r\n return elementMenu\r\n }\r\n\r\n // Element has .menu parent\r\n const menu = element.closest('.menu')\r\n if (menu) {\r\n const menuData = DataUtil.get(menu as HTMLElement, 'menu')\r\n if (menuData) {\r\n return menuData\r\n }\r\n }\r\n\r\n // Element has a parent with DOM reference to .menu in it's DATA storage\r\n if (element.classList.contains('menu-link')) {\r\n const sub = element.closest('.menu-sub')\r\n if (sub) {\r\n const subMenu = DataUtil.get(sub as HTMLElement, 'menu')\r\n if (subMenu) {\r\n return subMenu\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n // Hide all dropdowns and skip one if provided\r\n public static hideDropdowns = (skip: HTMLElement | undefined) => {\r\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n\r\n if (items && items.length > 0) {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n const item = items[i]\r\n const menu = MenuComponent.getInstance(item as HTMLElement)\r\n\r\n if (menu && menu.getItemSubType(item) === 'dropdown') {\r\n if (skip) {\r\n if (\r\n menu.getItemSubElement(item).contains(skip) === false &&\r\n item.contains(skip) === false &&\r\n item !== skip\r\n ) {\r\n menu.hide(item)\r\n }\r\n } else {\r\n menu.hide(item)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public static updateDropdowns = () => {\r\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n if (items && items.length > 0) {\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i]\r\n\r\n if (DataUtil.has(item as HTMLElement, 'popper')) {\r\n DataUtil.get(item as HTMLElement, 'popper').forceUpdate()\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Global handlers\r\n public static createInstances = (selector: string) => {\r\n // Initialize menus\r\n document.querySelectorAll(selector).forEach((el) => {\r\n const menuItem = el as HTMLElement\r\n let menuInstance = MenuComponent.getInstance(menuItem)\r\n if (!menuInstance) {\r\n menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions)\r\n }\r\n })\r\n }\r\n\r\n public static initGlobalHandlers = () => {\r\n // Dropdown handler\r\n document.addEventListener('click', (e) => {\r\n const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n if (menuItems && menuItems.length > 0) {\r\n for (let i = 0; i < menuItems.length; i++) {\r\n const item = menuItems[i] as HTMLElement\r\n const menuObj = MenuComponent.getInstance(item) as MenuComponent\r\n if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const menu = menuObj.getElement()\r\n const sub = menuObj.getItemSubElement(item) as HTMLElement\r\n if (item === e.target || item.contains(e.target as HTMLElement)) {\r\n continue\r\n }\r\n\r\n if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) {\r\n continue\r\n }\r\n menuObj.hide(item)\r\n }\r\n }\r\n }\r\n })\r\n\r\n // Sub toggle handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger=\"auto\"])',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu) {\r\n return menu.click(this, e)\r\n }\r\n }\r\n )\r\n\r\n // // Link handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '.menu-item:not([data-kt-menu-trigger]) > .menu-link',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n e.stopPropagation()\r\n const menu = MenuComponent.getInstance(this)\r\n if (menu && menu.link) {\r\n return menu.link(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Dismiss handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-dismiss=\"true\"]',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu) {\r\n return menu.dismiss(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Mouseover handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-trigger], .menu-sub',\r\n 'mouseover',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n return menu.mouseover(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Mouseout handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-trigger], .menu-sub',\r\n 'mouseout',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n return menu.mouseout(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Resize handler\r\n window.addEventListener('resize', () => {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.querySelectorAll('[data-kt-menu=\"true\"]')\r\n elements.forEach((el) => {\r\n const menu = MenuComponent.getInstance(el as HTMLElement)\r\n if (menu) {\r\n menu.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n public static bootstrap = () => {\r\n MenuComponent.initGlobalHandlers()\r\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n }\r\n\r\n public static reinitialization = () => {\r\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: MenuOptions = defaultMenuOptions\r\n ): MenuComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let menu = MenuComponent.getInstance(item)\r\n if (!menu) {\r\n menu = new MenuComponent(item, options)\r\n }\r\n return menu\r\n }\r\n}\r\n\r\nexport {MenuComponent, defaultMenuOptions}\r\n","import {\r\n EventHandlerUtil,\r\n DataUtil,\r\n getBreakpoint,\r\n getAttributeValueByBreakpoint,\r\n stringSnakeToCamel,\r\n getObjectPropertyValueByKey,\r\n getViewPort,\r\n isVisibleElement,\r\n throttle,\r\n} from '../_utils/index'\r\n\r\nimport {MenuComponent, defaultMenuOptions} from './MenuComponent'\r\n\r\nexport interface ISearchOptions {\r\n minLength: number // Miniam text lenght to query search\r\n keypress: boolean // Enable search on keypress\r\n enter: boolean // Enable search on enter key press\r\n layout: 'menu' | 'inline' // Use 'menu' or 'inline' layout options to display search results\r\n responsive?: number // Pass integer value or bootstrap compatible breakpoint key(sm,md,lg,xl,xxl) to enable reponsive form mode for device width below the breakpoint value\r\n showOnFocus: boolean // Always show menu on input focus\r\n}\r\n\r\nexport interface ISearchQueries {\r\n componentName: string\r\n instanseQuery: string\r\n attrQuery: string\r\n}\r\n\r\nconst defaultSearchOptions: ISearchOptions = {\r\n minLength: 2, // Miniam text lenght to query search\r\n keypress: true, // Enable search on keypress\r\n enter: true, // Enable search on enter key press\r\n layout: 'menu', // Use 'menu' or 'inline' layout options to display search results\r\n showOnFocus: true, // Always show menu on input focus\r\n}\r\n\r\nconst defaultSearchQueires: ISearchQueries = {\r\n componentName: 'search',\r\n instanseQuery: '[data-kt-search]',\r\n attrQuery: 'data-kt-search-',\r\n}\r\n\r\nclass SearchComponent {\r\n element: HTMLElement\r\n contentElement: HTMLElement\r\n formElement: HTMLFormElement\r\n inputElement: HTMLInputElement\r\n spinnerElement: HTMLElement\r\n clearElement: HTMLElement\r\n toggleElement: HTMLElement\r\n submitElement: HTMLElement\r\n toolbarElement: HTMLElement\r\n resultsElement: HTMLElement\r\n suggestionElement: HTMLElement\r\n emptyElement: HTMLElement\r\n layout: any\r\n\r\n options: ISearchOptions\r\n queries: ISearchQueries\r\n\r\n processing: boolean = false\r\n menuObject: MenuComponent | undefined\r\n\r\n constructor(_element: HTMLElement, _options: ISearchOptions, _queries: ISearchQueries) {\r\n // Variables\r\n this.options = Object.assign(defaultSearchOptions, _options)\r\n this.queries = _queries\r\n\r\n // Elements\r\n this.element = _element\r\n this.contentElement = this._getElement('content') as HTMLElement\r\n this.formElement = this._getElement('form') as HTMLFormElement\r\n this.inputElement = this._getElement('input') as HTMLInputElement\r\n this.spinnerElement = this._getElement('spinner') as HTMLElement\r\n this.clearElement = this._getElement('clear') as HTMLElement\r\n this.toggleElement = this._getElement('toggle') as HTMLElement\r\n this.submitElement = this._getElement('submit') as HTMLElement\r\n this.toolbarElement = this._getElement('toolbar') as HTMLElement\r\n\r\n this.resultsElement = this._getElement('results') as HTMLElement\r\n this.suggestionElement = this._getElement('suggestion') as HTMLElement\r\n this.emptyElement = this._getElement('empty') as HTMLElement\r\n\r\n // Layout\r\n this.layout = this.getOption('layout')\r\n if (this.layout === 'menu') {\r\n this.menuObject = new MenuComponent(this.contentElement, defaultMenuOptions)\r\n }\r\n\r\n // Update\r\n this.update()\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private _getElement = (name: string) => {\r\n return this.element.querySelector('[data-kt-search-element=\"' + name + '\"]')\r\n }\r\n\r\n // Get option\r\n private getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n\r\n if (value !== null && String(value) === 'true') {\r\n return true\r\n } else if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n // Check if responsive form mode is enabled\r\n private getResponsiveFormMode = () => {\r\n const responsive = this.getOption('responsive') as string\r\n const width = getViewPort().width\r\n\r\n if (!responsive) {\r\n return null\r\n }\r\n\r\n const breakpoint = getBreakpoint(responsive)\r\n let breakPointNum = -1\r\n if (!breakpoint) {\r\n breakPointNum = parseInt(responsive)\r\n } else {\r\n breakPointNum = +breakpoint\r\n }\r\n\r\n if (width < breakPointNum) {\r\n return 'on'\r\n } else {\r\n return 'off'\r\n }\r\n }\r\n\r\n // Focus\r\n private focus = () => {\r\n this.element.classList.add('focus')\r\n\r\n if (\r\n this.getOption('show-on-focus') === true ||\r\n this.inputElement.value.length >= this.options.minLength\r\n ) {\r\n this.show()\r\n }\r\n }\r\n\r\n // Blur\r\n private blur = () => {\r\n this.element.classList.remove('focus')\r\n }\r\n\r\n // Enter\r\n private enter = (e: KeyboardEvent) => {\r\n const key = e.charCode || e.keyCode || 0\r\n\r\n if (key === 13) {\r\n e.preventDefault()\r\n\r\n this.search()\r\n }\r\n }\r\n\r\n // Input\r\n private input = () => {\r\n if (this.getOption('min-length')) {\r\n const minLength = parseInt(this.getOption('min-length') as string)\r\n\r\n if (this.inputElement.value.length >= minLength) {\r\n this.search()\r\n } else if (this.inputElement.value.length === 0) {\r\n this.clear()\r\n }\r\n }\r\n }\r\n\r\n private handlers(): void {\r\n // Focus\r\n this.inputElement.addEventListener('focus', this.focus)\r\n\r\n // Blur\r\n this.inputElement.addEventListener('blur', this.blur)\r\n\r\n // Keypress\r\n if (this.getOption('keypress') === true) {\r\n this.inputElement.addEventListener('input', this.input)\r\n }\r\n\r\n // Submit\r\n if (this.submitElement) {\r\n this.submitElement.addEventListener('click', this.search)\r\n }\r\n\r\n // Enter\r\n if (this.getOption('enter') === true) {\r\n this.inputElement.addEventListener('keypress', this.enter)\r\n }\r\n\r\n // Clear\r\n if (this.clearElement) {\r\n this.clearElement.addEventListener('click', this.clear)\r\n }\r\n\r\n // Menu\r\n if (this.menuObject) {\r\n // Toggle menu\r\n if (this.toggleElement) {\r\n this.toggleElement.addEventListener('click', this.show)\r\n\r\n this.menuObject.on('kt.menu.dropdown.show', function () {\r\n // @ts-ignore\r\n if (isVisibleElement(this.toggleElement)) {\r\n // @ts-ignore\r\n this.toggleElement.classList.add('active')\r\n // @ts-ignore\r\n this.toggleElement.classList.add('show')\r\n }\r\n })\r\n\r\n this.menuObject.on('kt.menu.dropdown.hide', function () {\r\n // @ts-ignore\r\n if (isVisibleElement(this.toggleElement)) {\r\n // @ts-ignore\r\n this.toggleElement.classList.remove('active')\r\n // @ts-ignore\r\n this.toggleElement.classList.remove('show')\r\n }\r\n })\r\n }\r\n\r\n this.menuObject.on('kt.menu.dropdown.shown', function () {\r\n // @ts-ignore\r\n this.inputElement.focus()\r\n })\r\n }\r\n\r\n // Window resize handling\r\n window.addEventListener('resize', () => {\r\n let timer\r\n\r\n throttle(\r\n timer,\r\n () => {\r\n this.update()\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n // Update\r\n public update = () => {\r\n // Handle responsive form\r\n if (this.layout === 'menu') {\r\n let responsiveFormMode = this.getResponsiveFormMode()\r\n\r\n if (responsiveFormMode === 'on' && this.contentElement.contains(this.formElement) === false) {\r\n this.contentElement.prepend(this.formElement)\r\n this.formElement.classList.remove('d-none')\r\n } else if (\r\n responsiveFormMode === 'off' &&\r\n this.contentElement.contains(this.formElement) === true\r\n ) {\r\n this.element.prepend(this.formElement)\r\n this.formElement.classList.add('d-none')\r\n }\r\n }\r\n }\r\n\r\n // Show menu\r\n public show = () => {\r\n if (this.menuObject) {\r\n this.update()\r\n\r\n this.menuObject.show(this.element)\r\n }\r\n }\r\n\r\n // Hide menu\r\n public hide = () => {\r\n if (this.menuObject) {\r\n this.update()\r\n\r\n this.menuObject.hide(this.element)\r\n }\r\n }\r\n\r\n // Search\r\n public search = () => {\r\n if (this.processing === false) {\r\n // Show search spinner\r\n if (this.spinnerElement) {\r\n this.spinnerElement.classList.remove('d-none')\r\n }\r\n\r\n // Hide search clear button\r\n if (this.clearElement) {\r\n this.clearElement.classList.add('d-none')\r\n }\r\n\r\n // Hide search toolbar\r\n if (this.toolbarElement) {\r\n this.toolbarElement.classList.add('d-none')\r\n }\r\n\r\n // Focus input\r\n this.inputElement.focus()\r\n\r\n this.processing = true\r\n EventHandlerUtil.trigger(this.element, 'kt.search.process')\r\n }\r\n }\r\n\r\n // Complete\r\n public complete = () => {\r\n if (this.spinnerElement) {\r\n this.spinnerElement.classList.add('d-none')\r\n }\r\n\r\n // Show search toolbar\r\n if (this.clearElement) {\r\n this.clearElement.classList.remove('d-none')\r\n }\r\n\r\n if (this.inputElement.value.length === 0) {\r\n this.clear()\r\n }\r\n\r\n // Focus input\r\n this.inputElement.focus()\r\n\r\n this.show()\r\n\r\n this.processing = false\r\n }\r\n\r\n // Clear\r\n public clear = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.search.clear') === false) {\r\n return\r\n }\r\n\r\n // Clear and focus input\r\n this.inputElement.value = ''\r\n this.inputElement.focus()\r\n\r\n // Hide clear icon\r\n if (this.clearElement) {\r\n this.clearElement.classList.add('d-none')\r\n }\r\n\r\n // Show search toolbar\r\n if (this.toolbarElement) {\r\n this.toolbarElement.classList.remove('d-none')\r\n }\r\n\r\n // Hide menu\r\n if (this.getOption('show-on-focus') === false) {\r\n this.hide()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.search.cleared')\r\n }\r\n\r\n public isProcessing = () => {\r\n return this.processing\r\n }\r\n\r\n public getQuery = () => {\r\n return this.inputElement.value\r\n }\r\n\r\n public getMenu = () => {\r\n return this.menuObject\r\n }\r\n\r\n public getFormElement = () => {\r\n return this.formElement\r\n }\r\n\r\n public getInputElement(): HTMLInputElement {\r\n return this.inputElement\r\n }\r\n\r\n public getContentElement(): HTMLElement {\r\n return this.contentElement\r\n }\r\n\r\n public getElement(): HTMLElement {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultSearchQueires.componentName\r\n ) => {\r\n const Search = DataUtil.get(el, componentName)\r\n if (Search) {\r\n return Search\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultSearchQueires.instanseQuery,\r\n options: ISearchOptions = defaultSearchOptions,\r\n queries: ISearchQueries = defaultSearchQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let Search = SearchComponent.getInstance(item)\r\n if (!Search) {\r\n Search = new SearchComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultSearchQueires.instanseQuery,\r\n options: ISearchOptions = defaultSearchOptions,\r\n queries: ISearchQueries = defaultSearchQueires\r\n ): SearchComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let Search = SearchComponent.getInstance(item)\r\n if (!Search) {\r\n Search = new SearchComponent(item, options, queries)\r\n }\r\n return Search\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultSearchQueires.instanseQuery) => {\r\n SearchComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultSearchQueires.instanseQuery) => {\r\n SearchComponent.createInstances(selector)\r\n }\r\n}\r\nexport {SearchComponent, defaultSearchOptions, defaultSearchQueires}\r\n","function Dictionary(param) {\r\n\r\n\tvar items = param;\r\n\r\n\t// add \r\n\tthis.set = function (key, value) {\r\n\t\titems[key] = value;\r\n\t};\r\n\r\n\t// delete \r\n\tthis.delete = function (key) {\r\n\t\tif (this.has(key)) {\r\n\t\t\tdelete items[key];\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\t// determine if there is a key value \r\n\tthis.has = function (key) {\r\n\t\treturn key in items;\r\n\t};\r\n\r\n\t// get through some key value\r\n\tthis.get = function (key) {\r\n\t\treturn this.has(key) ? items[key] : undefined;\r\n\t};\r\n\r\n\tthis.getIndex = function (index) {\r\n\t\treturn items[index] ;\r\n\t};\r\n\r\n\t// clear \r\n\tthis.clear = function () {\r\n\t\titems = {};\r\n\t};\r\n\r\n\t// the length of the \r\n\tthis.size = function () {\r\n\t\treturn Object.keys(items).length;\r\n\t};\r\n\r\n\t// key \r\n\tthis.keys = function () {\r\n\t\treturn Object.keys(items);\r\n\t};\r\n\r\n\t// value \r\n\tthis.values = function () {\r\n\t\treturn Object.values(items);\r\n\t};\r\n\r\n\t// the dictionary \r\n\tthis.getItems = function () {\r\n\t\treturn items;\r\n\t}\r\n}\r\n\r\nexport default Dictionary;","// import {K_SCALE_NORMAL} from 'components/markers/map_marker.jsx';\r\n// import invariant from 'fixed-data-table-ice/internal/invariant.js';\r\n\r\n// {l: 10, scale: 0.3}, {l: 5, scale: 0.4} - означает\r\n// 10 элементов размера 0.3, потом 5 размера 0.4, потом те что видны в табличке обычного размера\r\n// потом снова потом 5 размера 0.4, и 10 элементов размера 0.3\r\n// если поставить пусто то на карте будут видны тока те что на экране\r\nconst K_SCALE_SMALL = 0.3\r\nconst K_SCALE_MEDIUM = 0.45\r\nconst K_BEFORE_AFTER_SCALES = [\r\n {l: 15, scale: K_SCALE_SMALL},\r\n {l: 10, scale: K_SCALE_MEDIUM},\r\n]\r\nconst K_SCALES_SUM = K_BEFORE_AFTER_SCALES.reduce((sum, el) => el.l + sum, 0)\r\n\r\nexport function getScale(rowIndex, rowFrom, rowTo, K_SCALE_NORMAL) {\r\n if (rowIndex >= rowFrom && rowIndex <= rowTo) {\r\n return K_SCALE_NORMAL\r\n }\r\n\r\n if (K_BEFORE_AFTER_SCALES.length) {\r\n if (rowIndex < rowFrom) {\r\n let deltaS = rowFrom\r\n for (let index = K_BEFORE_AFTER_SCALES.length - 1; index >= 0; --index) {\r\n deltaS -= K_BEFORE_AFTER_SCALES[index].l\r\n if (rowIndex >= deltaS) {\r\n return K_BEFORE_AFTER_SCALES[index].scale\r\n }\r\n }\r\n\r\n // yes, the code can be here (dirty calculus)\r\n return K_BEFORE_AFTER_SCALES[0].scale\r\n }\r\n\r\n if (rowIndex > rowTo) {\r\n let deltaS = rowTo\r\n for (let index = K_BEFORE_AFTER_SCALES.length - 1; index >= 0; --index) {\r\n deltaS += K_BEFORE_AFTER_SCALES[index].l\r\n if (rowIndex <= deltaS) {\r\n return K_BEFORE_AFTER_SCALES[index].scale\r\n }\r\n }\r\n\r\n // yes, the code can be here (dirty calculus)\r\n return K_BEFORE_AFTER_SCALES[0].scale\r\n }\r\n }\r\n return K_SCALE_NORMAL\r\n}\r\n\r\n// this calculations is not precise (dirty)\r\nfunction _getRealFromTo(rowFrom, rowTo, maxVisibleRows, totalSize) {\r\n let addFrom =\r\n rowFrom + maxVisibleRows + K_SCALES_SUM > totalSize - 1\r\n ? rowFrom + maxVisibleRows + K_SCALES_SUM - (totalSize - 1)\r\n : 0\r\n\r\n const dadd = K_SCALES_SUM - rowFrom\r\n let addTo = dadd >= 0 ? dadd : 0\r\n\r\n return {\r\n rowFrom: Math.max(0, rowFrom - K_SCALES_SUM - addFrom),\r\n rowTo: Math.min(totalSize - 1, rowFrom + maxVisibleRows + K_SCALES_SUM + addTo),\r\n }\r\n}\r\n\r\nexport function getRealFromTo(rowFrom, rowTo, maxVisibleRows, totalSize) {\r\n const current = _getRealFromTo(rowFrom, rowTo, maxVisibleRows, totalSize)\r\n\r\n const result = {\r\n rowFrom: current.rowFrom,\r\n rowTo: current.rowTo,\r\n }\r\n\r\n return result\r\n}\r\n","import {env} from 'process'\r\n\r\nexport const axioDefaultConfig = {\r\n method: 'get',\r\n url: 'https://localhost:44321/api/contractors',\r\n data: {},\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n ApiKey: process.env.RACT_APP_API_KEY,\r\n },\r\n validateStatus: function (status) {\r\n return status >= 200 && status < 400 // default\r\n },\r\n}\r\n\r\nexport const phoneRegex =\r\n /(^(?:0|94|\\+94)?(?:(11|21|23|24|25|26|27|31|32|33|34|35|36|37|38|41|45|47|51|52|54|55|57|63|65|66|67|81|912)(0|2|3|4|5|7|9)|7(0|1|2|4|5|6|7|8)\\d)\\d{6}$)/\r\n\r\nexport const nicRegex =\r\n /(^(?:19|20)?\\d{2}((?:[0-35-8]\\d\\d(? (val && val.length > 0 ? true : false),\r\n then: Yup.string().oneOf([Yup.ref('password')], \"Password and Confirmed Password are not matched\"),\r\n }),\r\n // acceptTerms: Yup.bool().required('You must accept the terms and conditions'),\r\n})\r\n\r\nexport function Registration() {\r\n const [loading, setLoading] = useState(false)\r\n //const dispatch = useDispatch()\r\n const [{ token }, dispatch] = useDataLayerValue();\r\n const [tempToken, setTempToken] = useState('');\r\n\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const Passwordaccesstoken = String(urlParams.get('token'));\r\n const [password, setPassword] = useState('');\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const handlePasswordChange = (event: any) => {\r\n setPassword(event.target.value);\r\n };\r\n\r\n const togglePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: registrationSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n values.token = Passwordaccesstoken; // Set the additional token value\r\n console.log(values)\r\n setLoading(true)\r\n setTimeout(() => {\r\n axios({\r\n ...axioDefaultConfig,\r\n method: 'post',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/accounts/ResetPasswordConfirm',\r\n data: values,\r\n })\r\n .then(function (response) {\r\n if (response?.data?.token !== '' && response?.data?.token !== null) {\r\n setTempToken(response?.data?.token)\r\n setTimeout(() => {\r\n axios({\r\n ...axioDefaultConfig,\r\n method: 'post',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/accounts/token',\r\n data: values,\r\n }).then(function (response) {\r\n if (response?.data?.token !== '' && response?.data?.token !== null) {\r\n values.token = response?.data?.token\r\n setTempToken(response?.data?.token)\r\n dispatch({\r\n type: 'SET_USER',\r\n user: response?.data?.user,\r\n })\r\n dispatch({\r\n type: 'SET_TOKEN',\r\n token: values.token,\r\n })\r\n //history.push('/facility/' + response?.data?.user.facility)\r\n return\r\n } else {\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus(response.data.message)\r\n }\r\n })\r\n .catch(function (error) {\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus('The login detail is incorrect')\r\n })\r\n }, 1000)\r\n\r\n // dispatch(auth.actions.login(response?.data?.token))\r\n // dispatch(auth.actions.setUser(response?.data))\r\n } else {\r\n setLoading(false);\r\n setSubmitting(false)\r\n setStatus(response.data.message)\r\n }\r\n })\r\n .catch(function (error) {\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus('The login detail is incorrect')\r\n })\r\n }, 1000)\r\n },\r\n })\r\n\r\n return (\r\n \r\n {/* begin::Heading */}\r\n
\r\n {/* begin::Title */}\r\n

Confirm your registration

\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {formik.status && (\r\n
\r\n
{formik.status}
\r\n
\r\n )}\r\n\r\n {/* begin::Form group Firstname */}\r\n\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group Email */}\r\n
\r\n \r\n \r\n {formik.touched.email && formik.errors.email && (\r\n
\r\n
\r\n {formik.errors.email}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group Password */}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {formik.touched.password && formik.errors.password && (\r\n
\r\n
\r\n {formik.errors.password}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group Confirm password */}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {formik.touched.changepassword && formik.errors.changepassword && (\r\n
\r\n
\r\n {formik.errors.changepassword}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group */}\r\n {/*
\r\n
\r\n \r\n \r\n I Agree the{' '}\r\n \r\n terms and conditions\r\n \r\n .\r\n \r\n {formik.touched.acceptTerms && formik.errors.acceptTerms && (\r\n
\r\n
\r\n {formik.errors.acceptTerms}\r\n
\r\n
\r\n )}\r\n
\r\n
*/}\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n {!loading && Submit}\r\n {loading && (\r\n \r\n Please wait...{' '}\r\n \r\n \r\n )}\r\n \r\n {/* \r\n \r\n Cancel\r\n \r\n */}\r\n
\r\n {/* end::Form group */}\r\n \r\n )\r\n}\r\n\r\n","import React, { useState } from 'react'\r\nimport * as Yup from 'yup'\r\nimport clsx from 'clsx'\r\nimport { Link } from 'react-router-dom'\r\nimport { useFormik } from 'formik'\r\nimport { requestPassword } from '../redux/AuthCRUD'\r\nimport { axioDefaultConfig } from '../../../../app/ui/common/commonResource'\r\nimport axios from 'axios'\r\n\r\nconst initialValues = {\r\n email: '',\r\n}\r\n\r\nconst forgotPasswordSchema = Yup.object().shape({\r\n email: Yup.string()\r\n .email('Wrong email format')\r\n .min(3, 'Minimum 3 symbols')\r\n .max(50, 'Maximum 50 symbols')\r\n .required('Email is required'),\r\n})\r\n\r\nexport function ForgotPassword() {\r\n\r\n const [isSubmitting, setSubmitting] = useState(false)\r\n const [hasErrors, setHasErrors] = useState(undefined)\r\n const formik = useFormik({\r\n\r\n initialValues,\r\n validationSchema: forgotPasswordSchema,\r\n onSubmit: (values, { setStatus }) => {\r\n setSubmitting(true)\r\n setHasErrors(undefined)\r\n setTimeout(() => {\r\n\r\n\r\n console.log(values)\r\n axios({\r\n ...axioDefaultConfig,\r\n method: 'post',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/accounts/ForgetPassword',\r\n data: values,\r\n })\r\n .then(function (response) {\r\n console.log(response);\r\n\r\n if (response?.data?.token !== '' && response?.data?.token !== null) {\r\n\r\n // setTempToken(response?.data?.token)\r\n setHasErrors(false)\r\n // setLoading(false)\r\n // setSubmitting(false)\r\n setStatus(response?.data.text)\r\n setSubmitting(false)\r\n\r\n // dispatch(auth.actions.login(response?.data?.token))\r\n // dispatch(auth.actions.setUser(response?.data))\r\n } else {\r\n\r\n setSubmitting(false)\r\n setStatus(response.data.message)\r\n }\r\n })\r\n .catch(() => {\r\n setHasErrors(true)\r\n setSubmitting(false)\r\n setStatus('The login detail is incorrect')\r\n })\r\n }, 1000)\r\n\r\n },\r\n })\r\n\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {/* begin::Title */}\r\n

Forgot Password ?

\r\n {/* end::Title */}\r\n\r\n {/* begin::Link */}\r\n
Enter your email to reset your password.
\r\n {/* end::Link */}\r\n
\r\n\r\n {/* begin::Title */}\r\n {hasErrors === true && (\r\n
\r\n
\r\n Sorry, looks like there are some errors detected, please try again.\r\n
\r\n
\r\n )}\r\n\r\n {hasErrors === false && (\r\n
\r\n
Password reset request was sent successfully. Please check your email to reset your password
\r\n
\r\n )}\r\n {/* end::Title */}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n \r\n {formik.touched.email && formik.errors.email && (\r\n
\r\n
\r\n {formik.errors.email}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n \r\n \r\n Cancel\r\n \r\n {' '}\r\n
\r\n {/*
\r\n \r\n Submit\r\n {isSubmitting && (\r\n \r\n Please wait...\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Cancel\r\n \r\n {' '}\r\n
*/}\r\n {/* end::Form group */}\r\n \r\n \r\n )\r\n}\r\n","import axios from 'axios'\r\nimport {AuthModel} from '../models/AuthModel'\r\nimport {UserModel} from '../models/UserModel'\r\n\r\nconst API_URL = process.env.REACT_APP_API_URL || 'api'\r\n\r\nexport const GET_USER_BY_ACCESSTOKEN_URL = `${API_URL}/auth/get-user`\r\nexport const LOGIN_URL = `${API_URL}/auth/login`\r\nexport const REGISTER_URL = `${API_URL}/auth/register`\r\nexport const REQUEST_PASSWORD_URL = `${API_URL}/auth/forgot-password`\r\n\r\n// Server should return AuthModel\r\nexport function login(UserName: string, Password: string) {\r\n return axios.post('http://13.233.53.129:5000/api/users/login/0', {\"UserName\":UserName, \"Password\":Password})\r\n}\r\n\r\n// Server should return AuthModel\r\nexport function register(email: string, firstname: string, lastname: string, password: string) {\r\n return axios.post(REGISTER_URL, {\r\n email,\r\n firstname,\r\n lastname,\r\n password,\r\n })\r\n}\r\n\r\n// Server should return object => { result: boolean } (Is Email in DB)\r\nexport function requestPassword(email: string) {\r\n return axios.post<{result: boolean}>(REQUEST_PASSWORD_URL, {email})\r\n}\r\n\r\nexport function getUserByToken() {\r\n // Authorization head should be fulfilled in interceptor.\r\n // Check common redux folder => setupAxios\r\n console.log(\"Get User Infomations\")\r\n return {data : ({firstname:'gevan'}) }; // axios.get(GET_USER_BY_ACCESSTOKEN_URL)\r\n}\r\n","import {Action} from '@reduxjs/toolkit'\r\nimport {persistReducer} from 'redux-persist'\r\nimport storage from 'redux-persist/lib/storage'\r\nimport {put, takeLatest} from 'redux-saga/effects'\r\nimport {UserModel} from '../models/UserModel'\r\nimport {getUserByToken} from './AuthCRUD'\r\n\r\nexport interface ActionWithPayload extends Action {\r\n payload?: T\r\n}\r\n\r\nexport const actionTypes = {\r\n Login: '[Login] Action',\r\n Logout: '[Logout] Action',\r\n Register: '[Register] Action',\r\n UserRequested: '[Request User] Action',\r\n UserLoaded: '[Load User] Auth API',\r\n SetUser: '[Set User] Action',\r\n}\r\n\r\nconst initialAuthState: IAuthState = {\r\n user: undefined,\r\n accessToken: undefined,\r\n}\r\n\r\nexport interface IAuthState {\r\n user?: UserModel\r\n accessToken?: string\r\n}\r\n\r\nexport const reducer = persistReducer(\r\n {storage, key: 'v100-demo1-auth', whitelist: ['user', 'accessToken']},\r\n (state: IAuthState = initialAuthState, action: ActionWithPayload) => {\r\n switch (action.type) {\r\n case actionTypes.Login: {\r\n const accessToken = action.payload?.accessToken\r\n return {accessToken, user: undefined}\r\n }\r\n\r\n case actionTypes.Register: {\r\n const accessToken = action.payload?.accessToken\r\n return {accessToken, user: undefined}\r\n }\r\n\r\n case actionTypes.Logout: {\r\n return initialAuthState\r\n }\r\n\r\n case actionTypes.UserRequested: {\r\n return {...state, user: undefined}\r\n }\r\n\r\n case actionTypes.UserLoaded: {\r\n const user = action.payload?.user\r\n return {...state, user}\r\n }\r\n\r\n case actionTypes.SetUser: {\r\n const user = action.payload?.user\r\n return {...state, user}\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n }\r\n)\r\n\r\nexport const actions = {\r\n login: (accessToken: string) => ({type: actionTypes.Login, payload: {accessToken}}),\r\n register: (accessToken: string) => ({\r\n type: actionTypes.Register,\r\n payload: {accessToken},\r\n }),\r\n logout: () => ({type: actionTypes.Logout}),\r\n requestUser: () => ({\r\n type: actionTypes.UserRequested,\r\n }),\r\n fulfillUser: (user: UserModel) => ({type: actionTypes.UserLoaded, payload: {user}}),\r\n setUser: (user: UserModel) => ({type: actionTypes.SetUser, payload: {user}}),\r\n}\r\n\r\nexport function* saga() {\r\n yield takeLatest(actionTypes.Login, function* loginSaga() {\r\n yield put(actions.requestUser())\r\n })\r\n\r\n yield takeLatest(actionTypes.Register, function* registerSaga() {\r\n yield put(actions.requestUser())\r\n })\r\n\r\n yield takeLatest(actionTypes.UserRequested, function* userRequested() {\r\n\t console.log(\"aaa\");\r\n const {data: user} = yield getUserByToken()\r\n yield put(actions.fulfillUser(user))\r\n })\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {useState} from 'react'\r\nimport {useHistory} from 'react-router-dom'\r\nimport {useDispatch} from 'react-redux'\r\nimport * as Yup from 'yup'\r\nimport clsx from 'clsx'\r\nimport {Link} from 'react-router-dom'\r\nimport {useFormik} from 'formik'\r\nimport * as auth from '../redux/AuthRedux'\r\nimport {login} from '../redux/AuthCRUD'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../../_metronic/helpers'\r\n\r\nimport {useDataLayerValue} from '../../../../DataLayer'\r\nimport axios from 'axios'\r\nimport {axioDefaultConfig} from '../../../ui/common/commonResource2'\r\nimport {stat} from 'fs'\r\n\r\nconst loginSchema = Yup.object().shape({\r\n email: Yup.string()\r\n .email('Wrong email format')\r\n .min(3, 'Minimum 3 symbols')\r\n .max(50, 'Maximum 50 symbols')\r\n .required('Email is required'),\r\n password: Yup.string()\r\n .min(3, 'Minimum 3 symbols')\r\n .max(50, 'Maximum 50 symbols')\r\n .required('Password is required'),\r\n})\r\n\r\nconst initialValues = {\r\n email: '',\r\n password: '',\r\n _token: '',\r\n}\r\n\r\nexport function Login(props) {\r\n console.log('test')\r\n const history = useHistory()\r\n const [loading, setLoading] = useState(false)\r\n const [{token}, dispatch] = useDataLayerValue()\r\n const [tempToken, setTempToken] = useState('')\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: loginSchema,\r\n onSubmit: (values, {setStatus, setSubmitting}) => {\r\n setLoading(true)\r\n //console.log('asaa')\r\n //setTimeout(() => {\r\n axios({\r\n ...axioDefaultConfig,\r\n method: 'post',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/accounts/token',\r\n data: values,\r\n })\r\n .then(function (response) {\r\n if (response?.data?.token !== '' && response?.data?.token !== null) {\r\n values._token = response?.data?.token\r\n setTempToken(response?.data?.token)\r\n dispatch({\r\n type: 'SET_USER',\r\n user: response?.data?.user,\r\n })\r\n dispatch({\r\n type: 'SET_TOKEN',\r\n token: values._token,\r\n })\r\n if (response?.data?.user.isEndNode) {\r\n history.push('/facility-detail/' + response?.data?.user.facility)\r\n } else {\r\n history.push('/facility/' + response?.data?.user.facility)\r\n }\r\n // Redirect to new page\r\n //history.push('/facility/' + response?.data?.user.facility)\r\n return\r\n } else {\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus(response.data.message)\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log('asaa')\r\n setLoading(false)\r\n setSubmitting(false)\r\n setStatus('The login detail is incorrect')\r\n })\r\n // }, 5000)\r\n },\r\n })\r\n\r\n var content = 'INDUSRTYX'\r\n if (window.location.hostname.toLowerCase() === 'e2eq.lk') {\r\n content = 'E2EQ'\r\n }\r\n if (window.location.hostname.toLowerCase() === 'portal.smartgas.biz') {\r\n content = 'SMARTGAS'\r\n }\r\n\r\n return (\r\n \r\n {content === 'INDUSRTYX' && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {content === 'E2EQ' && (\r\n
\r\n Footer\r\n
\r\n )}\r\n\r\n {content === 'SMARTGAS' && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n \r\n {formik.touched.email && formik.errors.email && (\r\n
\r\n {formik.errors.email}\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n \r\n {formik.touched.password && formik.errors.password && (\r\n
\r\n
\r\n {formik.errors.password}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Wrapper */}\r\n
\r\n
\r\n\r\n {/* begin::Link */}\r\n \r\n Forgot Password ?\r\n \r\n {/* end::Link */}\r\n
\r\n {/* end::Wrapper */}\r\n\r\n {/* begin::Action */}\r\n
\r\n \r\n {!loading && (\r\n \r\n Continue   \r\n \r\n \r\n )}\r\n {loading && (\r\n \r\n Please wait...\r\n \r\n \r\n )}\r\n \r\n
\r\n {/* end::Action \r\n\r\n
\r\n Not a Member yet?{' '}\r\n \r\n Sign up\r\n \r\n
*/}\r\n\r\n {content === 'E2EQ' && (\r\n
\r\n
\r\n Footer\r\n
\r\n )}\r\n {/* {content === 'SMARTGAS' && (\r\n
\r\n
\r\n Footer\r\n
\r\n )} */}\r\n\r\n {content === 'INDUSTRYX' && (\r\n
\r\n
\r\n Footer\r\n
\r\n )}\r\n \r\n )\r\n\r\n return (\r\n
\r\n {/* begin::Heading */}\r\n\r\n
\r\n

industryX IOT

\r\n
\r\n {/* begin::Heading\r\n */}\r\n {formik.status ? (\r\n
\r\n
{formik.status}
\r\n
\r\n ) : (\r\n
\r\n )}\r\n\r\n {/* begin::Form group */}\r\n
\r\n \r\n \r\n {formik.touched.email && formik.errors.email && (\r\n
\r\n {formik.errors.email}\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Form group */}\r\n
\r\n
\r\n
\r\n {/* begin::Label */}\r\n \r\n {/* end::Label */}\r\n {/* begin::Link */}\r\n\r\n {/* end::Link */}\r\n
\r\n
\r\n \r\n {formik.touched.password && formik.errors.password && (\r\n
\r\n
\r\n {formik.errors.password}\r\n
\r\n
\r\n )}\r\n
\r\n {/* end::Form group */}\r\n\r\n {/* begin::Action */}\r\n
\r\n \r\n {!loading && Continue}\r\n {loading && (\r\n \r\n Please wait...\r\n \r\n \r\n )}\r\n \r\n
\r\n {/* end::Action */}\r\n \r\n
\r\n )\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect, useState } from 'react'\r\nimport { Redirect, Route, Switch } from 'react-router-dom'\r\nimport { Registration } from './components/Registration'\r\nimport { ForgotPassword } from './components/ForgotPassword'\r\nimport { Login } from './components/Login'\r\nimport { toAbsoluteUrl } from '../../../_metronic/helpers'\r\n\r\n\r\nexport function AuthPage() {\r\n useEffect(() => {\r\n const root = document.getElementById('root')\r\n if (root) {\r\n root.style.height = '100%'\r\n }\r\n return () => {\r\n if (root) {\r\n root.style.height = 'auto'\r\n }\r\n }\r\n }, [])\r\n\r\n const [backgroundImage, setBackgroundImage] = useState('');\r\n\r\n useEffect(() => {\r\n // Array of background image URLs\r\n var backgroundImages = [\r\n\r\n toAbsoluteUrl('/media/bg/industryx/1.jpg'),\r\n toAbsoluteUrl('/media/bg/industryx/2.jpg'),\r\n toAbsoluteUrl('/media/bg/industryx/3.jpg'),\r\n toAbsoluteUrl('/media/bg/industryx/4.jpg'),\r\n toAbsoluteUrl('/media/bg/industryx/5.jpg'),\r\n toAbsoluteUrl('/media/bg/industryx/6.jpg'),\r\n\r\n ];\r\n\r\n var content = 'INDUSRTYX'\r\n if (window.location.hostname.toLowerCase() === 'e2eq.lk') {\r\n backgroundImages = [\r\n\r\n toAbsoluteUrl('/media/bg/e2eq/1.jpg'),\r\n toAbsoluteUrl('/media/bg/e2eq/2.jpg'),\r\n toAbsoluteUrl('/media/bg/e2eq/3.jpg'),\r\n toAbsoluteUrl('/media/bg/e2eq/4.jpg'),\r\n toAbsoluteUrl('/media/bg/e2eq/5.jpg'),\r\n toAbsoluteUrl('/media/bg/e2eq/6.jpg'),\r\n\r\n ];\r\n }\r\n if (window.location.hostname.toLowerCase() === 'portal.smartgas.biz') {\r\n backgroundImages = [\r\n\r\n toAbsoluteUrl('/media/bg/smartgas/1.jpg'),\r\n toAbsoluteUrl('/media/bg/smartgas/2.jpg'),\r\n toAbsoluteUrl('/media/bg/smartgas/3.jpg'),\r\n toAbsoluteUrl('/media/bg/smartgas/4.jpg'),\r\n toAbsoluteUrl('/media/bg/smartgas/5.jpg'),\r\n toAbsoluteUrl('/media/bg/smartgas/6.jpg'),\r\n\r\n ];\r\n }\r\n // Generate a random index to select a background image from the array\r\n const randomIndex = Math.floor(Math.random() * backgroundImages.length);\r\n\r\n // Set the selected background image URL\r\n setBackgroundImage(backgroundImages[randomIndex]);\r\n }, []);\r\n\r\n return (\r\n\r\n
\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Form */}\r\n
\r\n {/* begin::Wrapper */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/* end::Wrapper */}\r\n
\r\n {/* end::Form */}\r\n\r\n {/* begin::Footer */}\r\n
\r\n {/* begin::Links */}\r\n
\r\n\r\n\r\n
\r\n {new Date().getFullYear()} © \r\n \r\n \r\n
\r\n\r\n
\r\n {/* end::Links */}\r\n
\r\n {/* end::Footer */}\r\n
\r\n {/* end::Body */}\r\n\r\n {/* begin::Aside */}\r\n \r\n {/* begin::Content */}\r\n\r\n {/* end::Content */}\r\n
\r\n {/* end::Aside */}\r\n
\r\n )\r\n}\r\n\r\n","import {toAbsoluteUrl} from '../../../../_metronic/helpers'\r\nimport {UserModel} from '../models/UserModel'\r\n\r\nexport class UsersTableMock {\r\n public static table: Array = [\r\n {\r\n id: 1,\r\n username: 'admin',\r\n password: 'demo',\r\n email: 'admin@demo.com',\r\n auth: {\r\n accessToken: 'access-token-8f3ae836da744329a6f93bf20594b5cc',\r\n refreshToken: 'access-token-f8c137a2c98743f48b643e71161d90aa',\r\n },\r\n roles: [1], // Administrator\r\n pic: toAbsoluteUrl('/media/avatars/150-2.jpg'),\r\n fullname: 'Sean S',\r\n firstname: 'Sean',\r\n lastname: 'Stark',\r\n occupation: 'CEO',\r\n companyName: 'Keenthemes',\r\n phone: '456669067890',\r\n language: 'en',\r\n timeZone: 'International Date Line West',\r\n website: 'https://keenthemes.com',\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutStartOnPartnerProductsAndOtherServices: true,\r\n tipsOnStartBusinessProducts: true,\r\n },\r\n },\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n address: {\r\n addressLine: 'L-12-20 Vertex, Cybersquare',\r\n city: 'San Francisco',\r\n state: 'California',\r\n postCode: '45000',\r\n },\r\n socialNetworks: {\r\n linkedIn: 'https://linkedin.com/admin',\r\n facebook: 'https://facebook.com/admin',\r\n twitter: 'https://twitter.com/admin',\r\n instagram: 'https://instagram.com/admin',\r\n },\r\n },\r\n {\r\n id: 2,\r\n username: 'user',\r\n password: 'demo',\r\n email: 'user@demo.com',\r\n auth: {\r\n accessToken: 'access-token-6829bba69dd3421d8762-991e9e806dbf',\r\n refreshToken: 'access-token-f8e4c61a318e4d618b6c199ef96b9e55',\r\n },\r\n roles: [2], // Manager\r\n pic: toAbsoluteUrl('/media/avatars/150-1.jpg'),\r\n fullname: 'Megan F',\r\n firstname: 'Megan',\r\n lastname: 'Fox',\r\n occupation: 'Deputy Head of Keenthemes in New York office',\r\n companyName: 'Keenthemes',\r\n phone: '456669067891',\r\n language: 'en',\r\n timeZone: 'International Date Line West',\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutStartOnPartnerProductsAndOtherServices: true,\r\n tipsOnStartBusinessProducts: true,\r\n },\r\n },\r\n address: {\r\n addressLine: '3487 Ingram Road',\r\n city: 'Greensboro',\r\n state: 'North Carolina',\r\n postCode: '27409',\r\n },\r\n socialNetworks: {\r\n linkedIn: 'https://linkedin.com/user',\r\n facebook: 'https://facebook.com/user',\r\n twitter: 'https://twitter.com/user',\r\n instagram: 'https://instagram.com/user',\r\n },\r\n },\r\n {\r\n id: 3,\r\n username: 'guest',\r\n password: 'demo',\r\n email: 'guest@demo.com',\r\n auth: {\r\n accessToken: 'access-token-d2dff7b82f784de584b60964abbe45b9',\r\n refreshToken: 'access-token-c999ccfe74aa40d0aa1a64c5e620c1a5',\r\n },\r\n roles: [3], // Guest\r\n pic: toAbsoluteUrl('/media/avatars/150-5.jpg'),\r\n fullname: 'Manu G',\r\n firstname: 'Manu',\r\n lastname: 'Ginobili',\r\n occupation: 'CFO',\r\n companyName: 'Keenthemes',\r\n phone: '456669067892',\r\n language: 'en',\r\n timeZone: 'International Date Line West',\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false,\r\n },\r\n emailSettings: {\r\n emailNotification: true,\r\n sendCopyToPersonalEmail: false,\r\n activityRelatesEmail: {\r\n youHaveNewNotifications: false,\r\n youAreSentADirectMessage: false,\r\n someoneAddsYouAsAsAConnection: true,\r\n uponNewOrder: false,\r\n newMembershipApproval: false,\r\n memberRegistration: true,\r\n },\r\n updatesFromKeenthemes: {\r\n newsAboutKeenthemesProductsAndFeatureUpdates: false,\r\n tipsOnGettingMoreOutOfKeen: false,\r\n thingsYouMissedSindeYouLastLoggedIntoKeen: true,\r\n newsAboutStartOnPartnerProductsAndOtherServices: true,\r\n tipsOnStartBusinessProducts: true,\r\n },\r\n },\r\n address: {\r\n addressLine: '1467 Griffin Street',\r\n city: 'Phoenix',\r\n state: 'Arizona',\r\n postCode: '85012',\r\n },\r\n socialNetworks: {\r\n linkedIn: 'https://linkedin.com/guest',\r\n facebook: 'https://facebook.com/guest',\r\n twitter: 'https://twitter.com/guest',\r\n instagram: 'https://instagram.com/guest',\r\n },\r\n },\r\n ]\r\n}\r\n","import React, {useEffect} from 'react'\r\nimport {useDispatch} from 'react-redux'\r\nimport {Redirect, Switch} from 'react-router-dom'\r\nimport * as auth from './redux/AuthRedux'\r\n\r\nexport function Logout() {\r\n const dispatch = useDispatch()\r\n useEffect(() => {\r\n dispatch(auth.actions.logout())\r\n document.location.reload()\r\n }, [dispatch])\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import {FC, useRef, useEffect, useState} from 'react'\r\nimport {shallowEqual, useSelector, connect, useDispatch, ConnectedProps} from 'react-redux'\r\nimport {LayoutSplashScreen} from '../../../../_metronic/layout/core'\r\nimport * as auth from './AuthRedux'\r\nimport {getUserByToken} from './AuthCRUD'\r\nimport {RootState} from '../../../../setup'\r\n\r\nconst mapState = (state: RootState) => ({auth: state.auth})\r\nconst connector = connect(mapState, auth.actions)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\nconst AuthInit: FC = (props) => {\r\n const didRequest = useRef(false)\r\n const dispatch = useDispatch()\r\n const [showSplashScreen, setShowSplashScreen] = useState(true)\r\n const accessToken = useSelector(({auth}) => auth.accessToken, shallowEqual)\r\n\r\n // We should request user by authToken before rendering the application\r\n useEffect(() => {\r\n const requestUser = async () => {\r\n try {\r\n\t\tconsole.log(\"bbb\");\r\n if (!didRequest.current) {\r\n const {data: user} = await getUserByToken()\r\n dispatch(props.fulfillUser(user))\r\n }\r\n } catch (error) {\r\n console.error(error)\r\n if (!didRequest.current) {\r\n dispatch(props.logout())\r\n }\r\n } finally {\r\n setShowSplashScreen(false)\r\n }\r\n\r\n return () => (didRequest.current = true)\r\n }\r\n\r\n if (accessToken) {\r\n requestUser()\r\n } else {\r\n dispatch(props.logout())\r\n setShowSplashScreen(false)\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n return showSplashScreen ? : <>{props.children}\r\n}\r\n\r\nexport default connector(AuthInit)\r\n","import {all} from 'redux-saga/effects'\r\nimport {combineReducers} from 'redux'\r\n\r\nimport * as auth from '../../app/modules/auth'\r\n\r\nexport const rootReducer = combineReducers({\r\n auth: auth.reducer,\r\n})\r\n\r\nexport type RootState = ReturnType\r\n\r\nexport function* rootSaga() {\r\n yield all([auth.saga()])\r\n}\r\n","import {configureStore, getDefaultMiddleware} from '@reduxjs/toolkit'\r\nimport createSagaMiddleware from 'redux-saga'\r\nimport {reduxBatch} from '@manaflair/redux-batch'\r\nimport {persistStore} from 'redux-persist'\r\nimport {rootReducer, rootSaga} from './RootReducer'\r\n\r\nconst sagaMiddleware = createSagaMiddleware()\r\nconst middleware = [\r\n ...getDefaultMiddleware({\r\n immutableCheck: false,\r\n serializableCheck: false,\r\n thunk: true,\r\n }),\r\n sagaMiddleware,\r\n]\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n middleware,\r\n devTools: process.env.NODE_ENV !== 'production',\r\n enhancers: [reduxBatch],\r\n})\r\n\r\nexport type AppDispatch = typeof store.dispatch\r\n\r\n/**\r\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\r\n * @see https://github.com/rt2zz/redux-persist#persistor-object\r\n */\r\nexport const persistor = persistStore(store)\r\n\r\nsagaMiddleware.run(rootSaga)\r\n\r\nexport default store\r\n","const loadState = () => {\r\n try {\r\n const serializedState = localStorage.getItem('state')\r\n if (serializedState === null) {\r\n return {\r\n user: null,\r\n token: null,\r\n isLogged: false,\r\n }\r\n }\r\n return JSON.parse(serializedState)\r\n } catch (e) {\r\n return undefined\r\n }\r\n}\r\n\r\nconst saveState = (state) => {\r\n try {\r\n const serializedState = JSON.stringify(state)\r\n localStorage.setItem('state', serializedState)\r\n } catch (e) {\r\n // Ignore write errors;\r\n }\r\n}\r\n\r\nexport const initialState = loadState()\r\n\r\nconst reducer = (state, action) => {\r\n console.log(action)\r\n\r\n switch (action.type) {\r\n case 'SET_USER':\r\n return {\r\n ...state,\r\n user: action.user,\r\n }\r\n case 'SET_TOKEN':\r\n saveState({\r\n ...state,\r\n token: action.token,\r\n })\r\n return {\r\n ...state,\r\n token: action.token,\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import React, {FC, createContext, useContext} from 'react'\r\n\r\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || 'i18nConfig'\r\n\r\ntype Props = {\r\n selectedLang: 'de' | 'en' | 'es' | 'fr' | 'ja' | 'zh'\r\n}\r\nconst initialState: Props = {\r\n selectedLang: 'en',\r\n}\r\n\r\nfunction getConfig(): Props {\r\n const ls = localStorage.getItem(I18N_CONFIG_KEY)\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls) as Props\r\n } catch (er) {\r\n console.error(er)\r\n }\r\n }\r\n return initialState\r\n}\r\n\r\n// Side effect\r\nexport function setLanguage(lang: string) {\r\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({selectedLang: lang}))\r\n window.location.reload()\r\n}\r\n\r\nconst I18nContext = createContext(initialState)\r\n\r\nconst useLang = () => {\r\n return useContext(I18nContext).selectedLang\r\n}\r\n\r\nconst MetronicI18nProvider: FC = ({children}) => {\r\n const lang = getConfig()\r\n return {children}\r\n}\r\n\r\nexport {MetronicI18nProvider, useLang}\r\n","import {FC} from 'react'\r\nimport {useLang} from './Metronici18n'\r\nimport {IntlProvider} from 'react-intl'\r\nimport '@formatjs/intl-relativetimeformat/polyfill'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/en'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/de'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/es'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/fr'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/ja'\r\nimport '@formatjs/intl-relativetimeformat/locale-data/zh'\r\n\r\nimport deMessages from './messages/de.json'\r\nimport enMessages from './messages/en.json'\r\nimport esMessages from './messages/es.json'\r\nimport frMessages from './messages/fr.json'\r\nimport jaMessages from './messages/ja.json'\r\nimport zhMessages from './messages/zh.json'\r\n\r\nconst allMessages = {\r\n de: deMessages,\r\n en: enMessages,\r\n es: esMessages,\r\n fr: frMessages,\r\n ja: jaMessages,\r\n zh: zhMessages,\r\n}\r\n\r\nconst I18nProvider: FC = ({children}) => {\r\n const locale = useLang()\r\n const messages = allMessages[locale]\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport {I18nProvider}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport clsx from 'clsx'\r\nimport React, { FC } from 'react'\r\nimport { KTSVG } from '../../../helpers'\r\nimport { useLayout } from '../../core'\r\nimport { usePageData } from '../../core/PageData'\r\nimport { DefaultTitle } from '../header/page-title/DefaultTitle'\r\n\r\nconst Toolbar1: FC = () => {\r\n const { pageTitle, pageDescription, pageBreadcrumbs, pageCode } = usePageData()\r\n const { classes } = useLayout()\r\n\r\n return (\r\n
\r\n {/* begin::Container */}\r\n \r\n \r\n\r\n {/* begin::Actions */}\r\n
\r\n {/* begin::Wrapper */}\r\n
\r\n {/* begin::Menu */}\r\n {/* \r\n \r\n Filter\r\n \r\n\r\n end::Menu */}\r\n
\r\n {/* end::Wrapper */}\r\n\r\n {/* begin::Button */}\r\n {(pageCode != '') &&\r\n \r\n View Layout\r\n }\r\n {/* end::Button */}\r\n
\r\n {/* end::Actions */}\r\n
\r\n {/* end::Container */}\r\n \r\n )\r\n}\r\n\r\nexport { Toolbar1 }\r\n","import React from 'react'\r\nimport {useLayout} from '../../core/LayoutProvider'\r\nimport {Toolbar1} from './Toolbar1'\r\n\r\nconst Toolbar = () => {\r\n const {config} = useLayout()\r\n\r\n switch (config.toolbar.layout) {\r\n case 'toolbar1':\r\n return \r\n\r\n default:\r\n return \r\n }\r\n}\r\n\r\nexport {Toolbar}\r\n","import React, {useEffect, useRef} from 'react'\r\nimport {useLocation} from 'react-router-dom'\r\nimport {\r\n // ScrollComponent,\r\n ScrollTopComponent,\r\n MenuComponent,\r\n DrawerComponent,\r\n ToggleComponent,\r\n StickyComponent,\r\n} from '../../assets/ts/components'\r\nimport {KTSVG} from '../../helpers'\r\n\r\nexport function ScrollTop() {\r\n const {pathname} = useLocation()\r\n const isFirstRun = useRef(true)\r\n\r\n const pluginsReinitialization = () => {\r\n setTimeout(() => {\r\n // ScrollTopComponent.reinitialization()\r\n MenuComponent.reinitialization()\r\n StickyComponent.reInitialization()\r\n setTimeout(() => {\r\n ToggleComponent.reinitialization()\r\n DrawerComponent.reinitialization()\r\n // ScrollComponent.reinitialization()\r\n }, 70)\r\n }, 140)\r\n }\r\n\r\n const scrollTop = () => {\r\n ScrollTopComponent.goTop()\r\n }\r\n\r\n const updateHeaderSticky = () => {\r\n const stickyHeader = document.body.querySelectorAll(`[data-kt-sticky-name=\"header\"]`)\r\n if (stickyHeader && stickyHeader.length > 0) {\r\n const sticky = StickyComponent.getInstance(stickyHeader[0] as HTMLElement)\r\n if (sticky) {\r\n sticky.update()\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (isFirstRun.current) {\r\n isFirstRun.current = false\r\n } else {\r\n pluginsReinitialization()\r\n }\r\n\r\n updateHeaderSticky()\r\n setTimeout(() => {\r\n scrollTop()\r\n }, 0)\r\n }, [pathname])\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n","import {useEffect, useRef} from 'react'\r\nimport {\r\n MenuComponent,\r\n DrawerComponent,\r\n ScrollComponent,\r\n ScrollTopComponent,\r\n StickyComponent,\r\n ToggleComponent,\r\n} from '../assets/ts/components'\r\n\r\nimport {useLayout} from './core'\r\n\r\nexport function MasterInit() {\r\n const {config} = useLayout()\r\n const isFirstRun = useRef(true)\r\n const pluginsInitialization = () => {\r\n isFirstRun.current = false\r\n setTimeout(() => {\r\n ToggleComponent.bootstrap()\r\n ScrollTopComponent.bootstrap()\r\n DrawerComponent.bootstrap()\r\n StickyComponent.bootstrap()\r\n MenuComponent.bootstrap()\r\n ScrollComponent.bootstrap()\r\n }, 200)\r\n }\r\n\r\n useEffect(() => {\r\n if (isFirstRun.current) {\r\n isFirstRun.current = false\r\n pluginsInitialization()\r\n }\r\n }, [config])\r\n\r\n return <>\r\n}\r\n","import React from 'react'\r\nimport { AsideDefault } from './components/aside/AsideDefault'\r\nimport { Footer } from './components/Footer'\r\nimport { HeaderWrapper } from './components/header/HeaderWrapper'\r\nimport { Toolbar } from './components/toolbar/Toolbar'\r\nimport { ScrollTop } from './components/ScrollTop'\r\nimport { Content } from './components/Content'\r\nimport { MasterInit } from './MasterInit'\r\nimport { PageDataProvider } from './core'\r\nimport {\r\n DrawerMessenger,\r\n ExploreMain,\r\n ActivityDrawer,\r\n Main,\r\n InviteUsers,\r\n UpgradePlan,\r\n} from '../partials'\r\nimport { DefaultTitle } from './components/header/page-title/DefaultTitle'\r\nimport { MenuInnerWithSub } from './components/header/MenuInnerWithSub'\r\n\r\n\r\nconst MasterLayout: React.FC = ({ children }) => {\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 {children}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n {/*\r\n\r\n \r\n \r\n \r\n\r\n\r\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 { MasterLayout }\r\n","export const axioDefaultConfig = {\r\n method: 'get',\r\n url: 'https://localhost:44321/api/contractors',\r\n data: {},\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n validateStatus: function (status) {\r\n return status >= 200 && status < 400 // default\r\n },\r\n}\r\n \r\nexport const validcoderegex = /^[a-z0-9]{1,15}$/;\r\nexport const vehicleRegex = /^([0-9]{1,3}|[A-Z]{1,3})-[0-9]{1,4}$/\r\n\r\nexport const options = {\r\n position: 'top-right',\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n // and so on ...\r\n}\r\n","import React, {useState, useEffect, useRef} from 'react'\r\nimport {PageLink, PageTitle} from '../../../_metronic/layout/core'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../_metronic/helpers'\r\nimport {useTable, useFilters, useGlobalFilter, usePagination, useAsyncDebounce} from 'react-table'\r\nimport axios from 'axios'\r\nimport ErrorMessage from '../helpers/message'\r\nimport Loading from '../helpers/loading'\r\nimport {axioDefaultConfig} from '../helpers/commonResource'\r\nimport {useDataLayerValue} from '../../../DataLayer'\r\n\r\nconst breadCrumb = [\r\n {\r\n title: 'Home',\r\n path: '/dashboard',\r\n isSeparator: false,\r\n isActive: false,\r\n },\r\n {\r\n title: '',\r\n path: '',\r\n isSeparator: true,\r\n isActive: false,\r\n },\r\n]\r\n\r\nlet data = []\r\nfunction GlobalFilter({preGlobalFilteredRows, globalFilter, setGlobalFilter}) {\r\n //const count = preGlobalFilteredRows.length\r\n const [value, setValue] = React.useState(globalFilter)\r\n\r\n const onChange = (value) => {\r\n setGlobalFilter(value)\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n {\r\n setValue(e.target.value)\r\n onChange(e.target.value)\r\n }}\r\n />\r\n
\r\n )\r\n}\r\n\r\nfunction TablesWidget10() {\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: ' ',\r\n columns: [\r\n {\r\n accessor: 'code',\r\n },\r\n {\r\n accessor: 'description',\r\n },\r\n {\r\n accessor: 'category',\r\n },\r\n {\r\n accessor: 'groupCode',\r\n },\r\n {\r\n accessor: 'pakages',\r\n },\r\n ],\r\n },\r\n ],\r\n []\r\n )\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageOptions,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n setPageSize,\r\n state: {pageIndex, pageSize, globalFilter},\r\n preGlobalFilteredRows,\r\n setGlobalFilter,\r\n } = useTable(\r\n {\r\n columns,\r\n data,\r\n initialState: {pageIndex: 0, pageSize: 20, globalFilter: ''},\r\n },\r\n useGlobalFilter,\r\n usePagination\r\n )\r\n const [error, setError] = useState({status: 'E', text: ''})\r\n const [InitialLoading, setInitialLoading] = useState(true)\r\n //const [{token, user}, dispatch] = useDataLayerValue()\r\n const [{user}, dispatch] = useDataLayerValue()\r\n function handleErros(error) {\r\n if (error?.response?.status === 401) {\r\n /* dispatch({\r\n type: 'SET_TOKEN',\r\n token: null,\r\n }) */\r\n return\r\n }\r\n\r\n if (error?.response?.data?.status === 'E') {\r\n setError(error?.response?.data)\r\n return\r\n }\r\n const message = Object.entries(error?.response?.data?.errors)\r\n .map(([key, value]) => value)\r\n .join(',')\r\n setError({status: 'E', text: message})\r\n }\r\n\r\n /// Loading\r\n useEffect(() => {\r\n console.log('asa')\r\n axios({\r\n ...axioDefaultConfig,\r\n method: 'get',\r\n url: process.env.REACT_APP_BACKEND_API + '/api/sensor-monitor/layouts',\r\n // headers: {...axioDefaultConfig.headers, Authorization: 'Bearer ' + token},\r\n })\r\n .then(function (response) {\r\n console.log('dd')\r\n setInitialLoading(false)\r\n if (response?.data?.status === 'S') {\r\n console.log(response?.data?.result)\r\n data = response?.data?.result\r\n setGlobalFilter('')\r\n }\r\n })\r\n .catch(function (error) {\r\n handleErros(error)\r\n })\r\n }, [])\r\n\r\n if (InitialLoading) return \r\n\r\n return (\r\n
\r\n {/* begin::Header */}\r\n
\r\n

\r\n All Layouts\r\n {data.length} Registered\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n {user.email === 'gevan@overleap.lk' && (\r\n \r\n \r\n New Layout\r\n \r\n )}\r\n
\r\n
\r\n {/* end::Header */}\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Table container */}\r\n
\r\n {/* begin::Table */}\r\n \r\n \r\n Code\r\n Description\r\n Category\r\n Group\r\n {/* {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n {column.render('Header')}\r\n ))}\r\n \r\n ))}*/}\r\n \r\n \r\n {page.length === 0 && (\r\n \r\n \r\n No Data Found!\r\n \r\n \r\n )}\r\n {page.map((row, i) => {\r\n prepareRow(row)\r\n return (\r\n \r\n {/* {row.cells.map((cell) => {\r\n return {cell.render('Cell')}\r\n })}*/}\r\n {row.values.code}\r\n {row.values.description}\r\n {row.values.category}\r\n {row.values.groupCode}\r\n \r\n
\r\n {(row.values.pakages === '' || row.values.pakages === null) && (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {row.values.pakages !== '' && row.values.pakages !== null && (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n {user.email === 'gevan@overleap.lk' && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n {/* \r\n Pagination can be built however you'd like. \r\n This is just a very basic UI implementation:\r\n */}\r\n \r\n
\r\n {/* end::Table container */}\r\n
\r\n {/* begin::Body */}\r\n \r\n )\r\n}\r\n\r\nfunction AllLayout() {\r\n return (\r\n <>\r\n All Layout(s)\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AllLayout\r\n","import React, {useState, useEffect, useRef} from 'react'\r\nimport {PageLink, PageTitle} from '../../../_metronic/layout/core'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../_metronic/helpers'\r\nimport {useTable, useFilters, useGlobalFilter, usePagination, useAsyncDebounce} from 'react-table'\r\nimport axios from 'axios'\r\nimport ErrorMessage from '../helpers/message'\r\nimport Loading from '../helpers/loading'\r\nimport {axioDefaultConfig} from '../helpers/commonResource'\r\nimport {useDataLayerValue} from '../../../DataLayer'\r\n\r\nconst breadCrumb = [\r\n {\r\n title: 'Home',\r\n path: '/dashboard',\r\n isSeparator: false,\r\n isActive: false,\r\n },\r\n {\r\n title: '',\r\n path: '',\r\n isSeparator: true,\r\n isActive: false,\r\n },\r\n]\r\n\r\nlet data = []\r\nfunction GlobalFilter({preGlobalFilteredRows, globalFilter, setGlobalFilter}) {\r\n //const count = preGlobalFilteredRows.length\r\n const [value, setValue] = React.useState(globalFilter)\r\n const [{token, user}, dispatch] = useDataLayerValue()\r\n\r\n const onChange = (value) => {\r\n setGlobalFilter(value)\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n {\r\n setValue(e.target.value)\r\n onChange(e.target.value)\r\n }}\r\n />\r\n
\r\n )\r\n}\r\n\r\nfunction TablesWidget10(props) {\r\n console.log(JSON.stringify(props))\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: ' ',\r\n columns: [\r\n {\r\n accessor: 'code',\r\n },\r\n {\r\n accessor: 'formatCode',\r\n },\r\n {\r\n accessor: 'description',\r\n },\r\n {\r\n accessor: 'createdOn',\r\n },\r\n {\r\n accessor: 'status',\r\n },\r\n {\r\n accessor: 'priority',\r\n },\r\n {\r\n accessor: 'fK_SectorCode',\r\n },\r\n {\r\n accessor: 'facilityName',\r\n },\r\n {\r\n accessor: 'remain',\r\n },\r\n ],\r\n },\r\n ],\r\n []\r\n )\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageOptions,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n setPageSize,\r\n state: {pageIndex, pageSize, globalFilter},\r\n preGlobalFilteredRows,\r\n setGlobalFilter,\r\n } = useTable(\r\n {\r\n columns,\r\n data,\r\n initialState: {pageIndex: 0, pageSize: 20, globalFilter: ''},\r\n },\r\n useGlobalFilter,\r\n usePagination\r\n )\r\n const [error, setError] = useState({status: 'E', text: ''})\r\n const [InitialLoading, setInitialLoading] = useState(true)\r\n const [{user, token}, dispatch] = useDataLayerValue()\r\n function handleErros(error) {\r\n if (error?.response?.status === 401) {\r\n dispatch({\r\n type: 'SET_TOKEN',\r\n token: null,\r\n })\r\n return\r\n }\r\n\r\n if (error?.response?.data?.status === 'E') {\r\n setError(error?.response?.data)\r\n return\r\n }\r\n const message = Object.entries(error?.response?.data?.errors)\r\n .map(([key, value]) => value)\r\n .join(',')\r\n setError({status: 'E', text: message})\r\n }\r\n\r\n /// Loading\r\n useEffect(() => {\r\n const sector = props.props.match?.params?.sector ?? ''\r\n axios({\r\n ...axioDefaultConfig,\r\n method: 'get',\r\n url:\r\n process.env.REACT_APP_BACKEND_API +\r\n '/api/get-alerts?facility=' +\r\n sector +\r\n '&code=' +\r\n user.facility,\r\n headers: {...axioDefaultConfig.headers, Authorization: 'Bearer ' + token},\r\n })\r\n .then(function (response) {\r\n setInitialLoading(false)\r\n data = response?.data?.data\r\n setGlobalFilter('')\r\n })\r\n .catch(function (error) {\r\n handleErros(error)\r\n })\r\n }, [])\r\n\r\n if (InitialLoading) return \r\n\r\n return (\r\n
\r\n {/* begin::Header */}\r\n
\r\n

\r\n All Alerts\r\n Alert Management\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* end::Header */}\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Table container */}\r\n
\r\n {/* begin::Table */}\r\n \r\n \r\n Ticket\r\n Description\r\n \r\n \r\n \r\n {page.length === 0 && (\r\n \r\n \r\n No Data Found!\r\n \r\n \r\n )}\r\n {page.map((row, i) => {\r\n prepareRow(row)\r\n return (\r\n \r\n {/* {row.cells.map((cell) => {\r\n return {cell.render('Cell')}\r\n })}*/}\r\n \r\n {{row.values.formatCode}}\r\n \r\n \r\n {row.values.description}{' '}\r\n \r\n {row.values.priority}\r\n \r\n {\r\n \r\n {row.values.facilityName}\r\n \r\n }\r\n
\r\n {row.values.createdOn}\r\n {row.values.status == 'Opened' && (\r\n \r\n {' '}\r\n OPENED ({row.values.remain})\r\n \r\n )}\r\n {row.values.status == 'Resolved' && (\r\n \r\n {' '}\r\n RESOLVED\r\n \r\n )}\r\n {row.values.status == 'Closed' && (\r\n \r\n {' '}\r\n CLOSED\r\n \r\n )}\r\n \r\n\r\n \r\n
\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n {/* \r\n Pagination can be built however you'd like. \r\n This is just a very basic UI implementation:\r\n */}\r\n \r\n
\r\n {/* end::Table container */}\r\n
\r\n {/* begin::Body */}\r\n \r\n )\r\n}\r\n\r\nfunction AllAlerts(props) {\r\n return (\r\n <>\r\n All Alerts(s)\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AllAlerts\r\n","import React from \"react\";\r\n//import ChromeDinoGame from 'react-chrome-dino';\r\n\r\nexport function Dashboard() {\r\n return
\r\n /* return
\r\n\r\n \r\n
*/\r\n}\r\n\r\n\r\nexport default Dashboard\r\n","import React, {useState, useEffect, useRef, PureComponent, Component} from 'react'\r\nimport {useQuill} from 'react-quilljs'\r\n// or const { useQuill } = require('react-quilljs');\r\nimport 'quill/dist/quill.snow.css' // Add css for snow theme\r\n\r\nfunction TagConfig(props) {\r\n const inputReference = useRef(null)\r\n const {quill, quillRef} = useQuill('#editor', {\r\n theme: 'snow',\r\n })\r\n\r\n React.useEffect(() => {\r\n if (quill) {\r\n quill.clipboard.dangerouslyPasteHTML(props?.item?.note ?? '')\r\n if (inputReference) {\r\n inputReference.current.focus()\r\n }\r\n\r\n quill.on('text-change', (delta, oldDelta, source) => {\r\n var hm = quill.root.innerHTML\r\n // console.log('Text change!');\r\n // console.log(quill.getText()); // Get text only\r\n //console.log(quill.getContents()); // Get delta contents\r\n // console.log(quill.root.innerHTML); // Get innerHTML using quill\r\n //console.log(quillRef.current.firstChild.innerHTML); // Get innerHTML using quillRef\r\n /* if (quill.root.innerHTML && quill.root.innerHTML.substr(quill.root.innerHTML.length - 11) == \"


\") {\r\n hm = quill.root.innerHTML.substr(0, quill.root.innerHTML.length - 11) + \"

\"\r\n }*/\r\n props.item.note = hm\r\n })\r\n }\r\n }, [quill])\r\n\r\n return (\r\n <>\r\n
\r\n \r\n Packet Name\r\n \r\n props.onkeyPress(e, props.index, 'OBJECT')}\r\n className='form-control form-control-solid '\r\n value={props.item.object}\r\n placeholder='Packet Name'\r\n type='text'\r\n />\r\n \r\n [Plant] / [Plant.PacketType] / [PacketType]\r\n \r\n

\r\n
\r\n
\r\n Tag/Field Name\r\n props.onkeyPress(e, props.index, 'NAME')}\r\n className='form-control form-control-solid '\r\n value={props.item.machineNo}\r\n placeholder='Tag Name'\r\n type='text'\r\n />\r\n \r\n view object browser\r\n \r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Display Text\r\n props.onkeyPress(e, props.index, 'DISPLAY_NAME')}\r\n className='form-control form-control-solid '\r\n value={props.item?.displayName}\r\n placeholder='Tag Name'\r\n type='text'\r\n />\r\n \r\n Type\r\n props.handleChange(e, props.index, 'TYPE')}\r\n className='form-control form-control-solid '\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n
\r\n
\r\n\r\n
\r\n

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n X coordinate\r\n props.onkeyPress(e, props.index, 'X')}\r\n className='form-control form-control-solid '\r\n value={props.item?.defaultPos?.x}\r\n placeholder='X'\r\n />\r\n \r\n Y coordinate\r\n props.onkeyPress(e, props.index, 'Y')}\r\n className='form-control form-control-solid '\r\n value={props.item?.defaultPos?.y}\r\n placeholder='Y'\r\n />\r\n
\r\n
\r\n
\r\n

\r\n [CODE - INITIAL]\r\n props.onkeyPress(e, props.index, 'INIT')}\r\n className='form-control form-control-solid '\r\n value={props.item.tempFeild1}\r\n placeholder='Intial'\r\n type='text'\r\n />\r\n \r\n View Documentation\r\n \r\n
\r\n
\r\n
\r\n

\r\n [Code - RUNTIME/Data Manipulation]\r\n props.onkeyPress(e, props.index, 'FORMULA')}\r\n className='form-control form-control-solid '\r\n value={props.item.formula}\r\n placeholder='Code here'\r\n type='text'\r\n />\r\n
\r\n \r\n View Documentation\r\n \r\n
\r\n
\r\n
\r\n {' '}\r\n Document/Instructions\r\n
\r\n
\r\n
\r\n {/* \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Send\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport {ChatInner}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {FC, useEffect, useRef, useState} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\nimport {Formik, Form, FormikValues, Field, ErrorMessage} from 'formik'\r\nimport * as Yup from 'yup'\r\nimport {StepperComponent} from '../../../assets/ts/components'\r\n\r\ninterface ICreateAccount {\r\n appName: string\r\n category: string\r\n framework: string\r\n dbName: string\r\n dbType: string\r\n nameOnCard: string\r\n cardNumber: string\r\n cardExpiryMonth: string\r\n cardExpiryYear: string\r\n cardCvv: string\r\n saveCard: string\r\n}\r\n\r\nconst inits: ICreateAccount = {\r\n appName: '',\r\n category: '1',\r\n framework: '1',\r\n dbName: '',\r\n dbType: '1',\r\n nameOnCard: 'Max Doe',\r\n cardNumber: '4111 1111 1111 1111',\r\n cardExpiryMonth: '1',\r\n cardExpiryYear: '2025',\r\n cardCvv: '123',\r\n saveCard: '1',\r\n}\r\n\r\nconst createAppSchema = [\r\n Yup.object({\r\n appName: Yup.string().required().label('App name'),\r\n category: Yup.string().required().label('Category'),\r\n }),\r\n Yup.object({\r\n framework: Yup.string().required().label('Framework'),\r\n }),\r\n Yup.object({\r\n dbName: Yup.string().required().label('Database name'),\r\n dbType: Yup.string().required().label('Database engine'),\r\n }),\r\n Yup.object({\r\n nameOnCard: Yup.string().required().label('Name'),\r\n cardNumber: Yup.string().required().label('Card Number'),\r\n cardExpiryMonth: Yup.string().required().label('Expiration Month'),\r\n cardExpiryYear: Yup.string().required().label('Expiration Year'),\r\n cardCvv: Yup.string().required().label('CVV'),\r\n }),\r\n]\r\n\r\nconst Main: FC = () => {\r\n const stepperRef = useRef(null)\r\n const stepper = useRef(null)\r\n const [currentSchema, setCurrentSchema] = useState(createAppSchema[0])\r\n const [initValues] = useState(inits)\r\n\r\n const loadStepper = () => {\r\n stepper.current = StepperComponent.createInsance(stepperRef.current as HTMLDivElement)\r\n }\r\n\r\n const prevStep = () => {\r\n if (!stepper.current) {\r\n return\r\n }\r\n\r\n stepper.current.goPrev()\r\n\r\n setCurrentSchema(createAppSchema[stepper.current.currentStepIndex - 1])\r\n }\r\n\r\n const submitStep = (values: ICreateAccount, actions: FormikValues) => {\r\n if (!stepper.current) {\r\n return\r\n }\r\n\r\n setCurrentSchema(createAppSchema[stepper.current.currentStepIndex])\r\n\r\n if (stepper.current.currentStepIndex !== stepper.current.totatStepsNumber) {\r\n stepper.current.goNext()\r\n } else {\r\n stepper.current.goto(1)\r\n actions.resetForm()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!stepperRef.current) {\r\n return\r\n }\r\n\r\n loadStepper()\r\n }, [stepperRef])\r\n\r\n return (\r\n \r\n \r\n )\r\n}\r\n\r\nexport {Main}\r\n","import React, { useEffect } from 'react'\r\nimport { useLocation } from 'react-router'\r\nimport clsx from 'clsx'\r\nimport { useLayout } from '../core'\r\nimport { DrawerComponent } from '../../assets/ts/components'\r\nimport { DefaultTitle } from './header/page-title/DefaultTitle'\r\n\r\nconst Content: React.FC = ({ children }) => {\r\n const { classes } = useLayout()\r\n const location = useLocation()\r\n useEffect(() => {\r\n DrawerComponent.hideAll()\r\n }, [location])\r\n\r\n return (\r\n
\r\n {/*\r\n
\r\n \r\n
\r\n */}\r\n {children}\r\n
\r\n )\r\n}\r\n\r\nexport { Content }\r\n","import {\r\n IAside,\r\n IContent,\r\n IFooter,\r\n IHeader,\r\n IToolbar,\r\n ILayout,\r\n ILayoutCSSClasses,\r\n ILayoutHTMLAttributes,\r\n ILayoutCSSVariables,\r\n IPageTitle,\r\n} from './LayoutModels'\r\nimport {DefaultLayoutConfig} from './DefaultLayoutConfig'\r\n\r\nconst LAYOUT_CONFIG_KEY = process.env.REACT_APP_BASE_LAYOUT_CONFIG_KEY || 'LayoutConfig'\r\n\r\nexport function getLayout(): ILayout {\r\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY)\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls) as ILayout\r\n } catch (er) {\r\n console.error(er)\r\n }\r\n }\r\n return DefaultLayoutConfig\r\n}\r\n\r\nfunction setLayout(config: ILayout): void {\r\n try {\r\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config))\r\n } catch (er) {\r\n console.error(er)\r\n }\r\n}\r\n\r\nexport function getEmptyCssClasses() {\r\n return {\r\n header: [],\r\n headerContainer: [],\r\n headerMobile: [],\r\n headerMenu: [],\r\n aside: [],\r\n asideMenu: [],\r\n asideToggle: [],\r\n toolbar: [],\r\n toolbarContainer: [],\r\n content: [],\r\n contentContainer: [],\r\n footerContainer: [],\r\n sidebar: [],\r\n pageTitle: [],\r\n }\r\n}\r\n\r\nexport function getEmptyHTMLAttributes() {\r\n return {\r\n asideMenu: new Map(),\r\n headerMobile: new Map(),\r\n headerMenu: new Map(),\r\n headerContainer: new Map(),\r\n pageTitle: new Map(),\r\n }\r\n}\r\n\r\nexport function getEmptyCSSVariables() {\r\n return {\r\n body: new Map(),\r\n }\r\n}\r\n\r\nexport class LayoutSetup {\r\n public static isLoaded: boolean = false\r\n public static config: ILayout = getLayout()\r\n public static classes: ILayoutCSSClasses = getEmptyCssClasses()\r\n public static attributes: ILayoutHTMLAttributes = getEmptyHTMLAttributes()\r\n public static cssVariables: ILayoutCSSVariables = getEmptyCSSVariables()\r\n\r\n private static initCSSClasses(): void {\r\n LayoutSetup.classes = getEmptyCssClasses()\r\n }\r\n\r\n private static initHTMLAttributes(): void {\r\n LayoutSetup.attributes = Object.assign({}, getEmptyHTMLAttributes())\r\n }\r\n\r\n private static initCSSVariables(): void {\r\n LayoutSetup.cssVariables = getEmptyCSSVariables()\r\n }\r\n\r\n private static initLayout(config: ILayout): void {\r\n Array.from(document.body.attributes).forEach((attr) => {\r\n document.body.removeAttribute(attr.name)\r\n })\r\n document.body.setAttribute('style', '')\r\n document.body.setAttribute('id', 'kt_body')\r\n if (config.main?.body?.backgroundImage) {\r\n document.body.style.backgroundImage = `url('${config.main.body.backgroundImage}')`\r\n }\r\n\r\n if (config.main?.body?.class) {\r\n document.body.classList.add(config.main.body.class)\r\n }\r\n\r\n // if (config.loader.display) {\r\n // document.body.classList.add('page-loading')\r\n // document.body.classList.add('page-loading-enabled')\r\n // }\r\n }\r\n\r\n private static initHeader(config: IHeader): void {\r\n LayoutSetup.classes.headerContainer.push(\r\n config.width === 'fluid' ? 'container-fluid' : 'container'\r\n )\r\n\r\n if (config.fixed.desktop) {\r\n document.body.classList.add('header-fixed')\r\n }\r\n\r\n if (config.fixed.tabletAndMobile) {\r\n document.body.classList.add('header-tablet-and-mobile-fixed')\r\n }\r\n }\r\n\r\n private static initToolbar(config: IToolbar): void {\r\n if (!config.display) {\r\n return\r\n }\r\n\r\n document.body.classList.add('toolbar-enabled')\r\n LayoutSetup.classes.toolbarContainer.push(\r\n config.width === 'fluid' ? 'container-fluid' : 'container'\r\n )\r\n\r\n if (config.fixed.desktop) {\r\n document.body.classList.add('toolbar-fixed')\r\n }\r\n\r\n if (config.fixed.tabletAndMobileMode) {\r\n document.body.classList.add('toolbar-tablet-and-mobile-fixed')\r\n }\r\n\r\n // Height setup\r\n const type = config.layout\r\n const typeOptions = config.layouts[type]\r\n if (typeOptions) {\r\n let bodyStyles: string = ''\r\n if (typeOptions.height) {\r\n bodyStyles += ` --kt-toolbar-height: ${typeOptions.height};`\r\n }\r\n\r\n if (typeOptions.heightAndTabletMobileMode) {\r\n bodyStyles += ` --kt-toolbar-height-tablet-and-mobile: ${typeOptions.heightAndTabletMobileMode};`\r\n }\r\n document.body.setAttribute('style', bodyStyles)\r\n }\r\n }\r\n\r\n private static initPageTitle(config: IPageTitle): void {\r\n if (!config.display) {\r\n return\r\n }\r\n\r\n if (config.direction === 'column') {\r\n this.classes.pageTitle.push('flex-column')\r\n this.classes.pageTitle.push('align-items-start')\r\n } else {\r\n this.classes.pageTitle.push('align-items-center')\r\n this.classes.pageTitle.push('flex-wrap')\r\n }\r\n this.classes.pageTitle.push('me-3')\r\n\r\n if (config.responsive) {\r\n this.classes.pageTitle.push('mb-5')\r\n this.classes.pageTitle.push('mb-lg-0')\r\n\r\n LayoutSetup.attributes.pageTitle.set('data-kt-swapper', true)\r\n LayoutSetup.attributes.pageTitle.set('data-kt-swapper-mode', 'prepend')\r\n LayoutSetup.attributes.pageTitle.set(\r\n 'data-kt-swapper-parent',\r\n `{ default: '#kt_content_container', '${config.responsiveBreakpoint}': '${config.responsiveTarget}'}`\r\n )\r\n }\r\n }\r\n\r\n private static initContent(config: IContent): void {\r\n LayoutSetup.classes.contentContainer.push(\r\n config.width === 'fluid' ? 'container-fluid' : 'container'\r\n )\r\n // if (Theme::getOption('layout', 'content/container-class')) {\r\n // \tTheme::addHtmlClass('content-container', Theme::getOption('layout', 'content/container-class'));\r\n // }\r\n }\r\n\r\n private static initAside(config: IAside): void {\r\n // Check if aside is displayed\r\n if (!config.display) {\r\n return\r\n }\r\n\r\n // Enable Aside\r\n document.body.classList.add('aside-enabled')\r\n LayoutSetup.classes.aside.push(`aside-${config.theme}`)\r\n\r\n // Fixed Aside\r\n if (config.fixed) {\r\n document.body.classList.add('aside-fixed')\r\n }\r\n\r\n // Default minimized\r\n if (config.minimized) {\r\n document.body.setAttribute('data-kt-aside-minimize', 'on')\r\n }\r\n\r\n // Hoverable on minimize\r\n if (config.hoverable) {\r\n LayoutSetup.classes.aside.push('aside-hoverable')\r\n }\r\n }\r\n\r\n private static initAsideMenu(config: IAside): void {\r\n // if (Theme::getOption('layout', 'aside/menu') === 'documentation') {\r\n // \tself::$menu = new Menu( Theme::getOption('menu', 'documentation'), Theme::getPagePath() );\r\n // } else {\r\n // \tself::$menu = new Menu( Theme::getOption('menu', 'main'), Theme::getPagePath() );\r\n // }\r\n // if (Theme::getOption('layout', 'aside/menu-icons-display') === false) {\r\n // \tself::$menu->displayIcons(false);\r\n // }\r\n // self::$menu->setIconType(Theme::getOption('layout', 'aside/menu-icon'));\r\n }\r\n\r\n // private static initSidebar(sidebarConfig: ISidebarConfig): void {\r\n // // / Set Sidebar enabled class\r\n // if (sidebarConfig.display) {\r\n // document.body.classList.add('sidebar-enabled')\r\n // } else {\r\n // return\r\n // }\r\n\r\n // // Set Sidebar shown status\r\n // if (sidebarConfig.shown) {\r\n // document.body.setAttribute('data-sidebar', 'on')\r\n // }\r\n\r\n // // Set Sidebar background color class\r\n // ThemeSetup.classes.sidebar.push(sidebarConfig.bgColor)\r\n // }\r\n\r\n private static initFooter(config: IFooter): void {\r\n LayoutSetup.classes.footerContainer.push(`container${config.width === 'fluid' ? '-fluid' : ''}`)\r\n }\r\n\r\n private static initConfig(config: ILayout): void {\r\n if (config.main?.darkSkinEnabled) {\r\n document.body.classList.add('dark-skin')\r\n }\r\n\r\n // Init layout\r\n LayoutSetup.initLayout(config)\r\n if (config.main?.type !== 'default') {\r\n return\r\n }\r\n\r\n LayoutSetup.initHeader(config.header)\r\n LayoutSetup.initPageTitle(config.pageTitle as IPageTitle)\r\n LayoutSetup.initToolbar(config.toolbar)\r\n LayoutSetup.initContent(config.content)\r\n LayoutSetup.initAside(config.aside)\r\n LayoutSetup.initFooter(config.footer)\r\n LayoutSetup.initAsideMenu(config.aside)\r\n }\r\n\r\n public static updatePartialConfig(fieldsToUpdate: Partial): ILayout {\r\n const config = LayoutSetup.config\r\n const updatedConfig = {...config, ...fieldsToUpdate}\r\n LayoutSetup.initCSSClasses()\r\n LayoutSetup.initCSSVariables()\r\n LayoutSetup.initHTMLAttributes()\r\n LayoutSetup.isLoaded = false\r\n LayoutSetup.config = updatedConfig\r\n LayoutSetup.initConfig(Object.assign({}, updatedConfig))\r\n LayoutSetup.isLoaded = true // remove loading there\r\n return updatedConfig\r\n }\r\n\r\n public static setConfig(config: ILayout): void {\r\n setLayout(config)\r\n }\r\n\r\n public static bootstrap = (() => {\r\n LayoutSetup.updatePartialConfig(LayoutSetup.config)\r\n })()\r\n}\r\n"],"sourceRoot":""}