{"version":3,"sources":["app/ui/helpers/loading.jsx","_metronic/layout/components/header/Topbar.tsx","_metronic/layout/components/header/HeaderWrapper.tsx","app/ui/helpers/message.jsx","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/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","_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/Test.jsx","app/ui/sensor/config/my_great_place_styles.js","app/ui/sensor/config/my_great_place.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/helpers/WindowDimension.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","_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","app/ui/common/commonResource2.jsx","_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","Topbar","config","useLayout","useDataLayerValue","user","clsx","id","fontSize","firstName","header","left","title","path","HeaderWrapper","pathname","useLocation","classes","attributes","aside","useEffect","MenuComponent","reinitialization","content","window","location","hostname","toLowerCase","join","headerMenu","headerContainer","display","to","alt","src","toAbsoluteUrl","width","DefaultTitle","ErrorMessage","props","error","text","status","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","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","token","dispatch","isChartLoading","setChartLoading","DeviceType","setDeviceType","InitialLoading2","setInitialLoading2","setdata","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","borderWidth","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","axioDefaultConfig","Authorization","_labels","_data","list","currrent","date","normalRange","warningRange","criticalRange","disableRange","dispalyName","timeonchange","pakages","countdownInterval","prevCountdown","clearInterval","unitModels","automationChannel","statusColorClass","class","ElementStyleUtil","property","important","attributeName","getPropertyValue","attibuteName","removeProperty","DataUtil","instance","instanceData","store","get","set","newMap","delete","has","val","v","k","getObjectPropertyValueByKey","hasOwnProperty","getUniqueIdWithPrefix","prefix","floor","random","getTime","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","scrollTop","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","this","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","substring","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","fontWeight","offsetY","formatter","track","background","colors","lineCap","MixedWidget10","extra","Name","MixedWidget49","objList","imei","filter","FieldName","BAT_VOL","GAS_METER","F_DATETIME","CSQ","TANK_SIZE","pr","colurx","boxSizing","animation","MixedWidget20_1","normal","disable","DataLayerContext","DataLayer","reducer","useReducer","uv","pv","amt","greatPlaceStyle","border","borderRadius","MyGreatPlace","shouldComponentUpdate","shouldPureComponentUpdate","Component","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","preventDefault","_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","event","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","getWindowDimensions","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","K_BEFORE_AFTER_SCALES","l","scale","reduce","sum","ApiKey","RACT_APP_API_KEY","validateStatus","initialValues","password","changepassword","registrationSchema","Yup","shape","required","when","is","oneOf","Registration","loading","setTempToken","Passwordaccesstoken","showPassword","setShowPassword","togglePasswordVisibility","formik","useFormik","validationSchema","onSubmit","setStatus","setSubmitting","noValidate","handleSubmit","placeholder","autoComplete","getFieldProps","touched","errors","isSubmitting","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","AllLayout","sector","fK_SectorCode","AllAlerts","Dashboard","TagConfig","inputReference","useQuill","quill","quillRef","clipboard","dangerouslyPasteHTML","delta","oldDelta","source","hm","innerHTML","onkeyPress","fontStyle","handleChange","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","onStop","newArr","updatePos","openOp","vl","Alert","setNotification","job","setJobs","setFacility","comment","validationRules","getNotificationType","getSheduleJobs","getfacility","getFormDetails","spread","getFormDetailsResponse","getnotifications","getJobs","handleBlur","fK_Layout","fK_NotificationCode","fK_SheduleJobCode","createdBy","resolvedBy","resolvedOn","onBlur","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","ceil","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","AsideMenuItemWithSub","fontIcon","hasBullet","AsideMenuItem","active","AsideMenuMain","useIntl","index2","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.5a8aab73.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 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 {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 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","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 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 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 '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 {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} 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\n\r\nChartJS.register(CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip, Legend)\r\n\r\nfunction SensorView(props) {\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 [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 [data, setdata] = useState([])\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 })\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\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 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 // setBreadCrum(response)\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 RefreshData(obj) {\r\n if (obj?.name == undefined) return\r\n\r\n /// Loading\r\n\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'] = 'TimeStamp: 1, ' + 't_' + obj.object + ' : 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 const _labels = []\r\n const _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 }\r\n const chart = chartReference.current\r\n chart.data.labels = _labels\r\n // state.data.datasets[0].label = obj.dispalyName ?? obj.machineNo\r\n // state.data.datasets[0].data = _data\r\n setCountdown(60) // Reset the countdown to 5 seconds\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 })\r\n state.data.datasets = [\r\n {\r\n label: obj.dispalyName ?? obj.object,\r\n data: _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 ]\r\n /* chart.data = {\r\n _labels,\r\n datasets: [\r\n {\r\n label: obj.dispalyName ?? obj.machineNo,\r\n data: _data,\r\n borderColor: 'rgb(53, 162, 235)',\r\n backgroundColor: 'rgba(53, 162, 235, 0.5)',\r\n },\r\n ],\r\n }*/\r\n\r\n chart.data.datasets[0] = state.data.datasets[0]\r\n\r\n chart.update('none')\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 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 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 {countdown <= 10 && (\r\n <>\r\n Auto refresh in {countdown} seconds\r\n \r\n )}\r\n {countdown > 10 && (\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 {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

Critical Level

\r\n
{live?.CriticalRange} Range
\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
\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","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 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 var obj = objList.filter((item: any) => item.FieldName == \"MCU_TEMP\")[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 //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 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 Footer\r\n
\r\n
\r\n
\r\n\r\n \r\n {imei.Description}\r\n \r\n
Tank Level: {GAS_METER.Value} cm | Size: {TANK_SIZE.Value ?? \"--- lb\"}
\r\n\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
{F_DATETIME.Value}
\r\n Battery {BAT_VOL.Value} {CSQ.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, { 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","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\nexport {greatPlaceStyle}\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","/* 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 React, {useState, useEffect, useRef} from 'react'\r\n\r\nfunction getWindowDimensions() {\r\n\tconst {innerWidth: width, innerHeight: height} = window\r\n\treturn {\r\n\t width,\r\n\t height,\r\n\t}\r\n }\r\n \r\n function useWindowDimensions() {\r\n\tconst [windowDimensions, setWindowDimensions] = useState(getWindowDimensions())\r\n \r\n\tuseEffect(() => {\r\n\t function handleResize() {\r\n\t\tsetWindowDimensions(getWindowDimensions())\r\n\t }\r\n \r\n\t window.addEventListener('resize', handleResize)\r\n\t return () => window.removeEventListener('resize', handleResize)\r\n\t}, [])\r\n \r\n\treturn windowDimensions\r\n }\r\n\r\n \r\nexport default useWindowDimensions;","// 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":""}